Функции.

Все действия в FVWM, будь то разворот окна на весь экран, сворачивание окна, или запуск какой-либо программы (а то и все это одновременно) суть функции. И их также нужно объявлять (если, конечно, функция состоит более, чем из одного действия): DestroyFunc deiconify-and-focus AddToFunc deiconify-and-focus + "I" Iconify -1 # Разворачиваем окно из иконки + "I" Focus # Переносим на него фокус

Вызываются функции следующим образом: DestroyMenu Window-Ops AddToMenu Window-Ops + "&Переместить" Move + "&Изменить размер" Resize + "Свернуть/развернуть" Maximize 100 100 + "" Nop + "Переместить на..." Popup Move-Window + "" Nop + "Сделать нечто" My-func-name + "" Nop + "Destroy" Destroy + "&Close" Close Если это меню связано с каким-либо окном (см. следующий подраздел), то функции вызываются применительно к нему, иначе FVWM попросит вас уточнить какое из окон вы имеете в виду.

Полный список поддерживаемых функций, конечно же содержится в man-странице FVWM, но все же перечислю наиболее (на мой взгляд) интересные:

Move, Resize
 -- Соответственно перемешает, и изменяет в размере окно. Без параметров может использоваться как мышь, так и клавиатура. В качестве параметров можете указать x и y координаты для немедленного перемещения/изменения. Пример: # Интерактивное перемещение Move # Переместить вверх-лево на 10% и 10% Move 10 10 # Аналогично, но пикселей. Move 10p 10p # Переместить окно в правый-нижний угол экрана Move -0 -0 # Перемещаем на 5% в право и на середину по вертикали Move w+5 50 # Перемещаем окно к точке положения курсора Move m+0 m+0 # 80 на 24 символа Resize 80c 24c # Максимизирует Resize 100 100 Также можете воспользоваться командой AnimatedMove для анимированного перемещения.

Maximize
 -- Изменяет размер окна к указанному параметром. Например: # Максимизация по вертикали Maximize 0 100 # Максимизация до размера половины экрана Maximize 50 50 # Разворачивает окно, оставляя на экране еще 60 пикселей Maximize 100 -60p

Iconify
 -- Сворачивает окно в иконку, либо разворачивает его из иконки. Параметром может быть желаемое состояние (True|False).

GotoDesk, GotoPage
 -- Соответственно переход к соответствующему деку, или странице. Дек может содержать несколько страниц. Геометрия двумерная, число деков определяется параметрами модуля Pager, размер дека параметром DeskTopSize. Пример: # Размер дека 2x2 # Вообще же число страниц может быть до 4 миллиардов :o) DeskTopSize 2x2 # Переходим на страницу GotoPage 1 1 # Или дек GotoDesk 0 0 # Перемещаем текущее окно (сами не переходим) MoveToPage 1 1 # Или на дек (и текущую по номеру страницу) MoveToDesk 0 0

Layer
 -- Уровень окна. Более высокие по уровню окна заведомо перекрывают более низкие (не зависимо от фокуса). Пример: # Повышаем уровень текущего окна. Layer 1 0 # Устанавливаем его уровень в 1 Layer 0 1

Delete, Destroy, Close
 -- Соответственно пытаемся вежливо закрыть текущее окно, принудительно, или сначала первым способом, а в случае неудачи -- вторым.

Exec
 -- Запустить указанное приложение. Например: # Редактируем настроечный файл Exec exec gvim /home/nik/.fvwm/.fvwm2rc

Popup
 -- Выводим меню. Учтите, что окна по умолчанию вызываются по положению курсора, но могут быть и привязаны к любому элементу интерфейса (как к соответствующей точке отсчета). Пример: # Выводим главное меню Popup /Debian # Выводим меню Window-Ops, в верхнем-левом # углу заголовка Popup Window-Ops Title o0 o0

Copyleft © 2002-2003 г.   Nikolay A. Panov, "Intro To Linux" (orig),  niksite@mail.ru,  ICQ: 122-40-8888