Библиотека сайта rus-linux.net
Оконный менеджер fvwm ==================================================================== С О Д Е Р Ж А Н И Е 1. ОПИСАНИЕ 2 2. СПЕЦИАЛЬНОЕ ЗАМЕЧАНИЕ ДЛЯ ПОЛЬЗОВАТЕЛЕЙ XFREE86 2 3. АВТОРСКИЕ ПРАВА 3 4. АНАТОМИЯ ОКОН 3 5. ВИРТУАЛЬНЫЙ ДЕСКТОП 4 6. ИНИЦИАЛИЗАЦИЯ 6 7. ФОРМА ОКОН 6 8. ИКОНКИ 6 9. МОДУЛИ 7 10. СОВМЕСТИМОСТЬ С ICCCM 8 11. M4 ПРЕПРОЦЕССИНГ 8 12. ОПЦИИ 12 13. ВСТРОЕННЫЕ ФУНКЦИИ 39 1. ОПИСАНИЕ Fvwm является оконным менеджером для X11. По сути, зто производная от twm, настроенная на минимальное использование памяти, рисующая объемные рамки для окон и обеспечивающая простой виртуальный десктоп. Объем расходуемой памяти оценивается от половины до трети объема памяти, расходуемой в twm, что достигается в основном переопределением twm-овского метода работы с мышью. Кроме того, удалено много настраеваемых параметров из twm. Имя "FVWM" должно было что-то символизировать (Feeble - слабый, Famous - знаменитый, Foobar - тупое окно?). На самом деле не важно - основан этот ахроним на общности с чем-либо - или нет. 2. СПЕЦИАЛЬНОЕ ЗАМЕЧАНИЕ ДЛЯ ПОЛЬЗОВАТЕЛЕЙ XFREE86 XFree86 обеспечивает виртуальный зкран, операции которого могут испытать некоторые трудности при работе совместно с fvwm. В XFree86 все окна, размещенные на виртуальном экране, в действительности находятся в видеопамяти (не зависимо от того - видно ли их на физическом зкране - или нет), так что размер виртуального экрана ограничен объемом свободной видеопамяти. В десктопе же fvwm окна не отображаемые на экране - не расходуют видеопамять. Виртуальный десктоп занимает область 32.000 на 32.000 точек, но использование десктопа в 5 раз больше чем экран наверное не практично. Следует отметить что объем используемой памяти зависит от числа открытых окон и не зависит от размера десктопа. При запуске вместе с fvwm рекомендуется отключить XFree86 виртуальный экран посредством установки размера виртуального экрана равного размеру физического экрана. После работы с fvwm Вы можете вновь включить виртуальный экран XFree86. 3. АВТОРСКИЕ ПРАВА С тех пор как fvwm использует код twm, он разделяет авторские права twm. Авторское право на fvwm 1988 года имеет Evans и Sutherland Computer Corporation, Salt Like City, Utah. Авторское право 1989 года имеет Massachusetts Institute of Technology, Cambridge, Massachusetts. Авторское право 1993 и 1994 годов имеет Robert Nation. Все права защищены. Разрешается использование, копирование, изменение и распространение этого программного продукта и этой документации с любыми целями и без оплаты, если во всех копиях в сопровождающей документации будут находиться как приведенные выше предупреждения об авторских правах так и это объявление о разрешении, и при условии что имена Evans & Sutherland и M.I.T. не используются в рекламных целях при распространении программного обеспечения без предшествующего письменного разрешения. 4. АНАТОМИЯ ОКОН Fvwm помещает декоративную границу вокруг большинства окон. Она состоит из линий с каждой стороны и из маленьких секций в виде "L" в каждом углу. Сверху находится дополнительная линия заголовка, содержащая название окна. Кроме того, в линии заголовка имеется 10 кнопок. Верхняя, нижняя и боковые линии все вместе известны как линии рамки.Угловые участки называются каркасом. Если размеры по умолчанию не менялись, нажатие кнопки мыши 1 на линии заголовка или рамке начинает операцию по перемещения окна. Нажатие кнопки 1 в любом углу каркаса начинает операцию по изменения размеров. Нажатие кнопки 2 в любом месте рамки вызывает обширный список оконных операций. На линии заголовка может находиться до десяти кнопок. Их назначение полностью определяется пользователем. По умолчанию линия заголовка имеет кнопки с каждой стороны. Левая используется для вызова списка опций окна, в котором кнопки мыши тоже используются. Правая используется для иконизации окна. Число используемых кнопок в линии заголовка зависит от действий мыши связанных с ними. См. ниже главу /Параметры конфигурации мыши/. 5. ВИРТУАЛЬНЫЙ ДЕСКТОП Fvwm обеспечивает множество виртуальных десктопов для пользователей, желающих их использовать. Экран является видимым окном в десктоп, который может быть больше экрана. Одновременно может быть доступно несколько различных десктопов (по принципу: каждому проекту - свой десктоп, или, каждому приложению - свой десктоп, причем приложения различны по внешнему виду). Так как каждый десктоп может быть больше физического экрана, то окна большие чем экран или большие группы связянных окон могут легко просматриваться. Размер виртуального десктопа может задаваться в start-up - е. Все десктопы должны быть одного размера. Общее количество различных десктопов не определено, но ограничено примерно в 4 биллиона единиц. Все окна на текущем десктопе могут быть показаны в Pager - е, в миниатюрном виде. Окна не принадлежащие текущему десктопу могут быть просмотрены вместе с их конфигурациями в списке окнон, доступном как a "всплывающее" меню. "Липкие" окна - окна которые больше чем десктоп "прилипают к стеклу экрана". Они всегда остаются на экране. Это удобно для объектов типа часов и xbiff - ов, которымы Вы только должны управлять только в одном экземпляре и он должен быть всегда доступен Вам. Конфигурация окна задаёт связь с текущим графическим устройством. Это : xterm -geometry +0+0 будет всегда видно слева-вверху в углу видимой части экрана. Разрешается определять конфигурации окон находящихся на десктопе но вне экрана. Например, если видимый экран 1000 на 1000 точек, а размер десктопа 3 на 3, и текущее графическое устройство в левом верхнем углу десктопа, тогда вызов : xterm -geometry +1000+1000 разместит окно точно за нижним правым углом экрана. Оно может быть найдено если переместить мышь за нижний правый угол зкрана, вызвав тем самым скроллинг последнего. В данный момент невозможно вызвать окно на карту десктопа иным образом. Спецификация типа : xterm -geometry -5-5 разместит окно на 5 точек левее и выше правого нижнего угла видимой части экрана. Не все приложения поддерживают конфигурации с отрицательными смещениями. Некоторые приложения, подобно xterm -у и xfontsel -у, позволяют задавать начальные спецификации десктопа в командной строке: xterm -xrm "*Desk:1" - будет запускать xterm на десктопе номер 1. Тем не менее, не все приложения поддерживают такую опцию. 6. ИНИЦИАЛИЗАЦИЯ При инициализации, fvwm ищет в файле конфигурации описания клавиш, назначения кнопок мыши и т.п. Формат этого файла будет приведен ниже. Сперва fvwm ищет фаил .fvwmrc в домашнем каталоге польдователя. В случае неудачи, fvwm попытается найти и просмотреть файл /usr/lib/X11/fvwm/system.fvwmrc с различной системной информацией. Если же и такой файл не будет найден, fvwm закончит работу. Fvwm устанавливает две переменные окружения, которые в дальнейшем наследуются его потомками. Это переменная $DISPLAY - описывающая дисплей с которым fvwm работает. $DISPLAY может иметь значение unix: 0.0 или :0.0, который работает хуже при доступе через rsh с другой машины. Переменная $HOTDISPLAY содержит сетевое описание дисплея. $HOTDISPLAY всегда используется TCP/IP протоколом доступа, так как это позволяет применять Unix-domain сокеты, которые вообще-то быстрее. 7. ФОРМА ОКОН Если Вы обычно пользуетесь окнами типа xeyes или oclock, Вам доступно несколько опций. Вы можете сделать окна совсем неоформленными (NoBorder и NoTitle, например) или Вы можете использовать конфигурацию по умолчанию и оставить её оформление, при котором видны декоративная рамка и сплошной цветной фон. Или, Вы можете скомпилировать SHAPE расширение с изменённым флагом в Makefile, в этом случае Вы получите окно без фона и с линией заголовка над окном. Расширения оконных форм увеличивают потребление памяти оконным менеджером примерно на 60K при всех неоформленных окнах, и еще немного больше при оформленных. 8. ИКОНКИ При основная конфигурации fvwm, аналогично twm, использует черно-белые графические иконки в формате bitmap. Если скомпилированы XPM расширения, то могут использоваться цветные иконки как в ctwm, MS-Windows, или Macintosh. Для этого Вам необходимо воспользоваться XPM пакетом, как это описано в Makefile.noImake и Imakefile. Если и ФОРМА и XPM выборы скомпилированы, Вы получите цветные иконки весьма специфической формы. 9. МОДУЛИ Модуль - отдельная программа выполняемая как отдельный Unix-процесс но передающая в fvwm команды на выполнение. В последующих реализациях ожидаются средства к модулям, позволяющие выделять оконную информацию из fvwm. Пользователи смогут создавать свои собственные модули с любыми жуткими или эксцентричными манипуляциями без непосредственного воздействия на целостность fvwm. Модули ДОЛЖНЫ разделяться fvwm, поэтому возможна установка двух каналов для связи fvwm с модулями. Каналы для модуля всегда могут быть открыты при его запуске, причем файл описаний каналов указывается как аргумент командной строки. Модули могут быть разделены при инициализации fvwm через опцию Module, либо в любой момент X-сессии с помощью встроенной формы Module. Они могут существовать всю X-сессию, но могут так же завершаться по выполнении какой-либо задачи. Перед окончанием работы, fvwm закрывает каналы связи с активными модулями и ожидает от модулей подтверждающего сообщения SIGCHLD, означающего что модуль обнаружил закрытие канала, после чего fvwm заканчивает работу. Если какой-либо модуль не может определить закрытие канала, fvwm ожидает подтверждения примерно 30 секунд и в любом случае заканчивает свою работу. Число одновременно выполняемых модулей ограничено максимальным числом одновременно открытых файлов, что зависит от операционной системы и обычно составляет 60 - 256 файлов. Модули просто передают текстовые команды на встроенный в fvwm интерпретатор команд. Команды имеют такой же формат как и команды работы с мышью в файле начальных установок .fvwmrc. Так же передается вспомогательная информация, что продемонстрировано в модуле-примере GoodStaff. Модуль GoodStaff имеет собственную документацию для man page. 10. СОВМЕСТИМОСТЬ С ICCCM Fvwm пытается быть совместимым с ICCCM 1.1. Что касается данного fvwm (1.20l), то обработка цветов в нем не полностью совместима с ICCCM. Кроме того, ICCCM требует предоставления приложениям возможности получать ЛЮБЫЕ строки символов, что не приемлемо при используемом подходе клавиатурных сокращений в fvwm и большинстве других оконных менеджеров. 11. M4 ПРЕПРОЦЕССИНГ При компиляции с опцией M4 fvwm использует m4(1) для преобразования своих начальных данных перед грамматическим анализом. Поэтому Вы можете пользоваться макросами m4 во время своей работы. Это весьма облегчает работу на дисплеях с различными характеристиками. Например, Вы можете задавать цвета под стать Вашему настроению. Этого можно добиться используя -m4opt. При светлом настроении используйте -m4opt -DSunny; а при темном -m4opt -DDark. Ваш файл .fvwmrc должен для этого содержать: ifdef(`Sunny',` StdForeColor Black StdBackColor LightSkyBlue HiForeColor yellow HiBackColor PeachPuff1 PagerBackColor BlanchedAlmond ') ifdef(`Dark',` StdForeColor Black StdBackColor #60a0c0 HiForeColor black HiBackColor #c06077 PagerBackColor #5c54c0 PagerForeColor orchid StickyForeColor Black StickyBackColor #60c0a0 ') В fvwm предопределены следующие символы для m4: BITS_PER_RGB Число значащих бит в RGB цвете.(Равно двоичному логарифму от числа всех возможных цветов. Которое, вообще-то, отличется от числа цветов которые можно одновременно показать на экране.) CLASS Класс Вашего изображения. Может возвращать одино из значений: StaticGray, GrayScale, StaticColor, PseudoColor, TrueColor, DirectColor, или, при невозможности определить, NonStandard. CLIENTHOST Машина на которой выполняются клиенты. COLOR Это просто сокращение от определения CLASS-а. Возвращает 'Yes' для *Color и 'No' для StaticGray и GrayScale. FVWMDIR Устанавливает путь где хранятся конфигурации для инсталяции модулей. FVWM_VERSION Строка с версией fvwm. HEIGHT Высота Вашего дисплея в точках. HOME Пользовательский домашний каталог. Получается из переменной окружения. HOSTNAME Канонизированное имя хоста для выполнения приложений-клиентов (т.е. CLIENTHOST с полной квалификацией). OPTIONS Строка опций используемых при компиляции. Опции разделены пробелами. PLANES Число битовых плоскостей Вашего дисплея поддерживаемое стандартным главным окном. RELEASE Номер выпуска Вашего X-сервера. Для MIT X11R5 оно равно 5. REVISION Проверка X-протокола низкого уровня. См. так же ProtocolRevision(3). SERVERHOST Переменная с именем машины на которой работает X-сервер. TWM_TYPE Сообщает какой потомок twm работает. Для этой программы всегда должна быть равна строке "fvwm". Используется для защиты частей Вашего .twmrc файла которые fvwm не может правильно интерпретировать (типа WorkSpace) и которые используются другими twm программами. USER Имя пользователя, запустившего программу. Получается из переменной окружения. VENDOR Поставщик вашего X-сервера. Например: MIT X Consortium. VERSION Версия X-протокола высокого уровня. Смю так же ProtocolVersion(3). WIDTH Ширина Вашего дисплея в точках. X_RESOLUTION Разрешение Вашего дисплея по оси X в точках на метр. Y_RESOLUTION Разрешение Вашего дисплея по оси Y в точках на метр. Хорошо изучив руководство по m4(1), Вы поймете что это весьма мощное и полезное средство. Но если Вы используете хотя бы один из предопределенных символов m4 - Вы находитесь в серьезной опасности! Например, Sun-овский m4 предопределяет имя include, и если Вы используете это имя в Вашем .fvwmrc файле - Вам не повезло. Правильное решение этой проблемы состоит в установке кавычек вокруг слова 'include'. Для иной интерпретации кавычек в m4 применяются опции -m4-squote и -m4-equote. Во избежание недоразумений должны быть заданы обе опции. При их задании, поправка в интерпретации макросов произойдет до обработки пользовательского .fvwmrc фаила. ВНИМАНИЕ: Некоторые версии m4 по разному интерпретируют кавычки при включении файлов. В SunOS 4.1.3, например, в строке "include(<file>>)" кавычки выглядят как "<" и ">>" вокруг имени включаемого файла. Fvwm этого не понимает. В GNU m4 есть дополнительные опции. При запуске fvwm со спецификацией -m4-prefix, m4 добавляет префикс m4_ ко всем встроенным макросам m4. Таким образом, например, include превращается в m4_include. Возможности при препроцессировании m4 зависят от компиляции определений M4. 12. ОПЦИИ Fvwm распознает в командной строке следующие опции: -f config_file Задает config_file файл конфигурации оконного менеджера в пользовательском домашнем каталоге. По умолчинию используется .fvwmrc файл. -debug Назначает синхронный режим X-транзакций. Весьма замедляет работу, но гарантирует что все сообщения об ошибках внутри fvwm будут корректны. -d displayname Назначает работу с дисплеем с именем "displayname" вместо дисплея с именем полученным из переменной окружения $DISPLAY. -s В многоэкранном дисплее, fvwm запустится только на экране с именем полученном из переменной среды $DISPLAY или из опции -d. По умолчанию, fvwm пытается запуститься на всех экранах многоэкранного дисплея. -version Выдает версию fvwm на устройство stderr. Следующие опции доступны только если fvwm компилировался с M4 опциями. -no-m4 Не использовать препроцессирование m4 файла .fvwmrc. По умолчанию используется препроцесс m4(1) файла настроек. -m4-prefix Если доступен GNU m4, всем встроенным командам m4 добавляется префикс m4_. -m4opt option Передает опции option в m4. Опцией может быть строка из любых символов без пробелов. Могут попадаться одинаковые опции. При использовании GNU m4 НЕ ПЕРЕДАВАЙТЕ здесь -P опции. Вместо этого используйте -m4-prefix. -m4-squote string Использует полученную строку string как символ открывающих кавычек. Употребляется в паре с опцией -m4-equote. -m4-equote string Использует полученную строку string как символ закрывающих кавычек. Употребляется в паре с опцией -m4-squote. -m4prog path Задает через путь path место нахождения желаемого m4 препроцессора. По умолчанию, m4prog установлен в "m4" который должен находиться в пользовательских путях. Позволяет явно задавать m4 необходимой версии. Файлы конфигурации Файл конфигурации используется для описяния работы с мышью, цветов, размера виртуального экрана, и связанных объектов. В этой части описываются опции конфигурации. Fvwm игнорирует линии начинающиеся с '#'. В линиях начинающихся с '*' скорее ожидаются команды для конфигурации модуля чем для самого fvwm непосредственно. AppsBackingStore Заставляет сохраняться окна приложения. Эта опция ставит под угрозу ICCCM-соглашения в оконном менеджере. Хотя скорость на X-терминале (где весьма накладно перерисовывать окна) может увеличиться, эта опция не помогает на регулярной рабочей станции. AutoRaise delay Разрешает авто-активизацию окон и задает время задержки между получением фокуса ввода и авто-активизацией. Эта опция работает в режиме последовательной фокусировки мышью, и в режиме перключения фокуса ввода с помощью внутреннего декоративного окошка. Вы можете запретить активизацию окна для режима переключения фокуса, если зададите отрицательное время задержки. BackingStore Заставляет сохраняться fvwm-оформление. См. так же AppsBackingStore. BoundaryWidth Width Задает ширину линий в оформлении окон. По умолчанию равно 6 точек. Команда Style обеспечивает другой (более общий) метод определения BoundaryWidth. ButtonStyle button# WidthxHeight Определяет прямоугольную декоративную форму, используемую кнопками линии заголовка. button# - номер кнопки линии заголовка - от 0 до 9. Описание номеров кнопок линии заголовка дается за "секцией мыши". Ширина и высота задаются, соответственно, в процентах от полной используемой ширины и полной используемой высоты кнопки. Отрицательные числа приводят к инвертированию тени. Кроме того, в линии типа: ButtonStyle : 2 4 50x30@1 70x70@0 30x70@0 50x30@1 - оформление кнопки 2 будет происходить по образцу из 4-х пунктов, состоящему из линий от (x=50,y=30) до (70,70) с теневым цветом (@0), далее до (30,70) с теневым цветом, и до (50,30) с основным цветом (@1). Не очень пышно? См. пример system.fvwmrc. CenterOnCirculate При смене окон, страница десктопа содержащая окно, на которое перемещается указатель, выбирается автоматически. Если CenterOnCirculate выбран, fvwm наилучшим способом сосредотачивается на окне viewport-а десктопа, а не просто подымает ближайшую страницу. CirculateSkip windowname Заставляет функции circulate-up или circulate-down пропускать окна с обозначенным именем. Windowname может быть именем окна или класса. Команда Style обеспечивает другой (более общий) метод определение CirculateSkip. CirculateSkipIcons Заставляет операции смены и изменения пропускать иконизированные окна. ClickTime delay Определяет максимальную задержку delay ( в миллисекундах ) между нажатием и отжатием кнопки для встроеной функции работы мышью. Задержка по умолчанию состовляет 150 милисекунд. ClickToFocus Обычно ввод с клавиатуры направлен в окно, на котором находится указатель мыши. Если эта опция установлена, ввод с клавиатуры остается в окне пока не случится щелчек мыши при указателя, находящемся в ином окне. Cursor cursor_num cursor_type Эта опция весьма неуклюже изменяет стиль курсора. Параметр cursor_num сообщает, который курсор Вы изменяете. Он является одним из ниже-перечисленных номеров от 0 до 16: 0 POSITION - используется при начальном размещении окон. 1 TITLE - используется в линии заголовка окна. 2 DEFAULT - используется в окнах, не устанавливающих свой собственный курсор. 3 SYS - используется в одной из кнопок линии заголовка. 4 MOVE - используется при операциях перемещения или изменения размера окон. 5 WAIT - используется во время выполнения какой-либо внутренней команды. 6 MENU - используется в меню. 7 SELECT - используется для различных встроенных комманд типа иконизации. 8 DESTROY - используется для уничтожения и удаления встроенных обьектов. 9 TOP - используется в линии верхней стороны окон. 10 RIGHT - используется в линии правой стороны окна. 11 BOTTOM - используется в линии нижней стороны окна. 12 LEFT - используется в линии левой стороны окна. 13 TOP_LEFT - используется в верхнем левом углу окна. 14 TOP_RIGHT - используется в верхнем правом углу окна. 15 BOTTOM_LEFT - используется в нижнем левом углу окна. 16 BOTTOM_RIGHT - используется в нижнем правом углу окна. Параметр cursor_type сообщает номер используемой форма курсора. Возможные номера могут быть найдены в файле /usr/include/X11/cursorfont.h. В настоящее время возможны следующие типы курсора с номерами между 0 и 152: 0 X_cursor 2 arrow 4 based_arrow_down 6 based_arrow_up 8 boat 10 bogosity 12 bottom_left_corner 14 bottom_right_corner 16 bottom_side 18 bottom_tee 20 box_spiral 22 center_ptr 24 circle 26 clock 28 coffee_mug 30 cross 32 cross_reverse 34 crosshair 36 diamond_cross 38 dot 40 dotbox 42 double_arrow 44 draft_large 46 draft_small 48 draped_box 50 exchange 52 fleur 54 gobbler 56 gumby 58 hand1 60 hand2 62 heart 64 icon 66 iron_cross 68 left_ptr 70 left_side 72 left_tee 74 leftbutton 76 ll_angle 78 lr_angle 80 man 82 middlebutton 84 mouse 86 pencil 88 pirate 90 plus 92 question_arrow 94 right_ptr 96 right_side 98 right_tee 100 rightbutton 102 rtl_logo 104 sailboat 106 sb_down_arrow 108 sb_h_double_arrow 110 sb_left_arrow 112 sb_right_arrow 114 sb_up_arrow 116 sb_v_double_arrow 118 shuttle 120 sizing 122 spider 124 spraycan 126 star 128 target 130 tcross 132 top_left_arrow 134 top_left_corner 136 top_right_corner 138 top_side 140 top_tee 142 trek 144 ul_angle 146 umbrella 148 ur_angle 150 watch 152 xterm DecorateTransients Заставляет временные окна, которые обычно остаются не оформленными, принимать стандартное оформление окон в fvwm. Обратите внимание что некоторые всплывающие окна, типа xterm меню, не управляются оконным менеджером и не изменяют своего оформления. DeskTopScale Scale Определяет масштаб виртуального десктопа относительно экрана. DeskTopSize HorizontalxVertical Определяет размер виртуального десктопа в единицах физического размера экрана. DontMoveOff Запрещает окнам перемещаться или исчезать на десктопе. Некоторые программы будут некорректно работать с этой опцией. Она только сохраняет окна от полной потери за краем десктопа. Опция настаивает на сохранении на десктопе хотя бы 16 точек окна но не заботится о хранении окна в целом. См. EdgeResistance если Вы не хототе видеть на экране куски окон. EdgeResistance scrolling moving Сообщает, как быстро должен скроллироваться экран десктопа при перемещении указателя мыши за край экрана, и как быстро должны перемещаться окна за край экрана. Первый параметер сообщает время задержки в миллисекундах между достижением указателем мыши края экрана и началом скроллинга экрана посредством fvwm. Это предназначено для людей, использующих "EdgeScroll 100 100" но, тем не менее, не желающих, чтобы их окно случайно перелистывалось. Второй параметр сообщает сколько точек должно попасть за край экрана при движении окна, прежде чем оно фактически переместится частично за экран. Обратите внимание что с "EdgeScroll 0 0 " все еще возможно перемещать окна или менять их размер поперек края текущего экрана. При создании первого параметра EdgeResistance 10000 этот тип перемещения невозможен. При EdgeResistance меньше чем 10000 но больше чем 0 перемещение по страницам становится просто трудным но возможным. EdgeScroll horizontal vertical Определяет величину скроллинга страницы в процентах от её размера при достижении курсором края страницы. Если Вы не хотите использовать подобный эффект - включите "EdgeScroll 0 0" в Ваш .fvwmrc файл. Если же Вы хотите листать постранично - используйте "EdgeScroll 100 100". И horisontal и vertical должны быть положительными числами. Если horisontal и vertical проценты умножены 1000 тогда скроллинг будет закрывать край десктопа. Если используется "EdgeScroll 100000 100000", fvwm будет скроллировать целые страницы, закрывающие край десктопа. Font fontname Устанавливает для fvwm шрифт fontname вместо шрифта "fixed" в меню, индикаторах изменения размера, и метках иконок (если IconFont не задан). Function FunctionName Начинает определение сложной функции, состоящей из встроеных функций fvwm, которая позже будет обрабатывать кнопку мыши или клавишу клавиатуры. Имя FunctionName должно быть заключено в кавычки. Составляющие функции содержатся на строках, следующих после строки с ключевым словом Function. Определение заканчивается ключевым словом EndFunction. Составляющие функции определяются как показано в следующем примере. В каждой строке первым словом является имя встроенной функции, которая будет выполняться, за ней следует (заключенный в кавычки) тип события активирующего данную встроенную функцию, и далее записываются любые аргументы необходимые этой функции. Меню могут быть определены посредством встроенного Popup так же как было определено ранее в файле конфигурации. Распознаются следующие действия: Immediate - немедленное, Motion - перемещение мыши, Click - однократный и DoubleClick - двукратный щелчек кнопкой мыши. Для немедленного действия fvwm активирует функцию, даже если окно не было выделено. Если же действе не немедленное,fvwm будет ожидать от пользователя либо щелчка, либо двойного щелчка кнопкой мыши, либо перемещения мыши. Так, например, если была организована обработка кнопки 1 в линии заголовка окна, то при нажатии кнопки 1, fvwm будет ожидать отжатия кнопки в течение 150 миллисекунд. Если кнопка не будет отжата, fvwm начнет операцию перемещения. Вызванная операция будет завершена по окончании перемещения. Если будет замечено отжатие кнопки, fvwm подождет еще 150 миллисекунд до следующего щелчка. Если окажется замеченным только один щелчек, окно будет активировано. Если замечены два щелчка, окно будет поочередно активировано и дезактивировано. 150 миллисекундная продолжительность задержки может быть изменена с помощью опции ClickTime. Function "Move-or-Raise" Move "Motion" Raise "Motion" Raise "Click" RaiseLower "DoubleClick" EndFunction Концепция одинарного и двойного щелчков не использует комбинаций клавиш клавиатуры. Существуют две специальные функции: InitFunction и RestartFunction. InitFunction вызывается при запуске fvwm в начале любой X-сессии и может использоваться при запуске модулей, установке образцов фона, и в начале программ. RestartFunction вызывается при перезапуске fvwm. Она может использоваться при запуске модулей и установке образцов фона, но, вероятно, не может применяться в начале программ. HiBackColor colorname Устанавливает цвет фона colorname для активного окна. При работе с монохромным монитором эта опция игнорируется и используется белый цвет фона. HiForeColor colorname Устанавливает цвет colorname для элементов активного окна. При работе с монохромным монитором эта опция игнорируется и используется черный цвет. Icon windowname bitmap-file Определяет картинку в формате bitmap используемую при иконизации данного окна. Имя windowname может быть именем окна приложения или именем класса и должно быть заключено в кавычки. Имя bitmap-file должно быть именем файла в стандартном X11 bitmap формате либо с указанием полного пути доступа к нему, либо находящегося в путях IconPath или PixmapPath. Определенные bitmap/pixmap предпочтительно используются для разного рода иконок поставляемых самим окном. Если fvwm компилируется с поддержкой XPM для цветных иконок то bitmap может быть XPM pixmap файлом. Имя windowname - должно быть заключено в двойные кавычки, но bitmap-file - не должно. Переменные среды не длжны использовать bitmap-file спецификацию. Если widowname пустая строка то определяемый файл является иконкой по умолчанию и может быть использован если не найдется других bitmap или pixmap иконок: Icon "" my-favorite-icon Команда Style предоставляет другой (более общий) способ определения иконок. IconBox left top right bottom Определяет область экрана в которой распологается иконка. Может быть определено до четырех мест. При заданном IconBox иконка, если это возможно, автоматически располагается в нем. При иконизации окна каждый раз ищется новое место. Свободное место для иконки ищется сперва слева направо, затем сверху вниз. Иконки не могут автоматически размещаться на других иконках, но они могут быть помещены под окнами приложений. Если слева и справа места нет, fvwm увеличит ширину экрана. Если нет места сверху и снизу, fvwm увеличит высоту экрана. ВНИМАНИЕ: -0 не различается как правая нижняя точка экрана. Вместо него Вы должны использовать -1. Если IconBox не определен или все места заняты, fvwm разместит иконку рядом с текущим положением указателя. IconFont fontname Определяет шрифт fontname для меток икон. Если fontname опущено, вместо него будет использован фонт меню, заданный при определении параметров Font конфигурации. IconPath path Задает список path разделенных двоеточием полных путей к директориям, в которых могут быть найдены bitmap иконки. Каждый путь должен начинаться со слэша. ВНИМАНИЕ: если при построении fvwm включены пути для M4, то M4 будет искажать слово "include" которое будет часто обнаруживаться в командах IconPath или PixmapPath. Для устранения этого добавьте undefine(`include') до команды IconPath. Key keyname Context Modifiers Function Связывает клавишу клавиатуры с заданной встроенной fvwm функцией. Определение такое же как и при работе с мышью, но здесь номер кнопки мыши заменяется на именем клавишы. Имя keyname - одно из входящих в /usr/include/X11/keysymdef.h, с опущенным предшествующим XK_. Поля Context и Modifiers определяются так же как и при работе с мышью. Связь клавиши с кнопкой линии заголовка не заставит эту кнопку появиться если нет работы с мышью. Снисходительность к ICCCM ICCCM заявляет что если приложение установит значение поля ввода в структуре wm_hints равное False, то оконный менеджер никогда не сможет получить его фокус ввода. Единственное приложение которое Я знаю и которое требует этого - sxpm, но это просто глупая ошибка с тривиальным способом её устранения и она не оказывает ни какого эффекта на какую бы то ни было программу. Ходят слухи, что некоторые более старые приложения страдают аналогичными проблемами. Если этот параметр установлен, fvwm будет игнорировать данное ICCCM соглашение. MenuBackColor colorname Устанавливает цвет фона меню. При использовании monochrome эта опция игнорируется. Опция доступна только если fvwm компилируется с определенным MENUCOLOR. MenuForeColor colorname Устанавливает цвет элементов меню. При использовании monochrome эта опция игнорируется. Опция доступна только если fvwm компилируется с определенным MENUCOLOR. MenuStippleColor colorname Устанавливает цвет для затененных участков меню (для функций, недоступных в текущем активном меню).При использовании monochrome эта опция игнорируется и используется stipple образец. Опция доступна только если fvwm компилируется с определенным MENUCOLOR. Module ModuleName Определяет модуль который должен быть выделен во время инициализации. В настоящее время доступными являются модули: FvwmAudio, FvwmBacker, FvwmBanner, FvwmClean, FvwmDebug, FvwmIconBox, FvwmIdent, FvwmPager, FvwmSave, FvwmSaveDesk, FvwmScroll, FvwmWinList и GoodStuff. Эти модули имеют свой собственный man page. Модуль также может использоваться как встроенный. Модули могут быть коротко-живущими временными программы или, подобно GoodStuff, могут оставаться на всё время X-сессии. Оконный менеджер будет, по возможности, завершать работу модулей при своих собственных перезапуске и завершении. См. секцию введения о модулях. ModulePath Задает список разделенных двоеточием полных путей к директориям, в которых fvwm ищет предназначенные для загрузки модули. Отдельные директории не нуждаются в последнем закрывающем слэше. Mouse Button Context Modifiers Function Определяет работу с мышью. Button - номер кнопки мыши. При Button равном нулю указанная функция будет вызываться по любой кнопке мыши. Context описывает куда устанавливается связь. Разрешены следующие значения для Context: R для корневого окна, W для окна приложения, T для линии заголовка окна, S для боковой, верхней или нижней линии окна, F для a оконной рамки (углы), I для иконки, или от 0 до 9 для кнопок линии заголовка, или любая комбинация этих символов. Значение A - для любого контекста кроме кнопок линии заголовка. Например, контекст FST может применяться когда мышь гне-нибудь на границе окна кроме кнопок линии заголовка. Модификаторы - любая комбинация из следующих символов: N - никаких модификаторов, C - для клавиши Control, S - для клавиши Shift, M - для клавиши Meta, или A - для любого модификатора. Например, a модификатор SM будет применяться когда нажаты и Meta и Shift. Модификаторы X11 от mod1 до mod5 представлены как цифры от 1 до 5. Функция - одна из внутренних функций fvwm. Кнопки линии заголовка занумерованы нечетными номерами с левой стороны линии заголовка и четными номерами - с правой. Кнопки с меньшими номерами находятся ближе к краю окна, а кнопки с большими номерами находятся ближе к центру окна. В итоге кнопки перечисляются так: 1 3 5 7 9 0 8 6 4 2 Обрабатываемая кнопка с наибольшим нечетным номером - определяет число кнопок показываемых с левой стороны линии заголовка. Обрабатываемая кнопка с наибольшим четным номером - определяет число кнопок показываемых с правой стороны линии заголовка. Разного рода действия могут быть привязаны к кнопкам мыши либо к клавишам клавиатуры. MWMBorders Подменяет MWM стиль 1-точечных широких рельефных линий на fvwm-овские 2-х точечные границами. MWMButtons Отменяет, как в MWM, обратную связь на нажатие кнопки для всех декораций кроме линии заголовка и её кнопок. MWMDecorHints Заставляет fvwm читать MOTIF_WM_HINTS атом окна приложения, и, разобравшись в нем пытаться оформлять окна так как это делает Motif. Обратите Внимание что mwm позволяет функции намекать на действия связянные с оформлением окна но этот эффект не воспроизводится этой опцией. MWMFunctionHints Заставляет fvwm читать MOTIF_WM_HINTS атом окна приложения, и, разобравшись в нем пытаться выполнять доступные функции окна так как это делает Motif. В отличие от mwm, который удаляет запрещенные функции из меню окна, fvwm просто затеняет такие функции. Также, потому что fvwm так выполняет некоторые функции в определенных пользователем макросах как mwm выполняет свои внутренние функции, добавление запрещенных функций частично основано на метке пункта меню. MWMHintOverride При использовании MWMFunctionHints максимизация и иконифизация для временных процессов запрещены. Также, окна могут указывать менеджеру окон что он не должен уничтожать или удалять их. Так как эти MWM правила по детски глупы, особенно в отношении временных окон, Я ввел MWMHintOverride опцию. При её использовании те пункты меню, которые MWM запретил бы использовать, будут только затенены, и пользователь может и далее выбирать эти пункты и всё будет работать как и ожидается. Override должен использоваться осторожно так как некоторые приложения будут прерываться если Вы игнорируете их mwm намеки. MWMMenus Заменяет MWM вид и нитерфейс меню на стандартную fvwm версию. Эта опция также переключает несколько других mwm-подобных опций, типа сосредоточения size/resize окна на экране, вместо ухода его в влево вверх, и переключателей resize-on-initial-placement переключающих на действие shift-button-1 вместо twm-овского pressbutton-2. NoBorder windowname Предохраняет fvwm от наложения декоративный рамки на окна с именами windowname. Команда не оказывает никакого никакой эффекта на линию заголовка. Это удобно для часов и подобных им приспособлений которым Вы не хотите отводить много места. Windowname может быть именем окна или класса. Если Вы определяете и NoBorder windowname и NoTitle windowname для того же самого окна в вашем .fvwmrc файле, окно будет совсем не оформлено. Windowname может содержать шаблоны "*" и "?" с которыми имена окон будут интерпретироваться подобно именам файлов в операционной системе Unix. Фактически, символы "*", "?", и "\" в именах окон могут быть введены с предшествующим символом "\". Команда Style предоставляет другой (более общий) способ определения NoBorder. NoBoundaryWidth Width Изменяет ширинeу оформлений для окон без заглавий границ. По умолчанию равна 1 Приемлемо любое неотрицательное значение. Оформление таких неукрашенных окон имеет такой же контекст как линии сторон нормального оформленного окна. Команда Style предоставляет другой (более общий) способ определения NoBoundaryWidth. NoPPosition Заставляет fvwm игнорировать поле PPosition при добавлении новых окон. Приверженность к полю PPosition требуется в некоторых приложениях, и если Вы не имеете ни одного из них то зто, наверное, действительно тихий ужас. NoTitle windowname Предохраняет fvwm от размещения линии заголовка в окнах с именами windowname. Это удобно для часов и подобных им приспособлений которым Вы не хотите отводить много места. Windowname может быть именем окна или класса. Windowname может содержать шаблоны "*" и "?" с которыми имена окон будут интерпретироваться подобно именам файлов в операционной системе Unix. Фактически, символы "*", "?", и "\" в именах окон могут быть введены с предшествующим символом "\". Команда Style предоставляет другой (более общий) способ определения NoTitle. OpaqueMove percentage Сообщает fvwm максимальный размера окна с которым возможно перемещение всего окна целиком. Percentage - процент от общего площади экрана. С "OpaqueMove 0" все окна будут перемещаться традиционным способом: сперва перемещается только рамка, затем на выбранном месте окно перерисовывается заново. С "OpaqueMove 100" все окна будут перемещаться как твердые окна, целиком. По умолчанию установлено "OpaqueMove 5", которое позволяет маленьким окнам перемещаться целиком, а большим окнам - способом, описаным выше. OpaqueResize Заставляет операции изменения работать непосредственно с самим окном вместо его схемы. Pager X_Location Y_Location Включает постраничный способ перемещения по десктопу. Окно Pager (не всплывающее) будет появляться в (X_Location, Y_Location). Pager показывает миниатюрные модели всех окон на десктопе. Цвет этих моделей такой же как и цвет границ у полно-размерных окон. В окне Pager, по нажатию кнопки 1 мыши становится возможным перемещение графического окна десктопа в выбранную страницу (в режиме click-to-focus; так же возможно перемещение с помощью клавиатуры миниатюры выбранного Вами окна). Нажатием кнопки 2 окне Pager начинается перемещение окна, используя миниатюру можно быстро переместить окно в любое место десктопа. Нажатие кнопки 3 перемещает левый верхний угол графического окна десктопа к местоположению нажатия кнопки, даже если оно не выравнивается со страницей. Перемещением кнопки 3 можно двигать выбранное графическое окно десктопа так же как Вы двигаете указатель мыши. Pager - автоматически закрепляется но совсем не автоматически остается наверху. PagerForeColor colorname Устанавливает основной цвет окна pager в colorname вместо черного. Этот цвет используется для выделения яркостью текущего графического окна десктопа в окне pager. На монохромном экране эта опция игнорируется. Если при создании fvwm была установлена опция NO_PAGER то опция PagerForeColor недоступна. PagerBackColor colorname Устанавливает цвет фона окна pager в colorname вместо белого. На монохромном экране эта опция игнорируется. Если при создании fvwm была установлена опция NO_PAGER то опция PagerForeColor недоступна. PagerFont fontname Делает используемый fvwm фонт fontname для записи имен иконок в представлени окна pager. Если эта опция опущена, названия окон в окне pager не выводятся. PagingDefault pagingdefaultvalue Сообщает fvwm должен ли он запускаться с включенным или выключенным режимом paging. При "PagingDefault 0" режим paging будет отключен; при "PagingDefault 1" - режим paging будет включен. Это значение установлено по умолчанию. PixmapPath path Задает список path разделенных двоеточием полных путей к директориям, в которых могут быть найдены pixmap (цветные) иконки. Каждый путь должен начинаться со слэша. Popup PopupName Начинает определение a всплывающего меню которое позже будет связано с кнопкой мыши или клавишей клавиатуры. Имя PopupName должно быть заключено в кавычки. Элементы меню содержатся в строках, следующих за строкой с ключевым словом Popup. Определение меню заканчивается ключевым словом EndPopup. Элементы меню определены как показано в следующий пример. В каждой строке первым словом является имя встроенной функции, которая будет выполнена, за ней следует (заключенный в кавычки) заголовок, которай будет показан в меню, за ним записываются любые аргументы необходимые этой функции. Под-меню может быть определено как с использованием встроенного Popup так и с помощью определения ранее в файле конфигурации. Popup "Window Ops" Title "Window Ops" Move "Move" Resize "Resize" Raise "Raise" Lower "Lower" Iconify "(De)Iconify" Nop " " Destroy "Destroy" Title "HARDCOPY" Exec "Hardcopy" exec xdpr & Exec "Hardcopy RV" exec xdpr -rv & EndMenu Обратите внимание что если символ табуляции вложен в заголовок начала меню, текст в меню после символа табуляции будет выведен со следующего столбца и все меню будет выравнено влево. Это предназначено для кратких пометок. Символ табуляции действительно должен быть табуляцией. Если его заменить на пробелы то это не сработает! Например: Popup "Window Ops" Title "Window Ops Alt-F1" . . . Зто начало выравненого влево меню. Alt-F1 будет размещено у правой стороны меню. Горячие клавиши могут быть заданы в определении меню через предшествующий символу амперсенд (&). Символ & будет не виден но символ после него будет изображен подчеркнутым, и если пользователь нажимает соответствующую клавишу - данный пункт меню будет активирован так же как и при выборе его щелчком мыши. Как горячие клавиши могут использоваться только буквы алфавита и цифры. Состояние клавиши shift игнорируется при использовании горячих клавиш. Например: Popup "Window Ops" Maximize "Ma&ximise" 100 100 EndMenu При активации этого меню 'x' будет подчеркнуто и нажатие на клавишу 'x' заставит текущее окно максимизироваться. Горячие клавиши не действуют если MENU_HOTKEYS не был определен при создании fvwm. Если к тому же был определен WINDOWLIST_HOTKEYS тогда горячие клавиши автоматически добавляются в WindowList при его показе. RandomPlacement Заставляет окна, которые обычно требуют своего размещения у пользователя, размещаться автоматически в случайно-выбранных местах. Лучше всего использовать RandomPlacement и SmartPlacement. SaveUnders Заставляет fvwm сохранять в памяти старое изображение под графическими объектами при их создании и перемещении. Это может значительно улучшить цельное перемещение окон и др. объектов но черевато существенным увеличением расходуемой памяти. SloppyFocus Этот режим фокусировки подобен focus-follows-mouse (по умолчанию) за исключением того, что фокус не будет удален из окна пока ваша мышь не войдет в новое окно. Покидание окна и переход в главное окно будет оставлять фокус ввода неизменным. SmartPlacement Заставляет окна, которые обычно требуют своего размещения у пользователя, размещаться автоматически в наилучших местах - там где они не накладываются на другие окна. Если такого места нет - окна будут размещаться случайно используя метод отступления (fall-back). Лучше всего использовать RandomPlacement и SmartPlacement. StartsOnDesk windowname desk-number Эта команда заставляет окна или класс с именем windowname сперва помещать на десктоп свой desk-номер. Windowname должен быть заключен в двойные кавычки. Если окно требует диалогового размещения, схема будет показана на текущем месте но окно будет появляться в указанном месте. Windowname может содержать шаблоны "*" и "?" с которыми имена окон будут интерпретироваться подобно именам файлов в операционной системе Unix. Фактически, символы "*", "?", и "\" в именах окон могут быть введены с предшествующим символом "\". Команда Style предоставляет другой (более общий) способ определения StartsOnDesk. StaysOnTop windowname Эти окна всегда пытаются остаться над другими окнами. Это могло бы быть удобно для часов или почтовых ящиков, которые Вы хотели бы видеть всегда. Если окно понижено явным способом то оно не будет пробиваться наверх пока его не поднимут опять же явным способом. Windowname может быть именем a окна или класса. Windowname может содержать шаблоны "*" и "?" с которыми имена окон будут интерпретироваться подобно именам файлов в операционной системе Unix. Фактически, символы "*", "?", и "\" в именах окон могут быть введены с предшествующим символом "\". Команда Style предоставляет другой (более общий) способ определения StaysOnTop. StdBackColor colorname Устанавливает цвет фона colorname для меню и невыбираемых пунктов меню. При использовании монохромного экрана эта опция игнорируется и используется белый цвет. Команда Style предоставляет другой (более общий) способ определения StdBackColor. StdForeColor colorname Устанавливает основной цвет colorname для меню и невыбираемых пунктов меню. При использовании монохромного экрана эта опция игнорируется и используется черный цвет. Команда Style предоставляет другой (более общий) способ определения StdForeColor. StickyBackColor colorname Устанавливает цвет фона colorname для меню и невыбираемых пунктов sticky меню. При использовании монохромного экрана эта опция игнорируется и используется белый цвет. Доступна только если -DMORE_COLORS использовался при компиляции. Команда Style предоставляет другой (более общий) способ определения StickyBackColor. StickyForeColor colorname Устанавливает основной цвет colorname для меню и невыбираемых пунктов sticky меню. При использовании монохромного экрана эта опция игнорируется и используется черный цвет. Доступна только если -DMORE_COLORS использовался при компиляции. Команда Style предоставляет другой (более общий) способ определения StickyForeColor. Sticky windowname Sticky окна "приклеиваются к стеклу экрана." Т.е. они не перемещаются вместе с графическим окном виртуального десктопа. Windowname может быть именем окна или класса. Windowname может содержать шаблоны "*" и "?" с которыми имена окон будут интерпретироваться подобно именам файлов в операционной системе Unix. Фактически, символы "*", "?", и "\" в именах окон могут быть введены с предшествующим символом "\". Команда Style предоставляет другой (более общий) способ определения Sticky. StickyIcons Заставляет изображения всегда придерживаться стекла экрана. Т.е. изображения всегда следуют за Вами по десктопу. Пока окно не иконифизировано, оно не придерживается стекла экрана. StubbornIcons Изменяет поведение картинок при деиконифизации. Вместо наличия окон всегда деиконифизирующихся непосредственно на текущей страница они деиконифизируются в их первоначальном положении. StubbornIconPlacement Когда используется с IconBoxes, заставляет иконки избегать занимать место ниже существующих окон. StubbornPlacement При использовании SmartPlacement, заставляет новые окна избегать занимать место поверх иконок. Style windowname options Эта команда предназначена чтобы заменить команды NoBorder, NoTitle, StartsOnDesk, Sticky, StaysOnTop, Icon, WindowListSkip, CirculateSkip, SuppressIcons, BoundaryWidth, NoBoundaryWidth, StdForeColor и StdBackColor единой гибкой и разносторонней командой. Она используется для установки значений атрибутов окон отличных от значений по умолчанию либо для установки умолчаний оконного менеджера. Windowname может быть a именем окна, класса или строкой ресурсов. Оно может содержать символы шаблонов "*" и "?", которые интерпретируются аналогично соглашениям принятым для имен файлов в операционной системе Unix. Options - список опций, разделяемых запятыми. В списке могут быть некоторые либо все из следующих ключевых слов: BorderWidth, HandleWidth, NoIcon/Icon, NoTitle/Title, NoHandles/Handles, WindowListSkip/WindowListHit, CirculateSkip/CirculateHit, StaysOnTop/StaysPut, Sticky/Slippery, StartIconic/StartNormal, Color, ForeColor, BackColor, StartsOnDesk/StartsAnyWhere, IconTitle/NoIconTitle и NoButton/Button. В вышеупомянутом списке некоторые опции записаны как прямая опция / обратная опция. Обратные опции позволяют изменить значение настроек fvwm установленных по умолчанию. Icon принимает (необязательно) строку аргументов без кавычек - имя используемого файла с иконкой bitmap либо pixmap. StartsOnDesk принимает числовой аргумент - номер десктопа на котором окно должно размещается при инициализации. BorderWidth принимает числовой аргумент - ширину границы для размещения окна не имеющего изменяющего размер заголовка. HandleWidth принимает числовой аргумент - ширину границы для размещения окна имеющего изменяющий размер заголовок. Button и NoButton принимают числовой аргумент - номер кнопки линии заголовка которая будет включена / пропущена. Color принимает два аргумента. Первый - цвет текста меток окна, второй - обычный цвет фона в оформлении окна. Оба цвета разделяются слэшем. Если использование слэша вызывает проблемы, можно воспользоваться отдельными опциями ForeColor и BackColor. Пример: # Ввести в fvwm по умолчание окона без линий заголовков! # Аналогично определить иконки по умолчанию. Style "*" NoTitle,Icon unknown1.xpm, BorderWidth 4,HandleWidth 5 # далее, изменения определениий окон: Style "Fvwm*" NoHandles, Sticky, WindowListSkip, BorderWidth 0 Style "Fvwm Pager" StaysOnTop, BorderWidth 0 Style "*lock" NoHandles, Sticky, StaysOnTop, WindowListSkip Style "xbiff" Sticky, WindowListSkip Style "GoodStuff" NoHandles, Sticky, WindowListSkip Style "sxpm" NoHandles Style "makerkit" # Размещение линии заголовка поддерживать только на X-терминалах! Style "xterm" Title, Color black/grey Style "rxvt" Icon term.xpm Style "xterm" Icon rterm.xpm Style "xcalc" Icon xcalc.xpm Style "xbiff" Icon mail1.xpm Style "xmh" Icon mail1.xpm, StartsOnDesk 2 Style "xman" Icon xman.xpm Style "matlab" Icon math4.xpm, StartsOnDesk 3 Style "xmag" Icon magnifying_glass2.xpm Style "xgraph" Icon graphs.xpm Style "GoodStuff" Icon toolbox.xpm Style "Maker" StartsOnDesk 1 Style "signal" StartsOnDesk 3 Обратите внимание что все свойства для окон будут объединены вместе. В вышеупомянутом примере "FvwmPager" получает свойства через StaysOnTop - точное имя соответствующего окна но также получает NoHandles, Sticky и WindowListSkip из-за соввпадения с "Fvwm*". Будет получено NoTitle из-за совпадения с "*". Если для окна определены противоречащие стили, то будет использоваться последний указанный стиль. Если выставлен атрибут NoIcon, указанное окно при иконизации будет просто исчезать. Окно может быть восстановлено через список окон. Если Icon задано без аргумента, атрибут NoIcon сбрасывается но никакая иконка не задается. Пример позволяющий существовать только иконкам модулля FvwmPager: Style "*" NoIcon Style "Fvwm Pager" Icon SuppressIcons Подавляет создание и отображение иконок окон. При использовании со списком окон представлляет из себя своеобразный менеджера иконок. Команда Style обеспечивает другой (более общий) метод определения SuppressIcons. WindowFont fontname Устанавливает используемый fvwm фонт fontname вместо "fixed" для линии заголовка в окне. WindowListSkip windowname Исключает окна с обозначенным именем из оконного списка. Windowname может содержать шаблоны "*" и "?" с которыми имена окон будут интерпретироваться подобно именам файлов в операционной системе Unix. Фактически, символы "*", "?", и "\" в именах окон могут быть введены с предшествующим символом "\". Команда Style предоставляет другой (более общий) способ определения WindowListSkip. XORvalue number Изменяет значение с которым биты XOR-ятся при выполнении перемещения или изменения размера окна по принципу "рамка - потом содержимое". Установка этого значения - эмпирический процесс. 13. ВСТРОЕННЫЕ ФУНКЦИИ Fvwm поддерживает множество встроенных функций которые могут быть связаны с кнопками мыши или клавшами клавиатуры: Beep Создает звуковой сигнал на компьютере. CirculateDown [ name window_name ] Заставляет указатель двигаться в следующее окно в списке окон для которых CirculateSkip не не был определен. Если представлены необязательные аргументы, фокус будет двигаться в первое окно чьё имя (или имя иконки или класс ) соответствует имени window_name. Необязательный аргумент name требуется если window_name представлен и заключен в кавычки. Этот аргумент является именем которое появляется в меню если Функция вызывается из меню, но не несет смысла, если функция вызывается не из меню. CirculateUp [ name window_name ] Заставляет указатель двигаться в предыдущее окно в списке окон для которых CirculateSkip не не был определен. Если представлены необязательные аргументы, фокус будет двигаться в первое окно чьё имя (или имя иконки или класс ) соответствует имени window_name. Необязательный аргумент name требуется если window_name представлен и заключен в кавычки. Этот аргумент является именем которое появляется в меню если Функция вызывается из меню, но не несет смысла, если функция вызывается не из меню. Вот пример в котором фокус перемещается окно X-терминала при нажатии Alt-F1: Key F1 A M CirculateUp "whatever" xterm Close Если окно понимает протокол удаления окна то это сообщение - посылаемый окну запрос о корректном удалении самого себя. Если окно не понимает протокол удаления окна - окно будет уничтожено. CursorMove horizonal vertical Передвигает указатель мыши в горизонтальных страницах в направлении оси X и в вертикальных страницах в направлении оси Y. Каждый из параметров или оба сразу могут быть отрицательными. И горизонтальное и вертикальное значение выражается в процентах от страницы, так "CursorMove 100 100" означает перемещение вниз и влево на одну полную страницу. "CursorMove 50 25" означает перемещение влево на половину страницы и вниз на четверть страницы. Функция CursorMove не должна вызываться во всплывающих меню. Delete Посылает сообщение окну с запросом на удаление окном самого себя, часто заставляет приложение завершаться. Desk arg1 arg2 Меняет десктоп на другой. Если arg1 не ноль то следующим номером десктопа будет текущий номер десктопа плюс arg1. Номера десктопов могут быть отрицательные. Если arg1 - ноль тогда новым номером десктопа будет arg2. Число активных десктопов определяется динамически. Активным является только десктоп который содержит окна или виден в данный момент. Номера десктопов должны лежать между 2147483647 и -2147483648 (достаточно?). Destroy Уничтожает окно. Гарантированное избавление от окна, весьма насильственный способ оборвать приложениие. Exec name command Выполняет команду command. Command - без кавычек, name - в кавычках. Name - имя, появляющееся в меню, если функция вызывается из него. Name требуется даже если функция вызывается не из меню. Следующий пример связывает функциональную клавишу F1 в главном окне, без модификаторов, с исполняемой функцией. Программа rxvt Будет начата с набором опций. Key F1 R N Exec "rxvt" exec rxvt -fg yellow -bg blue -e /bin/tcsh & Focus Перемещает viewport или окно как этого требуется для созданиия видимости выбранного окна. Устанавливает фокус ввода клавиатуры на выбранное окно. При необходимости поднимает окно чтобы делать его видимым. Устанавливает указатель в выбранном окне в режим focus-follows-mouse. Не может деиконифизировать. Эта функция в основном для использование с модулем типа FvwmWinList. Function Используеncz для связи предварительно определенной функции с клавишей клавиатуры или кнопкой мыши. Следующий пример связывает кнопку мыши 1 с функцией названнаой "Move-or-Raise", чьё определение было дано в примере ранее в этом же man page. После установления этой связи fvwm будет выполнять функции move-or-raise всякий раз, когда кнопка 1 нажимается в линии заголовка окна. Mouse 1 T A Function "Move-or-Raise"