gitk wygląda brzydko / nie honoruje ustawień motywu

32

Używam Xubuntu, (tak naprawdę linux mint z xfce na górze, ale przypuszczam, że to w zasadzie to samo)

Ustawiłem motyw wyglądu na (zmodyfikowaną wersję) MurrinaStormCloud, ale jeśli uruchomię gitk, używa on brzydkiego renderowania czcionek, brzydkich kolorów, brzydkich widżetów.

Myślę, że winę za to ponosi tcl, ale czy mogę to naprawić?

Oto zdjęcie do porównania między wyglądem Firefoksa pod bieżącym tematem a tym, jak wygląda gitk:

gitk brzydki motyw

hasen
źródło
1
Fajnie, że mamy gitg, ale wciąż głosuję na to pytanie, aby sprawdzić, czy ktoś może rozwiązać brzydotę tcl / tk. gitk jest wciąż bardziej kompaktowy niż gitg.
u0b34a0f6ae

Odpowiedzi:

25

gitk jest zaimplementowany w tcl / tk. Szukałem w okolicy, ale wydaje się, że niewiele można zrobić; wszędzie jest zniesławiany jako brzydki w Linuksie. Poza używaniem ohydnego zestawu narzędzi, gitk jest dla mnie coraz gorszy, ponieważ wprowadzają więcej funkcji (najczęściej nieużywanych), interfejs użytkownika staje się jeszcze bardziej zagmatwany.

Dlatego zamiast rozwiązania polecam gitg , które jest podobnym, mniej dojrzałym narzędziem, korzystającym z GTK +.

u0b34a0f6ae
źródło
3
+1 gitg nie wiedział o tym
Joakim Elofsson
Słyszałem o gitg. Brzmi obiecująco. Chodzi o to, że gitk wyglądał OK na oknach, jeśli dobrze pamiętam.
hasen
gitg jest znacznie ładniejszy. +1 za to!
crazy2be
2
Niestety, wszystkie aplikacje tcl / tk wyglądają ohydnie.
jpaugh
1
@jpaugh Nie, nie wszyscy, tylko ci, którzy nie używają stylów TTK, system „motywów” TK.
Lloeki,
11

tcl / tk 8.5 jest właściwie tematyczny i wygląda raczej natywnie na Windows 7 i najwyraźniej na Macu. Wygląda na to, że mniej starano się pisać mosty silnika motywu pod Linuksem, ale możesz zrobić jedną z trzech rzeczy:

Aby utrzymywał się między restartami, dodaj linię *TkTheme: clamdo ~/.Xresources, ale nie jestem pewien, czy to przeczytane, czy uruchamiasz środowisko pulpitu, startxczy nie.

W Ubuntu 11.04 było to dość łatwe, w razie potrzeby dostosuj ścieżki biblioteki tcl / tk (niektóre osoby zgłosiły, że te instrukcje są nieaktualne):

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

$make

$sudo checkinstall

checkinstall tworzenie szybkiego pliku .deb zamiast bezpośredniego instalowania utrzymuje porządek w systemie.

Następnie, jak wyżej, poproś tk, aby używał motywów qt:

$echo '*TkTheme: tileqt' | xrdb -merge -
  • W tym samym repozytorium sourceforge znajduje się także tile-gtk, jak tile-qt, ale jest on całkowicie nieaktualny. Udało mi się go zbudować i zainstalować po wielu majstrowaniach, ale efekty wizualne były niechlujne - niezalecane.
Gabriel Morin
źródło
10

Aby to naprawić w Debian (Ubuntu):

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

A następnie wybierz wariant Wish8.5.

mówca
źródło
Wygląda to o wiele ładniej, chociaż nadal nie jest zgodne z motywem Gtk + lub Qt. +1
crazy2be
Dziękuję, nie spodziewałem się doskonałej integracji pulpitu, ale 8.5 wygląda o wiele lepiej niż te w 8.4.
Lucian Adrian Grijincu
Ta odpowiedź powinna tam być! Po prostu zmiana tk na 8.5 znacznie poprawia wygląd gitk.
pedromanoel
4
Oto, co otrzymuję na Ubuntu 14.04:update-alternatives: error: no alternatives for wish
Luís de Sousa,
To już nie działa - być może z powodu zmian w dystrybucji opartej na Debianie na przestrzeni lat. Wypróbowałem to w Debianie 9.
einpoklum - przywróć Monikę
8

Post Gabriela Morina jest dobry, ale tile-qt nie buduje się już z tymi instrukcjami i chociaż post na blogu, do którego odsyłał (mój, nawiasem mówiąc, nadal działa), nie jest już najlepszym rozwiązaniem, jakie znam.

Dla osób, które chcą czegoś lepszego niż motyw „clam”, PySolFC zawiera motyw Clearlooks dla Ttk, a ja napisałem inny post na blogu, który wyjaśnia, jak to zainstalować.

Oto odpowiednie części, dostosowane dla użytkownika Lubuntu (którym teraz jestem):

# 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

Niektóre widżety są nadal brzydkie (pasek menu i SHA1 ID:tekst, które muszą być załatane w gitk, aby można je było używać), ale nie znam wystarczającej liczby Tcl / Tk, aby załatać różne rzeczy.

