Fluxbox

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Fluxbox and the translation is 94% complete.

Other languages:
English • ‎日本語 • ‎한국어 • ‎русский • ‎中文(中国大陆)‎


Resources

Fluxbox is an open-source stacking window manager for X11 that was originally forked from Blackbox. This guide provides instructions on how to set up the Fluxbox window manager for X11.

Введение

Для тех кто не знаком с концепцией графических окружений Linux, оконные менеджеры (WMs) - приложения которые запускаются графическим сервером X11 для управления другими графическими приложениями. WM контролирует следующее: где расположено каждое окно, его размеры и на каком рабочем столе оно находится. Это может быть сделано автоматически через набор пользовательских правил или же вручную с помощью мыши или же горячих клавиш на клавиатуре.

Однако некоторые WM предоставляют больший функционал нежели простой оконный менеджер.В добавок к основному функционалу WM Fluxbox также предоставляет платформу для запуска приложений, настройки горячих клавиш и фоновых изображений. Базовый WM окружения GNOME - Metacity не обладает данным функционалом, однако это корректируется дополнительными приложениями окружения GNOME. Таким образом нельзя сказать, что Fluxbox - легковесная WM. Однако, так как Fluxbox содержит всё необходимое для базового рабочего стола, многие люди используют его вместо больших и тяжёлых GNOME или KDE

Fluxbox также может быть использован как стандартный WM для GNOME или KDE. Например, некоторые люди находят, что Metacity, оконный менеджер окружения GNOME, недостаточно гибок для их нужд, однако Fluxbox не имеет всех встроенных приложений и интеграций, которыми они хотят пользоваться. Поэтому они устанавливают Fluxbox в качестве стандартного оконного менеджера GNOME. Заметим, что при наборе Fluxbox+GNOME могут происходить некоторые эксцессы в связи с перекрыванием возможностей.

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

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

Установка

Сначала, убедитесь в работоспособности установленного X окружения, как показано в статье по конфигурации X-сервера.

USE-флаги

USE flags for x11-wm/fluxbox Fluxbox is an X11 window manager featuring tabs and an iconbar

bidi Enable bidirectional language support with dev-libs/fribidi local
imlib Add support for imlib, an image loading and rendering library global
nls Add Native Language Support (using gettext - GNU locale utilities) global
slit Enables the Fluxbox slit (or dock) local
systray Enables the system tray in the Fluxbox toolbar local
toolbar Enables the Fluxbox toolbar local
truetype Add support for FreeType and/or FreeType2 fonts global
vim-syntax Pulls in related vim syntax scripts global
xinerama Add support for the xinerama X11 extension, which is mandatory if you work in multiple monitors setup global

Перед установкой Fluxbox давайте разберёмся в некоторых доступных USE-флагах (описанных ранее).

Если есть gnome или kde USE-флаг, то Fluxbox будет совместим с данными графическими окружениями. Если необходимы qt, gtk+ или любая другая KDE/GNOME утилита, устанавливайте и настраивайте их отдельно. Флаги gnome или kde просто добавляют поддержку соответствующих протоколов и не зависят от внешних библиотек. Однако данные флаги увеличивают размер бинарных файлов Fluxbox

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

В конечном итоге, Fluxbox имеет три флага функционала(кастомизации): slit, systray and toolbar. Эти флаги предоставляются так, что если пользователю не нужен slit или toolbar, то можно скомпилировать Fluxbox без них. Это полезно, если необходимо запустить максимально облегчённое окружение или если планируются использоваться другие приложения предоставляющие данный функционал.

Когда определитесь с необходимым набором USE-флагов добавьте их в файл /etc/portage/package.use. Например, следующая команда настроит Fluxbox для использования с truetype и vim-syntax, но не будет поддерживать GNOME или KDE.

root #echo "x11-wm/fluxbox -gnome -kde truetype vim-syntax" >> /etc/portage/package.use

Emerge

Чтобы воспользоваться Fluxbox необходимо установить его:

root #emerge --ask x11-wm/fluxbox

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

