FVWM Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:fvwm [2011/04/02 23:21]
[Сочетания клавиш]
wiki:fvwm [2011/04/02 23:52] (текущий)
[FVWM]
Строка 1: Строка 1:
 +<note warning>​Статья в переработке до середины апреля. ​
 +tartan</​note>​
 +
 ====== FVWM ====== ====== FVWM ======
- 
-<​note>​ 
-Эта статья помечена как незаконченная. См. заметку в конце статьи. 
-</​note>​ 
- 
 FVWM - оконный менеджер,​ предоставляющий пользователю возможность самостоятельно настроить все возможные аспекты управления окнами в соответствии со своими представлениями об удобстве. В fvwm можно реализовать такие вещи, как открытие окон с произвольными размерами и координатами на определённом рабочем столе, большое количество чувствительных к контексту сочетаний клавиш для любых операций,​ до десяти кнопок в заголовке окна, которым можно назначить произвольные действия,​ меню, в том числе динамически генерируемые меню, меню, генерируемые с помощью скриптов (как pipe-menu в openbox) и tear-off меню, разные обои на разных рабочих столах,​ группировка окон со вкладками в заголовке окна, помещение окон в произвольные слои, заголовок окна на любой из сторон окна, стили оформления окон, возможность добавления своих элемнтов интерфейса с помощью модуля FvwmButtons. Приложение очень "​лёгкое",​ файл конфигурации достаточно легко читается,​ особенно по сравнению с xml или кодом на lua или haskel. FVWM - оконный менеджер,​ предоставляющий пользователю возможность самостоятельно настроить все возможные аспекты управления окнами в соответствии со своими представлениями об удобстве. В fvwm можно реализовать такие вещи, как открытие окон с произвольными размерами и координатами на определённом рабочем столе, большое количество чувствительных к контексту сочетаний клавиш для любых операций,​ до десяти кнопок в заголовке окна, которым можно назначить произвольные действия,​ меню, в том числе динамически генерируемые меню, меню, генерируемые с помощью скриптов (как pipe-menu в openbox) и tear-off меню, разные обои на разных рабочих столах,​ группировка окон со вкладками в заголовке окна, помещение окон в произвольные слои, заголовок окна на любой из сторон окна, стили оформления окон, возможность добавления своих элемнтов интерфейса с помощью модуля FvwmButtons. Приложение очень "​лёгкое",​ файл конфигурации достаточно легко читается,​ особенно по сравнению с xml или кодом на lua или haskel.
  
-{{:wiki:fvwm.png?500|}}+Одно из основных отличий ​fvwm от других оконных менеджеров - по умолчанию он не предоставляет пользователю практически ничего. С другой стороны,​ возможности настройки настолько широки,​ что если вас не устраивает fvwm, то пора задуматься о написании собственного менеджера окон.
  
 +===== Общие принципы настройки =====
  
 +Возможно,​ лучший способ понять принципы настройки fvwm - думать о нём как о специализированном языке программирования высокого уровня.
  
 +Как любой язык программирования,​ fvwm предоставляет пользователю **команды** для управления окнами и элементами интерфейса,​ **управляющие структуры** и возможность написания собственных **функций**. Существует несколько **библиотек** - модулей. Команды и функции привязываются к различным событиям от устройств ввода - клавиатуры и мыши. Полное описание всех команд и функций занимает около двухсот страниц,​ в этой статье мы попытаемся рассмотреть практические аспекты программирования fvwm и создать окружение,​ напоминающее openbox с заимствованием нескольких удачных рещений из других оконных менеджеров.
  
 +===== Команды =====
  
 +Команды позволяют двигать окна, изменять их размеры
  
  
-==== Внешний вид окон ==== 
  
-В FVWM вы можете задавать внешний вид окон через цветовые схемы и изображения. В качестве первого примера рассмотрим простой дизайн окон без картинок. Для начала зададим колорсеты,​ определяющие базовые цвета, которые мы будем использовать. Колорсеты могут быть использованы для задания цветов всего, чего угодно,​ в FVWM. Следующий кусок конфига задаёт три простых колорсета:​ 
  
-<​file>#####​ 
-# Window Colorsets 
-########### 
-Colorset 3 fg #101060, bg #e6e7d7 
-Colorset 4 fg Black, bg #a6a797 
-Colorset 5 fg White, bg Black</​file>​ 
  
-Это задаёт три колорсета с номерами 3, 4 и 5, которые имеют цвет текста (foreground,​ fg) и цвет фона (background,​ bg). Цвета могут быть заданы в hex-нотации или псевдонимами X, записанными в ''/​etc/​X11/​rgb.txt''​. +{{:wiki:fvwm.png?500|}}
-===== Настройка ====== +
-====Клавиатура и мышь ==== +
- +
-Сочетание клавиш для fvwm - это заданное пользователем действие,​ выполняемое при нажатии клавиши (или кнопки мыши) в определённом контексте,​ с определённым модификатором,​ несколькими модификаторами или без модификаторов и в зависимости от имени окна. +
- +
-Поддержка контекста для хоткеев и кнопок мыши - важная и удобная черта любого wm, именно благодаря ей правый клик по содержимому окна отличается от правого клика по его заголовку или по рабочему столу, а сочетания клавиш wm не конфликтуют с сочетаниями клавиш в приложениях. +
- +
-fvwm понимает следующие контексты:​ +
- +
-''​R''​ - рабочий стол\\ +
-''​I''​ - иконка\\ +
-''​F''​ - углы декорации окна\\ +
-''​S''​ - стороны декорации окна\\ +
-''​T''​ - заголовок окна\\ +
-''​W''​ - окно приложения\\ +
-''​0-9''​ - кнопки\\ +
-''​M''​ - меню\\ +
-''​A''​ - любое место на десктопе\\ +
- +
-{{:wiki:window_layout.png|}} +
- +
-Контексты можно комбинировать между собой: ''​FSTW'',​ ''​WT'',​ ''​FS''​. +
- +
-Модификаторами могут служить клавиши <​key>​Ctrl</​key>,​ <​key>​Shift</​key>,​ <​key>​Super</​key>​ и т.д. +
- +
-Модификаторы,​ понимаемые fvwm и их обозначения в конфигурационном файле:​ +
- +
-<​key>​Ctrl</​key>​ - ''​С''​\\ +
-<​key>​Super</​key>​ - ''​4''​\\ +
-<​key>​Alt</​key>​ - ''​1''​\\ +
-<​key>​Shift</​key>​ - ''​S''​\\ +
-<​key>​Caps Lock</​key>​ - ''​L''​\\ +
-<​key>​Num Lock</​key>​ - ''​2''​\\ +
- +
-Модификаторов может быть несколько:​ ''​C1'',​ ''​CS'',​ ''​C4''​. +
- +
-Поскольку клавиши <​key>​Caps Lock</​key>​ и <​key>​Num Lock</​key>​ являются модификаторами,​ при включении цифровой клавиатуры или верхнего регистра они считаются fvwm нажатыми,​ что приводит к некорректной работе (сбросу настроек клавиатуры,​ мыши и политики фокуса на дефолтные). Для того, чтобы этого избежать,​ нужно добавить в конфигурационный файл строку +
- +
-<​code>​IgnoreModifiers 2L</​code>​ +
- +
- +
-Кроме всего перечисленного,​ fvwm может принимать во внимание название активного окна, оно указывается в скобках после ''​Key''​ или ''​Mouse'',​ можно использовать wildcards (*). +
- +
-В качестве действия можно указывать любую команду fvwm - ''​Exec'',​ ''​Function'',​ ''​PipeRead'',​ ''​Restart''​ и т.д. +
- +
-Таким образом,​ сочетания клавиш задаются так: +
- +
-Key/Mouse (Окно) Клавиша/​Кнопка Контекст Модификатор Действие +
- +
-Несколько примеров:​ +
- +
-Список окон по <​key>​Alt-Tab</​key>​ +
-<​code>​Key Tab A 1 WindowList Root NoGeometry</​code>​+
  
-Закрытие окна по левому клику на крайней правой кнопке декорации 
-<​code>#​Функция 
-DestroyFunc DeleteWin 
-AddToFunc DeleteWin 
-+ I Delete 
  
-#Вызов функции 
-Mouse 1 2 N DeleteWin</​code>​ 
  
  
-Меню по правому клику на рабочем столе 
-<​code>​Mouse 3 R N Menu MainMenu</​code>​ 
  
-При активном окне браузера вызвать ​ gmrun по <​key>​Ctrl-Alt-Z</​key>​ 
-<​code>​Key (*Namoro*) Z A C1  Exec exec gmrun</​code>​ 
  
-===== Практические советы ===== 
  
-Несколько советов по настройке 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>​ модификатором:​