Руководство по настройке Fluxbox

Jonathan Smith  автор
Alin Dobre  редактор
Дмитрий Школьников  переводчик

Обновлено 11 августа 2005
Исходный документ обновлен 1 августа 2009

1.  Введение

Введение в оконный менеджер Fluxbox

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

Fluxbox — это оконный менеджер с гораздо более минималистской философией, чем у других популярных менеджеров, таких как KDE или GNOME. Хотя его основное назначение такое же, в Fluxbox отсутствуют графический файловый менеджер, значки, меню «Пуск» и дополнительные утилиты. Тем не менее, при желании их и многое другое можно достаточно легко установить. Это дает огромные возможности для настройки, в чем и заключается философия Gentoo.

Это руководство предназначено для новичков во Fluxbox, любопытных или тех, кто хочет узнать что-то новое о Gentoo/Fluxbox. Также это руководство описывает, как добиться большей (хотя это и необязательно) функциональности посредством использования программ от третьих разработчиков, которые хорошо работают вместе с Fluxbox.

Также имейте в виду, что с начала 2005 года XFree86 была исключена из Gentoo Portage. Это значит, что данное руководство подразумевает, что читатель использует Xorg. Если это не так, то не все из этого руководства может оказаться правильным, однако мы не пытаемся сохранить совместимость с Xfree86. Gentoo рекомендует перейти на Xorg посредством команды emerge xorg-x11.

2.  Установка Fluxbox

Базовая установка

В Gentoo имеется ebuild для быстрой и простой установки Fluxbox. Хотя в Gentoo имеются USE-флаги gnome и kde, которые должны обеспечивать совместимость для этих оконных менеджеров, автор не видит в них необходимости. Если вам требуется программа , основанная на qt или gtk+, либо какая-нибудь утилита KDE/GNOME, вы можете установить и настроить ее независимо. Например, автор использует Fluxbox с k3b, программой для записи CD-R(W) из KDE.

Также необходимо иметь программу для блокировки экрана X для предотвращения неавторизованного доступа, так что будет разумным установить xlock. Подавляющее большинство пользователей также хотят иметь возможность устанавливать свой собственный фон, поэтому поставим eterm, который к тому же является симпатичным X11-терминалом.

Листинг 2.1: Установка Fluxbox

# emerge fluxbox xlockmore x11-terms/eterm

Итак, вот и все! Теперь Fluxbox установлен! Однако, скорее всего, ограничившись только этим набором утилит, вам не удастся им эффективно пользоваться. Следующие разделы помогут установить другие потенциально необходимые пакеты и настроить под себя Fluxbox и некоторые другие программы. Имейте в виду, что все эти шаги необязательны, поэтому выбирайте сами.

3.  Настройка Fluxbox

Подготовка X11

Fluxbox это просто программа, которая выполняется в среде X11. При желании можно ввести startx и затем в xterm ввести fluxbox. Однако, это по меньшей мере неудобно. Если вы не хотите при загрузке компьютера сразу запускать графическую оболочку, а наоборот хотите запускать X11 вручную, можно заставить X автоматически загружать Fluxbox под обычным (не root) пользователем.

Листинг 3.1: Редактирование xinit

$ echo "exec startfluxbox" > ~/.xinitrc

Это тоже не является идеальным решением для всех пользователей, так как многие хотят работать в графической оболочке постоянно. Неудобно каждый раз запускать startx, если предполагается постоянное использование GUI (графического интерфейса пользователя). Кроме того такой подход представляет угрозу безопасности. Если запереть X-сессию при помощи xlock, но при этом сама X11 запущена из консоли, посторонний с физическим доступом к компьютеру сможет переключиться на консоль, остановить X11 и использовать вашу учетную запись. Единственным способом избежать такого в данной ситуации является запуск X11 в фоне, либо запуск ее из программы screen с последующим отсоединением и выходом из консоли, что по меньшей мере утомительно. Если использовать графический менеджер входа в систему, такая проблема не возникнет. С другой стороны, тогда X11 будут запущены из-под root, что может быть не очень хорошо. На момент написания нет ни одного эксплоита для данной версии, но если вы сильно заинтересованы в высокой степени безопасности, либо не используйте X11 вообще, либо используйте вышеописанный метод с программой screen. Имейте в виду, что это относится не к Fluxbox, а к самой X11.

Существует несколько менеджеров графического входа в систему, мы будем использовать gdm. Вы можете использовать любой другой менеджер на ваш вкус, но gdm одинакого хорошо работает как с Fluxbox, так и с любыми другими оконными менеджерами (GNOME, KDE, xfce), которые могут быть установлены у вас.

