Fluxbox поддерживает настраиваемое оформление окон, главное меню для запуска приложений и панель инструментов, на которой отображается имя рабочего стола, название активного приложения и текущее время. Из меню рабочего стола вы можете добавлять новые или удалять существующие рабочие столы. `Докер' (slit) используется как контейнер для небольших приложений (dock-apps); например, большинство утилит bbtools без проблем используют докер.
При минимизации окна Fluxbox помещает его на панель инструментов, а также в подменю `Icons' меню рабочего стола. Один щелчок мышью -- и окно снова на экране. Если дважды щелкнуть на заголовке окна, то оно будет свернуто в заголовок.
Для генерации изображений fluxbox использует свой собственный класс. Файлы стилей позволяют вам настроить вид десктопа по своему вкусу. Стили Fluxbox и Blackbox совместимы, поэтому пользователи Blackbox легко могут использовать свои любимые темы в Fluxbox.
Пока wmhints оконного менеджера KDE не поддерживаются, но Fluxbox уже подготовлен для поддержки новой спецификации оконных менеджеров, разрабатываемой для Gnome и KDE2.0.
exec fluxbox
Закрытие Fluxbox повлечет завершение сеанса X.
При запуске Fluxbox сначала ищет файл общесистемного меню /usr/share/fluxbox/menu. В этом файле вы можете задать общее меню для всех пользователей системы.
При завершении и перезапуске Fluxbox локальные настройки сохраняются в файле ~/.fluxbox/init в домашнем каталоге пользователя. Некоторые ресурсы из этого файла вы можете отредактировать вручную.
Щелчок левой кнопкой мыши на имени приложения в меню рабочего стола сделает этот рабочий стол и приложение активными; щелчок средней кнопкой мыши перенесет приложение на текущий рабочий стол.
Щелчок правой кнопкой мыши на поле имени рабочего стола вызывает меню панели инструментов. Вращение скроллера мыши на имени рабочего стола или часах переключает рабочие столы. Из меню Fluxbox такое поведение можно установить и для всего рабочего стола.
Меню панели инструментов позволяет вам переименовать текущий рабочий стол (после ввода нового названия нажмите Enter), настроить позицию панели инструментов, слой, в котором она будет находиться (см. раздел СЛОИ), а также установить автоскрытие панели (панель будет исчезать с экрана, когда курсор мыши выходит за ее пределы). В этом же меню можно установить режим панели: None -- отключить область свернутых окон, Icons -- показывать свернутые окна со всех рабочих столов, Workspace Icons -- свернутые окна текущего рабочего стола, Workspace -- все окна текущего рабочего стола, All Windows -- окна со всех рабочих столов.
Двойной щелчок по заголовку окна эквивалентен команде Shade -- окно будет свернуто в заголовок; при следующем двойном щелчке окно будет восстановлено.
session.titlebar.left: Stick session.titlebar.right: Minimize Maximize Close
Щелчок мышью на кнопке Minimize сворачивает окно. Щелчок на кнопке Close позволяет закрыть приложение. Кнопка Maximize (если присутствует) позволяет развернуть окно тремя способами: щелчок левой кнопкой мыши вызывает развертывание окна на весь экран, средней кнопкой -- только по вертикали, правой -- только по горизонтали. Действие кнопки Stick аналогично действию команды (Un)Stick window.
session.menuFile: ~/.fluxbox/menu
Чтобы изменения вступили в силу, нужно перезапустить Fluxbox. Настройте меню по своему усмотрению, а затем выполните команду 'Restart' из главного меню Fluxbox. Если вы меняли только содержание файла меню, можно просто перезагрузить настройки вызовом команды 'Reload config'.
[тэг] (надпись или имя файла) {команда или имя файла}
Допустимы следующие тэги:
[include] (~/fluxbox/stylesmenu)
добавляет файл /home/yourusername/fluxbox/stylesmenu в моё меню).
Если строка начинается с символа `#', она считается комментарием и игнорируется парсером. В полях надписей, команд или имен файлов можно использовать бэк-слеши для вставки зарезервированных символов:
[exec] (\(my cool\) \{XTERM\}) {xterm -T \"cool XTERM\"}
Вставка символа бэк-слеша осуществляется простым дублированием (`\\').
# файл меню Fluxbox [begin] (Fluxbox) [exec] (rxvt) {rxvt -ls} [exec] (netscape) {netscape -install} [exec] (The GIMP) {gimp} [exec] (XV) {xv} [exec] (Vim) {rxvt -geometry 132x60 -name VIM -e screen vim} [exec] (Mutt) {rxvt -name mutt -e mutt} [submenu] (mozilla) [exec] (browser) {mozilla -browser} [exec] (news) {mozilla -news} [exec] (mail) {mozilla -mail} [exec] (edit) {mozilla -edit} [exec] (compose) {mozilla -compose} [end] [submenu] (Startup) [exec] (gkrellm) {gkrellm -w} [exec] (xmms) {xmms -p} [exec] (galeon) {galeon -s} [exec] (kdeinit) {kdeinit} [end] [submenu] (Window Manager) [exec] (Edit Menus) {nedit ~/.fluxbox/menu} [submenu] (Style) {Which Style?} [stylesdir] (~/.fluxbox/styles) [stylesmenu] (Fluxbox Styles) {/usr/share/fluxbox/styles} [end] [config] (Config Options) [reconfig] (Reconfigure) [restart] (Restart) [end] [exit] (Log Out) [end] # конец файла менюFROM HERE ON UNREVISITED
Стандартная установка Fluxbox содержит несколько таких стилевых файлов. Обычно они расположены в каталоге /usr/share/fluxbox/styles. Изучая и изменяя эти файлы, вы поймете, как устроен механизм стилей Fluxbox. Добавив в свой файл меню команды [style], [stylesdir] или [stylesmenu], вы сможете менять текущий стиль простым выбором нужного пункта из меню.
Также можно создать в своем домашнем каталоге подкаталог ~/.fluxbox/styles и размещать там свои собственные стилевые файлы. Безусловно, вы можете выбрать любое другое имя для данного каталога, но многие темы, доступные в Интернет, помещают стили именно в подкаталог styles (согласно схеме именования, принятой на bb.themes.org).
Чтобы понять, как работает механизм стилей, вы должны уяснить, как работают X-ресурсы.
X-ресурс состоит из ключа и значения. Ключ строится из нескольких меньших ключей (т.н. "дети"), разделенных точкой (`.'). Ключи могут содержать символ звездочки (`*'), который позволяет задавать шаблоны (с данной строкой текста могут совпасть сразу несколько ключей). Это полезно в стилях, содержащих один или два цвета.
Fluxbox позволяет настроить три компонента: панель инструментов, меню и оформление окон.
Маленькое окно, которое показывает позицию при перемещении или изменении размеров окна, копирует стиль заголовка обычного окна.
Приведем несколько небольших примеров:
toolbar.clock.color: green
Эта строка устанавливает цвет часов на панели инструментов в значение 'green' (зеленый). Другой пример:
menu*color: rgb:3/4/5
Устанавливает цвет меню и всех его `детей' в значение `rgb:3/4/5' (схемы именования цветов описаны на странице руководства X(1).) Таким образом, эта же строка описывает ключи menu.title.color и menu.frame.color. Указав ключ
*font: -b&h-lucida-medium-r-normal-*-*-140-*,
вы устанавливаете шрифт сразу для всех ключей. (информацию об установленных шрифтах можно узнать при помощи утилит xfontsel(1), gtkfontsel, или xlsfonts(1).)
Одно из самых выдающихся преимуществ Fluxbox -- возможность генерировать текстуры "на лету". Текстуры задаются непосредственно в ключах, например:
toolbar.clock: Raised Gradient Diagonal Bevel1 toolbar.clock.color: rgb:8/6/4 toolbar.clock.colorTo: rgb:4/3/2
Сейчас мы подробно разберем каждый аргумент, описывающий текстуру. Описание текстуры может содержать до пяти полей:
Вместо описания текстуры можно указать значение ParentRelative, которое делает компонент полностью прозрачным.
Все градиентные текстуры генерируются на основе значений двух цветовых ресурсов color и colorTo . При использовании режима Interlaced в одноцветной текстуре ( Solid ) значение ресурса colorTo используется в качестве альтернативного цвета (этим цветом будет отображаться каждая вторая линия).
Приведем полный список компонент с указанием типов значений для них. Строки, которые начинаются с восклицательного знака -- это комментарии.
! Панель инструментов toolbar: Текстура toolbar.color: Цвет toolbar.colorTo: Цвет ! Кнопка на панели инструментов toolbar.button: Текстура или ParentRelative toolbar.button.color: Цвет toolbar.button.colorTo: Цвет ! Цвет стрелок на кнопках toolbar.button.picColor: Цвет ! Кнопка в нажатом состоянии toolbar.button.pressed: Текстура (например, Sunken) или ParentRelative toolbar.button.pressed.color: Цвет toolbar.button.pressed.colorTo: Цвет ! Цвет стрелок на кнопках в нажатом состоянии toolbar.button.pressed.picColor:Цвет ! Метка рабочего стола на панели инструментов toolbar.label: Текстура или ParentRelative toolbar.label.color: Цвет toolbar.label.colorTo: Цвет toolbar.label.textColor: Цвет ! Метка окна на панели инструментов toolbar.windowLabel: Текстура или ParentRelative toolbar.windowLabel.color: Цвет toolbar.windowLabel.colorTo: Цвет toolbar.windowLabel.textColor: Цвет ! Часы на панели инструментов toolbar.clock: Текстура или ParentRelative toolbar.clock.color: Цвет toolbar.clock.colorTo: Цвет toolbar.clock.textColor: Цвет ! Выравнивание текста на панели инструментов toolbar.justify: center, left, или right ! Шрифт, используемый во всех элементах панели инструментов toolbar.font: Шрифт (например, -*-helvetica-medium-r-normal-*-*-100-*) ! Заголовок меню menu.title: Текстура menu.title.color: Цвет menu.title.colorTo: Цвет menu.title.textColor: Цвет menu.title.font: Шрифт menu.title.justify: center, left, или right ! Фрейм меню menu.frame: Текстура menu.frame.color: Цвет menu.frame.colorTo: Цвет menu.frame.textColor: Цвет menu.frame.disableColor: Цвет menu.frame.font: Шрифт menu.frame.justify: center, left, или right ! Значки входа в подменю menu.bullet: empty, triangle, square, или diamond menu.bullet.position: right или left ! Выбранный пункт меню menu.hilite: Текстура (например, Raised) menu.hilite.color: Цвет menu.hilite.colorTo: Цвет menu.hilite.textColor: Цвет ! Активное окно window.title.focus: Текстура window.title.focus.color: Цвет window.title.focus.colorTo: Цвет ! Неактивное окно window.title.unfocus: Текстура window.title.unfocus.color: Цвет window.title.unfocus.colorTo: Цвет ! Название окна (в заголовке) window.label.focus: Текстура или ParentRelative window.label.focus.color: Цвет window.label.focus.colorTo: Цвет window.label.focus.textColor: Цвет window.label.unfocus: Текстура или ParentRelative window.label.unfocus.color: Цвет window.label.unfocus.colorTo: Цвет window.label.unfocus.textColor: Цвет ! Полоска внизу окна window.handle.focus: Текстура window.handle.focus.color: Цвет window.handle.focus.colorTo: Цвет window.handle.unfocus: Текстура window.handle.unfocus.color: Цвет window.handle.unfocus.colorTo: Цвет ! Элементы управления размером окна window.grip.focus: Текстура window.grip.focus.color: Цвет window.grip.focus.colorTo: Цвет window.grip.unfocus: Текстура window.grip.unfocus.color: Цвет window.grip.unfocus.colorTo: Цвет ! Кнопки окна window.button.focus: Текстура или ParentRelative window.button.focus.color: Цвет window.button.focus.colorTo: Цвет window.button.focus.picColor: Цвет window.button.unfocus: Текстура или ParentRelative window.button.unfocus.color: Цвет window.button.unfocus.colorTo: Цвет window.button.unfocus.picColor: Цвет window.button.pressed: Текстура (например, Sunken) window.button.pressed.color: Цвет window.button.pressed.colorTo: Цвет ! Обрамление окна window.frame.focusColor: Цвет window.frame.unfocusColor: Цвет ! Шрифт и выравнивание заголовка окна window.font: Шрифт window.justify: center, left или right ! Настройки докера slit: slit.color: Цвет slit.colorTo: Цвет ! Другие ресурсы ! вокруг любого компонента может отображаться рамка borderWidth: Число пикселей, например, 1 borderColor: Цвет bevelWidth: Число пикселей > 0 handleWidth: Число пикселей > 0 ! Ширина рамки вокруг окна. ! Если не указана, используется значение bevelWidth frameWidth: a number of pixels >= 0 ! Эта команда выполняется каждый раз при выборе данного стиля. ! Обычно используется для установки каких-нибудь красивых обоев. rootCommand: Shell command, e.g. bsetroot -mod 4 4 -fg rgb:5/6/6 -bg grey20 ! Некоторые программы из пакета bbtools используют эти устаревшие настройки menuFont: Шрифт titleFont: Шрифт
Как видите, список более чем велик. При создании собственных стилей не забывайте о такой возможности, как подстановка ресурсов, этим вы сэкономите себе и время, и количество набранных строк. Приведем небольшой пример:
*color: slategrey *colorTo: darkslategrey *unfocus.color: darkslategrey *unfocus.colorTo: black *textColor: white *unfocus.textColor: lightgrey *font: lucidasans-10
Этого вполне достаточно, чтобы почти все компоненты выглядели хорошо.
<модификатор> <клавиша> [...] :<действие>
В следующем примере Mod1 соответствует клавише 'Alt' на клавиатурах PC, а Mod4 -- одной из трех дополнительных клавиш на pc104 с логотипом известной мелкомягкой корпорации.
# Файл сочетаний клавиш Fluxbox. # Строка, которая начинается с # есть комментарий. Mod1 Tab :NextWindow Mod1 F1 :Workspace1 Mod1 F2 :Workspace2 Mod1 F3 :Workspace3 Mod1 F4 :Workspace4 Mod1 F5 :Workspace5 Mod1 F6 :Workspace6 Mod1 F7 :Workspace7 Mod1 F8 :Workspace8 Mod1 F9 :Workspace9 Mod1 F10 :Workspace10 Mod1 F11 :Workspace11 Mod1 F12 :Workspace12 Mod4 b :PrevWorkspace Mod4 c :Minimize Mod4 r :ExecCommand rxvt Mod4 v :NextWorkspace Mod4 x :Close Mod4 m :RootMenu Control n Mod1 n :NextTab
В последней строке вы видите цепочку сочетаний клавиш; подобные цепочки используются в Emacs. Приведем список возможных действий:
Minimize Raise Lower RaiseLayer LowerLayer TopLayer BottomLayer AlwaysOnTop (это алиас для TopLayer) AlwaysOnBottom (аналогично) Close Quit RootMenu Workspace N (N -- положительное целое число) Workspace1 Workspace2 Workspace3 Workspace4 Workspace5 Workspace6 Workspace7 Workspace8 Workspace9 Workspace10 Workspace11 Workspace12 NextWorkspace PrevWorkspace LeftWorkspace RightWorkspace KillWindow NextWindow PrevWindow NextTab PrevTab ShadeWindow MaximizeWindow StickWindow ExecCommand MaximizeVertical MaximizeHorizontal NudgeRight NudgeLeft NudgeUp NudgeDown BigNudgeRight BigNudgeLeft BigNudgeUp BigNudgeDown HorizontalIncrement VerticalIncrement HorizontalDecrement VerticalDecrement ToggleDecor
<app1> <app2> <app3> ... <appN>
где каждый из элементов может быть определен при помощи следующей команды:
xprop WM_CLASS
Просто запустите эту команду в терминале и кликните мышкой по окну нужного приложения. Элементом будет появившееся в консоли название. Каждая строка файла групп формирует отдельную группу, например:
Navigator nedit xterm
Этот пример создает две группы: одну для netscape и nedit, и вторую для xterm. Новое окно будет группироваться к другим окнам только на текущем рабочем столе к последнему активному окну.
Большинство док-приложений для запуска в докере должны быть запущены с ключом -w. Например, вы можете добавить в ~/.xinitrc следующие строки:
bbmail -w & bbpager -w & exec fluxbox
Естественно, докер доступен только тогда, когда Fluxbox скомпилирован с поддержкой докера.
Простая процедура получения нужной последовательности такова:
1) Запускаем Fluxbox без запущенных док-приложений. 2) По очереди запускаем док-приложения в нужном порядке. 3) Добавляем эти док-приложения в загрузочный скрипт (например, .xinitrc или .xsession). Здесь порядок указания уже не играет роли!
Полученная последовательность по умолчанию будет сохранена в файл ~/.fluxbox/slitlist и будет использоваться в последующих сеансах работы Fluxbox.
Файл slitlist можно модифицировать вручную. Это просто список названий окон, по приложению на строчку. Аналогично файлу init, файл slitlist нужно редактировать при незапущенном Fluxbox; иначе изменения будут переписаны менеджером.
Файл списка док-приложений может располагаться в любом каталоге и иметь произвольное имя. Для этого нужно отредактировать файл init так, как показано в следующем примере:
session.slitlistFile: /home/me/etc/slitsort
session.menuFile: /home/myself/.fluxbox/menu
session.keyFile: /home/myself/.fluxbox/keys
session.styleFile: /usr/share/fluxbox/styles/Flux
session.groupFile: /home/myself/.fluxbox/groups
session.slitlistFile: /home/myself/.fluxbox/slitlist
При запуске Fluxbox на системе с несколькими десктопами ключ screen0 может быть заменен на screen1, 2 и т.д., соответственно имеющимся десктопам. Это позволяет настроить каждый десктоп по отдельности. Автор данной страницы, владеющий картой Matrox G450 с двумя выходами, предпочитает следующую конфигурацию: screen0 -- докер и панель инструментов автоматически убираются с экрана (установлено автоскрытие), screen1 -- докер и панель всегда на экране и всегда на верху (установлен параметр OnTop), в часах установлен расширенный формат времени.
session.screen0.toolbar.onTop: False session.screen0.toolbar.autoHide: True session.screen0.toolbar.placement: BottomCenter session.screen0.toolbar.widthPercent: 42 session.screen0.slit.onTop: False session.screen0.slit.autoHide: True session.screen0.slit.placement: TopLeft session.screen0.slit.direction: Vertical session.screen0.strftimeFormat: %I:%M %p session.screen1.toolbar.onTop: True session.screen1.toolbar.autoHide: False session.screen1.toolbar.placement: BottomCenter session.screen1.toolbar.widthPercent: 69 session.screen1.slit.onTop: True session.screen1.slit.autoHide: False session.screen1.slit.placement: CenterRight session.screen1.slit.direction: Vertical session.screen1.strftimeFormat: %a %d %R [%s]
Таким образом, рабочие приложения максимально используют свободное пространство экрана на screen0, а на screen1 можно посмотреть время или запустить докапы.
[app] (kate) [Dimensions] {1022 747} [Position] {0 0} [Close] {yes} [end] [app] (konqueror) [Workspace] {1} [Dimensions] {1006 749} [Position] {16 0} [Jump] {yes} [end] [app] (xterm) [Deco] {NONE} [end]
Параметры в этом файле чувствительны к смене регистра. Имя приложения берется по первому атрибуту WM_CLASS. Чтобы получить это значение, запустите программу xprop и щелкните на нужном окне. Параметры приложений не влияют на временные окна.
Blackbox был написан Брэдом Хьюисом (Brad Hughes, blackbox@alug.org) и Джефом Рэйвеном (Jeff Raven, jraven@psu.edu), сопровождался ими же. Fluxbox был написан и сопровождался Хенриком Киннаненом (Henrik Kinnunen, fluxgen@linuxmail.org), много людей со всего мира помогали ему в этой работе.
Официальный сайт Fluxbox:
http://fluxbox.org/
Много совместимых тем можно найти здесь:
http://themes.freshmeat.net/
Эта страница была собрана Мэттью Хокинсом (Matthew Hawkins, matt@mh.dropbear.id.au) из страницы руководства Blackbox, написанного Вилбертом Берендсеном (Wilbert Berendsen, wbsoft@xs4all.nl), после чего эта страница была значительно переработана Тобиасом Клаусманом (Tobias Klausmann, klausman@users.sourceforge.net). Данный перевод осуществлен Андреем Балагутой (uj2@mail.ru).
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |