Using catalogs: /etc/sgml/sgml-docbook.cat Using stylesheet: /usr/share/sgml/docbook/utils-0.6.6/docbook-utils.dsl#html Working on: /usr/src/other/fluxdocs.ru/sgml/main.sgml Документация Fluxbox

Документация Fluxbox

Roman Bogorodskiy
Russian translation

Engelbert Gruber
Current Editor

Tobias Klausmann
Previous Editor


Содержание
1. Введение
1.1. Об этой документации
1.2. О Fluxbox
1.2.1. Что такое Fluxbox
1.2.2. Возможности
1.2.3. Где достать Fluxbox
1.2.4. Вопросы и поддержка
2. Начинаем
2.1. Установка Fluxbox
2.1.1. Получение исходных кодов
2.1.2. Распаковка и компиляция
2.1.3. Запуск Fluxbox
2.1.4. Odds and ends
3. Инструменты
3.1. Введение
3.2. fbrun
3.3. fluxbox-generate_menu
4. Закладки
4.1. Введение в закладки
4.2. Расширенное использование закладок
4.2.1. Sloppy Window Grouping
4.2.2. Закладки для окон определённого класса
4.2.3. Общее отключение закладок
4.2.4. Расположение закладок
4.2.5. Автогруппирование(Автогруппировка?)
4.2.6. Закладки в темах
5. Клавиатурные сочитания
5.1. Keygrabber
5.2. Имена клавиш
5.3. Действия
6. Desktop Backgrounds
7. Слит
8. Редактирование Меню
8.1. Установка местоположения файла меню
8.2. Доступные комманды
9. Темы
9.1. Основная информация о темах
9.2. Расширенное редактирование тем
A. Настройка .xinitrc/.xsession
B. Часто задаваемые вопросы (FAQ)
C. Theme Reference
C.1. Theme directives
D. Artwiz шрифты для Fluxbox
E. Отладка
Список таблиц
5-1. Навигация
5-2. Операции с окнами
5-3. Изменение размера окон
5-4. Перемещение окон
5-5. Остальное
9-1. Директивы текстур
C-1. Стили панели задач
C-2. Стили меню
C-3. Стили окон
C-4. Handlebar styles
C-5. Resize grip styles
C-6. Window button styles
C-7. Window frame styles
C-8. Стиль закладок
C-9. Font on window label styles
C-10. Miscellaneous styles
Список примеров
4-1. файл groups
5-1. Файл ключей Fluxbox
5-2. Клавиатурные сочитания для XMMS
5-3. Мультимедиа клавиши для XMMS
5-4. вывод xev при нажатии клавиши "Правая стрелка"
7-1. Изменение пути к списку апплетов
8-1. Установка расположения файла меню
9-1. Стиль часов панели задач
9-2. Стиль меню
9-3. Шрифт стиля
9-4. Стиль текстур
9-5. Типичный маленький стиль
A-1. Пример файла.xinitrc
B-1. Измененные закладки в файле стиля
D-1. fonts.dir

Глава 1. Введение

1.1. Об этой документации

Перед вами новая документация по оконному менеджеру Fluxbox для X11. Она была создана из старой документации (в формате HTML) с целью упрощения её конвертации в различные форматы. Исходники написаны на DocBook 4.1 - формате, специально предназначенном для документации.

В работе над документацией Fluxbox участвовало большое количество людей; большая часть документация основана на работе Рэндо Кристенсена (Rando Christensen, ) и дополнена и некоторыми другими людьми. Если вы не видите себя в списке, уведомите об этом

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

ЗамечаниеДополнения и перевод
 

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

Документация доступна на сайте Fluxbox в виде исходных текстов, а также сконвертированная в различные форматы, такие как HTML и PostScript. Если вы хотите использовать другой DTD или другой выходной формат, то исходники всегда к вашим услугам, но вам скорее всего потребуется некоторый опыт работы с DocBook, чтобы изменить DTD. Если вы хотите сконвертировать исходные тексты документации в формат, отсутствующий на сайте Fluxbox, вам понадобится пакет docbook2x


1.2. О Fluxbox

1.2.1. Что такое Fluxbox

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

Тогда какая разница между Fluxbox и Blackbox, спросите вы? Ответ: разница ОГРОМНАЯ! Вот список возможностей которые уже есть или скоро появятся во Fluxbox...


1.2.2. Возможности

Реализованные:

  • настраиваемые оконные закладки.

  • поддержка сглаживания текста (Xft)

  • поддержка UTF-8

  • панель инструментов (для свернутых окон)

  • автогруппирование окон/закладок

  • смена рабочего стола прокручиванием колеса мыши

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

  • поддержка KDE и Gnome (включая Gnome 2)

  • поддержка Extended Window Manager Hints (ewmh)

  • встроенный интегрированный перехватчик нажатий клавиш (поддерживает emacs-подобные сочетания)

  • возможность распахивать окна поверх слита

  • настройка порядка следования апплетов в слите

Планируемые:

  • менеджер сессий

  • "прилипающие" окна

  • настраиваемая панель задач

  • и некоторые другие возможности

Помимо этого, было сделано много изменений и улучшений.


1.2.3. Где достать Fluxbox

Исходники Fluxbox можно скачать с главного сайта Fluxbox, http://fluxbox.sourceforge.net/. Большинство дистрибутивов Linux и других бесплатных Unix'ов включают исходные коды и бинарные пакеты Fluxbox. Если возникают сомнения, используйте последние пакеты из дистрибутива.


1.2.4. Вопросы и поддержка

Несмотря на то, что Fluxbox прост в использовании и настройке, вопросы все равно появляются. Множество из них было задано раньше. Перед тем как спрашивать в рассылке и на канале IRC Fluxbox, пожалуйста, прочтите FAQ (Прил. B).


Глава 2. Начинаем

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

Эта часть была написана Jason Gillman Jr. aka "Ircaddict".

В состав многих дистрибутивов входят бинарные пакеты Fluxbox (или в случае Gentoo и FreeBSD, порты/ebuild'ы) которые делают установку Fluxbox предельно простой. Но существуют причины собирать Fluxbox самому. Например, может не оказаться пакета для вашего дистрибутива с наиболее свежей версией Fluxbox. Или вам нужно собрать Fluxbox с определенными флагами компилятора. Если вы хотите использовать дистрибутивную версию, читайте документацию, идущую с дистрибутивом. Для некоторых дистрибутивов с сайта Fluxbox можно скачать как бинарные пакеты, так и пакеты с исходными кодами.

Цель данного документа - помочь новичкам в X11 (или в Linux в общем) собрать и установить оконный менеджер Fluxbox.


2.1.1. Получение исходных кодов

Первое что вы должны сделать - перейти на страницу загрузки и скачать архив с исходными кодами (расширение .tar.gz).

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


2.1.2. Распаковка и компиляция

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

    $ tar xzvf fluxbox-0.1.12.tar.gz

Вы увидите список распакованных файлов. После того, как вы сделаете это, перейдите в только что созданную директорию (это будет что-нибудь вроде fluxbox-0.1.12/, но это зависит от версии). Наш следующий шаг - конфигурация и сборка Fluxbox. С помощью configure вы можете включать и отключать некоторые возможности. Для большинства людей подходят стандартные настройки. если вы хотите видеть в слите Fluxbox иконки панели КДЕ, вам следует добавить опцию --enable-kde. Чтобы получить полный список опций, используйте опцию --help. Если вы не хотите включать поддержку КДЕ, наберите:

    $ ./configure
    $ make

После того, как Fluxbox скомпилирован, станьте root'ом и выполните:

    # make install

Поздравляем, тепрь у вас есть собранный и установленный Fluxbox.


2.1.3. Запуск Fluxbox

Все хорошо установилось, но какой от него прок, если мы не может его запустить?

Существует два различных способа запуска X11 (таким образом и Fluxbox). Традиционный метод - использование команды startx. Другой способ - использовать графический login manager (называемый также "display manager"). Наиболее общий display manager это xdm, который является частью дистрибутива XFree86. Display manager Gnome'a называется gdm, а KDE - kdm .

Если X11 запущен с помощью startx), нас интересует файл ~/.xinitrc. В случае использования display manager'а, нас интересует ~/.xsession.