Листинг 3.2: Менеджер входа в систему

# emerge gdm
# rc-update add xdm default

Важно: Сначала установите gdm, а потом добавьте xdm к сценариям загрузки, ни в коем случае не наоборот! Изменение порядка выполнения этих команд приведет к неудаче. Также необходимо изменить один системный конфигурационный файл:

Листинг 3.3: Редактируем /etc/rc.conf

DISPLAYMANAGER="gdm"

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

Если вы хотите истинного минимализма, то этот параграф можно пропустить. Тем не менее, приятно давать пользователям возможность настраивать внешний вид их оконного менеджера. Темы Fluxbox, стили Gentoo для любого оконного менеджера, а также темы для любого *box оконного менеджера будут установлены с помощью этой команды:

Листинг 3.4: Установка стилей оформления

# emerge commonbox-styles commonbox-styles-extra \
  fluxbox-styles-fluxmod gentoo-artwork

Синтаксис Fluxbox для Vim

Теперь установим особую цветовую схему Fluxbox для vim. Так вам будет проще работать с keys и init файлами для Fluxbox. Это очень маленькое расширение, так что стоит его поставить (если вы конечно не являетесь пользователем emacs, в таком случае рекомендую emerge -C emacs && emerge vim gvim ;-).

Листинг 3.5: Установка синтаксиса Fluxbox

# emerge fluxbox-syntax

Программа для запуска приложений

В каждом оконном менеджере есть (или должна быть) своя программа, используемая для запуска приложений без запуска консоли и вызова приложения оттуда. Апплет для запуска приложений в Fluxbox называется fbrun. Он должен быть уже установлен. Его можно запустить, введя fbrun в командной строке, но запуск fbrun из консоли с последеющим запуском из него приложения еще хуже, чем запуск самого приложения из консоли. Поэтому стоит задать быструю клавишу или запись в меню Fluxbox, которая будет запускать fbrun, либо и то, и другое.

Создать пункт меню, названный "Запуск...", можно внеся следующие изменения в файл ~/.fluxbox/menu:

Листинг 3.6: Определение пункта меню для запуска fbrun

[exec] (Запуск...) {fbrun}

Далее в этом руководстве вы найдете больше информации о меню.

Для подробной информации, такой как параметры командной строки, пожалуйста прочитайте страницу руководства, введя в консоли man fbrun. Помните, что для использования параметров командной строки вам будет необходимо снова отредактировать файлы keys и/или menu, добавив в них необходимые изменения.

Горячие клавиши в Fluxbox

В стандартной поставке Fluxbox очень маленький набор горячих клавиш. Все, что они позволяют, это переключаться между окнами и рабочими столами. Прежде чем менять их, необходимо знать некоторые вещи. В файле горячих клавиш Fluxbox есть странные модификаторы. Mod1, обычно известный как «Alt», и Mod4 это неназываемая (Windows) клавиша. Control и Shift обозначаются Control и Shift. Тем не менее, обычно лучше использовать клавиши Alt/Windows, потому что другие графические программы используют Control и Shift для своих горячих клавиш.

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

Итак, запускайте текстовый редактор (не из-под root) и открывайте файл ~/.fluxbox/keys. Давайте улучшим эти горячие клавиши.

Листинг 3.7: Модификация горячих клавиш

#блокирует графическую сессию текущего пользователя
Mod4 l   :ExecCommand xlock

#Набор программ с запуском по горячим клавишам. Это только примеры, я
#уверен вы поймете идею...
Mod1 f   :ExecCommand firefox
Mod1 t   :ExecCommand thunderbird
Mod1 o   :ExecCommand oowriter
Mod1 v   :ExecCommand gvim

#В Fluxbox отсутствует регулятор звука, поэтому мы сделаем небольшую
#хитрость, чтобы он появился (предполагается использование alsa, если у вас
#oss, тогда придумывайте сами
Mod1 e   :ExecCommand Eterm -name alsa -e alsamixer

#Это запускает fbrun, которй в свою очередь запускает другие
программы
Mod1 r   :ExecCommand fbrun

#Управление приложениями. Упрощает жизнь...
Mod1 4   :Close
Mod1 m   :Minimize

#Если вы пользуетесь aterm (emerge x11-terms/aterm), тогда следующая
#строчка запустит действительно красивый прозрачный aterm без границ,
#замечательно подходящий к разрешению 1024x768, при этом оставляя место для
#torsmo. Опять таки, модифицируйте как хотите.
Mod1 a   :ExecCommand aterm -name aterm -sl 3000 -tr +sb -sr -sk -bg black -fg
\
white -fade 90 -bl -tn xterm -fn \
-misc-fixed-medium-r-normal-*-*-120-*-*-c-*-iso8859-15 -g 116x57

