воскресенье, 24 мая 2009 г.

Изменение оформления gtk-приложений

Пользователи среды GNOME могут легко изменить используемую тему оформления, для этого надо просто залезть в графический настройщик внешнего вида и выбрать нужную тему или добавить новую. Но что если вы используете оконный менеджер (WM) вместо DE, который просто по определению не предоставляет такой функционал? В таком случае всегда есть возможность ручной правки конфигов для gtk-приложений. Также присутствуют графические программы, дающие возможность менять тему оформления.

Правка конфигурационного файла

Выбор темы

Конфигурационный файл, который необходимо подправить для изменения темы оформления, имеет имя ~/.gtkrc-2.0. В моём случае этот файл имеет следующий вид (создан с применением прекрасной программы lxappearance из проекта LXDE, хотя можно это и самому написать - результат будет тем же):

gtk-theme-name="Industrial"
gtk-icon-theme-name="gnome-brave"
gtk-font-name="DejaVu Sans 10"
gtk-toolbar-style=0
include "/home/maxim/.gtkrc-2.0.mine"

Итак, что же это означает? Первая строка говорит, что надо использовать тему оформления Industrial, а вторая - что должны использоваться иконки gnome-brave.

Темы оформления лежат в директориях /usr/share/themes/, а иконки /usr/share/icons/. Свои темы и иконки принято кидать в ~/.themes и ~/.icons соответственно. Именно там будут искаться, хотя можно использовать и абсолютный путь до директории с темой.

В третьей строке задаётся используемый шрифт и размер шрифта.

"gtk-toolbar-style=0" означает, что будут отображаться только кнопки, без подписей к ним. Значение 1 даст только подписи без значков, 2 - подписи и значки.

Последняя строчка означает, что также будет считываться содержимое файла "/home/maxim/.gtkrc-2.0.mine". Для чего это надо? Например, есть графические программы, позволяющие настраивать вид gtk-приложений, при этом переписывая всё, что было до этого, кроме строк, содержащих include. Именно в файле "/home/maxim/.gtkrc-2.0.mine" у меня лежат персональные настройки, которые нельзя сделать с помощью простых графических утилит.

Дополнительные настройки

В файле /home/maxim/.gtkrc-2.0.mine я добавил следующие настройки.

Клавиатурные сокращения как в Emacs

Чтобы в gtk-приложениях работали клавиатурные сокращения для перемещения курсора и удаления текста, аналогичные емаксовским, необходимо добавить строку:

gtk-key-theme-name = "Emacs"

Пользователям GNOME этого может оказаться недостаточно, возможно придётся копаться в gconf. Об этом и вообще о емаксовских сокращениях в gtk можно почитать в этом сообщении.

Изменение размера иконок на элементах управления

Многим кажется неудобным, что в gtk-приложениях используются по умолчанию весьма большие иконки на кнопках типа открыть/закрыть/сохранить и т.д. Это легко исправить, внеся следующие настройки:

gtk-icon-sizes = "panel-menu=32,32:panel=32,32:gtk-menu=16,16\
:gtk-large-toolbar=24,24:gtk-small-toolbar=16,16:gtk-button=24,24"
Размеры, разумеется, можно подогнать по своему желанию.

Графические утилиты

Несомненное преимущество графических утилит состоит в том, что можно видеть какую тему вы выбираете не методом проб и ошибок, а, так сказать, in situ, то есть, прямо здесь и сейчас, с предпросмотром.

Как я уже отметил выше, мой конфигурационный файл, содержащий тему, был создан с помощью программы LXAppearance. Она позволяет как выбрать тему, так и шрифт, иконки, и настроить способ отображения элементов управления.

Когда я в последний раз видел программу gtk-chtheme она позволяла лишь производить выбор тем и шрифта с предпросмотром, не более того. Но уж это она делает прекрасно.

Быть может, есть и другие легковесные программы, не привязанные к каким-лобо DE, для подобного рода действий, но и этого вполне достаточно.

Копируете статью - поставьте ссылку на оригинал!

3 комментария:

  1. О как убрать мигание курсора не подскажете?
    И вообще по .gtkrc-2.0 довольно мало документации...

    ОтветитьУдалить
  2. Сам это не проверял. Однако первый же запрос в гугле на предмет "gtk blink cursor" дал ответ "gtk-cursor-blink = 0
    ". Может, поможет?

    ОтветитьУдалить
  3. Есть еще неплохая программка gtk-theme-switch

    ОтветитьУдалить