Настройка

Подготовка X11

Fluxbox - просто программа запускающаяся на X11. По желанию можно запустить X11, выполнив startx и потом в xterm набрать fluxbox. Однако это как минимум скучно делать при каждом запуске. Если вы желаете запускать X11 вручную, то можно добавить Fluxbox в автозагрузку X11, выполнив следующую команду от обычного пользователя.

user $echo "exec startfluxbox" > ~/.xinitrc

Данный метод не подходит для большинства пользователей. Вы может быть не хотите каждый раз вводить startx при загрузки системы для запуска X11. Также это небезопасно. Например, система заблокировалась с помощью xlock, однако X11 запущены были из консоли. Тогда тот, кто имеет физический доступ к системе, может переключиться в консоль, убить X11 и использовать любой аккаунт, который на данный момент вошел в систему. Единственный вариант предотвратить это, запускать X11 в фоне или в screen, отсоединять сессию screen, и только потом выполнять выход из системы. Что весьма утомительно и совсем не нужно этого делать. При использовании графических менеджеров входа такой проблемы не возникает. Тем не менее, графические менеджеры входа требуют запуска X11 от root, что может быть плохо. На момент написания статьи нет ни одного эксплоита, который известен автору статьи, но если кто-то знаком с таким, то не используйте X11 вообще, либо используйте вышеописанный метод с screen. Также обратите внимание, что это не проблема Fluxbox; это проблема с самим X11.

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

root #emerge --ask x11-misc/slim
root #rc-update add xdm default
Важно
Устанавите slim и добавьте xdm в скрипт загрузки, и никак иначе. Изменения здесь могут привести к ошибкам и крахам системы. Также надо изменить конфигурационный файл следующим образом:
Файл /etc/conf.d/xdmНастройка SLiM в качестве менеджера входа
DISPLAYMANAGER="slim"

Блокировка экрана

Когда работаешь с WM, необходимо иметь утилиту блокировки X для предотвращения неавторизированного доступа к системе. Для этого рекомендуется использовать утилиту x11-misc/xlockmore. Она также рекомендуется для включения автоматической блокировки, когда система простаивает. Пакет x11-misc/xautolock может быть использован для выполнения команды xlock после определенного перерыва. Вы скорее всего захотите выставить своё фоновое изображение на рабочий стол. Установленный x11-terms/eterm даёт вам эту возможность. Также он предоставляет вам неплохой (с точки зрения автора статьи) терминал eterm. Для выставления фона можно использовать другую утилиту - media-gfx/feh. Она более легковесная нежели eterm, однако не предоставляет терминал, и функционал feh более скромный.

root #emerge --ask x11-misc/xlockmore x11-misc/xautolock x11-terms/eterm media-gfx/feh

Для включения автоблокировки в файл ~/.fluxbox/startup перед строкой exec fluxbox добавьте следующее:

Файл ~/.fluxbox/startup
xautolock -time 15 -locker "xlock -mode blank" -secure &

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

Эта секция может быть пропущена из соображений минимализма, однако почему бы не разрешить пользователю изменить внешний вид Fluxbox темами, заточеными под Fluxbox, изображениями Gentoo для любой WM и темами в любом *box окружении:

root #emerge --ask x11-themes/commonbox-styles x11-themes/commonbox-styles-extra x11-themes/fluxbox-styles-fluxmod x11-themes/gentoo-artwork

Первый запуск Fluxbox

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

user $startx

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

root #/etc/init.d/xdm start

Выберите Fluxbox в качестве сессии и войдите обычным пользователем.

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

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

По умолчанию в Fluxbox очень мало горячих клавиш. Есть наборы для переключения окон, рабочих столов и не более. Перед изменением этого набора вам стоит знать следующее: В файле Fluxbox комбинаций очень странные наименования. Mod1 - Alt, Mod4 - Super (клавиша Windows). Ctrl и Shift - Ctrl и Shift. Однако обычно лучше создавать комбинации, основываясь на клавишах Mod1 или Mod4, так как другие программы X11 могут использовать Ctrl и Shift для своих комбинаций горячих клавиш.

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