(I słyszałem plotki, że pasek menu nie został udostępniony, ponieważ jest on delegowany do systemu operacyjnego w celu rysowania w systemie Windows i MacOS)

ssokolow
źródło
Podoba mi się fakt, że zauważyłeś link do swojego bloga i wróciłeś z ulepszonym rozwiązaniem :). Jeśli znajdę trochę czasu na ponowne skonfigurowanie, mogę zaktualizować instrukcje kompilacji dla tileqt, ponieważ uważam, że nadal jest to realna alternatywa dla tego, co proponujesz.
Gabriel Morin
Ten skrypt rzeczywiście coś robi, po prostu nie jest widoczny. Nadal otrzymuj brzydki jasny kolor motywu. Testowane na Ubuntu 14.04.
Luís de Sousa
Cóż, korzystam z systemu Lubuntu 14.04, w którym Frankkenstein przeszedł na system częściowo Kubuntu 14.04 i mogę powiedzieć, że działa to doskonale git gui( z którego korzystam codziennie), więc nie mam pojęcia, co może być źle po twojej stronie. Powinno to zdecydowanie należeć do wspólnego rdzenia wspólnego wszystkich * dystrybucji buntu.
ssokolow
4

Nie możesz łatwo zmusić gitk do podążania za innymi motywami, ale jego wygląd jest dość konfigurowalny.

Jak wspomniano w innym miejscu, możesz ręcznie wybierać czcionki. Prawie wszystkie kolory można modyfikować również w twoim ~/.gitk. Upewnij się jednak, że gitk nie działa podczas modyfikowania tego pliku, ponieważ zastępuje on zawartość przy wyjściu.

Oto co mam (mój ~/.gitk plik ): wprowadź opis zdjęcia tutaj

Gauthier
źródło
1
( Uwaga: Jestem opiekunem ) . Istnieje teraz oficjalny ciemny motyw Draculi dla gitk: draculatheme.com/gitk
Aurelien
1
@Aurelien Dobrze widzieć, że inni używają tematów gitk, napisałem zatwierdzenie, które pozwala zmienić te parametry;) (ale Dracula ma dla mnie zbyt wysoki kontrast. Ale fajna robota!)
Gauthier
Gauthier, @Aurelien: Próbowałem umieścić linkowany tekst w moim ~/.gitkpliku - nie przyniosło to żadnego efektu.
einpoklum
1
@einpoklum: osobiście wstawiam ten tekst ~/.config/git/gitkzamiast ~/.gitk. Zobacz draculatheme.com/gitk . czy to pomaga? Nie znam innych tematów.
Aurelien
1
@Aurelien: Tak.
einpoklum
1

ponieważ kaizer.se powiedział, że gitk (a także git gui ) jest implementowany przy użyciu tcl / tk, tk jest zestawem narzędzi widgetów i nie przejmują się motywami opartymi na gtk (lub w ogóle afaik). I nie, nie jest to coś, co można naprawić (przepisanie gitk w celu użycia widżetów gtk nie jest niemożliwe, ale raczej „poprawka”) inne niż zastąpienie go czymś innym.

Możesz zmienić czcionkę w preferencjach, aby była nieco lepsza, używam:
Główna czcionka: Helvetica 9
Różna czcionka wyświetlana: Courier 9
Czcionka interfejsu użytkownika: Helvetica 9

To wygląda trochę lepiej i nie jest tak zepsute jak domyślne, dobrze dla mnie.

Joakim Elofsson
źródło
0

Zbudowałem tile-gtk (na Mint 17.2) za pomocą następujących poleceń:

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 -

Działa dobrze, wygląda dobrze; niestety mogę uruchomić tylko jedną instancję gitk z powodu tilegtk.

p2rkw
źródło
0

Po kilku sugestiach tu i gdzie indziej doszedłem do wniosku, że cały biznes Tcl / Tk jest bezradnym przypadkiem - nigdy nie udaje mu się użyć motywu DE.

Dlatego postanowiłem wypróbować inne GUI dla Git. Git Wiki zawiera listę GUI , z których niektóre są w stanie:

  • git-cola - oparty na PyQt4 i wydaje się być najmocniejszy pod względem funkcjonalności.

  • QGit - oparty na Qt, wygląda świetnie, ale brakuje mu pewnej funkcjonalności, szczególnie w zakresie gałęzi.

  • GitKraken - potężny i elegancki interfejs oparty na elektronie i pełen funkcji; bezpłatny, ale wymaga rejestracji użytkownika u dostawcy.

Moja rada dla użytkowników zmagających się z git-gui / gitk to po prostu przejście na jedno z powyższych.

Luís de Sousa
źródło
0

W moim przypadku zainstalowano poprawną wersję tk i życzeń, a problem pojawił się po zainstalowaniu anakondy.

Skrypt instalacyjny anakondy dodaje się export PATH=":/path/to/anaconda3/bin:$PATH"do twojego ~/.bashrc, co powoduje, że zainstalowany tam program życzeń ma pierwszeństwo.

Przepisanie tego wiersza, aby export PATH="$PATH:/path/to/anaconda3/bin"umożliwić wykonanie polecenia systemu przez gitk, i rozwiązało problem z czcionkami.

ysalmon
źródło