Следующий шаг - найти запускаемый файл Fluxbox. В большинстве случаев он находится в /usr/local/bin/fluxbox. Сейчас вам нужно отредактировать один из двух файлов, о которых мы говорили выше, добавив в его конец следующую строку:

   exec /usr/local/bin/fluxbox

Измените /usr/local/bin/fluxbox на реальное местоположение запускаемого фала Fluxbox. В дааном случае используется путь по умолчанию при установке из исходников. Теперь сохраните изменения и закройте редактор, в котором вы редактировали данный файл. Если вы используете startx, выполните следующую команду:

   $ chmod 700 .xinitrc

В случае .xsession это не нужно. Но в любом случае, вам нужно создать директорию, в которой Fluxbox хранит свои файлы конфигурации:

   $ mkdir .fluxbox

Если вы не сделаете этого, то когда выйдите из Fluxbox и перезапустите его, все настройки будут потеряны. (к сожалению, эта директория не создается автоматически).


2.1.4. Odds and ends

Если вам нужна помощь, просто зайдите на форум FLuxbox и задайте там свой вопрос, я уверен, что кто-нибуть будет рад на него ответить. Также вы можете задавать свои вопросы в рассылке пользователей Fluxbox. Ссылка на лист может быть найдена на сайте Fluxbox. И последнее замечанее: я рекомендую скопировать файлы init, menu, и titlebar из директории /usr/local/share/fluxbox в ~/.fluxbox/.


Глава 3. Инструменты

3.1. Введение

Fluxbox поставляется с набором инструментов, которые помогу сделать вашу жизнь немного легче и предоставляют дополнительные возможности. По умолчанию, они устанавлюваются туда же, куда устанавливается бинарник fluxbox, то есть /usr/local/bin, если вы не меняли префикс в процессе конфигурации. Большинство дистрибутивов используют другое местоположение, так что если вы установили fluxbox из пакетов, скорее всего вы найдёте бинарники в /usr/bin.


3.2. fbrun

fbrun в основном эквавалентен диалогу "Run..." в других оконных менеджерах. Это значит что с помощью неё удобно запускать программы, которых нет в меню или для которых нужны дополнительные параметры.

Another way fbrun can be useful is to be called from the menu with a preloaded command line that you can edit and then execute. An example might be sshing to a very long host name with lots of options of which one changes all the time. In this case, you could add an entry for fbrun to your menu that contains all the options and the host name. When you use said entry, you could edit the line as necessary and execute it.

fbrun имеет различные опции:

   -font [font name]           Шрифт 
   -title [title name]         Заголовок
   -text [text]                Текст
   -w [width]                  Ширина окна в пикселах
   -h [height]                 Высота окна в пикселах
   -display [display string]   Display name
   -pos [x] [y]                Позиция ока в пикселах
   -fg [color name]            Цвет текста
   -bg [color name]            Цвет фона
   -a                          Antialias
   -hf [history file]          Файл истории (по умолчанию ~/.fluxbox/history)
   -help                       Показать справку

Большинство из этих опций понятны без дополнительных объяснений, за исключением разве что опций -text и -hf. Первая используется для того, чтобы загрузить текст в окно fbrun. Если вы хотите использовать несколько аргументов (например ssh -X -f), не забудте взять их в двойные кавычки:

	fbrun -text "ssh -X -f"

Опция -hf назначает файл истории, в коротом fbrun хранит список своих комманд (также как делает bash). В общем случае эту опцию указывать не нужно, тогда будет использоваться файл истории по умолчанию. Использование этой опции может быть разумно, когда у вас в меню есть несколько записей fbrun и вы хотите чтобы они сохраняли историю в разные файлы.


3.3. fluxbox-generate_menu

FIXME: This section has to be written.


Глава 4. Закладки

4.1. Введение в закладки

Закладки Fluxbox - новая идея. Воплощение во многом похоже на то, как это сделано в оконном менеджере PWM. Как это работает: несколько окон группируются вместе, у них одинаковый размер, общее рамположение, и перемещение одного из этих окон вызывает перемещение остальных. Хорошая аналогия - стопка бумаги. Закладки - это как эти маленькие пластиковые закладки для будмаги, благодаря которым вы можете быстро и легко выбрать нужный вам лист из стопки бумаг.

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

Основы закладок

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

Чтобы удалить закладку, нажмите на ней третьей кнопкой мыши и переместите окно.


4.2. Расширенное использование закладок

4.2.1. Sloppy Window Grouping

"Мне неудобно перемещать одну маленькую закладку на другую маленькую закладку. "

В меню конфигурации Fluxbox выберете опцию 'Sloppy Window Grouping'. Это позволит вам перемещать ваше окно в любое место другого окна, для того, чтобы окна сгруппировались.


4.2.2. Закладки для окон определённого класса

"Всё это хорошо, но я хочу использовать закладки только для программы X!"

Существует для метода решения данной проблемы, в зависимости от того, для какого количества программ вы хотите использовать закладки.Вы можете вкючить или выключить закладки для определённого окна (нажмите правой кнопкой мыши на заголовке онка, выберите опцию 'tab'), или вы можете выключить их вообще, использую пункт меню 'Configuration'->'Use Tabs'. После того, как вы выключите закладки, вы можете их включить для отдельных окон, как написано выше.


4.2.3. Общее отключение закладок

"Мне не нравятся закладки. Могу ли я их отключить?"

Конечно. Выберете пукт 'Use Tabs' в меню 'Configuration'. Повтороный выбор этого пункта меню опять включит закладки. Это также можно продлать, отредактировав файл конфигурации init:

    session.tabs:   true

Отключить закладки можно заменив true на false.


4.2.4. Расположение закладок

В меню 'Configuration' есть опция 'Tab Placement'. Оно определет место, где будут расположены закладки. Стоит объяснит смысл опции 'Relative'. Если эта опция включена, общая длина всех закладок равна длине окна. То есть, если закладка одна, её длина совпадает с длиной окна, если закладки две, то длина каждой из них равна половине длины окна. XXX . This option often makes the tabs look unobtrusive and is very popular.


4.2.5. Автогруппирование(Автогруппировка?)

Иногда требуется чтобы приложения автоматически сгруппировывались сразу после запуска. Это называется "Автогруппирование(?)". В этой части документации описано как это работает. Прежде всего вам нужен Fluxbox версии v0.1.11 или выше. Автогруппирование(?) не работает в старых версиях. Затем нужно создать файл ~/.fluxbox/groups, если его её нет. После этого понадобиться отредактировать ~/.fluxbox/init, добавив такую строку (или указать правильный путь к файлу):

         session.groupFile:		~/.fluxbox/groups

Отлично, теперь всё на месте. Теперь вам нужно просто заполнить файл groups.

Формат файла групп

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