Можно также изменить горячие клавиши fluxbox. Для этого в текстовом редакторе (не от рута/суперпользователя) откройте файл ~/.fluxbox/keys и начинайте правки на ваш вкус.

Файл ~/.fluxbox/keysИзменение горячих клавиш
# Блокировка экрана:
Mod4 l   :ExecCommand xlock

# Открытие приложений горячими клавишами
Mod1 f   :ExecCommand firefox
Mod1 t   :ExecCommand thunderbird
Mod1 o   :ExecCommand oowriter
Mod1 v   :ExecCommand gvim

# У Fluxbox нет регулировки громкости; сделаем хак, чтобы было
# (подразумевается что используется alsa; удачи с oss :P )
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
# разрешение, Оставляя комнату свободной для conky. 
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
  
# То же самое только с рутовым терминалом.
# рутовый пароль должен быть известен для этого:
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 -
  
# Создание скриншота по нажатию на print кнопки; нужно установить media-gfx/imagemagick
None 107 :Exec tm=$(date +%F,%T) && import -window root /tmp/screenshot$tm.png \
&& display /tmp/screenshot$tm.png
Mod1 107 :Exec tm=$(date +%F,%T) && import -frame -window $(xprop _NET_ACTIVE_WINDOW \
-root | awk '{print $5}') /tmp/screenshot$tm.png && display /tmp/screenshot$tm.png

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

Часто приходит желание установить графический системный мониторинг. Gkrellm (app-admin/gkrellm) - наиболее часто используемый монитор, однако для сохранения духа минимализма Fluxbox простой монитор будет использован. И это будут conky. Если пожелаете, можете установить любой другой монитор на ваш выбор; На Wiki достаточно инструкций для них.

root #emerge --ask app-admin/conky

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

Иконки

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

root #emerge --ask x11-misc/idesk

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

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

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

Многих новичков в Gentoo/Fluxbox отпугивает отсутствие графического файлового менеджера, как, например, nautilus в GNOME. Сам Fluxbox не содержит такой программы, но, как всегда, получить такую просто. Существует богатый выбор, но эта статья представляет три:

  1. Gentoo file manager for the minimalist who likes text only.
  2. rox for those who like text and graphics.
  3. thunar for those who like full graphical file managers.

For those who are not sure what they like, it is also possible to install all three file managers in order to try each one.

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

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

root #emerge --ask app-misc/gentoo
Заметка
Файловый менеджер Gentoo - это отдельный проект от Gentoo Linux. Для большей информации, см. Gentoo Name and Logo Usage Guidelines.

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

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

Rox Filer - файловый менеджер, который использует как иконки, так и текст и очень сильно похож на старый проводник из Windows

root #emerge --ask app-misc/rox-filer

Rox работает как "традиционный" файловый менеджер, так что его интерфейс должен быть интуитивным. Если нет, всегда есть страницы с руководствами для детальной информации.

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

Thunar легковесный, быстрый файловый менеджер, как и Rox, работает как "традиционный". Он включает иконки и текст, прост в использовании. Хотя Thunar разработан для Xfce, он приятно дополнит систему на базе Fluxbox.

root #emerge --ask xfce-base/thunar

Утилиты просмотра изображений

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

root #emerge --ask media-gfx/gqview

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

Выставление темы, фона и автостартовых скриптов

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

Если этот файл существует, убедитесь в том, что он пустой. Добавьте следующую строку в только что созданный файл, удаляя по мере необходимости, и подставляя значения для CAPS:

Файл ~/.fluxbox/startupРедактирование стартовых скриптов Fluxbox
# Gentoo's Fluxbox startup script
  
# Программы, которым нужно быть запущенными постоянно, в противоположность единожды выполняемым программам,
# это подразумевает указание "&" (амперсанд) в конце команды.
  
# Fluxbox splash-screen
#fbsetbg -C /usr/share/fluxbox/splash.jpg
  
