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 для X11. Она была создана из старой документации (в формате HTML) с целью упрощения её конвертации в различные форматы. Исходники написаны на DocBook 4.1 - формате, специально предназначенном для документации.
В работе над документацией Fluxbox участвовало большое количество людей; большая часть документация основана на работе Рэндо Кристенсена (Rando Christensen, <rando@babblica.net>) и дополнена <klausman@users.sourceforge.net> и некоторыми другими людьми. Если вы не видите себя в списке, уведомите об этом <редактора.>
Вопросы по Fluxbox лучше задавать в списках рассылки. Более подробную информацию о них вы можете найти на официальной странице Fluxbox.
![]() | Дополнения и перевод |
|---|---|
Приветствуется любая хорошо написанная документация по тому, что не описано здесь, но, по вашему мнению, должно присутствовать. Просто напишите мне на е-майл, указанный выше, и мы обсудим вопросы о том, как вы можете помочь и какую документацию можете добавить (при наличии таковой). |
Документация доступна на сайте Fluxbox в виде исходных текстов, а также сконвертированная в различные форматы, такие как HTML и PostScript. Если вы хотите использовать другой DTD или другой выходной формат, то исходники всегда к вашим услугам, но вам скорее всего потребуется некоторый опыт работы с DocBook, чтобы изменить DTD. Если вы хотите сконвертировать исходные тексты документации в формат, отсутствующий на сайте Fluxbox, вам понадобится пакет docbook2x
Fluxbox это очередной оконный менеджер для X. Он основан на исходных кодах Blackbox 0.61.1. Fluxbox выглядит как Blackbox и полностью совместим с ним в отношении стилей, цветов, расположения окон и тому подобного.
Тогда какая разница между Fluxbox и Blackbox, спросите вы? Ответ: разница ОГРОМНАЯ! Вот список возможностей которые уже есть или скоро появятся во Fluxbox...
Реализованные:
настраиваемые оконные закладки.
поддержка сглаживания текста (Xft)
поддержка UTF-8
панель инструментов (для свернутых окон)
автогруппирование окон/закладок
смена рабочего стола прокручиванием колеса мыши
возможность настройки заголовка окна (расположение кнопок, добавление новых кнопок и т.п.)
поддержка KDE и Gnome (включая Gnome 2)
поддержка Extended Window Manager Hints (ewmh)
встроенный интегрированный перехватчик нажатий клавиш (поддерживает emacs-подобные сочетания)
возможность распахивать окна поверх слита
настройка порядка следования апплетов в слите
менеджер сессий
"прилипающие" окна
настраиваемая панель задач
и некоторые другие возможности
Исходники Fluxbox можно скачать с главного сайта Fluxbox, http://fluxbox.sourceforge.net/. Большинство дистрибутивов Linux и других бесплатных Unix'ов включают исходные коды и бинарные пакеты Fluxbox. Если возникают сомнения, используйте последние пакеты из дистрибутива.
Несмотря на то, что Fluxbox прост в использовании и настройке, вопросы все равно появляются. Множество из них было задано раньше. Перед тем как спрашивать в рассылке и на канале IRC Fluxbox, пожалуйста, прочтите FAQ (Прил. B).
Эта часть была написана Jason Gillman Jr. aka "Ircaddict".
В состав многих дистрибутивов входят бинарные пакеты Fluxbox (или в случае Gentoo и FreeBSD, порты/ebuild'ы) которые делают установку Fluxbox предельно простой. Но существуют причины собирать Fluxbox самому. Например, может не оказаться пакета для вашего дистрибутива с наиболее свежей версией Fluxbox. Или вам нужно собрать Fluxbox с определенными флагами компилятора. Если вы хотите использовать дистрибутивную версию, читайте документацию, идущую с дистрибутивом. Для некоторых дистрибутивов с сайта Fluxbox можно скачать как бинарные пакеты, так и пакеты с исходными кодами.
Цель данного документа - помочь новичкам в X11 (или в Linux в общем) собрать и установить оконный менеджер Fluxbox.
Первое что вы должны сделать - перейти на страницу загрузки и скачать архив с исходными кодами (расширение .tar.gz).
Время от времени появляются специальные релизы для разработчиков. они позволяют посмотреть какие функции появятся в стабильной версии и т.д. Стоит учитывать, что они достаточно нестабильны. Инструкции как их загрузить вы можете найти в разделе новостей на сайте Fluxbox.
Хорошо, теперь у вас есть архив с исходными кодами и вам надо его распаковать. Это можно осуществить с помощью данной команды, нужно лишь изменить данное имя файла на имя того, который вы толькочто загрузили.
$ 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.
Все хорошо установилось, но какой от него прок, если мы не может его запустить?
Существует два различных способа запуска 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 и перезапустите его, все настройки будут потеряны. (к сожалению, эта директория не создается автоматически).
Если вам нужна помощь, просто зайдите на форум FLuxbox и задайте там свой вопрос, я уверен, что кто-нибуть будет рад на него ответить. Также вы можете задавать свои вопросы в рассылке пользователей Fluxbox. Ссылка на лист может быть найдена на сайте Fluxbox. И последнее замечанее: я рекомендую скопировать файлы init, menu, и titlebar из директории /usr/local/share/fluxbox в ~/.fluxbox/.
Fluxbox поставляется с набором инструментов, которые помогу сделать вашу жизнь немного легче и предоставляют дополнительные возможности. По умолчанию, они устанавлюваются туда же, куда устанавливается бинарник fluxbox, то есть /usr/local/bin, если вы не меняли префикс в процессе конфигурации. Большинство дистрибутивов используют другое местоположение, так что если вы установили fluxbox из пакетов, скорее всего вы найдёте бинарники в /usr/bin.
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 и вы хотите чтобы они сохраняли историю в разные файлы.
Закладки Fluxbox - новая идея. Воплощение во многом похоже на то, как это сделано в оконном менеджере PWM. Как это работает: несколько окон группируются вместе, у них одинаковый размер, общее рамположение, и перемещение одного из этих окон вызывает перемещение остальных. Хорошая аналогия - стопка бумаги. Закладки - это как эти маленькие пластиковые закладки для будмаги, благодаря которым вы можете быстро и легко выбрать нужный вам лист из стопки бумаг.
Вот так закладки работают в Fluxbox. Если вы выберете закладку нужного вам окна, оно переместиться на вершину "стопки" окон. Давайте сейчас поэксперементируем.
Первое, что вы должны запомнить - это то, что все манипуляции с закладками осуществляются с помощью третьей кнопки мыши. Кликните ей на заголовке окна и не отпуская перенестие его в другое окно. Поздравляю, окна сгруппировались! Теперь вы можете использовать закладки чтобы переключаться между ними.
Чтобы удалить закладку, нажмите на ней третьей кнопкой мыши и переместите окно.
"Мне неудобно перемещать одну маленькую закладку на другую маленькую закладку. "
В меню конфигурации Fluxbox выберете опцию 'Sloppy Window Grouping'. Это позволит вам перемещать ваше окно в любое место другого окна, для того, чтобы окна сгруппировались.
"Всё это хорошо, но я хочу использовать закладки только для программы X!"
Существует для метода решения данной проблемы, в зависимости от того, для какого количества программ вы хотите использовать закладки.Вы можете вкючить или выключить закладки для определённого окна (нажмите правой кнопкой мыши на заголовке онка, выберите опцию 'tab'), или вы можете выключить их вообще, использую пункт меню 'Configuration'->'Use Tabs'. После того, как вы выключите закладки, вы можете их включить для отдельных окон, как написано выше.
"Мне не нравятся закладки. Могу ли я их отключить?"
Конечно. Выберете пукт 'Use Tabs' в меню 'Configuration'. Повтороный выбор этого пункта меню опять включит закладки. Это также можно продлать, отредактировав файл конфигурации init:
session.tabs: true
Отключить закладки можно заменив true на false.
В меню 'Configuration' есть опция 'Tab Placement'. Оно определет место, где будут расположены закладки. Стоит объяснит смысл опции 'Relative'. Если эта опция включена, общая длина всех закладок равна длине окна. То есть, если закладка одна, её длина совпадает с длиной окна, если закладки две, то длина каждой из них равна половине длины окна. XXX . This option often makes the tabs look unobtrusive and is very popular.
Иногда требуется чтобы приложения автоматически сгруппировывались сразу после запуска. Это называется "Автогруппирование(?)". В этой части документации описано как это работает. Прежде всего вам нужен Fluxbox версии v0.1.11 или выше. Автогруппирование(?) не работает в старых версиях. Затем нужно создать файл ~/.fluxbox/groups, если его её нет. После этого понадобиться отредактировать ~/.fluxbox/init, добавив такую строку (или указать правильный путь к файлу):
session.groupFile: ~/.fluxbox/groups
Отлично, теперь всё на месте. Теперь вам нужно просто заполнить файл groups.
Каждая строка файла соответствует отдельной группе, программы перечисляются через пробел. Пример:
Это создаст две группы, в одной будут 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.
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. |
Существует отдельная глава, посвященная закладкам в темах - (Гл. 9). Прочитайте её, если хотите изменить вид закладок в вашей теме. (Закладки в темах по умолчанию выглядят как заголовки окон; иногда люди хотят изменить это.)
Работа 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, например:
Если у вас есть дополнительные клавиши (например мультимедиа клавиши) и вы хотите с их помощью управлять xmms и вы их правильно настроили в XFree86, можете поступить таким образом:
Пример 5-3. Мультимедиа клавиши для XMMS
None XF86AudioPlay :ExecCommand xmms -u
None XF86AudioStop :ExecCommand xmms -sДля дополгительной информации по xmms почитайте вывод комманды xmms --help
Возможно вы спросите как находить имена клавиш. Запустите 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.
Существует несколько специальных клавиш. Заметьте, что он будут показаны xev сразу после того, как вы их нажмёте (не как модификаторы к другим клавишам).
Вот список действий поддерживаемых 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. |
Таблица 5-2. Операции с окнами
| Действие | Результат |
|---|---|
| Close | Закрыть окно. |
| KillWindow | Аналогично убиванию окна с помошью xkill. |
| Minimize | Also known as "iconify". Make the window iconified. |
| ShadeWindow | Put window in the 'shaded' state, or restore from the 'shaded' state. |
| StickWindow | Toggle a Window's 'sticky' state. |
| ToggleDecor | Toggle whether or not current window has a border, buttons, and titlebar. |
| Raise | Bring the window to the 'Top', it will appear 'Above' windows that it overlaps. |
| Lower | Opposite of Raise. |
| NextTab, PrevTab | Activate next, prev tab. |
| MoveTabLeft, MoveTabRight | Move 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 | Максимизировать окно. |
| Resize | Resize the active window by the specified delta, e.g. resize -8 -8. |
| ResizeHorizontal | Resize only horizontal. |
| ResizeVertical | Resize only vertical. |
| ArrangeWindows | Tile 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. Остальное
| Действие | Результат |
|---|---|
| AbortKeychain | In 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. |
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 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 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.
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.
наиболее часто задаваемый вопрос - "Что такое слит?". Не сомтря на то, что этот документ был написан, я всё равно сдалал этот вопрос первым в 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. Когда в слит загружаются апплеты, они выстраиваются в том порядке, в котором были раньше.
Простая процедура заставить последовательность апплетов распологаться в определённом порядке:
Расположение апплетов
Запустите Fluxbox без апплетов.
Запустите апплеты в нужном порядке.
Добавьте их в скрипт .xinitrc или .xsession. Очерёдность значения не имеет.
Последовательность сохранена в ~/.fluxbox/slitlist и будет восстановлены при следующем запуске Fluxbox.
Вы можете редактировать файл slitlist самостоятельно. Это простой список, содержащий имена апплетов, по одному на каждой строке. Файл должен редактироваться когда Fluxbox не запущен, иначе изменения перезапишутся.
Вы можете назначить другой файл для списка апплетов, для этого вам потребуется отредактировать файл init:
Заметьте, что не существует опции отключения упорядочивания апплетов в слите.
Вы установили Fluxbox и можете запускать некоторые приложения из меню, вызываемого когда вы кликаете правой кнопкой мыши на рабочем столе. Но меню позволяет сделать намного больше, подробные интсрукции даны в этой документации.
Во-первых, с Fluxbox поставляется отличная утилита, называемая fluxbox-generate_menu. Она пытается найти популярные прогаммы, такие как браузеры и эмуляторы терминалов и добавить их в файл меню. fluxbox-generate_menu подробно описан в Разд. 3.3.
По умолчанию Fluxbox хранит меню в файле ~/.fluxbox/menu. Это может быть изменено в файлеinit. Вот пример:
Просто измените ~/.fluxbox/menu если вы хотите использовать другой файл в качестве вашего меню. Текущая структура должа быть удобна для большинства пользователей.
Меню 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, обратитесь к нему.
Эта часть добавлена 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.
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 позицию окон при их перетаскивании использует стиль заголовка окна.
Вот несколько маленьких примеров, иллюстрирующих основы синтаксиса:
Это устанавлиет цвет часов на панели задач в значение green. Другой пример:
Это устанавливает цвет меню rgb:3/4/5. Описания названий цветов читайте man страницы X11. Это также применимо для menu.title.color и menu.frame.color. И ещё пример:
Так вы одновременно устанавливаете шрифт для всех элементов. Для того, чтобы получить информацию о шрифтах, установленных на вашей стстеме, используйте такие программы как 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 / Solid | draw either a solid color or a gradiented texture. |
| Horizontal / Vertical / Diagonal / Crossdiagonal / Pipecross / Elliptic / Rectangle / Pyramid | Выбрать тип текстуры. Роботает только когда используется Gradient. |
| Interlaced | interlace 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 / Bevel2 | type 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.
Добавлено Verin.
Оконный менеджер это такое же приложение для 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 заканчивают свою работу. . Но это не значит что это происходит когда ваш оконный менеджер заканчивает работу.
Ну, давайте сперва реализуем то, что мы уже знаем. когда вы набираете комманду в 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.
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Первое что нужно знать, это то, что слит это не панель задач Fluxbox.
Слит - это место для докаппов (docapps). Существует целая глава, посвященная слиту: Гл. 7. Прочитайте её перед тем как задавать вопросы "что такое слит" и "как это работает".
В версиях Fluxbox выше 0.1.10, да. Объяснение как это сделать можно найти в Гл. 7.
Измените эту строчку в файле init:
session.screen0.strftimeFormat: %a %d %H:%M
Чтобы получить подробную информацию по формату, наберите man 3 strftime.
Это ошибка в версиях Fluxbox до 0.1.8-bugfix2. Пожалуйста обновитесь до последней версии перед тем как сообщать об этом.
Смотрите Гл. 4.
С Xft шрифты ведут себя по разному. Для начала попробуйте написать в файле вашей темы (стиля) следующее:
*.font: Verdana:size=7
Конечно вы можете использовать другой шрифт и размер, но в любом случае этот пример даст возможность нормально пользоваться меню. Если хотите получить информацию о видах шрифтов, которые вы можете использовать, перейдите к следующему вопросу.
Когда вы включаете 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.
Объяснение дано здесь: Прил. D
Если вам нравятся Artwiz шрифты но не нравится как они выглядят в терминалах, попробуйте набор шрифтов LFP от Linux Font Project. Здесь есть два набора шрифтов: шрифты с фиксированной шириной и шрифты с не фиксированной шириной. Первые хороши для терминалов, также эти шрифты доступны для консоли Linux.
Это объяснено в Гл. 6.
Решение данной проблемы может быть найдено в Гл. 6.
Да, конечно, на вам нужно добавить несколько строк для панели задач и keygrabbing'а. Будет разумно сделать символическую ссылку для вашего blackboxrc на ~/.fluxbox/init.
Вы можете это прочитать в Прил. A.
Да. Темы для обоих оконных менеджеров 100% совместимы. Также это должно быть справедливо для таких проектов, как Waimea и Openbox, но я не могу это гарантировать. Я не видел заявления этих двух проектов о совместимости тем с Blaxbox, но совместимость тем с Blackbox - одна из целей Fluxbox.
Смотрите Прил. A.
Да, при запуске configure используйте опцию --enable-kde. Это гарантирует то, что иконки трея KDE появятся в слите.
Да, при запуске configure используйте опцию --enable-gnome. Это включает подсказки Gnome. В версиях Fluxbox 0.1.12 и выше эта опция включена по умолчанию.
Просто создайте ссылку ~/.blackboxrc на ваш ~/.fluxbox/init, например с помощью следующей команды:
$ ln -s ~/.fluxbox/init ~/.blackboxrc
Для того чтобы закладки выглядели (несколько) лучше, вам надо добавить некоторые дополнительные опции в стиле. Заметьте, что вы не обязаны делать это, 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, то есть вы ничего не теряете.
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.picColor | Color |
| Workspace label | |
|---|---|
| toolbar.label | Texture or ParentRelative |
| toolbar.label.color | Color |
| toolbar.label.colorTo | Color |
| toolbar.label.textColor | Color |
| Window label | |
|---|---|
| toolbar.windowLabel | Texture or ParentRelative |
| toolbar.windowLabel.color | Color |
| toolbar.windowLabel.colorTo | Color |
| toolbar.windowLabel.textColor | Color |
| Clock | |
|---|---|
| toolbar.clock | Texture or ParentRelative |
| toolbar.clock.color | Color |
| toolbar.clock.colorTo | Color |
| toolbar.clock.textColor | Color |
| Text | |
|---|---|
| toolbar.justify | center, left, or right |
| toolbar.font | Font |
Таблица C-2. Стили меню
| Заголовок | |
|---|---|
| menu.title | Текстура |
| menu.title.color | Цвет |
| menu.title.colorTo | Цвет |
| menu.title.textColor | Цвет |
| menu.title.font | Шрифт |
| menu.title.justify | center, left, или right |
| Frame | |
|---|---|
| menu.frame | Texture |
| menu.frame.color | Color |
| menu.frame.colorTo | Color |
| menu.frame.textColor | Color |
| menu.frame.disableColor | Color |
| menu.frame.font | Font |
| menu.frame.justify | center, left, or right |
| Submenu bullets | |
|---|---|
| menu.bullet | empty, triangle, square, or diamond |
| menu.bullet.position | right or left |
| Highlighted item | |
|---|---|
| menu.hilite | Texture (e.g. Raised) |
| menu.hilite.color | Color |
| menu.hilite.colorTo | Color |
| menu.hilite.textColor | Color |
Таблица 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.focus | Texture or ParentRelative |
| window.label.focus.color | Color |
| window.label.focus.colorTo | Color |
| window.label.focus.textColor | Color |
| window.label.unfocus | Texture or ParentRelative |
| window.label.unfocus.color | Color |
| window.label.unfocus.colorTo | Color |
| window.label.unfocus.textColor | Color |
Таблица C-4. Handlebar styles
| window.handle.focus.color | Color |
| window.handle.focus.colorTo | Color |
| window.handle.unfocus | Texture |
| window.handle.unfocus.color | Color |
| window.handle.unfocus.colorTo | Color |
Таблица C-5. Resize grip styles
| window.grip.focus | Texture |
| window.grip.focus.color | Color |
| window.grip.focus.colorTo | Color |
| window.grip.unfocus | Texture |
| window.grip.unfocus.color | Color |
| window.grip.unfocus.colorTo | Color |
Таблица C-6. Window button styles
| window.button.focus | Texture or ParentRelative |
| window.button.focus.color | Color |
| window.button.focus.colorTo | Color |
| window.button.focus.picColor | Color |
| window.button.unfocus | Texture or ParentRelative |
| window.button.unfocus.color | Color |
| window.button.unfocus.colorTo | Color |
| window.button.unfocus.picColor | Color |
| window.button.pressed | Texture |
| window.button.pressed.color | Color |
| window.button.pressed.colorTo | Color |
Таблица C-8. Стиль закладок
| window.tab.justify | right, 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-10. Miscellaneous styles
| Border drawn around all components | |
|---|---|
| borderWidth | Number of pixels |
| borderColor | Color |
| bevelWidth | Number of pixels |
| handleWidth | Number of pixels |
| frameWidth | Number of pixels |
| Комманда, выполняемая после загрузки стиля | |
|---|---|
| rootCommand | Комманда шелла, например bsetbg nicepiccy.jpg |
| Старые ресурсы BB 0.51 | |
|---|---|
| menuFont | Шрифт |
| titleFont | Шрифт |
Так называемые 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 для того чтобы убедиться что шрифты опознаны.
artwiz шрифты иногда конфликтуют с настройками вашей локали. Чтобы заставить их работать, в начале файла .xinitrc или .xsession добавьте:
export LC=C
export LC_ALL=CЭти настройки для локали, и если вы не видите другие шрифты или у вас другие проблемы с локалью, уберите эти строчки. aleczapka предложил другой метод решения данной проблемы.
Существует возможность использовать ваши национальные установки и иметь возможность использовать шрифты Artwiz во Fluxbox.
Метод очень прост, нужно только редактировать файл 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" или подобных.
Отладка - это то, чему вы можете научиться. Существует огромное количество документации, описывающей как правильно составлять отчеты об ошибках. Пожалуйста, прочитайте их перед тем как приступать к действиям, ваша ошибка не убежит и не убьет вас. Мы хотим устранит ошибку и мы нуждаемся в вашей помощи, так что давайте будем подготовлены. Два отличных документа - Bugzilla Bug Reporting HOWTO и Simon Tathams How to Report Bugs Effectively.
Мы не поддерживаем неофициальные патчи, это значит вам нужно убедиться, что Fluxbox "падает" без сторонних патчей. Если патчи были наложены мейтейнер вашего дистрибутива, обращайтесь к нему.
Если вам нужно больше информации чем дано тут, попробуйте попросить помощи у людей с канала #fluxbox, сервер irc.freenode.net. Обычно там можно найти основных разработчиков и просто квалифицированных людей, они скорее всего вам смогут помочь.
Как и другие приложения, 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.
Мы хотим знать много вещей, убедитесь что вы знаете всё о них.
Ваша операционная система / дистрибутив и версия .
Версия Fluxbox, если CVS (или тарболл для разработчиков), тогда день?
Когда это случилось? Что вы делали? Можите ли вы это повторить?
Ваши настройки. Они могут быть найдены в ~/.fluxbox/init
Если вы получили core dump используя Fluxbox, сделайте следующее: зайдите на канал #fluxbox на OPN и скажите fluxgen'у что у вас core dump. Сообщите ему всю информацию которую он захочет узнать. Наверно он попросит вас сделать следующее. Это довольно большая работа, но всякий человек, у которого есть опыт работы в Unix, сможет сделать это. Ах да, вам понадобится отладчик GNU - gdb.
Да, вы правильно прочитали. Чтобы стать настоящим отладчиком, вам придется пересобрать 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-файлы если он об этом не просит - они специфичны для вашей системы и скорее всего бесполезны дня него, к тому же они довольно большие.