#То же, что и предыдущая комбинация, но открывает терминал под root.
#Естественно, для использования этого вы должны знать пароль root.
Mod1 s   :ExecCommand aterm -name aterm -sl 3000 -tr +sb -sr -sk -bg black -fg
\
white -fade 90 -bl -tn xterm -fn \
-misc-fixed-medium-r-normal-*-*-120-*-*-c-*-iso8859-15 -g 116x57 -e su -

Системный монитор

Многие хотят поставить себе системный монитор. Обычно используется Gkrellm, но в духе минимализма Fluxbox мы будем использовать монитор попроще: Torsmo. Если хотите, используйте другой монитор; в других местах есть куча howto.

Листинг 3.8: Установка torsmo

# emerge torsmo

Стандартный конфигурационный файл Torsmo достаточно слабый, но вы можете найти больше информации в странице man или в readme-файле.

Иконки

В Fluxbox нет утилиты или программы для рисования иконок на рабочем столе, все действия осуществляются посредством горячих клавиш, или меню, появляющемся при щелчке правой кнопкой мыши по рабочему столу. iDesk предоставляет такую функциональность. Он предназначен для для пользователей минималистичным оконных менеджеров, которые хотят вывести иконки в корневое окно. Он даже поддерживает разные спецэффекты, например прозрачность! Несмотря на название, idesk не связана с Apple или Mac (насколько известно автору).

Листинг 3.9: Установка idesk

# emerge idesk

После инсталляции необходимо добавить значки в программу. Иконки idesk управляются посредством конфигурационного файла, находящегося в ~/.ideskrc. Это достаточно длительный процесс и мы не можем подробно описать его в этом руководстве. Для подробной информации обратитесь к странице man idesk, посмотрите руководство по использованию iDesk и ветку в Gentoo Forums.

Выбор графического файлового менеджера

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

Большинство новичков в Gentoo/Fluxbox теряются от отсутствия графического файловога менеджера, такого как nautilus в Gnome. Сам Fluxbox не содержит в себе такой программы, но ее, как всегда, легко установить. Выбор достаточно богатый, но в этом руководстве рассмотрены два менеджера: один для минималистов, которые любят только текст и другой для тех пользователей, которые любят кликать по иконки. Естественно, возможно установить оба сразу и попробовать каждый из них.

Файловый менеджер Gentoo — минимализм

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

Листинг 3.10: Установка файлового менеджера Gentoo

# emerge gentoo

Примечание: На заметку: Файловый менеджер Gentoo является отдельным проектом от дистрибутива Gentoo Linux. Для уточнения деталей смотрите условия использования названия и логотипа Gentoo.

Файловый менеджер Gentoo очень легко настроить использую графический интерфейс, так что вперед.

Файловый менеджер Rox — работает с иконками

Rox относится к тем файловым менеджерам, которые используют иконки вместе с текстом и более похож на Windows Explorer.

Листинг 3.11: Установка файлового менеджера Rox

# emerge rox

Rox по своему поведению очень похож на "традиционные" файловые менеджеры, поэтому его интерфейс должен быть интуитивным. Если нет, всегда есть страницы man.

Программа для просмотра картинок

Многие оконные менеджеры включают в себя утилиты для просмотра картинок в каталоге. Эти приложения маленькие и легкие, но не позволяют редактировать изображения, что предполагается делать в gimp или аналогичном редакторе. Это необходимо, если вы используете командную строку либо один из файловых менеджеров gentoo или rox.

Листинг 3.12: Установка xzgv

# emerge xzgv

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

Установка темы, фона рабочего стола и сценария запуска

В Fluxbox есть набор тем, которые можно выбирать из меню, появляющегося по правому щелчку, затем "Fluxbox Menu" и "System Styles". Обычно эти темы ставят свой фон рабочего стола, который являет собой либо просто один цвет, либо какой-нибудь градиент. Большинство людей предпочитают задавать свой собственный фон, не связанный с используемой темой. Чтобы это сделать, необходимо изменить еще один конфигурационный файл Fluxbox, который отвечает за действия при запуске. Снова запустите текстовый редактор и откройте файл ~/.fluxbox/startup.

Если этот файл уже существует, очистите его содержимое. Добавьте в этот новый файл, удаляя, где необходимо, комментарии и подставляя значения вместо выделенных ВЕРХНИМ РЕГИСТРОМ выражений.

Листинг 3.13: Редактируем сценарии загрузки Fluxbox

#Сценарий загрузки Fluxbox в Gentoo

#Программы, которые должны работать постоянно а не запуститься один раз
#требуют "&" после команды

#Отображать картинку загрузки Fluxbox
#fbsetbg -C /usr/share/fluxbox/splash.jpg

#Это задает фон рабочего стола. У вас должна быть установлена программа для
#реализации этого (рекомендуется x11-terms/eterm)
#fbsetbg -f ПУТЬ_К_ИЗОБРАЖЕНИЮ

#Собственный каталог с шрифтами
#xset +fp ПУТЬ_К_КАТАЛОГУ_СО_ШРИФТАМИ

#Запускает программу отображения иконок
#idesk &

#Запускает системный монитор
#torsmo &

#Это должно быть последней командой!
exec /usr/bin/fluxbox -log ~/.fluxbox/log

Создание меню

Автор создает меню в текстовом редакторе. Если вам такая идея по душе, пожалуйста пропустите эту секцию и перейдите к разделу, описывающему ручное создание меню.

Даже после использования генератора мену (смотрите следующий раздел), можно отредактировать файл ~/.fluxbox/menu вручную, добавив или удалив некоторые пакеты. Имейте в виду, что удаление программы из меню не повлечет удаления этой программы из системы, только из персонального меню пользователя. Вы все еще можете запустить эту программу из командной строки.

В системе уже есть программа, которая называется fluxbox-generate_menu, которую можно использовать для автоматической генерации мену. Что воспользоваться этой программой, вам понадобится Fluxbox версии 0.9.13 или выше. Убедится в этом можно запустив emerge --sync && emerge -u fluxbox. Теперь у вас будет специальная версия этого скрипта, пропатченная для Gentoo, чтобы находить больше программного обеспечения, чем раньше. Эта версия несравнимо лучше по сравнению с предыдущими и нашла у меня в системе программы, о которых я сам не знал. Запустите ее этой командой (не от root'а):

Листинг 3.14: Генерация меню для >=fluxbox-0.9.13

$ fluxbox-generate_menu -is -ds

Мы рекомендуем использовать именно fluxbox-generate_menu -is -ds, а не другие программы вроде mmaker, так как они не понимают структуры каталогов Gentoo.

Примечание: Даже если вы используете автогенерацию меню, у вас остается контроль над его содержимым. Ручное создание и редактирование ~/.fluxbox/usermenu (смотрите описание синтаксиса в следующем разделе) позволит вам создать личное меню, которое не будет удалено при следующем запуске скрипта.

Ручное редактирование меню

Меню Fluxbox это текстовый файл с достаточно простым синтаксисом, описанным в этом параграфе. Меню по умолчанию находится в файле ~/.fluxbox/menu.

Элементы меню для запуска приложений определяются тегом [exec]. Можно задать элемент меню после тега [begin] (корень меню) либо между [submenu] и соответствующего ему тега [end] (определение подменю), например:

Листинг 3.15: Создание новых элементов меню

# Свое меню fluxbox
[begin] (Fluxbox)
  (...)
  [exec] (XTerm белый на черном) {xterm -ls -fg white -bg black}
  (...)
  [submenu] (Другие терминалы)
    [exec] (Aterm default) {aterm}
    [exec] (Rxvt default) {rxvt}
  [end]
  (...)
[end]

Определение корневого меню начинается с тега [begin], после которого идет его имя, находящееся между скобками и заканчивается относящимся к нему тегом [end]. Все операторы меню (называемые здесь тегами) помещаются в квадратные скобки, названия меню помещаются в скобки, а команды, отвечающие названию, в фигурные скобки. В этом файле допускается использование комментариев; это строки, начинающиеся с символа "#"

В вышеприведенном примере первая строчка, начинающаяся с [exec], задает новый пункт, который называется «XTerm белый на черном» и выполняет команду xterm -ls -fg white -bg black как из командной строки. Далее идет подменю, задаваемое тегом [submenu] и затем секция "Другие терминалы" с еще двумя командами [exec]. У каждого подменю должен быть тег [end].

Есть и другие команды меню, которые вы можете использовать в файле ~/.fluxbox/menu. Чтобы узнать о них,почитайте официальную документацию, доступную онлайн.

Заключение

Поздравляем! Теперь Fluxbox установлен, настроен и готов к работе. Если у вас есть какие-либо вопросы или предложения, пожалуйста напишите e-mail автору и/или отправьте bug report в Bugzilla Gentoo.