Пример 4-1. файл groups

    Navigator nedit
    xterm

Это создаст две группы, в одной будут netscape и nedit, а в другой - xterm. The new window will only group itself to other windows on the same workspace and to the last window that was focused. Чтобы получить имя, которое надо занести в файл групп, наберите:

    xprop |awk '/WM_CLASS/{print $4}'

и кликните на окне. Если ничего не показывает, замените $4 на $3.

Autogrouping from Tabs

This will allow you to popup the root menu, if you right click on the tab and select an application it'll start grouped to the tab.

Замечание

Grouping this way (from tabs) might interfere with normal autogrouping in a bad way.


4.2.6. Закладки в темах

Существует отдельная глава, посвященная закладкам в темах - (Гл. 9). Прочитайте её, если хотите изменить вид закладок в вашей теме. (Закладки в темах по умолчанию выглядят как заголовки окон; иногда люди хотят изменить это.)


Глава 5. Клавиатурные сочитания

5.1. Keygrabber

Работа keygrabber'a очень похожа на работу bbkeys, который является отличным инструментом, но имеет некоторые ограничения (и не совместим по лицензии), но с совершенно новым синтаксисом конфигурационного файла и больши количеством новых возможностей, которые делают Fluxbox ещё мощьнее.

Новый keygrabber поддерживает последовательности ключей (как emacs)... то есть у вас может быть: Mod1 + M + Mod1 + F чтобы переключиться на следующий рабочий стол.

Если вы набрали часть последдовательности, а потом решили прервать, вы можете выбрать другую последовательность (настроенную в файле ключей) чтобы отсенить (с помощбью AbortChain).

В дополнение, вы можете исползовать последовательность для перекючения между окнами в группе (с помощью: NextTab и PrevTab).

Для вашего удобства мы (vlaad и tarzeau) написали для вас два скрипта (оба с один и тем же назначением), чтобы конвертировать файл настроек bbkeys в формат Fluxbox keys-file (использование скриптов описано в них самих). Загрузка: convertkeys or convertkeys2.

Пример 5-1. Файл ключей Fluxbox

    Mod1 Tab :NextWindow
    Mod1 F1 :Workspace1
    Mod1 F2 :Workspace2
    Mod1 F3 :Workspace3
    Mod1 F4 :Workspace4
    Control n Mod1 n :NextTab

Как вы видите, первым идёт модификатор, а потом ключ (потом может быть ещё один модификатор и клю если вы хотите использовать более длинную последовательность), и в последней колонке - действие.

Список доступных действий вы можете найти ниже в этом документе.

Почему это хорошо для вас? Ну, сейчас вы можете управлять xmms, например:

Пример 5-2. Клавиатурные сочитания для XMMS

    Mod1 P :ExecCommand xmms -p
    Mod1 F :ExecCommand xmms -f

Если у вас есть дополнительные клавиши (например мультимедиа клавиши) и вы хотите с их помощью управлять xmms и вы их правильно настроили в XFree86, можете поступить таким образом:

Пример 5-3. Мультимедиа клавиши для XMMS

    None XF86AudioPlay :ExecCommand xmms -u
    None XF86AudioStop :ExecCommand xmms -s

Для дополгительной информации по xmms почитайте вывод комманды xmms --help


5.2. Имена клавиш

Возможно вы спросите как находить имена клавиш. Запустите xev, переместите курсор мыши в область только что созданного окна и нажмите клавишу. Вот что произойдёт, сли вы нажмёте клавишу "Правая стрелка":

Пример 5-4. вывод xev при нажатии клавиши "Правая стрелка"

    KeyPress event, serial 18, synthetic NO, window 0x2c00001,
    root 0x60, subw 0x0, time 3745737930, (373,380), root:(504,526),
    state 0x10, keycode 102 (keysym 0xff53, Right), same_screen YES,
    XLookupString gives 0 characters:  ""

Нас интересует имя клавиши, которое находится в скодбках вместе с keysym. В нашем случае мы получили (keysym 0xff53, Right). То есть, имя клавиши - Right.

Special Keys

Существует несколько специальных клавиш. Заметьте, что он будут показаны xev сразу после того, как вы их нажмёте (не как модификаторы к другим клавишам).

КлавишаИмя в X11
Control, StrgControl
AltMod1
Super, Meta, Win* KeysMod4


5.3. Действия

Вот список действий поддерживаемых Fluxbox. В них есть всё необходимое. Заметьте, что в файле keys последний символ перед действием должен быть :.

Названия действий чувствительны к регистру букв.

Таблица 5-1. Навигация

ДействиеРезультат
WorkspaceПерейти на какой-либо рабочий стол. Используйте :Workspace 1, :Workspace 2, и так далее.
WorkspaceNNСохранено для совместимости, скоро будет удалено. Пример :Workspace1.
NextTabПерейти на следуюшую закладку в текущей группе.
PrevTabПерейти на предыдушую закладку в текущей группе.
NextWindow NПерейти к следующему окну. Смотрите Note 1.
PrevWindow NПерейти к предыдущему окну. Опять смотрите Note 1.
NextWorkspaceПерейти к следующему рабочему столу.
PrevWorkspaceПерейти к предыдущему рабочемустолу.
NextGroup, PrevGroup Перейти к слудующей/предыдущей группе окон.
LeftWorkspaceАналогично PrevWorkspace.
RightWorkspaceАналогично NextWorkspace.

Замечание1. NextWindow / PrevWindow
 

The NextWindow/PrevWindow has a numerical argument, which is a bit too complicated to be explained inside that table above. Here's how it works.

The integer parameter that specifies the options picked from the table below and then ORed:

Bit valueOption
1Skip lower tabs (treat tab groups as one window.)
2Skip stuck windows.
4Skip shaded windows.

Sum the values of the options you'd like. The result is the parameter for NextWindow/PrevWindow. Or you can just pick the value from this table:

ParamOptions
0No skipping.
1Skip lower tabs.
2Skip stuck windows.
3Skip lower tabs/stuck windows.
4Skip shaded windows.
5Skip lower tabs/shaded windows.
6Skip stuck windows/shaded windows.
7Skip lower tabs/stuck windows/shaded windows.

Таблица 5-2. Операции с окнами

ДействиеРезультат
CloseЗакрыть окно.
KillWindowАналогично убиванию окна с помошью xkill.
MinimizeAlso known as "iconify". Make the window iconified.
ShadeWindowPut window in the 'shaded' state, or restore from the 'shaded' state.
StickWindowToggle a Window's 'sticky' state.
ToggleDecorToggle whether or not current window has a border, buttons, and titlebar.
RaiseBring the window to the 'Top', it will appear 'Above' windows that it overlaps.
LowerOpposite of Raise.
NextTab, PrevTabActivate next, prev tab.
MoveTabLeft, MoveTabRightMove activate tab by the n tabs left/right.
DetachClient Take client out of tab-group.

Таблица 5-3. Изменение размера окон

ДействиеРезультат
HorizontalIncrementДелает окно шире (Смотрите Note 2).
HorizontalDecrementПротивоположно HorizontalIncrement
VerticalIncrementУвеличить высоту окна. (Смотрите Note 2).
VerticalDecrementУменьшить высоту окна.
MaximizeHorizontalМаксимизировать окно горизонтально.
MaximizeVerticalМаксимизировать окно вертикально.
MaximizeWindowМаксимизировать окно.
ResizeResize the active window by the specified delta, e.g. resize -8 -8.
ResizeHorizontalResize only horizontal.
ResizeVerticalResize only vertical.
ArrangeWindowsTile Windows magically.

