Fluxbox — довольно легковесный оконный менеджер для Linux

Автор: Nikolay shurph Saskovets

Fluxbox — оконный менеджер для X-сервера, основанный на исходных кодах оконного менеджера Blackbox версии 0.61.0. Fluxbox предоставляет интересные возможности: виртуальные рабочие столы, «слит» (поддерживает bb* программы, WindowMaker dockapps, приложения KDE и GNOME), табы (возможность группировать окна различных программ), прозрачность и многое другое.

Настройка

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

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

Работать в любом оконном менеджере (WM, window manager) или рабочем окружении (DE, desktop environment) становится намного быстрее и удобнее, если правильно настроить горячие клавиши на запуск приложений, которыми вы будете часто пользоваться.

Настроить их можно, отредактировав файл ~/.fluxbox/keys, который имеет следующий вид:

 Mod1 Tab :NextWindow
 Mod1 Shift Tab :PrevWindow
 Mod1 F1 :Workspace 1
 Mod1 F2 :Workspace 2
 Mod1 F3 :Workspace 3
 Mod1 F4 :Workspace 4

 # Root menu # Ctrl + Esc, Win
 Control Escape :RootMenu
 None Super_L :RootMenu
 Mod1 Escape :WorkSpaceMenu

 # Move window
 # Ctrl + Numpad arrows
 Control KP_Up :Move +0 -5
 Control KP_Down :Move +0 +5
 Control KP_Left :Move -5 +0
 Control KP_Right :Move +5 +0
 Control KP_Prior :Move +5 -5
 Control KP_Next :Move +5 +5
 Control KP_Home :Move -5 -5
 Control KP_End :Move -5 +5

 # Resize window
 # Ctrl + Alt + Numpad arrows
 Mod1 Control KP_Up :Resize +0 -5
 Mod1 Control KP_Down :Resize +0 +5
 Mod1 Control KP_Left :Resize -5 +0
 Mod1 Control KP_Right :Resize +5 +0
 Mod1 Control KP_Prior :Resize +5 -5
 Mod1 Control KP_Next :Resize +5 +5
 Mod1 Control KP_Home :Resize -5 -5
 Mod1 Control KP_End :Resize -5 +5

 # Exec some programs
 Mod1 Control r :ExecCommand fbrun
 Mod1 Control f :ExecCommand firefox
 Mod1 Control Escape :ExecCommand xkill
 Control Super_L :ExecCommand aterm
 Control Mod1 z :ExecCommand import -window root ~/images/screenshots/scr_`date +%s`.png

Обратите внимание на именование клавиш: Mod1 — это клавиша Alt, Super_L — Windows-key-left, ISO_Level3_Shift — Windows-key-right.

Вы можете узнать название какой либо клавиши, которую вы нажимаете на своей клавиатуре, при помощи утилиты xev. Просто запустите ее как xev|grep keycode, так будет легче ориентироваться в выводе:

shurph@iva:~$ xev|grep keycode
   state 0x2010, keycode 116 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,
   state 0x2090, keycode 116 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,
   state 0x2010, keycode 116 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,
   state 0x2090, keycode 116 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,
 X connection to :0.0 broken (explicit kill or server shutdown).

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

Меню

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

