четверг, 22 января 2009 г.

Темы оформления Ubuntu

После перехода с винды на linux, а в частности на Ubuntu, я был приятно удивлен обилием различных тем оформления для системы, что уж говорить о Compize. Но, к сожалению, не сложилось у компиза и моей ATI, поэтому я решил навести красоту системы с помощью стандартного убунтовского менеджера тем(Система->Параметры->Внешний вид). На сайте GNOME-Look огромнейший выбор различных тем, иконок и курсоров. Но как новичок в линуксах, я не понял, что именно мне нужно скачивать и из какого раздела меню.
Покопавшись в инете и системе я понял, что у меня оконный менеджер Metacity. Недолго думая я скачал с GNOME-Look понравившуюся мне тему из соответствующего раздела и установил ее через менеджер тем. Однако она не отобразилась в списке тем, что меня слегка удивило. Позже я нашел ее, покопавшись в настройках стандартных тем, в разделе "Рамка окна". Активировав ее, я не увидел того, что ожидал. На скрине было одно, а в действительности лишь "рамка окна" :). Я пробовал другие темы, однако редко когда попадались полностью работающие(точнее такого не было ни разу - минимум это менеджер жаловался на отсутствие темы иконок). Это, собственно говоря, и сподвигло меня к изучению данной проблемы.
Выяснил я, что помимо Metacity есть еще такая штука как GTK 2, которая отвечает за элементы интерфейса. Вся суть сводится к тому, что необходимо эти две штуки объединить(а при желании прикрутить еще иконки и курсоры). Оказалось все довольно просто.
Но для начала, думаю, нужно рассказать об устройстве тем и о том, где они хранятся в системе.
Темы могут хранится в двух местах:
/usr/share/themes - располагающиеся здесь темы доступны для всех пользователей(ИМХО самый приемлемый вариант)
~/.themes(скрытая папка в домашней директории, для просмотра скрытых файлов в файловом менеджере нажмите Ctrl+H) - эти темы доступны только конкретному пользователю, следовательно программы, запущенные от рута эти темы использовать не будут
Устройство темы:
Тут тоже все очень просто. Папка полноценной темы(оформление окон, элементы управления, цветовая схема, иконки, курсоры), располагающейся например в /usr/share/themes/ИмяТемы, состоит из:

  • gtk-2.0/


  • metacity-1/


  • ИмяТемы(вообще-то это файл index.theme, но об этом позже)


  • Темы иконок находятся в /usr/share/icons/


  • Темы курсоров находятся в /usr/share/icons/ИмяТемы/cursors/

  • Все телодвижения сводятся к тому, что нам необходимо скачать с гном-лука темы для GTK 2, Metacity, иконки и курсоры, распаковать в usr/share/themes/ИмяТемы (иконки и курсоры в /usr/share/icons/ИмяТемы) и создать\отредактировать файл index.theme (для редактирования выполняем в консоли: gedit usr/share/themes/ИмяТемы/index.theme). После редактирования и сохранения этот файл будет иметь название, которое прописано в нем, однако доступ к нему осуществляется через index.theme.
    Файл index.theme:
    [Desktop Entry]
    Type=X-GNOME-Metatheme
    Name=ИмяТемы
    Comment=описание темы
    Encoding=UTF-8
    [X-GNOME-Metatheme]
    GtkTheme=ИмяТемы
    MetacityTheme=ИмяТемы
    IconTheme=название темы значков(из /usr/share/icons/)
    CursorTheme=название темы курсоров(из /usr/share/icons/)
    Сохраняем и идем во "Внешний вид" и смотрим что получилось. Тема должна отобразиться в списке.
    ЗЫ: Жду конструктивной критики\дополнений\поправок\пожеланий.