32

Я использую Xubuntu (на самом деле Linux Mint с XFCE сверху, но я полагаю, что это по сути то же самое)

Я установил для своей темы оформления (измененную версию) MurrinaStormCloud, но если я запускаю gitk, он использует уродливую визуализацию шрифтов, уродливые цвета, уродливые виджеты.

Я думаю, что здесь виноват tcl, но можно ли это исправить?

Вот картинка для сравнения того, как выглядит Firefox в текущей теме и как выглядит gitk:

Гитк уродливая тема

9 ответов9

24

Гитк реализован в tcl/tk. Я искал вокруг, но, кажется, вы мало что можете сделать; это повсеместно ругается на Linux. И кроме использования отвратительного инструментария, gitk становился все хуже для меня, поскольку они добавляли больше функций (в основном не используются), пользовательский интерфейс становится еще более запутанным.

Поэтому я вместо решения рекомендую gitg, аналогичный инструмент, менее зрелый, использующий GTK+.

11

tcl/tk 8.5 на самом деле является темой и выглядит довольно родной в Windows 7 и, очевидно, на Mac. Меньше внимания уделяется написанию мостов движка темы для него под Linux, но вы можете сделать одно из трех:

Чтобы он сохранялся между перезагрузками, добавьте строку *TkTheme: clam в ~/.Xresources , но я не уверен, что вы читаете, запускаете ли вы среду рабочего стола с помощью startx или нет.

В Ubuntu 11.04 было довольно легко адаптировать пути к библиотекам tcl/tk по мере необходимости (некоторые люди сообщали, что эти инструкции устарели):

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

$make

$sudo checkinstall

checkinstall для быстрого создания .deb вместо прямой установки, поддерживает систему в чистоте.

Затем, как описано выше, заставьте tk использовать ваши темы qt:

$echo '*TkTheme: tileqt' | xrdb -merge -
  • В том же репозитории sourceforge, что и tile-qt, есть также tile-gtk, но оно устарело. Мне удалось собрать и установить его после долгих хлопот, но визуальные результаты были грязными - не рекомендуется.
10

Чтобы исправить это, используйте Debian (Ubuntu):

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

А затем выберите альтернативу wish8.5.

8

Пост Габриэля Морина хорош, но tile-qt больше не собирается с этими инструкциями, и, хотя пост в блоге, на который он ссылался (кстати, мой), все еще работает, это больше не лучшее решение, которое я знаю.

Для людей, которые хотят что-то лучше, чем тема "моллюск", PySolFC включает в себя тему Clearlooks для Ttk, и я написал еще одно сообщение в блоге, в котором объясняется, как его установить.

Вот соответствующие части, адаптированные для пользователя Lubuntu (которым я сейчас являюсь):

# 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

Есть некоторые виджеты, которые все еще уродливы (строка меню и SHA1 ID: текст, который должен быть исправлен в gitk, чтобы быть изменяемым), но я не знаю достаточно Tcl/Tk, чтобы исправлять вещи.

(И я слышал слухи о том, что строка меню не была изменяемой, потому что она делегирована ОС для рисования на Windows и MacOS)

4

Вы не можете легко заставить gitk следовать другим темам, но его внешний вид довольно настраиваемый.

Как уже упоминалось в другом месте, вы можете выбрать свои шрифты вручную. Почти все цвета также могут быть изменены в вашем ~/.gitk . Убедитесь, что gitk не работает во время изменения этого файла, поскольку он перезаписывает содержимое при выходе.

Вот что у меня есть (мой файл ~/.gitk):

1

Как сказал kaizer.se, gitk (а также git gui) реализован с использованием tcl/tk, tk является набором инструментов для виджетов и не заботится о темах, основанных на gtk (или вообще о каких-либо afaik). И нет, это не то, что вы можете исправить (хорошо переписать gitk для использования виджета gtk - это не невозможно, но вряд ли это «исправить»), кроме как заменить его чем-то другим.

Вы можете изменить шрифт в настройках, чтобы сделать его немного лучше, я использую:
Основной шрифт: Helvetica 9
Шрифт дисплея Diff: Courier 9
Шрифт пользовательского интерфейса: Helvetica 9

Это выглядит немного лучше и не так сломано, как по умолчанию, хорошо для меня.

0

Я построил tile-gtk (на Mint 17.2) с помощью следующих команд:

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 -

Работает хорошо, выглядит хорошо; К сожалению, я могу запустить только один экземпляр gitk одновременно из-за tilegtk.

0

После некоторых предложений здесь и в других местах я пришел к выводу, что весь этот бизнес Tcl/Tk - беспомощный случай - ему никогда не удается использовать тему DE.

Поэтому я решил попробовать другие графические интерфейсы для Git. В Git Wiki перечислено несколько графических интерфейсов, некоторые из которых вполне способны:

  • git-cola - основан на PyQt4 и кажется наиболее мощным с точки зрения функциональности.

  • QGit, основанный на Qt, выглядит великолепно, но не обладает некоторой функциональностью, особенно в том, что касается веток.

  • GitKraken - мощный и элегантный интерфейс, основанный на Electron и загруженный функциями; бесплатно, но требует регистрации пользователя у продавца.

Мой совет для пользователей, борющихся с git-gui/gitk, - просто переключиться на один из вышеперечисленных.

0

В моем случае правильная версия tk и wish были установлены в системе, и проблема возникла из-за установки anaconda.

Сценарий установки anaconda добавляет export PATH=":/path/to/anaconda3/bin:$PATH" в ~/.bashrc , что приводит к тому, что установленная там программа желаний имеет приоритет.

Переписав эту строку для export PATH="$PATH:/path/to/anaconda3/bin" Gitk удовлетворила желание системы и решила проблему со шрифтами.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .