Само собой разумеется, что вызов любой функции можно привязать к наиболее интуитивному для вас событию. События могут поступать, например, от клавиатуры и мыши. Синтаксис в обоих случаях (а они не единственны -- читайте документацию) одинаков: Key Keyname Context Modifiers Function и Mouse Button Context Modifiers Function соответственно. Keyname соответствует название интересующей вас клавиши (что выдает, например, программа xev), например, Multi_key. Context означает контекст события, то есть то место, где находился фокус во время события. Это может быть ``R'' для ``рабочего стола'', ``W'' для окна приложения, ``D'' для дектопного приложения (например, Nautilus), ``T'' для заголовка окна, ``S'' для границы окна (``['',``]'',``-'' и ``_'' для каждой границы соответственно), ``F'' для уголка границы (соответственно ``<'', ``^'', ``>'' и ``v''), ``I'' для иконки окна и цифры от 0 до 9 для соответствующих им кнопок заголовка. Естественно, вы можете указывать одновременно несколько контекстов (например, ``FST''). Модификатором может служить любая не запрещенная вами (по умолчанию запрещена Caps-Lock) клавиша-модификатор, например ``C'' соответствует Ctrl, ``S'' -- Shift, ``M'' -- Meta (обычно Alt), ``L'' -- Caps-Lock (если вы отмените его игнорирование), ``N'' -- если ваше событие должно выполняться только при выключенных модификаторах и ``A'' для любого модификатора.
Как видите все очень просто.
Пример:
# Выводим меню выбора параметров окна по привычной
# клавише, либо по правой (третьей) кнопке мыши на
# заголовке
Key Menu W N Popup Window-Ops Title o0 o0
Mouse 3 T A Popup Window-Ops
# Выводим главное меню по правой Win-кнопке
Key Multi_key A N Popup /Debian
# По Ctrl+TAB, или средней кнопке на ``рабочем столе''
# список окон
Mouse 2 R A WindowList \
NoGeometryWithInfo NoCurrentDeskTitle
Key TAB A C WindowList Root o70 o30 \
NoGeometryWithInfo NoCurrentDeskTitle
# Ctrl-Esc для закрытия окна (ИМХО интуитивнее Alt+F4)
# А по Ctrl+Shift+Esc закрываем все окна данного класса
Key Escape A C Close
Key Escape A CS Pick All ($c) Close
# Для перемещения окна удерживая Alt
# хватаем его правой кнопкой мыши и тащим...
# Для изменения размера --- средная кнопка
Mouse 3 W M Move
Mouse 2 W M Resize
Если вам не по нраву то, что в число модификаторов разработчики FVWM включили NumLock и ScrollLock, то (конечно же) это легко исправить командой IgnoreModifiers L25
Но и это не все! Как вам возможность изобразить курсором мыши некоторую фигуру, нажать некую кнопку и тем самым запустить ассоциированную с данной фигурой и кнопкой функцию? Подробности читайте в документации. Пример, запускающий Netscape, при рисовании буквы ``N'' и правой кнопке мыши: Stroke 7415963 3 R N Exec exec netscape...
Copyleft © 2002-2003 г. Nikolay A. Panov, "Intro To Linux" (orig), niksite@mail.ru, ICQ: 122-40-8888 |