Замечание2. HorizontalIncrement / HorizontalDecrement / VerticalIncrement / VerticalDecrement
 

It says "one unit" when describing the resizing. This in particular is in regard to xterm/aterm/Eterm in that instead of resizing by one pixel, they will add another character-width worth of space.

Other programs should just resize by one pixel.

Таблица 5-4. Перемещение окон

ДействиеРезультат
SendToWorkspaceПереместить текущее окно на обозначенный рабочий стол. Пример: :SendToWorkspace 1
Moveпереместить на delta-x delta-y.
MoveLeftДогадайтесь.
MoveRightДогадайтесь.
MoveUpДогадайтесь.
MoveDownДогадайтесь.

Таблица 5-5. Остальное

ДействиеРезультат
AbortKeychainIn Multi-binding keychains, cancel the keybinding.
ExecCommandВыполнить комманду. Пример :ExecCommand xmms -t.
RootMenuПоказать основное меню.
WorkSpaceMenuПоказать меню рабочего стола.
RestartПерезапустить fluxbox.
ReconfigureПереконфигурировать fluxbox, перечитать конфигурацию. Например, если был изменён файл keys, но init и slitlist могут быть записаны перед чтением.
SetStyleЗагрузить обозначенный файл.
SetWorkspaceName.
SaveRCСохранить файл ресурсов.
ShowDesktop N.
QuitВыйти из fluxbox.

Глава 6. Desktop Backgrounds

Fluxbox, like Blackbox, just has two wrapper utilities for this - In fact, they have the same names the as they do in Blackbox: bsetroot and bsetbg. Let's see how they work.

bsetroot

bsetroot is about the equivalent of xsetroot. It can set backgrounds as long as they're simple, like a solid color. bsetroot can also set gradients.

bsetbg

bsetbg is a higher-level program, sort of. It's actually a wrapper to other utilities that can set backgrounds, such as wmsetbg, Esetroot, the display program from ImageMagick, etc. When it's first run, it will create a ~/.fluxbox/bsetbg config file, which will set up which programs it can use. You can edit this at any time to select which to use. In order to use 'transparent' applications, such as xchat and Eterm with transparency, you should use either wmsetbg or Esetroot.

Overriding theme backgrounds

One of the shortcomings that Blackbox has is that the background is totally dependent on the theme. Whenever you change your theme, you have whatever background the theme author thought was right. A lot of people don't like this behavior. Well, Fluxbox has a way to fix that. Add a line like this to your ~/.fluxbox/init file:

        session.screen0.rootCommand: bsetbg -f ~/backgrounds/zimdib_dark.png

And whatever you have put there, will be your background, no matter what your theme's author has to say about it.


Глава 7. Слит

наиболее часто задаваемый вопрос - "Что такое слит?". Не сомтря на то, что этот документ был написан, я всё равно сдалал этот вопрос первым в FAQ, чтобы этот вопрос перестали задавать по десять раз на день на канале #fluxbox, а также чтобы развеять предположение о том, что слин - это другое название панели задач.

Слит - это одна из многих частей Fluxbox, взятая из Blackbox. Он создан для того, чтобы помешать в себе докаппы WindowMaker (и всего, что запускается в режиме, называемом 'withdrawn' или (реже) 'swallowed'). Такие приложения обычно имеют опцию -w, а некоторые автоматически запускаются в таком режиме.

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

Вы можете запустить любой докапп. Например, для xmms есть докапп wmxmms. Пртсто запустите wmxmms &, и он появится в слите. Некоторым приложениям (например gkrellm) нужна опция -w для того чтобы появиться в слите.

Гдя я могу достать докаппы?

Для начала зайдите на the Dockapp warehouse. Это очень большой репозитарий различных докапов. Можете поискать на Freshmeat, а также посмотрите в своём дистрибутиве.

На странице bbtools сожержится много утилит для Blackbox/Fluxbox, которые могут работать в слите.

Если включена поддержка KDE, апплеты KDE тоже появятся в слите.

Dockapps.Org - новый сайт, посвященный апплетам.

Могу ли я изменить поведение слита?

Конечно. Просто кликните правой кнопокой мыши на видимой части слита и выберите опцию. Многие из этих опция аналогичны опциям панели задач. Единственное отличие - Direction. Ваш слит может быть расположен как горизонтально - Horizontal, так и вертикально - Vertical.

В меню настроек есть опция Maximize Over Slit; она позволяет максимизировать окна над слитом.

Я хочу чтобы мои апплеты были расположены в слите в определённом порядке!

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

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

Простая процедура заставить последовательность апплетов распологаться в определённом порядке:

Расположение апплетов

  1. Запустите Fluxbox без апплетов.

  2. Запустите апплеты в нужном порядке.

  3. Добавьте их в скрипт .xinitrc или .xsession. Очерёдность значения не имеет.

Последовательность сохранена в ~/.fluxbox/slitlist и будет восстановлены при следующем запуске Fluxbox.

Вы можете редактировать файл slitlist самостоятельно. Это простой список, содержащий имена апплетов, по одному на каждой строке. Файл должен редактироваться когда Fluxbox не запущен, иначе изменения перезапишутся.

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

Пример 7-1. Изменение пути к списку апплетов

    session.slitlistFile: /home/me/etc/slitsort

Заметьте, что не существует опции отключения упорядочивания апплетов в слите.


Глава 8. Редактирование Меню

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

Во-первых, с Fluxbox поставляется отличная утилита, называемая fluxbox-generate_menu. Она пытается найти популярные прогаммы, такие как браузеры и эмуляторы терминалов и добавить их в файл меню. fluxbox-generate_menu подробно описан в Разд. 3.3.


8.1. Установка местоположения файла меню

По умолчанию Fluxbox хранит меню в файле ~/.fluxbox/menu. Это может быть изменено в файлеinit. Вот пример:

Пример 8-1. Установка расположения файла меню

    session.menuFile:       ~/.fluxbox/menu

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


8.2. Доступные комманды

Меню Fluxbox - это простой текстовый файл, позоляющий вам делать подменю, запускать приложения, управлять рабочими столами, настраивать Fluxbox и выходить из Fluxbox, and exit X. Меню допускает следующие комманды:

    [begin] (Заголовок меню)
    [submenu]  (Имя подменю) {заголовок подменю}
    [exec] (название приложения) {/path/to/program}
    [include] (/path/to/menufile)
    [end]
    [nop] (--------)
    [workspaces] (Имя подменю)
    [stylesdir] (/path/to/stylesdir)
    [config] (Настройка Fluxbox)
    [reconfigure] (Переконфигурировать)
    [restart] (Перезапуск)
    [exit] (Выход)

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

[nop] - Позволяет вставить пустую строку, используемую как разделитель.

[reconfigure] - Если вы используете меню для изменения настроек Fluxbox, они будут потеряны после выхода их Fluxbox. Они должны быть зарисаны в файл init, что может быть сделано, выбрав данный пункт меню после изменения настроек.

[restart] - Я просто хочу быть уверенным, что все знают, что эта комманда перезапускает только Fluxbox, а не всю систему.

И, если вам что-то непонятно, вместе с Fluxbox поставляется пример файла menu, обратитесь к нему.


Глава 9. Темы

9.1. Основная информация о темах

Эта часть добавлена Justin Rebelo aka "demerol".

Что такое стиль и как он работает?

