The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Каталог документации / Раздел "Документация для Linux" / Оглавление документа

События.

Само собой разумеется, что вызов любой функции можно привязать к наиболее интуитивному для вас событию. События могут поступать, например, от клавиатуры и мыши. Синтаксис в обоих случаях (а они не единственны -- читайте документацию) одинаков: 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




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру