LXF124:Openbox

Материал из Linuxformat.

Перейти к: навигация, поиск

Содержание

Openbox: Ваша рабочая среда

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

Сегодня мы поговорим о том, как создать себе комфортную и эффективную рабочую среду на базе оконного менеджера Openbox3 (http://icculus.org/openbox/index.php/Main_Page); далее мы будем называть его просто Openbox. В качестве подопытного дистрибутива я буду использовать Ubuntu, но все нижесказанное, разумеется, применимо и ко многим другим вариантам Linux (и не только Linux). Как известно, рабочим столом в Ubuntu по умолчанию является Gnome, то есть после установки дистрибутива мы уже имеем готовую среду, которую можно просто настроить под себя. Но мы пойдем другим путем: взяв за основу Openbox, создадим собственное окружение под свои личные нужды и задачи. Естественно, придется приложить некоторые усилия, но результат вас должен порадовать.

Установка

К счастью, пакет Openbox уже давно собран, и вы можете установить его прямо из Synaptic, поставив галочку и нажав кнопку Применить. Попутно следует установить так называемые темы или, если пользоваться языком Gnome, декорации окон. Вот как все это выглядит из командной строки:

$ sudo apt-get install openbox openbox-themes

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

Покончив с добавлением пакетов, завершите текущий сеанс Gnome и выберите новый сеанс Openbox в меню менеджера входа в систему. При этом мы попадем в совсем «голую» среду, где нет ровным счетом ничего, кроме меню, доступного по нажатию правой кнопки мыши, с очень скудным набором пунктов, и серого фона рабочего стола. Вы не найдете здесь никаких программ-конфигураторов, панелей и тем более апплетов: только оконный менеджер. Все остальные компоненты мы будем доставлять сами

Оконный менеджер

Конфигурационные файлы Openbox имеют формат XML, который неудобно редактировать вручную (да, у этого мнения есть и противники, но, по-моему, простой текст все же дружелюбнее к человеку), поэтому сразу установим две вспомогательные программы: ObConf и obmenu. Первая настраивает внешний вид и поведение окон (файл ~/.config/openbox/rc.xml), вторая редактирует меню (файл ~/.config/openbox/menu.xml). Кроме этих двух, есть еще один важный файл – ~/.config/openbox/autostart.sh. Это файл автозагрузки, и в отличие от двух предыдущих, он представляет собой сценарий оболочки Bash, каждая строка которого – команда, выполняемая при открытии сеанса Openbox. Править его можно в любом текстовом редакторе, например, Gedit (стандартном для среды Gnome). Также важно проследить за тем, чтобы данный файл был исполняемым. Если пользовательский каталог с файлами настроек Openbox пуст, можно найти стандартные варианты конфигурации в директории /etc/xdg/openbox/ и скопировать их в каталог пользователя. Например:

$ cp /etc/xdg/openbox/* ~/.config/openbox/
$ chmod a+x ~/.config/openbox/autostart.sh

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

На самом деле, меню Openbox не такое простое, как может показаться на первый взгляд. Одна из его особенностей – возможность динамического наполнения (так называемое pipe menu). При открытии динамического меню происходит вызов внешнего сценария, заполняющего его нужными пунктами. На сайте Openbox можно найти готовые скрипты для разных задач, в том числе и различные варианты XDG-меню (об этом чуть позже), включая меню Gnome. Ниже представлен пример добавления такого меню. Чтобы задействовать его, отредактируйте файл ~/.config/openbox/menu.xml вручную с помощью текстового редактора или программы obmenu:

<menu id=”pipe_menu” label=”Меню GNOME” execute=”scripts/bop_gmenu.py” />

В данном случае скрипт bop_gmenu.py генерирует меню GNOME. Хотите ссылки на последние открытые документы? Или информацию о наличии свободного места на дисках? Пожалуйста, есть готовые сценарии и для этих целей.

Наклеим обои

Как известно, оконный менеджер управляет поведением самих окон, и внешний вид рабочего стола его средствами изменить нельзя. Но если посмотреть в стандартный файл автозагрузки, то вы увидите, что вызываемая из него внешняя программа xsetroot просто заливает фон серым цветом. Может, кому-то этого и достаточно, но мы все же рассмотрим и другие варианты. Все зависит от того, насколько часто вы меняете обои рабочего стола. Если вы используете лишь одну картинку или меняете обои очень редко, то самый простой путь – использовать консольный просмотрщик графических файлов с функцией размещения изображения в области корневого окна (root window), например, Feh (http://linuxbrit.co.uk/software/feh).

Добавим команду для его вызова в файл автозагрузки и получим красивые обои, видимые при каждой загрузке сеанса Openbox:

$ echo 'feh ----bg-scale wallpaper.png &' >> ~/.config/openbox/autostart.sh

Если принцип «добавил и забыл» вас не устраивает, то ваш выбор – программа Nitrogen (http://projects.l3ib.org/nitrogen). Она графическая, и в качестве аргумента ей необходимо передать путь к каталогу с изображениями. Принцип работы прост: запускаем Nitrogen, выбираем нужную картинку и применяем ее. Теперь, если добавить в автозагрузку строку nitrogen ----restore &, требуемое изображение разместится на рабочем столе при загрузке сеанса. Просто, удобно и со вкусом.

Файловый менеджер

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

Правильно настроенный ROX-Filer отображает мультимедийный контент практически мгновенно.

Если вы работаете с виртуальными файловыми системами, то есть исследуете сетевые ресурсы, FTP-серверы или файловую систему мобильного телефона по протоколу OBEX непосредственно файловым менеджером, то я рекомендую Nautilus.

Dolphin имеет смысл выбрать, если вы применяете и другие приложения KDE 4; в противном случае его использование невыгодно из-за тяжеловесных зависимостей от библиотек KDE и KIO.

Пользователям с меньшими потребностями идеально подойдут Thunar или PCManFM, внешне они схожи с Nautilus.

ROX-Filer, пожалуй, самый быстрый и независимый из всех представленных графических файловых менеджеров: даже файловые ассоциации в нем придется настраивать с нуля. Например, вы можете установить Feh в качестве просмотрщика изображений, MPlayer – для воспроизведения видеофильмов, и так далее.

Не стоит также забывать о том, что Nautilus, PCManFM и ROX-Filer имеют функцию работы с областью рабочего стола, то есть перехватывают события, происходящие в корневом окне системы X Window. Соответственно, по нажатию правой кнопки мыши на свободном месте рабочего стола появится меню файлового менеджера, а не Openbox, и фоновое изображение будет настраиваться тоже средствами выбранного ФМ. Если вы не имеете привычки хранить на рабочем столе файлы, отключите эту функцию. Например, Nautilus следует запускать с параметром --no-desktop, или поправить соответствующий параметр в Gconf программой gconf-editor или командой:

$ gconftool-2 ----set /apps/nautilus/preferences/show_desktop ----type bool False
Файловый менеджер Среда Интерфейс Виртуальные файловые системы
Nautilus Gnome GTK+ GIO/GVFS
Dolphin KDE Qt4 KIO
Thunar Xfce, не зависит GTK+ Thunar-VFS
PCManFM LXDE, не зависит GTK+ Нет
ROX-Filer Не зависит GTK+ Нет
Midnight Commander Не зависит Текстовый MC-VFS

Панели

Некоторые пользователи Openbox не любят использовать дополнительные элементы рабочего стола, считая, что они не нужны; к ним же относят и панели. Но с точки зрения «рядового потребителя», панель удобна, легкодоступна, значительно облегчает навигацию и делает работу более комфортной, при этом не занимая на рабочем столе много места.

Панель – это отдельная графическая программа; она не является частью оконного менеджера, хотя может входить в его состав (как, например, происходит в IceWM и FluxBox). В Openbox панель не включена, и ее выбор остается только за пользователем. Чтобы не переходить к обзору всех возможных вариантов, я выделю две программы: PyPanel (http://pypanel.sourceforge.net) и tint2 (http://code.google.com/p/tint2), и кратко расскажу о каждой.

По внешнему виду меню едва ли скажешь, что оно является частью Openbox, а не PyPanel.

PyPanel – компактная, удобная панель, написанная на Python, как видно уже по ее названию. Включает панель быстрого запуска, панель задач, переключатель рабочих столов, область системного лотка и часы. Любой из этих компонентов можно настроить или отключить, выставить очередность расположения и так далее. PyPanel настраивается посредством редактирования конфигурационного файла ~/.pypanelrc. Он снабжен комментариями, и назначение опций интуитивно понятно из их названий. Порядок наших действий – обычный: настраиваем по вкусу и прописываем запуск панели в файле автозагрузки. Все просто, кроме одного момента: меню. На нем остановимся более подробно.

Как я уже говорил, оконный менеджер и панель – абсолютно независимые программы, и в нашем случае, PyPanel не может отображать меню Openbox, более того, она вообще не имеет компонента меню. Вот вам один из способов решения этой проблемы: установите программу xdotool (http://www.semicomplete.com/projects/xdotool/). Она имитирует нажатие клавиши, события мыши и так далее. Далее, в основном файле конфигурации Openbox ~/.config/openbox/rc.xml настройте для открытия меню горячую клавишу, например: CTRL+ALT+q. Для этого добавьте в секцию <keyboard> следующие строки:

<keybind key=”A-C-q”>
<action name=”ShowMenu”>
<menu>root-menu</menu>
</action>
</keybind>

Теперь добавьте кнопку для открытия меню на панель быстрого запуска PyPanel. Отредактируйте файл ~/.pypanelrc следующим образом:

LAUNCH_LIST = [
 (“xdotool key ctrl+alt+q”, “menu.png”),
]

То есть, при нажатии на кнопку на панели xdotool будет имитировать нажатие горячей клавиши для открытия основного меню Openbox.

Следующая программа – tint2 – на данный момент является наиболее популярной среди пользователей Openbox. Она имеет три компонента: панель задач, область системного лотка и часы, легко настраивается посредством редактирования конфигурационного файла ~/.config/tint2/tint2rc (или общесистемного /etc/xdg/tint2/tint2rc). По умолчанию tint2 настроена таким образом, что панель не растягивается на весь экран, то есть остаются зазоры, и пользователь может вызвать меню Openbox. А что делать, если панель настроена так, что зазоров не останется? Разработчики подумали и об этом: в последних версиях появился параметр wm_menu = 1, который позволит вам вызвать меню по клику на край панели. Да, не забудьте добавить tint2 в автозагрузку:

$ echo 'tint2 &' >> ~/.config/openbox/autostart.sh

Шаг в сторону

Разумеется, существуют и другие варианты: например отдельные программы для области системного лотка или панели быстрого запуска с красивыми визуальными эффектами, и я сознательно не упомянул панели, входящие в состав рабочих окружений Gnome (gnome-panel) и KDE (Kicker и Plasma Panel). Их использование просто невыгодно: в результате вы в лучшем случае получите то же самое окружение с Openbox вместо родного оконного менеджера (Metacity в Gnome или KWin в KDE), а в худшем – некий гибрид этих двух сред со всеми тяжеловесными зависимостями и такими же тяжелыми последствиями. Неработающие кнопки завершения сеанса и выключения ПК – лишь малая часть проблем, с которыми столкнется пользователь.

Tint2, интегрированный в рабочее окружение Openbox. Тема Openbox и GTK: xfzen blue. Шрифты растровые — Terminus.

Приятным исключением является LXPanel, которая хотя и является частью среды LXDE (http://www.lxde.org), но выполнена вполне независимо. Кстати, окружение LXDE не похоже на своих мощных собратьев: почти все его компоненты – самостоятельные программы. И еще сюрприз: в его основе как раз лежит Openbox. Только создатели LXDE заранее определили набор стандартных программ и служб, а мы выбираем и настраиваем их сами, исходя из наших желаний и потребностей.

LXPanel имеет все необходимые компоненты и предлагает поддержку апплетов; настраивается она посредством графической программы. Но главное, что отличает ее от tint2 и PyPanel – это наличие меню, которое поддерживает спецификацию XDG Menu Specification. Иными словами, меню приложений генерируется автоматически. Механизм прост: при установке программы создается файл программа .desktop в каталоге /usr/share/applications. Он содержит описание приложения, его название, комментарии, команду для запуска и другую информацию. Данный каталог сканируется при создании меню, и из .desktop-файлов берется необходимая информация о программах. Таким же образом строятся меню Gnome и KDE. Есть и свои минусы: иерархия такого меню строго определена и не совсем удобна, а поиск программы отнимает время, так как выбирать придется из всех программ, а не из тех, которыми вы пользуетесь реально. Но не это главное (любая проблема разрешима); другое дело, что генерация XDG-меню происходит медленно, и это чувствуется при навигации. Использовать или не использовать его – выбор пользователя; главное, что этот выбор есть.

Внешний вид

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

Если обрамление окна – часть темы Openbox, то вид содержимого этого окна не настраивается средствами оконного менеджера, и зависит (в первую очередь) от использованного в программе графического инструментария. В Linux это, в основном, GTK+ или Qt3/Qt4; с них мы и начнем. Задачу создания единого стиля можно решать с двух сторон: либо сделать приложения Qt похожими на GTK, либо наоборот. Мы пойдем по первому пути: его проще реализовать, да и GTK-приложения все-таки более распространены. Для этого нам понадобятся две программы – qtconfig-qt3 и qtconfig-qt4, запустив которые, можно выбрать тему оформления ‘GTK+’. Следует иметь в виду, что данная настройка не будет применена для приложений KDE, хоть они и используют Qt. Такие программы берут настройки из конфигурационных файлов KDE, и настраивать их внешний вид лучше средствами именно этого окружения.

Есть и третий путь – использование единой темы QtCurve (http://tinyurl.com/ovdbe), целью создания которой является максимальная унификация внешнего вида Qt3/4 и GTK-программ. Данный способ более правильный с точки зрения реализации, но не позволяет выбрать альтернативное оформление.

Далее нам надо привести в соответствие тему Openbox и GTK. Постараемся выбрать для них либо одноименные темы, либо максимально похожие (по стилю и цвету), обращая внимания на шрифты: они настраиваются отдельно и не привязаны к темам. Тема значков GTK+ тоже настраивается отдельно; в идеале они должны соответствовать общему стилю оформления, а также сочетаться с обоями рабочего стола.

Тема Openbox настраивается с помощью программы ObConf, а как быть с темами GTK? Существуют различные графические программы, которые делают процесс проще, например gtk-themeswitch2 или gtk-chtheme, но есть несколько проблем. Во-первых, данные программы меняют пользовательские настройки GTK+ (файл ~/.gtkrc-2.0), и если мы запустим графическую программу, например, от имени root, то ее внешний вид будет отличаться, поскольку будет применена настройка GTK+ суперпользователя, а если ее нет, то общесистемная, из /etc/gtk-2.0. То же касается шрифтов и набора иконок. Во-вторых, если поменять тему GTK, то она не обновится динамически: придется перезапускать сеанс. Для решения этих проблем существует демон настрое – некое промежуточное звено между приложением и параметрами GTK. Можно использовать стандартный демон среды Gnome – gnome-settingsdaemon, или более легкий вариант, lxde-settings (демон среды LXDE); разумеется, второй для нас предпочтительнее. В паре с ним работает очень хорошая программа – LXAppearance. С ее помощью можно производить настройку GTK, а запуск демона lxdesettings добавить в автозагрузку. Стандартный файл автозагрузки уже содержит ссылку на gnome-settingsdaemon, и если вы решите использовать lxde-settings, то необходимо убрать или закомментировать упоминания о менеджере настроек среды Gnome из autostart.sh.

Скорая помощь

Чтобы использовать интерфейс GTK+ в приложениях пакета OpenOffice.Org, добавьте в файл автозагрузки следующую строчку:

export OOO_FORCE_DESKTOP=gnome

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

Что-нибудь еще?

OOo и Firefox имеют собственные библиотеки виджетов, но их тоже можно настроить на использование темы GTK+.

Разумеется, возможности по созданию собственного рабочего окружения на базе Openbox не ограничиваются изложенными выше рекомендациями. Можно, например, «осовременить» рабочий стол, взяв на вооружение простенький композитный менеджер Xcompmgr, который добавляет окнам графические эффекты и обеспечивает прозрачность. Или обратите внимание на популярный системный монитор Conky (http://conky.sourceforge.net), применяемый одной половиной пользователей из удобства, а другой – для красоты. Скучающим по Plasma и Google Desktop рекомендую взглянуть на виджеты рабочего стола aDesklets (http://adesklets.sourceforge.net) – вы можете видеть их на некоторых из приведенных в статье иллюстраций.

Если вас заинтересовала данная тема и английский язык не является для вас проблемой, то я рекомендую посетить ресурс http://urukrama.wordpress.com/openbox-guide. Там вы найдете обширную информацию по настройке, обзор рекомендованных стандартных программ и многое другое. В поисках «украшений» стоит заглянуть на сайты http://www.box-look.org и http://www.gnome-look.org. Ну и, конечно, не забывайте основную страницу проекта – http://icculus.org/openbox/index.php/Main_Page, где можно узнать последние новости и изучить документацию по Openbox. LXF

Личные инструменты
  • Купить электронную версию
  • Подписаться на бумажную версию