Стиль - это тема для Fluxbox. Это простой ASCII текстовый файл, которые указывает Fluxbox как должны выглядеть его различные компоненты. Стили обычно находятся в директории ~/.fluxbox/styles и в общей директории Fluxbox, расположение которой зависит от метода установки.

Как мне сделать собственную тему?

Для начала откройте стиль в вашем любимом тесктовом редакторе (Я рекомендую vim). Посмотрите на стиль, на то, как он структурирован и организован. Это ответит на большинство ваших вопросов.

Структура стиля

Стиль состоит из нескольких основных компонентов, каджый из которых имеет свои поддирективы(?). toolbar, menu и window - основные компоненты. Директивы window.* контролируют внешний вид рамок окон, window.tab.* - закладок. menu.* контролирует вид меню, которое вы можете увидеть, нажав правой кнопкой мыши в области рабочего стола. toolbar.* - это панель, которую вы можете видеть сверху или снизу вашего экрана. Слит также контролируется директивой toolbar, если вы специально не описываете его стиль.

Как мне изменить вид слита?

Обычно слит использует те же параметры, что и пенель задач. В большинстве случаев это должно работать хорошо. Если вы хотите изменить стиль слита, у вас в распоряжении есть слудующие 3 директивы:

    slit: [текстура]
    slit.color: [цвет]
    slit.colorTo: [цвет]

Эти комманды аналогичны коммандам для меню, окон и т.д.

Кака я могу изменить изображение/цвет рабочего стола?

В стиле вы найдёте строку rootCommand в начале, после неё слудует комманда (наверно bsetbg) для изменения изображения/цвета рабочего стола. Вы можете использовать другую rootCommand нежли bsetbg, но я не советую вам делать этого. bsetbg - это, фактически, оболочка для других комманд установки фона рабочего стола. Вы только назначаете нужную вам программу (например, Esetroot и т.д.), и она будет во всех темах, где используется bsetbg.

Могу ли я делать комментарии в стилях?