Для запуска какого-либо приложения следует использовать следующую конструкцию:

 [exec] (Гугл) {aterm -e links http://google.com}

Если же есть желание использовать подменю, то вам пригодится вот такая конструкция:

 [submenu] (Inet)
   [exec] (links) {links www.fluxbox.org}
   [exec] (mutt) {aterm -e mutt}
 [end]

Вместо [exec] можно использовать:

  • [config] (Configure) — меню конфигурации fluxbox;
  • [stylesdir] (~/fluxbox/styles) — выбор тем;
  • [workspaces] (Workspace List) — список рабочих столов;
  • [reconfig] (Reload config) — перечитать файл конфигурации;
  • [restart] (Restart) — перезапустить fluxbox;
  • [exit] (Exit) — выход из fluxbox.

Подробнее о построении меню можно почитать, набрав man fluxbox.

Автозапуск

Горячие клавиши и меню — это хорошо, однако следует подумать как осуществлять автоматический запуск некоторых программ при входе в систему. Для этого отредактируем файл ~/.fluxbox/apps, добавьте туда строку:

 [startup] (screen=2) {firefox}

После запуска мы увидим окно Firefox’a на 2-ом рабочем столе, если Firefox у вас уставновлен и настроено соответсвующие виртуальные рабочие столы.

Темы

Fluxbox поддерживает темы оформления. Эти темы полностью совместимы с темами от Blackbox’a. Выбрать оформление можно в меню: MENU → Fluxbox menu → System Styles. В SlackWare 11.0 темы обычно хранятся на файловой системе в каталоге /usr/X11R6/share/fluxbox/styles/. В вашем дистрибутиве путь может отличаться.

Также вы можете помещать темы оформления в директорию ~/.fluxbox/styles/, предварительно добавив в файл ~/.fluxbox/menu такие строки:

 [submenu] (User Styles) {Choose a style...}
   [stylesdir] (~/.fluxbox/styles)
 [end]

В интернете вы можете найти громадное количество тем для Fluxbox’a и Blackbox’a. Вот вам пару ссылок, откуда можно начать поиски:

«Обои» на рабочий стол

Fluxbox придерживается unix-way, и поэтому у него нет собственной утилиты для смены обоев на рабочем столе. Для этой цели Fluxbox’ом используется скрипт-обёртка fbsetbg, который, в свою очередь, пытается найти установленную в системе программу, которая могла бы устанавливать обои на рабочий стол, и использует эту программу. В качестве такой программы могут выступать: chbg, Esetroot, wmsetbg, display, qiv, xsri, xli, xsetbg.

Синтаксис скрипта fbsetbg достаточно прост, чтобы заострять на нем внимание. Скажу лишь о том, что для выбора в качестве фона на рабочий стол изображения, использующегося при последнем запуске, следует в файл ~/.fluxbox/init записать строку:

 session.screen0.rootCommand: fbsetbg -l

Табы

Основная отличительная особенность Fluxbox’а от других *box’ов — табы. Использование табов позволяет более рационально использовать место на рабочем столе.

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

Для переключения между табами можно использовать стандартное сочетание Alt+Tab, которое будет последовательно переключать все окна текущего виртуального рабочего стола, в том числе и те, которые сгруппированы в табы. Однако можно настроить сочетания и на переключение именно между табами. Для этого следует в файл ~/.fluxbox/keys добавить такие строки:

  Mod1 Q :NextTab # следующий таб
  Mod1 A :PrevTab # предыдущий таб
  Mod1 Control Q :MoveTabLeft # переместить таб влево
  Mod1 Control A :MoveTabRight # переместит таб вправо
  Mod1 Control S :DetachClient # "выхватить"("разтабировать") текущее окно из группы

Косметическая настройка интерфейса

Вот мы и завершили настройку основных вещей в замечательном оконном менеджере — Fluxbox. Теперь хотелось бы сделать небольшие косметические исправления.

Стрелки на панели инструментов

В первую очередь хотелось бы избавится от стрелочек на панели инструментов. Сделаем мы это, отредактировав файл ~/.fluxbox/init. Найдите в нем параметр session.screen0.toolbar.tools и оставьте для него только следующие значения:

session.screen0.toolbar.tools: workspacename, iconbar, systemtray, clock

В каком порядке написаны директивы, в токам порядке и будут отображаться элементы панели инструментов

Изменение формата даты

Для изменения отображаемой даты на панели инструментов следует отредактировать параметр session.screen0.strftimeFormat:

session.screen0.strftimeFormat: session.screen0.strftimeFormat: M m.%Y

Изменение текущей темы в файле настроек

Параметром session.styleFile задается текущая тема:

session.styleFile: /home/shurph/.fluxbox/styles/frenzy

Настраиваем кнопки управления окном

Расположение и наличие кнопок управления окном можно изменить в следующих параметрах:

session.screen0.titlebar.left: Stick
session.screen0.titlebar.right: Minimize Maximize Close

Ну а остальные моменты вы сможете реализовать и сами, прочитав предварительно man fluxbox.

Сторонние программы

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

conky

Это, наверное, наиболее популярная программа, как среди *box’еров, так и, возможно, кдешников и гномеров. Основная задача этой программы — выводить состояние вашей систему и статистику используемых ресурсов. Она рисует эти данные поверх рабочего стола, поверх обоев, получая информацию от различных bash-скриптов, которые вы можете писать самостоятельно или брать готовые из интернета. Программа достаточно гибкая и функциональная.

FbPager

Управление виртуальными рабочими столами достаточно удобное в Fluxbox’е, однако некоторым пользователям недостает какого-нибудь визуального представления «воркспэйсов». FbPager как раз и предназначена для таких пользователей.

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

После установки fbpager вам нужно будет подготовить для её работы config-файл.

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

fbpager -sr >~/.fluxbox/fbpager

idesk

Fluxbox не позволяет встроенными средствами реализовывать иконки на рабочем столе, но для этой цели существует несколько сторонних программ. Одна из них — idesk.

В качестве иконок могут быть использованы .png и .svg файлы. В .png иконках поддерживается прозрачность. Размеры иконок не ограничены.

idesk поддерживает русский язык в названиях к иконкам, однако только в UTF-8 кодировке.

adesklets

adesklets — это программа, предназначенная для отображения различных аплетов на рабочем столе. На сайте adesklets можно найти аплеты для отображения календаря, часов (цифровых и аналоговых), информации о загрузке памяти и процессора, информации о трафике, информации о используемом месте на жестких дисках. Также есть интерактивные аплеты для отображения погоды и регулирования громкости.

Заключение

Как можно заметить, Fluxbox — достаточно минималистичный оконный менеджер, но имеет в базовой поставке интересные возможности, такие как группирование окон в табы, виртуальные рабочие столы, «слит». А в сочетании со сторонними програмами может получиться очень удобная, подогнанная лично под вас, среда для повседневной работы.

Автор: Nikolay shurph Saskovets