Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
wiki:fvwm [2011/04/02 23:21] [Настройка] |
wiki:fvwm [2011/04/02 23:52] (текущий) [FVWM] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | <note warning>Статья в переработке до середины апреля. | ||
+ | tartan</note> | ||
+ | |||
====== FVWM ====== | ====== FVWM ====== | ||
+ | FVWM - оконный менеджер, предоставляющий пользователю возможность самостоятельно настроить все возможные аспекты управления окнами в соответствии со своими представлениями об удобстве. В fvwm можно реализовать такие вещи, как открытие окон с произвольными размерами и координатами на определённом рабочем столе, большое количество чувствительных к контексту сочетаний клавиш для любых операций, до десяти кнопок в заголовке окна, которым можно назначить произвольные действия, меню, в том числе динамически генерируемые меню, меню, генерируемые с помощью скриптов (как pipe-menu в openbox) и tear-off меню, разные обои на разных рабочих столах, группировка окон со вкладками в заголовке окна, помещение окон в произвольные слои, заголовок окна на любой из сторон окна, стили оформления окон, возможность добавления своих элемнтов интерфейса с помощью модуля FvwmButtons. Приложение очень "лёгкое", файл конфигурации достаточно легко читается, особенно по сравнению с xml или кодом на lua или haskel. | ||
- | <note> | + | Одно из основных отличий fvwm от других оконных менеджеров - по умолчанию он не предоставляет пользователю практически ничего. С другой стороны, возможности настройки настолько широки, что если вас не устраивает fvwm, то пора задуматься о написании собственного менеджера окон. |
- | Эта статья помечена как незаконченная. См. заметку в конце статьи. | + | |
- | </note> | + | |
- | FVWM - оконный менеджер, предоставляющий пользователю возможность самостоятельно настроить все возможные аспекты управления окнами в соответствии со своими представлениями об удобстве. В fvwm можно реализовать такие вещи, как открытие окон с произвольными размерами и координатами на определённом рабочем столе, большое количество чувствительных к контексту сочетаний клавиш для любых операций, до десяти кнопок в заголовке окна, которым можно назначить произвольные действия, меню, в том числе динамически генерируемые меню, меню, генерируемые с помощью скриптов (как pipe-menu в openbox) и tear-off меню, разные обои на разных рабочих столах, группировка окон со вкладками в заголовке окна, помещение окон в произвольные слои, заголовок окна на любой из сторон окна, стили оформления окон, возможность добавления своих элемнтов интерфейса с помощью модуля FvwmButtons. Приложение очень "лёгкое", файл конфигурации достаточно легко читается, особенно по сравнению с xml или кодом на lua или haskel. | + | ===== Общие принципы настройки ===== |
- | {{:wiki:fvwm.png?500|}} | + | Возможно, лучший способ понять принципы настройки fvwm - думать о нём как о специализированном языке программирования высокого уровня. |
+ | Как любой язык программирования, fvwm предоставляет пользователю **команды** для управления окнами и элементами интерфейса, **управляющие структуры** и возможность написания собственных **функций**. Существует несколько **библиотек** - модулей. Команды и функции привязываются к различным событиям от устройств ввода - клавиатуры и мыши. Полное описание всех команд и функций занимает около двухсот страниц, в этой статье мы попытаемся рассмотреть практические аспекты программирования fvwm и создать окружение, напоминающее openbox с заимствованием нескольких удачных рещений из других оконных менеджеров. | ||
+ | ===== Команды ===== | ||
+ | Команды позволяют двигать окна, изменять их размеры | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | {{:wiki:fvwm.png?500|}} | ||
Строка 17: | Строка 28: | ||
- | ===== Практические советы ===== | ||
- | Несколько советов по настройке fvwm, которые могут помочь в настройке, улучшить читаемость и переносимость конфигурационного файла, задействовать полезные функции fvwm. | ||
- | * Удобно разнести настройки, отвечающие за разные аспекты поведения wm по разным конфигурационным файлам и объединить их с помощью функции ''Read'' - это облегчит чтение конфигурационных файлов, внесение в них изменений по ходу работы и обмен интересными вариантами настройки. В последствии можно будет создать меню настроек fvwm, где каждый пункт будет ссылаться на соответствующий конфигурационный файл. | ||
- | * В процессе настройки полезно добавить горячие клавиши для ''FvwmIdent'' и ''FvwmConsole'' - первая функция позволяет вызвать информацию об окне - слой, геометрия, тип и т.д., а вторая - вводить команды fvwm в специальной консоли. | ||
- | * Если вы хотите использовать в своей конфигурации fvwm скрипты в меню, подобные pipe-scripts в [[openbox]], такие меню имеет смысл делать динамически генерируемыми. Синтаксис такого меню: | ||
- | <code> | ||
- | #Создаём меню и объявляем его динамически воссоздаваемым функцией MakeBasicMenu | ||
- | AddToMenu Basic Basic title | ||
- | + DynamicPopupAction Function MakeBasicMenu | ||
- | #Добавляем пункты меню | ||
- | AddToFunc MakeBasicMenu | ||
- | + I DestroyMenu recreate Basic | ||
- | + I AddToMenu Basic "Gedit" Exec exec gedit | ||
- | + I AddToMenu Basic "Firefox" Exec exec firefox | ||
- | </code> | ||
* В репозитариях Ubuntu нет неофициального пакета [[fvwm-patched]] - fvwm 2.5.28 с набором патчей, но исходники без проблем компилируются. | * В репозитариях Ubuntu нет неофициального пакета [[fvwm-patched]] - fvwm 2.5.28 с набором патчей, но исходники без проблем компилируются. | ||
* Для того, чтобы нажатие <key>NumLock</key> не приводило к сбросу ваших настроек, добавьте в свой конфигурационный файл строку, заставляющую fvwm не считать <key>NumLock</key> модификатором: | * Для того, чтобы нажатие <key>NumLock</key> не приводило к сбросу ваших настроек, добавьте в свой конфигурационный файл строку, заставляющую fvwm не считать <key>NumLock</key> модификатором: |