Конечно. Начните строку с решётки (#), восклицательного знака (!), или используйте C++ комментарии (//).

У меня есть ещё вопросы...

Посмотрите на стили, поставляемые с Fluxbox, скорее всего там вы найдёте ответы на ваши вопросы. Если этого не произошло - добро пожаловать на канал #fluxbox в OPN. Мой ник - demerol.


9.2. Расширенное редактирование тем

The majority of this section is taken from or heavily influenced by the man page as of Fluxbox 0.1.13. Usually, the man page is the definite authority on this matter, but this document might be more enlightening to the beginning style author.

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

X11 resources consist of a key and a value. The key is constructed of several smaller keys (sometimes referred to as children), delimited by a period (.). Keys may also contain a asterisk (*) to serve as a wildcard, which means that one line of typed text will match several keys. This is useful for styles that are based on one or two colors.

Fluxbox позволяет вам настраивать три его основные компоненты: панель задач, меню и декорации окон. Слит автоматически использует стиль панели задач, но это может быть изменено, если нужно. Маленькое окошко, которое показывает x-y позицию окон при их перетаскивании использует стиль заголовка окна.

Вот несколько маленьких примеров, иллюстрирующих основы синтаксиса:

Пример 9-1. Стиль часов панели задач

    toolbar.clock.color:  green

Это устанавлиет цвет часов на панели задач в значение green. Другой пример:

Пример 9-2. Стиль меню

    menu*color: rgb:3/4/5

Это устанавливает цвет меню rgb:3/4/5. Описания названий цветов читайте man страницы X11. Это также применимо для menu.title.color и menu.frame.color. И ещё пример:

Пример 9-3. Шрифт стиля

    *font: -b&h-lucida-medium-r-normal-*-*-140-*

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

И наконец то, что делает Fluxbox таким эффектным - это возможность рендерить текстуры "на лету". Texture descriptions are specified directly to the key that they should apply to, e.g.:

Пример 9-4. Стиль текстур

    toolbar.clock:   Raised Gradient Diagonal Bevel1
    toolbar.clock.color: rgb:8/6/4
    toolbar.clock.colorTo: rgb:4/3/2

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

Таблица 9-1. Директивы текстур

ДирективаОписание
Flat / Raised / SunkenДелает компонент плоским, поднятым или опущенным.
Gradient / Soliddraw either a solid color or a gradiented texture.
Horizontal / Vertical / Diagonal / Crossdiagonal / Pipecross / Elliptic / Rectangle / PyramidВыбрать тип текстуры. Роботает только когда используется Gradient.
Interlacedinterlace the texture (darken every other line). This option is most commonly used with gradiented textures, but from Blackbox version 0.60.3 on (and thus in all versions of Fluxbox), it also works in solid textures.
Bevel1 / Bevel2type of bevel to use. Bevel1 is the default bevel. The shading is placed on the edge of the image. Bevel2 is an alternative. The shading is placed one pixel in from the edge of the image.

Apart from the texture description, the option ParentRelative is also available, which makes the component appear as a part of its parent.

All gradiented textures are composed of two color values: the color and colorTo resources. When Interlaced is used in Solid mode, the colorTo resource is used to find the interlacing color.

Полный лист компонент может быть найден в Прил. C.

Now, that seems a long list, but remember, when you create your own style, you can easily set lots of keys with a single command, e.g.

Пример 9-5. Типичный маленький стиль

    *color:             slategrey
    *colorTo:           darkslategrey
    *unfocus.color:     darkslategrey
    *unfocus.colorTo:   black
    *textColor:         white
    *unfocus.textColor: lightgrey
    *font:              lucidasans-10

Приложение A. Настройка .xinitrc/.xsession

Добавлено Verin.

The place of xinit in things

Оконный менеджер это такое же приложение для X11, как и netscape или gimp или xterm. Многие люди, только начинающие знакомиться с X11 думают что X11 запускает оконный менеджер а аконный менеджер запускает остальные программы. Но это не так. Если всё настроено правильно, вы можете запустить все свои программы под X11, убить оконный менеджер и запустить другой оконный менеджер.

The real program that X11 runs, that runs other programs, is your .xinitrc or .xsession script. Когда X11 запищен, ваш скрипт .xinitrc или .xsession запущен, и когда скрипт выполнен, X11 заканчивает работу. Позвольте ещё раз повтроить, это важно: когда .xinitrc выполнен, X заканчивают свою работу. . Но это не значит что это происходит когда ваш оконный менеджер заканчивает работу.

Script layout

Ну, давайте сперва реализуем то, что мы уже знаем. когда вы набираете комманду в shell'е, вы ничего не можете делать пока комманда не закончит свою работу. Тоже самое и для скриптов .xinitrc и .xsession. Когда он нчинает выполнять комманды, которые долго выполняются (как большинство программ для X11), он останавливается пока программа не закончит свою работу.

В идеале, у вас должно быть только одно место где скрипт заканчивает выполнение. Обычно это конец скрипта. Так что если у вас есть программы, которые должны быть запущены под X11, запускайте их в бэкграунде. Для этого в конец строки добавьте символ &. То есть, если вы хотите запустить xclock в дополнение к остальным вещам, добавьте эту строчку перед заверщающей строчкой:

    xclock &

Now, the next thing is the exec thing you see, where lots of sources recommend how to add your window manager to your script. But honestly, its not really necessary, if you put your window manager on the last line of your script, it will hang there just fine without the exec.

So why the exec? Well, lets say you want to put lots of window manager start lines in your script, and you want only one to work. Well, with exec you can put your chosen start-line at the top. Because this is what exec means:

"Replace myself with this program, i.e. start it and temrinate myself immediately when it finishes. "

So if you put an exec wmaker line atop of a exec enlightenment line, when wmaker is done, so is the script, it never gets to the next line.

See what I mean by being unnecessary? You could just put a bunch of commented-out window manager lines, and it would work just the same.

Another way to do things

As an alternative, you could start up your window manager first, and store the process ID in a environment variable:

        wmaker & wmpid=$!

that puts it in the background (&) and puts the process id ($!) in a variable (wmpid). Then, to make your hang point, you can wait:

    wait $wmpid

or you could hang on a program you always want to use, like maybe gkrellm, by just not backgrounding it. But remember that as soon as you terminate it, so will your X11 session.

Now, I use the wait method, because I like picking my window manager before I launch my dockapps and stuff. Also, before doing anything else, I like to change the settings on my X11 server, like the dpms, the screen saver, and even add some directories to my font path (fonts I don't want to install universally). And then after everything is done, I like to clean up my fontpath, mainly because if I ran a display manager, its not good at resetting the font path all the time.

Пример A-1. Пример файла.xinitrc

    # turn off screen blanking and f
    xset dpms 600 60 60

    # add my optional fonts to the font path
    xset +fp "$X_FONTPATH"
    xset fp rehash

    # export the current environment, in case it needs to be debugged
    env > ~/.xenv

    # window manager
    fluxbox & wmpid=$!

    bbrun &
    wmCalClock &
    wmxmms &

    # HANG POINT - wait for window manager to exit
    wait $wmpid

    # restore the x fontpath
    xset fp default

Приложение B. Часто задаваемые вопросы (FAQ)

B.1. Что такое "слит"?
B.2. Мого ли я расположить докаппы в слите в определенном порядке?
B.3. Как мне изменить формат времени на панели задач?
B.4. Я делаю изменения в ~/.fluxbox/init, но они перезаписываются.
B.5. Как работают закладки?
B.6. После того как я включил Anti-Aliasing мои шрифты стали огромными, как это исправить?
B.7. Кажется я не могу использовать старые шрифты, такие как Snap с AA. В чем дело?
B.8. Я слышал о Artwiz шрифтах. Что это?
B.9. Как я могу установить фон рабочего стола?
B.10. Когда я меняю темы, фон становится ужасным. .
B.11. Могу ли я использовать мой .blackboxrc для Fluxbox?
B.12. Как я могу запускать программы автоматически при запуске Fluxbox?
B.13. Могу ли я использовать стили (темы) Blackbox в Fluxbox?
B.14. Как мне настроить .xinitrc/.xsession?
B.15. Существует ли поддержка KDE?
B.16. Существует ли поддержка Gnome?
B.17. BBtools не используют мои настройки стиля, только после перезапуска.
B.18. С некоторыми стилями закладки выглядят безобразно, как это можно исправить?
B.19. Как я могу добавить иконки на рабочий стол Fluxbox?

B.1. Что такое "слит"?

Первое что нужно знать, это то, что слит это не панель задач Fluxbox.

Слит - это место для докаппов (docapps). Существует целая глава, посвященная слиту: Гл. 7. Прочитайте её перед тем как задавать вопросы "что такое слит" и "как это работает".

B.2. Мого ли я расположить докаппы в слите в определенном порядке?

В версиях Fluxbox выше 0.1.10, да. Объяснение как это сделать можно найти в Гл. 7.

B.3. Как мне изменить формат времени на панели задач?

Измените эту строчку в файле init:

session.screen0.strftimeFormat: %a %d %H:%M

Чтобы получить подробную информацию по формату, наберите man 3 strftime.

B.4. Я делаю изменения в ~/.fluxbox/init, но они перезаписываются.

Это ошибка в версиях Fluxbox до 0.1.8-bugfix2. Пожалуйста обновитесь до последней версии перед тем как сообщать об этом.

B.5. Как работают закладки?

Смотрите Гл. 4.

B.6. После того как я включил Anti-Aliasing мои шрифты стали огромными, как это исправить?

С Xft шрифты ведут себя по разному. Для начала попробуйте написать в файле вашей темы (стиля) следующее:

*.font: Verdana:size=7

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

B.7. Кажется я не могу использовать старые шрифты, такие как Snap с AA. В чем дело?

Когда вы включаете AA во Fluxbox, он перекладывает работу по рендерингу символов на Freetype2. Если вы не используете AA, может быть использована родная X11 система рендеринга. As soon as you activate AA with Fluxbox, it relies on Freetype2 to render the characters. If you don't use AA, X11s native font rendering can be used. FT2 не поддерживает все форматы поддерживаемые X11, выбор шрифтов для Fluxbox становится ограниченным. FT2 поддерживает следующие форматы:

  • TrueType файлы (.ttf) и коллекции (.ttc)

  • Type 1 шрифты в ASCII (.pfa) и бинарном (.pfb) форматах

  • Type 1 Multiple Master шрифты

  • Type 1 CID-keyed шрифты

  • OpenType/CFF (.otf) шрифты

  • CFF/Type 2 шрифты

  • Adobe CEF шрифты (.cef)

  • Растровые шрифты Windows FNT/FON

Freetype 1 поддерживает только TrueType шрифты, также можно включить поддержку GX и OTF шрифтов используя другую библиотеку. Дополнительная информация может быть найдена на домашней странице Freetype.

B.8. Я слышал о Artwiz шрифтах. Что это?

Объяснение дано здесь: Прил. D

Если вам нравятся Artwiz шрифты но не нравится как они выглядят в терминалах, попробуйте набор шрифтов LFP от Linux Font Project. Здесь есть два набора шрифтов: шрифты с фиксированной шириной и шрифты с не фиксированной шириной. Первые хороши для терминалов, также эти шрифты доступны для консоли Linux.

B.9. Как я могу установить фон рабочего стола?

Это объяснено в Гл. 6.

B.10. Когда я меняю темы, фон становится ужасным. .

Решение данной проблемы может быть найдено в Гл. 6.

B.11. Могу ли я использовать мой .blackboxrc для Fluxbox?

Да, конечно, на вам нужно добавить несколько строк для панели задач и keygrabbing'а. Будет разумно сделать символическую ссылку для вашего blackboxrc на ~/.fluxbox/init.

B.12. Как я могу запускать программы автоматически при запуске Fluxbox?

Вы можете это прочитать в Прил. A.

B.13. Могу ли я использовать стили (темы) Blackbox в Fluxbox?

Да. Темы для обоих оконных менеджеров 100% совместимы. Также это должно быть справедливо для таких проектов, как Waimea и Openbox, но я не могу это гарантировать. Я не видел заявления этих двух проектов о совместимости тем с Blaxbox, но совместимость тем с Blackbox - одна из целей Fluxbox.

B.14. Как мне настроить .xinitrc/.xsession?

Смотрите Прил. A.

B.15. Существует ли поддержка KDE?

Да, при запуске configure используйте опцию --enable-kde. Это гарантирует то, что иконки трея KDE появятся в слите.

B.16. Существует ли поддержка Gnome?

Да, при запуске configure используйте опцию --enable-gnome. Это включает подсказки Gnome. В версиях Fluxbox 0.1.12 и выше эта опция включена по умолчанию.

B.17. BBtools не используют мои настройки стиля, только после перезапуска.

Просто создайте ссылку ~/.blackboxrc на ваш ~/.fluxbox/init, например с помощью следующей команды:

    $ ln -s ~/.fluxbox/init ~/.blackboxrc

B.18. С некоторыми стилями закладки выглядят безобразно, как это можно исправить?

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

Пример B-1. Измененные закладки в файле стиля

    ! -- tab style (for Fluxbox)
    window.tab.justify:                     Right
    window.tab.label.unfocus:               Flat Solid
    window.tab.label.unfocus.color:         rgb:AC/AC/AC
    window.tab.label.unfocus.textColor:     black
    window.tab.label.focus:                 Raised Solid
    window.tab.label.focus.color:           rgb:CC/CC/CC
    window.tab.label.focus.textColor:       black
    window.tab.borderWidth:                 1
    window.tab.borderColor:                 rgb:10/10/10
    window.tab.font:                        fixed
    ! --- end, tab style

Ну, что же все это делает? Все аналогично другим вещам в темах. Я уверен, что если вы когда-нибудь делали темы для Blackbox, вам будет не сложно разобраться с этим, в противном случае прочитайте Гл. 9.

Заметьте, что стиль, содержащий данные строки будет отлично работать в Blackbox, то есть вы ничего не теряете.

B.19. Как я могу добавить иконки на рабочий стол Fluxbox?

Fluxbox имеет свою собственную программу для этих целей, называемую fbdesk. fbdesk в данный момент не поставляется вместе с Fluxbox. Есть альтернативы: проект RoxFiler, idesk, xdesk.


Приложение C. Theme Reference

C.1. Theme directives

This is a complete list of available theme directives specifying which values they can be assigned. See Гл. 9 for details on those directives.

Таблица C-1. Стили панели задач

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Цвет
Color of pressed button arrows
toolbar.button.pressed.picColorColor
Workspace label
toolbar.labelTexture or ParentRelative
toolbar.label.colorColor
toolbar.label.colorToColor
toolbar.label.textColorColor
Window label
toolbar.windowLabelTexture or ParentRelative
toolbar.windowLabel.colorColor
toolbar.windowLabel.colorToColor
toolbar.windowLabel.textColorColor
Clock
toolbar.clockTexture or ParentRelative
toolbar.clock.colorColor
toolbar.clock.colorToColor
toolbar.clock.textColorColor
Text
toolbar.justifycenter, left, or right
toolbar.fontFont

Таблица C-2. Стили меню

Заголовок
menu.titleТекстура
menu.title.colorЦвет
menu.title.colorToЦвет
menu.title.textColorЦвет
menu.title.fontШрифт
menu.title.justifycenter, left, или right
Frame
menu.frameTexture
menu.frame.colorColor
menu.frame.colorToColor
menu.frame.textColorColor
menu.frame.disableColorColor
menu.frame.fontFont
menu.frame.justifycenter, left, or right
Submenu bullets
menu.bulletempty, triangle, square, or diamond
menu.bullet.positionright or left
Highlighted item
menu.hiliteTexture (e.g. Raised)
menu.hilite.colorColor
menu.hilite.colorToColor
menu.hilite.textColorColor

Таблица C-3. Стили окон

Заголовок окна
window.title.focusТекстура
window.title.focus.colorЦвет
window.title.focus.colorToЦвет
window.title.unfocusТекстура
window.title.unfocus.colorЦвет
window.title.unfocus.colorToЦвет
Label
window.label.focusTexture or ParentRelative
window.label.focus.colorColor
window.label.focus.colorToColor
window.label.focus.textColorColor
window.label.unfocusTexture or ParentRelative
window.label.unfocus.colorColor
window.label.unfocus.colorToColor
window.label.unfocus.textColorColor

Таблица C-4. Handlebar styles

window.handle.focus.colorColor
window.handle.focus.colorToColor
window.handle.unfocusTexture
window.handle.unfocus.colorColor
window.handle.unfocus.colorToColor

Таблица C-5. Resize grip styles

window.grip.focusTexture
window.grip.focus.colorColor
window.grip.focus.colorToColor
window.grip.unfocusTexture
window.grip.unfocus.colorColor
window.grip.unfocus.colorToColor

Таблица C-6. Window button styles

window.button.focusTexture or ParentRelative
window.button.focus.colorColor
window.button.focus.colorToColor
window.button.focus.picColorColor
window.button.unfocusTexture or ParentRelative
window.button.unfocus.colorColor
window.button.unfocus.colorToColor
window.button.unfocus.picColorColor
window.button.pressed Texture
window.button.pressed.colorColor
window.button.pressed.colorToColor

Таблица C-7. Window frame styles

window.frame.focusColorColor
window.frame.unfocusColorColor

Таблица C-8. Стиль закладок

window.tab.justifyright, left или center
window.tab.label.unfocusТекстура
window.tab.label.unfocus.colorЦвет
window.tab.label.unfocus.textColorЦвет
window.tab.label.focusЦвет
window.tab.label.focus.colorЦвет
window.tab.label.focus.textColorЦвет
window.tab.borderWidthКоличество пикселей
window.tab.borderColorЦвет
window.tab.fontШрифт

Таблица C-9. Font on window label styles

window.fontFont
window.justifycenter, left, or right

Таблица C-10. Miscellaneous styles

Border drawn around all components
borderWidthNumber of pixels
borderColorColor
bevelWidthNumber of pixels
handleWidthNumber of pixels
frameWidthNumber of pixels
Комманда, выполняемая после загрузки стиля
rootCommandКомманда шелла, например bsetbg nicepiccy.jpg
Старые ресурсы BB 0.51
menuFontШрифт
titleFontШрифт

Приложение D. Artwiz шрифты для Fluxbox

Введение

Так называемые Artwiz шрифты - это шрифты, созданные чуваком, называющим себя Artwiz. Han был достаточно дружелюбен чтобы выложить архив с этими шрифтами на своем сайте. Вы можете скачать эти шрифты отсюда: http://www.xs4all.nl/~hanb/software/fluxbox/artwiz-fonts.tar.bz2.

Вам не придется устанавливать эти шрифты самостоятельно, если у вас есть rpm mandrake. Они уже включены. В противном случае их придется устанавливать самостоятельно. Есть два способа установить artwiz шрифты: обще-системно или для для отдельного пользователя.

Общесистемная установка

Если вы хотите установить шрифты для всех пользователей на вашей системе, поместите архив в /tmp и выполните следующие команды:

    # cd /usr/X11R6/lib/X11/fonts
    # tar xjf /tmp/artwiz-fonts.tar.bz2
    # cd fluxbox-artwiz-fonts
    # mkfontdir
    # chkfontpath -q -a /usr/X11R6/lib/X11/fonts/fluxbox-artwiz-fonts:unscaled

Теперь перезапустите сервер шрифтов. Заметьте, что в вашем дистрибутиве общесистемные шрифты могут быть расположены не в /usr/share/fonts, а в каком-нибудь другом месте. The directory above shouldbe a sensible default, though.

Пользовательская установка

Если вы хотите установить шрифты только для одного пользователя, то будет все намного проще. Поместите тарболл в вашу домашнюю директорию, затем выполните следующие комманды:

    $ tar xjf artwiz-fonts.tar.bz2
    $ mv fluxbox-artwiz-fonts .fonts
    $ mkfontdir $HOME/.fonts

В файл.xinitrc или .xsession (зависит от того, как вы запускаете X11) перед вызовом любой программы добавьте следующую строчку:

    xset +fp $HOME/.fonts

Затем (пере)запустите X11 и используйте xlsfonts или xfontsel для того чтобы убедиться что шрифты опознаны.

Bugs

artwiz шрифты иногда конфликтуют с настройками вашей локали. Чтобы заставить их работать, в начале файла .xinitrc или .xsession добавьте:

    export LC=C
    export LC_ALL=C

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

Существует возможность использовать ваши национальные установки и иметь возможность использовать шрифты Artwiz во Fluxbox.

Locale settings fix

Метод очень прост, нужно только редактировать файл fonts.alias (и/или fonts.dir).

также это должно избавить от проблем в других приложениях (например, Evolution и UTF-8). Во-первых, вам надо отредактировать файл fonts.dir . Он должен находится в директории, куда были установлены шрифты Artwiz. Если нет, перейдите в эту директорию и запустите mkfontdir.

Синтаксис данного файла очень прост. В первой строчке содержится только информация о количестве шрифтов в данной директории. Все остальные строки имеют вид

     имя_файла_шрифта имя_шрифта

Вот пример файла fonts.dir:

Пример D-1. fonts.dir

14
glisp.pcf.gz -artwiz-glisp-medium-r-normal--11-110-75-75-p-90-iso646.1991-irv
gelly.pcf.gz -artwiz-gelly-medium-r-normal--10-100-75-75-p-90-iso646.1991-irv
edges.pcf.gz -artwiz-edges-medium-r-normal--10-100-75-75-m-50-iso646.1991-irv
nu.pcf.gz nu
drift.pcf.gz drift
cure.pcf.gz cure
aqui.pcf.gz aqui
lime.pcf.gz -artwiz-lime-medium-r-normal--10-100-75-75-m-50-iso646.1991-irv
snap.pcf.gz -artwiz-snap-medium-r-normal--10-100-75-75-p-90-iso646.1991-irv

Нас интересуют только те строки, в которых есть короткое имя шрифта, в данном случае это шрифты Nu, Drift, Cure и Aqui. Проблема заключается в том, что нужно прописать для них полное имя шрифта X11.

Приведите файл к примерно такому виду:

14
glisp.pcf.gz -artwiz-glisp-medium-r-normal--11-110-75-75-p-90-iso646.1991-irv
gelly.pcf.gz -artwiz-gelly-medium-r-normal--10-100-75-75-p-90-iso646.1991-irv
edges.pcf.gz -artwiz-edges-medium-r-normal--10-100-75-75-m-50-iso646.1991-irv
nu.pcf.gz -artwiz-nu-medium-r-normal--11-110-75-75-p-90-iso646.1991-irv
drift.pcf.gz -artwiz-drift-medium-r-normal--11-110-75-75-p-90-iso646.1991-irv
cure.pcf.gz -artwiz-cure-medium-r-normal--11-110-75-75-p-90-iso646.1991-irv
aqui.pcf.gz -artwiz-aqui-medium-r-normal--11-110-75-75-p-90-iso646.1991-irv
lime.pcf.gz -artwiz-lime-medium-r-normal--10-100-75-75-m-50-iso646.1991-irv
snap.pcf.gz -artwiz-snap-medium-r-normal--10-100-75-75-p-90-iso646.1991-irv

Последнее, что вам придётся сделать - исправить файл fonts.alias (для того чтобы использовать шрифты с другими кодировками нежели iso646).

Синтаксис данного файла таков: алиас имя. Например, для того, чтобы заставить шрифты artwiz работать с кодировкой ISO-8859-2, сделайте такой алиас (все в одной строке).

-artwiz-anorexia-medium-r-normal--11-110-75-75-p-90-iso8859-2 
-artwiz-anorexia-medium-r-normal--11-110-75-75-p-90-iso646.1991-irv 

Вы также можете использовать мои fonts.dir и fonts.alias , они поддерживают ISO-8859-1, ISO-8859-2, и iso10646-1 (UTF-8). Если вы сделаете всё как описано выше, вам не придётся менять ваши настройки локали на C или POSIX. И все приложения (не только Fluxbox) будут работать так, как должны, без ошибок "can't convert character set" или подобных.


Приложение E. Отладка

Общая информация

Отладка - это то, чему вы можете научиться. Существует огромное количество документации, описывающей как правильно составлять отчеты об ошибках. Пожалуйста, прочитайте их перед тем как приступать к действиям, ваша ошибка не убежит и не убьет вас. Мы хотим устранит ошибку и мы нуждаемся в вашей помощи, так что давайте будем подготовлены. Два отличных документа - Bugzilla Bug Reporting HOWTO и Simon Tathams How to Report Bugs Effectively.

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

Если вам нужно больше информации чем дано тут, попробуйте попросить помощи у людей с канала #fluxbox, сервер irc.freenode.net. Обычно там можно найти основных разработчиков и просто квалифицированных людей, они скорее всего вам смогут помочь.

Специфичные для Fluxbox вещи

Output from Fluxbox

Как и другие приложения, Fluxbox посылает все сообщения на консоль с которой он был запущен. Like any other application Fluxbox sends all messages to the console it was started from. The problem is that under normal circumstances all output goes to the text console. Change your Fluxbox start line to exec xterm or whatever your favorite terminal emulator may be. Start X11 and start Fluxbox in that xterm, and lo and behold, you can easily see all messages from Fluxbox.

Нужна нам информация

Мы хотим знать много вещей, убедитесь что вы знаете всё о них.

Что делать с core dump'ами?

Если вы получили core dump используя Fluxbox, сделайте следующее: зайдите на канал #fluxbox на OPN и скажите fluxgen'у что у вас core dump. Сообщите ему всю информацию которую он захочет узнать. Наверно он попросит вас сделать следующее. Это довольно большая работа, но всякий человек, у которого есть опыт работы в Unix, сможет сделать это. Ах да, вам понадобится отладчик GNU - gdb.

Пересборка Fluxbox

Да, вы правильно прочитали. Чтобы стать настоящим отладчиком, вам придется пересобрать Fluxbox с отладочными символами.

Соберите Fluxbox как обычно, только добавьте следующие опции когда будете делать "make":

    $ CFLAGS=-Wall -g3 CXXFLAGS=-Wall -g3 make

Если вы используете srpm с сайта Fluxbox или вашего дистрибутива, можете сделать что-то подобное:

    $ su
    # rpm -ivh fluxbox-0.1.11.1mdk.src.rpm
    # cd /usr/src/RPM/SPECS
    # env DEBUG=true rpm -ba fluxbox.spec
    # rpm -Uvh --force /usr/src/RPM/RPMS/i686/fluxbox*
    # exit
    $ mkdir -p ~/src/fluxbox
    $ cp -R /usr/src/RPM/BUILD/fluxbox* ~/src/fluxbox

Перейдите в директорию Fluxbox (мы же хотим получить core dump в правильном месте). Чтобы удостовериться, что core-файлы разрешены оболочкой, наберите:

    $ ulimit -c unlimited

Запустим X11 и начнем отладку. Делайте то, что привело к ошибке. А теперь приступим к собственно отладке:

    $ gdb fluxbox core

И наберите следующую команду в gdb (первая часть это строка приглашения gdb, это набирать не надо :)):

    (gdb) where

Вы увидите много информации. Fluxgen хочет знать все, что начинается с #.

Сейчас вставьте это в e-mail fluxgen'у и также приаттачте файлы настроек, которые находятся в ~/.fluxbox/.

Пожайлуста не удаляйте core-файлы и директорию с исходными кодами. Fluxgen может задать несколько дополнительных вопросов и тогда вам они понадобятся. Пожайлуста, не отсылайте fluxgen'у core-файлы если он об этом не просит - они специфичны для вашей системы и скорее всего бесполезны дня него, к тому же они довольно большие.

Done.