O gitk parece feio / não respeita as configurações de tema

32

Estou executando o Xubuntu, (na verdade linux mint com o xfce no topo, mas suponho que seja essencialmente a mesma coisa)

Defino meu tema de aparência como (uma versão modificada) do MurrinaStormCloud, mas se eu executar o gitk, ele usará renderização de fonte feia, cores feias e widgets feios.

Eu acho que tcl é o culpado aqui, mas posso consertar?

Aqui está uma figura para comparação entre a aparência do firefox no tema atual e a aparência do gitk:

tema feio de gitk

hasen
fonte
1
É bom que tenhamos o gitg, mas ainda voto esta questão para ver se alguém pode resolver a feiúra tcl / tk. O gitk ainda é mais compacto que o gitg.
precisa saber é o seguinte

Respostas:

25

O gitk é implementado em tcl / tk. Eu procurei por aí, mas parece que não há muito o que você possa fazer; é repreendido como feio no Linux em qualquer lugar. E, além de usar um kit de ferramentas hediondo, o gitk está ficando pior para mim, à medida que colocam mais funções (geralmente não usadas), a interface do usuário se torna ainda mais confusa.

Então, em vez de uma solução , recomendo o gitg , que é uma ferramenta semelhante, menos madura, usando o GTK +.

u0b34a0f6ae
fonte
3
+1 gitg não sabia sobre isso #
Joakim Elofsson
Eu ouvi sobre o gitg. Parece promissor. Porém, o problema é que o gitk parecia bem no Windows, se bem me lembro.
hasen
O gitg é muito melhor. +1 para isso!
crazy2be
2
Todos os aplicativos tcl / tk parecem horríveis, infelizmente.
precisa
1
@jpaugh Não, não todos, apenas aqueles que não usam estilos ttk, o sistema Tk 'theme'.
Lloeki 5/12/12
11

O tcl / tk 8.5 é realmente utilizável e parece nativo no Windows 7 e, aparentemente, no Mac. Parece ter sido dado menos cuidado ao escrever pontes de mecanismo de tema para ele no linux, mas você pode fazer uma de três coisas:

Para que ele persista entre as reinicializações, adicione a linha *TkTheme: clama ~/.Xresources, mas não tenho certeza se é lida se você inicia startxou não o ambiente da área de trabalho .

No Ubuntu 11.04, era bastante fácil adaptar os caminhos da biblioteca tcl / tk conforme necessário (algumas pessoas relataram que essas instruções estão desatualizadas):

$./configure --with-tcl=/usr/lib/tcl8.5/ --with-tk=/usr/lib/tk8.5/

$make

$sudo checkinstall

checkinstall por criar um .deb rápido em vez de instalar diretamente, mantém o sistema arrumado.

Depois, como acima, faça com que tk use seus temas qt:

$echo '*TkTheme: tileqt' | xrdb -merge -
  • Há também um tile-gtk no mesmo repositório do sourceforge que o tile-qt, mas está desatualizado. Eu consegui construí-lo e instalá-lo depois de muito mexer, mas os resultados visuais eram confusos - não recomendado.
Gabriel Morin
fonte
10

Para corrigir isso da maneira Debian (Ubuntu):

$ sudo apt-get install tk8.5
$ sudo update-alternatives --config wish

E então escolha a alternativa wish8.5.

speakman
fonte
É muito mais bonito, apesar de ainda não seguir o tema Gtk + ou Qt. 1
crazy2be
Obrigado, eu não esperava uma integração perfeita da área de trabalho, mas o 8.5 parece muito melhor do que o da 8.4.
Lucian Adrian Grijincu
Esta resposta deve estar lá em cima! Simplesmente alterar tk para 8.5 melhora muito a aparência do gitk.
pedromanoel
4
Isto é o que eu recebo no Ubuntu 14.04:update-alternatives: error: no alternatives for wish
Luís de Sousa
Isso não funciona mais - talvez devido a mudanças nas distribuições baseadas no Debian ao longo dos anos. Tentei com o Debian 9.
einpoklum - reinstate Monica
8

A postagem de Gabriel Morin é boa, mas o tile-qt não constrói mais com essas instruções e, embora a postagem do blog à qual ele vinculou (a propósito, minha) ainda funcione, ela não é mais a melhor solução que eu conheço.

Para pessoas que querem algo melhor que o tema "molusco", o PySolFC inclui um tema Clearlooks para o Ttk e escrevi outro post do blog que explica como instalá-lo.

Aqui estão as partes relevantes, adaptadas para um usuário do Lubuntu (que agora sou):

# Get the theme
sudo apt-get install pysolfc

# Copy it into your user profile to not rely on PySolFC's presence
mkdir -p ~/.local/share/tkthemes
cp -r /usr/share/games/pysolfc/themes/clearlooks ~/.local/share/tkthemes/

# (optional) Remove PySolFC now
sudo apt-get remove pysolfc
sudo apt-get autoremove

# Add it to Ttk's search path
echo "export TCLLIBPATH=~/.local/share/tkthemes" >> ~/.xsessionrc

# Set the theme
echo "*TkTheme: clearlooks" >> ~/.Xresources

# Test it in this specific terminal window
export TCLLIBPATH=~/.local/share/tkthemes
xrdb -merge ~/.Xresources
git gui     # gitk's "this isn't a repo" dialog is always ugly

# ...and then log out and back in to apply .xsessionrc for the whole desktop

Existem alguns widgets que ainda são feios (a barra de menus e o SHA1 ID:texto, que precisam ser corrigidos no gitk para serem detectáveis), mas eu não conheço Tcl / Tk suficiente para corrigir as coisas.

(E ouvi rumores de que a barra de menus não foi tornada perigosa porque é delegada ao sistema operacional para desenhar no Windows e no MacOS)

ssokolow
fonte
Gosto do fato de você ter notado o link do seu blog e ter voltado com uma solução aprimorada :). Se eu encontrar algum tempo para me preparar novamente, posso atualizar as instruções de construção do tileqt, pois imagino que ainda seja uma alternativa viável ao que você propõe.
Gabriel Morin
Este script realmente faz alguma coisa, simplesmente não é visível. Ainda assim, pegue o feio tema colorido claro. Testado no Ubuntu 14.04.
Luís de Sousa
Bem, eu estou em um sistema Lubuntu 14.04 que foi frankenstein em um sistema parcialmente Kubuntu 14.04 e posso dizer que isso funciona perfeitamente git gui(que eu uso diariamente), então não tenho idéia do que pode estar errado do seu lado. Isso deve estar firmemente dentro do núcleo comum compartilhado por todas as distros * buntu.
ssokolow
4

Você não pode facilmente fazer o gitk seguir seus outros temas, mas sua aparência é bastante personalizável.

Como mencionado em outro lugar, você pode escolher suas fontes manualmente. Quase todas as cores também são modificáveis ​​no seu ~/.gitk. Certifique-se de que o gitk não esteja sendo executado enquanto modifica este arquivo, pois substitui o conteúdo na saída.

Aqui está o que eu tenho (meu ~/.gitk arquivo ): insira a descrição da imagem aqui

Gauthier
fonte
1
( Disclaimer: Eu sou o mantenedor. ) Existe agora um tema oficial escuro Drácula para gitk: draculatheme.com/gitk
Aurelien
1
@Aurelien bom ver outras pessoas usando gitk theming, eu escrevi o commit que permite alterar esses parâmetros;) (mas Drácula tem muito alto contraste para mim Bom trabalho embora).!
Gauthier
Gauthier, @Aurelien: Tentei colocar o texto vinculado no meu ~/.gitkarquivo - não teve efeito.
einpoklum - reinstala Monica em 7/01
1
@einpoklum: pessoalmente, coloquei este texto em ~/.config/git/gitkvez de ~/.gitk. Veja draculatheme.com/gitk . Isso ajuda? Não conheço outros temas.
Aurelien 14/01
1
@Aurelien: Sim.
einpoklum - reinstala Monica em 14/01
1

Como o kaizer.se disse que o gitk (e também o git gui ) é implementado usando o tcl / tk, o tk é o kit de ferramentas do widget e não se preocupa com temas baseados no gtk (ou em qualquer outro ponto). E não, isso não é algo que você pode corrigir (reescrever o gitk para usar o widget gtk não é impossível, mas dificilmente uma 'correção') além de substituí-lo por outra coisa.

Você pode alterar as fontes nas preferências para torná-las um pouco melhores. Uso:
Fonte principal: Helvetica 9
Fonte de exibição diferente: Courier 9
Fonte da interface do usuário: Helvetica 9

Isso parece um pouco melhor e não tão quebrado quanto o padrão, bem para mim.

Joakim Elofsson
fonte
0

Eu construí o tile-gtk (no Mint 17.2) com os seguintes comandos:

sudo apt install tcl-dev tk-dev glib2.0-dev libglib2.0-dev
git clone git://git.code.sf.net/p/tktable/tile-gtk tktable-tile-gtk
cd tktable-tile-gtk
./configure --with-glib-lib-inc=$(pkg-config --cflags glib-2.0) --with-gtk-lib-inc=$(pkg-config --cflags gdk-2.0)
make
sudo make install
echo '*TkTheme: tilegtk' | xrdb -merge -

Funciona bem, parece ser bom; infelizmente, posso executar apenas uma instância do gitk por vez devido ao tilegtk.

p2rkw
fonte
0

Depois de algumas sugestões aqui e em outros lugares, cheguei à conclusão de que todo esse negócio de Tcl / Tk é um caso impotente - ele nunca consegue usar o tema DE.

Portanto, decidi tentar outras GUIs para o Git. O Git Wiki lista uma série de GUIs , algumas das quais são bastante capazes:

  • git-cola - baseado em PyQt4 e parece ser mais poderoso em termos de funcionalidade.

  • O QGit - baseado no Qt, parece ótimo, mas carece de alguma funcionalidade, especialmente no que diz respeito às ramificações.

  • GitKraken - uma interface poderosa e elegante baseada em Electron e carregada de recursos; grátis, mas requer o registro do usuário no fornecedor.

Meu conselho para os usuários que lutam com o git-gui / gitk é simplesmente mudar para um dos itens acima.

Luís de Sousa
fonte
0

No meu caso, a versão correta do tk e do wish foi instalada no sistema e o problema surgiu da instalação do anaconda.

O script de instalação do anaconda é adicionado export PATH=":/path/to/anaconda3/bin:$PATH"ao seu ~/.bashrc, o que faz com que o programa de desejo instalado lá tenha precedência.

Reescrever esta linha para export PATH="$PATH:/path/to/anaconda3/bin"permitir que o desejo do sistema fosse executado pelo gitk e resolveu o problema da fonte.

ysalmon
fonte