# Установка фонового изображения. Для этого программа должна быть настроена
# (рекомендуется x11-terms/eterm)
#fbsetbg -f PATH_TO_IMAGE
  
# Пользовательские шрифты
#xset +fp PATH_TO_FONT_DIRECTORY
  
# Запуск программы для отображения иконок
#idesk &
  
# Это ДОЛЖНА быть последняя команда!
exec /usr/bin/fluxbox -log ~/.fluxbox/log

Enabling privileged operations through polkit

Fluxbox is able to communicate with core system services over D-Bus to allow privileged operations, such as shutting down the system. To handle the authorizations towards these operations, polkit (formerly known as policykit) can be used.

In order to use polkit, an agent is required. There are several polkit agents available and if a desktop profile is used, one of them will already be installed. Their respective startup files are stored in /etc/xdg/autostart but are not considered by fluxbox. Instead, an additional entry should be made to fluxbox' startup file:

Файл ~/.fluxbox/startupЗапуск агента аутентификации polkit во время загрузки
/usr/libexec/polkit-gnome-authentication-agent-1 &

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

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

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

Если установлен Fluxbox, значит программа fluxbox-generate_menu должна так же быть установлена. Эта программа может быть использована для генерации меню. Запустите ее со следующими опциями из под вашего пользователя:

user $fluxbox-generate_menu -is -ds

Рекомендуется использовать fluxbox-generate_menu вместо выполняющих те же задачи программ. Причина заключается в возможном непонимании этими программами Gentoo-структуры каталогов файловой системы, когда fluxbox-generate_menu ее поддерживает.

Это также может быть выполнено из меню Fluxbox. Как правило пункт Regen Menu в Fluxbox повторно запускает этот скрипт, ищет новые приложения, установленные с момента его последнего запуска.

Заметка
Возможно использовать этот метод для авто-генерации меню и сохранять некоторый контроль над ним. Создание и изменение файла ~/.fluxbox/usermenu вручную (см. следующий раздел для синтаксиса) дает пользователю свое меню, которое не сотрется при следующем запуске скрипта.

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

Меню Fluxbox - текстовый файл, имеющий простой синтаксис, который описан в этой секции. Обычно описание меню расположено в файле ~/.fluxbox/menu

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

Файл ~/.fluxbox/menuОпределение новой записи в меню
# Пользовательское меню fluxbox
[begin] (Fluxbox)
  (...)
  [exec] (XTerm White on Black) {xterm -ls -fg white -bg black}
  (...)
  [submenu] (More terminals)
    [exec] (Aterm default) {aterm}
    [exec] (Rxvt default) {rxvt}
  [end]
  (...)
[end]

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

В показанном выше примере, первая строка [exec] определяет новую запись, названную "XTerm White on Black", которая исполняет xterm -ls -fg white -bg black как будто из командной строки. Следующим идет подменю, которое определено через тэг [submenu], и затем идет раздел, названный "More terminals", с еще двумя [exec] командами. Любое определение подменю должно иметь соответствующий тэг [end].

Могут быть использованы другие команды для меню. Для более подробной информации прочитайте официальную документацию

Выбор стандартных приложений

Смотрите DefaultApplication.

Использование

Resize a window by left clicking the tiny window-corner re-sizing tools and drag them around, or hold down the Mod1 key and right click somewhere near a border, then drag the mouse.

Обобщение

Поздравляем! Fluxbox установлен, настроен и готов к работе. Если появились некоторые вопросы или дополнительные идеи, то не стесняйтесь отредактировать эту страницу, добавить предложение в соответствующую страницу обсуждения, и/или уведомить о багах на Bugzilla

Ссылки

  • Fluxbox wiki.
  • Fluxbox разработчики и пользователи в #fluxbox на Freenode.net.
    This article is based on a document formerly found on our main website gentoo.org.
    The following people contributed to the original document: Jonathan Smith, Alin Dobre, Joshua Saddler, lack
    They are listed here as the Wiki history does not allow for any external attribution. If you edit the Wiki article, please do not add yourself here; your contributions are recorded on the history page.