Журнал LinuxFormat - перейти на главную

LXF147:tut8

Материал из Linuxformat
Версия от 18:57, 17 июля 2014; 2sash-kan (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Содержание

Gnome 3: Как его вскрыть

Shell вызвал затруднения? Джонатан Робертс собрал средства и методы

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


Похоже, история проекта Gnome развивается по спирали. Девять лет назад релиз версии 2.0 стал заметным событием из-за его стремления к рационализации рабочего стола: разработчики убрали «невнятные» опции и создали Указания к интерфейсу, стараясь обрести гармонический рабочий стол, а не просто расхлябанное нагромождение модулей.

Прокрутим почти десятилетие, и что мы имеем? Релиз Gnome 3.0 снова примечателен своей попыткой рационализировать рабочий стол. Многие опции убраны, а на смену им пришли новые интерфейсы и шаблоны взаимодействия.

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

В те времена серия Gnome 2 многие опции постепенно вернула, и получилось одно из самых гибких и популярных окружений рабочих столов. А что произойдет с Gnome 3? Вызовет ли он кровоизлияние у пользователей, или проследует эволюционным путем, как его предшественник?

На самом деле, определенная эволюция нужна – например, требуется более хорошая документация; опции настройки имеются в изобилии, просто надо знать, где искать. Данный урок покажет вам средства и методы восстановить ваш знакомый ход работы, настроить вид рабочего стола и расширить его так, как и не снилось разработчикам.

Мы сделаем упор на новый интерфейс Shell – интерфейс по умолчанию, если ваш компьютер его поддерживает, и нашей первой задачей станет восстановление некоторых функций, которых не хватает в Gnome 3 по сравнению с Gnome 2 и другими современными рабочими столами. Чаще всего, возможно, упоминается панель задач, которая использовалась для отображения в низу экрана запущенных программ. В Gnome Shell она заменена на режим Overview, который надо смотреть отдельно.

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

Однако есть несколько приложений третьих сторон, которые не только повторяют функции панели задач, но также и отлично настраиваются и сочетаются с темой Gnome 3, стоящей по умолчанию.


Клоны панели задач

Возможно, лучшая имитация традиционной панели задач – Tint 2. Он очень легковесный, отнимает всего 5 МБ резидентной памяти при обычных операциях, и имеет широкий спектр опций настройки: можно задать, чтобы панель прилегала к любому краю экрана, сделать ее прозрачной и даже содержать системный лоток (для значков программ вроде Banshee).

Все эти установки можно поменять с помощью программы tint2conf, или отредактировав файл tint2rc в ~/.config/tint2. Если, повозившись с Tint 2, вы поймете, что он в вашем стиле, можно обеспечить его автоматический запуск при каждом входе, с помощью программы gnome-session-properties. Хотя ее не видно в режиме Overview и она не входит в новый Gnome Control Center, ее можно запустить из терминала или из диалога запуска (Alt+F2).

Если вы предпочли бы док рабочего стола в стиле Mac, то будете рады узнать, что Docky работает в Gnome Shell не хуже, чем в Gnome 2. Простой установки из репозиториев дистрибутива достаточно, чтобы она появилась в списке программ по умолчанию.

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

К счастью, Рон Йорстон [Ron Yorston] создал расширение (см. врезку о расширениях), которое восстанавливает эти функции в верхней панели, а также дает возможность перенести часы на прежнее место, направо, и выключить динамическое создание рабочих полей.

Его пакет можно скачать с http://intgat.tigress.co.uk/rmy/extensions/index.html. Это удобный архив TGZ, и для установки нужно просто распаковать его в домашнюю папку: tar -xvzf gnome-shell-frippery-0.0.2.tgz. Для активации нового расширения перезапустите Gnome Shell, вызвав нажатием Alt+F2 диалог запуска, с последующим вводом restart. Тогда изменения станут видны, но при этом кое-что следует знать.

Избранное просто отражает содержимое вашего Dash (док-подобной панели в режиме Overview) – чтобы его поменять, сделайте нужные изменения в Dash.

Учтите также, что при отключении динамических рабочих полей вам придется задать количество используемых рабочих полей. Это делается в программе gconf-editor – нужная установка лежит в Apps > Metacity > General > Num_Workspaces. Без этого вам останется только одно рабочее поле, и вы лишитесь одной из лучших возможностей Gnome.

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

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

В новом Control Centre в Gnome 3 не включены многие из этих опций, и вам придется задействовать gnome-tweak-tool. Во многих дистрибутивах с Gnome 3 gnome-tweak-tool тоже доступен, так что установите его через свой менеджер пакетов.

По сути, это хранилище большинства важнейших опций, не попавших в новый Control Center Gnome 3. Там вы найдете все вышеупомянутые, наряду с многими другими. Есть панель поиска – она написана в GTK 3 и гармонично сочетается с остальным рабочим столом. Уделите время на изучение gnome-tweak-tool; но если и там вы не обнаружите некой настройки, которая, по вашему мнению, где-нибудь да должна присутствовать, у вас останется два места для поиска.

С тех пор как Gnome сосредоточился на рационализации интерфейсов пользователя, опции, которые, по мнению разработчиков, усложняли диалог настройки, не всегда полностью удалялись, а переносились в скрытую базу данных.

Таких баз данных две, с тех пор как Gnome 3 отметил начало перехода от старого gconf к новой системе gsettings. В конечном итоге, все установки Gnome и приложений должны осесть в gsettings, но сейчас на наличие доступных опций нужно проверять обе.

Обе базы снабжены простыми графическими приложениями, позволяющими исследовать и менять все доступные опции. Это gconf-editor и dconf-editor, соответственно. Обратите внимание, что gconf-editor запускается обычным способом, а вот для запуска dconf-editor нужен диалог run или терминал.

Также следует упомянуть, что Control Centre и gnome-tweak-tool всего-навсего отображают базы данных в простом, урезанном диалоге для пользователей. Если вы собираетесь проделать какие-либо изменения в базе данных, позаботьтесь запомнить исходное значение, чтобы можно было восстановить его, если вы передумаете.


Понимание темы

Может вы удивитесь, а может и нет, но настройка тем в Control Centre тоже отсутствует, и снова пробел заполняет gnome-tweak-tool – или gconf с gsettings, как вам больше нравится.

Вы, скорее всего, уже обратили внимание на опцию theme в gnome-tweak-tool и были удивлены или сбиты с толку их количеством. Откуда их столько и зачем они?

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

В Gnome 3, темы GTK идут в двух вариантах: gtk-3.0 и gtk-2.0. Они связаны с двумя различными версиями GTK, и каждый применим только в программах, написанных в данной версии. То есть пока все ваши программы не портированы в GTK 3, придется вам искать в обеих версиях сходные темы, если вы хотите, чтобы рабочий стол выглядел опрятно.

Тема Shell – новинка Gnome 3: она определяет вид интерфейса Shell – то есть вид верхней панели и всего, что содержится в режиме Overview, доступном по нажатию на клавишу Windows. И наконец, Current Theme в разделе Windows относится к тому, что раньше называлось темой Metacity. Там определяется вид окон, содержащих ваши приложения: их заголовки, границы и управляющие элементы для закрывания, сворачивания и распахивания.

Набором тем сначала следует обзавестись. Многие доступны в репозиториях дистрибутива – проверьте сначала там. Если вам встретится тема, недоступная в репозитории, установите ее вручную, распаковав ее содержимое в определенный каталог.

  • GTK и Window темы можно установить либо в ~/.themes/$theme_name/ (для одного пользователя), либо в /usr/share/themes/$theme_name/ (для всех пользователей). Если вы устанавливаете тему GTK, ее нужно разместить либо в каталоге gtk-3.0, либо в gtk-2.0, а если тема Metacity, то в каталоге metacity-1.
  • Темы значков и курсоров можно установить в ~/.icons или /usr/share/icons.w.

При установке новой темы для Gnome Shell сперва убедитесь, что установлено расширение user-theme. В большинстве дистрибутивов оно входит в пакет gnome-shell-extensions, а его исходник можно скачать с http://live.gnome.org/GnomeShell/Extensions: там также имеются инструкции по сборке и установке.

Установив расширение, вы сможете скопировать темы Gnome Shell в ~/.themes/$theme_name, поместив их в каталог gnome-shell, а затем выбирать их в gnome-tweak-tool.

Мы уже освоили много нового, исправив ряд самых неприятных неудобств в Gnome Shell и частично вернув гибкость Gnome 2. Уже кое-что, но еще не все. Иногда вам требуется взять дело в свои руки, создав собственную идеальную тему или расширение с небольшой, но для вас решающей функцией. К счастью, главной целью разработчиков Gnome 3 было как раз упрощение таких настроек, чтобы они стали доступнее для широких масс.

Далее следует ускоренный курс по новым возможностям создания тем в Gnome 3, где излагаются основы CSS и как применять их к GTK 3 и Gnome Shell.

Мы были бы рады исследовать возможности расширения Gnome Shell, но пока дела обстоят так, что в системе почти нет документации, а API имеет склонность меняться.

Если вам интересно изучить это самостоятельно, рекомендуем в качестве прекрасного бесплатного введения Eloquent Javascript. Когда вы освоите основы языка, обзор информации и кода в http://live.gnome.org/GnomeShell/Extensions поставит вас на ноги.

В вашем стиле

CSS означает «каскадные таблицы стилей [Cascading Style Sheets]»; это механизм добавления информации о стиле, такой как шрифты, цвета и позиция элемента в структурированном документе. Шире всего они применяются в Интернете, но разработчики Gnome 3 воспользовались данным синтаксисом для тем GTK 3 и Gnome Shell.

Синтаксис таблиц стилей довольно простой. Каждая таблица состоит из набора «правил», а каждое из правил содержит «селектор» и «блок объявления».

В блоке объявления перечислено некоторое число свойств и им присвоены значения, например, ‘color: red;’. Обратите внимание, что свойство и значение разделены двоеточием, а присваивание заканчивается точкой с запятой. Также блоки объявления заключаются в фигурные скобки.

Селектор определяет, к какому именно элементу или виджету применяется содержимое блока объявления: например, к виджету GtkComboBox или к элементу параграфа HTML. Виджет GTK можно задавать как обобщенный тип (GtkComboBox), по имени (#button1), или как класс, определяющий группу виджетов (.button), применяемых к флажкам, переключателям, стандартным кнопкам и кнопкам-переключателям.

Простой набор правил будет выглядеть примерно так:

GtkComboBox {
 padding: 4;
 color: #ffffff;
}

В CSS можно использовать куски синтаксиса других типов, и там есть интересные способы комбинировать их друг с другом и получать сложные выражения, однако это уже хорошо задокументировано в портале разработчиков Gnome. Прежде чем читать дальше, стоит заглянуть на http://developer.gnome.org/gtk3/stable/GtkCssProvider.html, в особенности в раздел селекторов и @rules.

Итак, вы освоили основы style sheets, и пора написать вашу первую тему. Вместо того, чтобы начать с нуля, лучше взять готовую тему, изменить ее и наблюдать за эффектом во время работы.

Для начала мы взяли Adwaita – это самый полный пример темы GTK 3. Скопируем ее в подкаталог .theme вашего домашнего каталога, снабдим новым именем, а потом зайдем внутрь и посмотрим содержимое.

cp -r /usr/share/themes/Adwaita ~/.themes/New
ls ~/.themes/New/

Вы увидите папку gtk-3.0, о которой мы уже говорили. В ней должно быть два CSS-файла: файл gtk.css содержит список цветовых определений, а файл gtk-widgets.css – список правил для всех виджетов.

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

Но это легко преодолимо: ведь документация разработчиков Gnome содержит список всех виджетов – включая описания и экранные снимки того, что нужно ожидать. Простейший способ добраться до этой информации – от души попользоваться функцией поиска по сайту от Google. Например:

site:developer.gnome.org/gtk $widget_name

Многие цвета в gtk-widgets.css задаются с помощью @rules, которые являются просто указателями на определения из файла gtk.css. Так что если вы хотите поменять цвет виджета, возьмите его имя из gtk-widgets.css и воспользуйтесь функцией поиска текстового редактора, чтобы найти соответствующий пункт в gtk.css.

Создаем стиль

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

Чтобы изменения стали видимыми, сначала задайте тему, используя gnome-tweak-tool. Затем вам нужно тестовое приложение GTK 3, которое надо перезагружать после каждого сохранения, чтобы видеть результат. Для этого сгодится Nautilus: в нем полно всяких виджетов, и он быстро открывается и закрывается.

Алгоритм создания новой темы для Gnome Shell весьма похожий. Однако есть и важные отличия:

  1. Чтобы можно было выбирать разные темы в gnome-tweak-tool, вам придется установить расширение user-theme, как описано выше.
  2. Как и раньше, гораздо проще будет начать с известной темы и менять ее на свой вкус, но знайте, что тема Gnome Shell, стоящая по умолчанию, хранится в другом месте:
cp -r /usr/share/gnome-shell/theme/* ~/.themes/New_Shell/gnome-shell/
  1. Заглянув в каталог, вы увидите, что хотя там много файлов, только один из них – файл CSS: это gnome-shell.css. Его синтаксис почти совпадает с тем, что в файле gtk-widgets.css, но на сей раз проект Gnome предоставил очень мало документации насчет того, какой селектор соответствует какому элементу экрана. Однако вам не придется применять метод проб и ошибок: предприимчивые ребята с форумов Ubuntu прошлись по файлу, стоящему по умолчанию, и великодушно повставляли комментарии, объясняющие соответствие многих элементов (http://ubuntuforums.org/showpost.php?p=8997676&postcount=69). При работе рекомендуем держать это руководство открытым.
  2. Чтобы ваши изменения возымели силу, нужно выбрать тему из gnome-tweak-tool и перезапустить Gnome Shell после каждого изменения. Это можно сделать, если, нажав Alt+F2 запустить диалог run, и после этого ввести r или restart. И снова, правильным будет подход пошаговых изменений.

Если больше ничего не работает...

Вот вам и все. Если, открыв для себя гибкость Gnome 3 и потратив часы на попытки привести его симпатичному для вас виду, вы не согласились на переход, не отчаивайтесь. По крайней мере, вы неплохо провели время, и есть ведь Xfce, KDE, LXDE, Unity или любой другой рабочий стол Linux вам на радость.

Мы надеемся, что наш урок дал вам почувствовать вкус возможностей, и еще больше пользователей попробуют Gnome 3. Обидно, что во многих областях нет приличной документации, но мы уверены, что когда уляжется пыль от третьего релиза и внимание переключится на более эволюционные изменения, ситуация улучшится.

Персональные инструменты
купить
подписаться
Яндекс.Метрика