Менеджер окон для X Window с названием Fvwm95


либо специальных настроек, окно имеет


3.1. Окна

Как и в Windows 95, без каких- либо специальных настроек, окно имеет заголовок синего цвета и четыре кнопки для управления окном. На кнопке слева при соответствующей настройке появляется иконка, соответствующая конкретному приложению. Ниже в качестве примера показано окно терминала при использовании fvwm95.



Кнопки окна выполняют те же функции, что и в Window 95. Однако, вы можете назначить этим кнопкам совершенно другие функции. Также как и в Windows 95 при нажатии на левую кнопку появляется меню для управления окном. Это меню вы также можете изменить по вашему вкусу. Например, при поставке fvwm95 меню было на английском. Русифицировать его было делом пары минут - смотрите рисунок ниже.



Теперь самое время упомянуть о дополнительных возможностях, которые вам предоставляет fvwm95. Дело в том, что кнопок у окна может быть значительно больше. Можно приделать к окну до пяти кнопок справа и слева. На каждую кнопку можно назначить свою команду и кроме того на каждую кнопку можно поместить свою собственную иконку. Как это будет выглядеть вам демонстрирует рисунок ниже.



Как видите иконки на кнопках могут быть даже цветными (кнопки слева). Конечно, вам вряд ли захочется использовать все 10 кнопок, но добавить одну или две к существующим четырем вполне. Ограничения накладываются только на размер иконки, который должен быть 13x11 точек.

Излишне говорить о том, что вы можете изменить цвет заголовка или бордюра окна по вашему вкусу.

3.2. Модули

Без сомнения самым интересным средством в fvwm95 являются модули. Не все возможности, которые может вам предоставить fvwm95 встроены непосредственно в сам исполняемый файл fvwm95. Большинство возможностей встроено в модули. Модуль - это фактически отдельная программа, написанная так, чтобы взаимодействовать с fvwm95. Эту программу может запустить только сам менеджер окон, так как при этом образуется канал связи модуля и менеджера, по которому они обмениваются данными и командами.

Достоинства использования модулей очевидны - экономия памяти. Если вы не используете возможности, предоставляемые отдельным модулем, то вы не загружаете его и не расходуете память понапрасну. В настоящее время fvwm95 предоставляет 24 модуля, но их количество продолжает расти.

3.2.1. Модуль FvwmTaskBar
Этот модуль предоставляет вам Панель задач как в Windows 95. Однако в отличии от последней вы можете не использовать этот модули при работе в fvwm95. Примерный вид FvwmTaskBar дан на рисунке ниже



Как видите внешний вид очень похож на панель задач в Windows 95. Но если посмотреть внимательно, то видны и отличия.
Первое отличие состоит в наличии пиктограммки-конвертика в правом углу. Присутствие этого конвертика говорит о наличии непрочитанной электронной почты. Если установить курсор мыши на конвертик и подержать пару секунд, то на экране появится сноска, в которой будут указаны отправители непрочитанных почтовых сообщений и темы этих сообщений. Если во время работы в fvwm95 вам приходит письмо, то вам будет подан звуковой сигнал. Не правда ли, что все это очень удобно?
Второе отличие состоит в наличии пиктограммки-замочка в том же правом углу, но левее времени. Двойным щелчком на этот замочек включается хранитель экрана, который вы задали в настройках модуля FvwmTaskBar. Кстати таких штучек можно навставлять рядом с существующими довольно много.
Как и в Windows 95 при установке модемного соединения появляется пиктограммка активности модема, а при разрыве соединения она пропадает.
Третье отличие заключается в кнопке "Старт" в левом углу. Вы можете сами нанести на нее название, такое какое захотите и назначить иконку слева от названия. Кроме того вы можете по нажатию этой кнопки, вместо вызова меню, сделать вызов любой другой функции.
Как и в Windows 95 вы можете поместить FvwmTaskBar сверху или снизу экрана, а также сделать панель задач "всплывающей", чтобы она не занимала место на экране.
3.2.2. Модуль FvwmButtons
Этот модуль предоставляет возможности конструирования различных прямоугольных контейнеров с кнопками внутри. Для тех кому эта фраза покажется непонятной поясню, что этот модуль можно использовать, например, для построение панелей кнопок типа "Microsoft Office" и "LaunchPad" в OS/2. Чтобы не быть голословным, я могу сказать, что с помощью этого модуля я, за довольно небольшой промежуток времени, сделал себе маленькую панельку в стиле "Microsoft Office" и ниже приведен рисунок этой панельки



Это довольно простой пример, но и он показателен. При нажатии на любую из кнопок с иконкой, вызывается соответствующая ей программа, а вот если вы нажмете на часть занятую словами "Linux Office'97", то ничего не произойдет. Кроме того самая правая кнопка со словом "LATIN" это не просто кнопка - это уменьшенное окно программы xrus, которая переключает шрифт с латинского на русский и если вы нажмете на нее, то слово "LATIN" изменится на "RUSSIAN", т.е. произойдет переключение регистров. Таким образом полноценное окно программы xrus, является одновременно кнопкой, включенной в контейнер и перетаскивается вместе со всем контейнером. Замечу, что вы можете таким же образом уменьшить и вставить в контейнер с кнопками и другие окна - например окно программы xclock, которая выводит на экран движущиеся стрелки часов.
Контейнер с кнопками не обязательно должен иметь один ряд кнопок. Это может быть и матрица кнопок размером x на y. И даже более того - кнопка в матрице в свою очередь может содержать еще кнопки. Кроме того, размеры кнопок могут быть разными, но, однако, кратными размеру самой маленькой кнопки.
Кнопки могут содержать как иконки так и надписи, а также иконки вместе с надписями или вообще ничего не содержать. При желании можно отрегулировать ширину бордюра кнопок, а также цвета фона, надписи на кнопке и тени кнопки.
В заключении замечу, что модулей FvwmButtons может быть запущено несколько. При этом каждому модулю можно задать свою собственную конфигурацию.
3.2.3. Модуль FvwmScript
Этот модуль появился только в последних версиях fvwm95. Он позволяет пользователю писать свои собственные сценарии, на специальном языке, который понимает FvwmScript. Этот язык содержит небольшое количество команд, для создания графических объектов и управления ими. К сожалению этот модуль пока еще сыроват и не доведен до ума, но уже сейчас на нем можно писать несложные сценарии для каких-либо приятных мелочей.
Например по двойному нажатию на время, которое находится на панели модуля FvwmTaskBar можно вызвать сценарий установки времени и даты, Этот сценарий входит в стандартную поставку fvwm95 и выглядит следующим образом:



Часы, которые вы видите на рисунке идут и являются ничем иным как уменьшенным окном программы xclock, вставленным в окно, нарисованное FvwmScript.
Словом, если вам необходимо быстро написать что-либо мелкое и несложное, то я бы очень рекомендовал использовать этот модуль.
Еще одно его достоинство заключается в том, что можно использовать все команды, которые понимает сам fvwm95 и которые описаны на страничке руководства к fvwm95.
3.2.4. Модуль FvwmAudio
Модуль прост, как его назначение и его настройки. Он предназначен для проигрывания аудиофайлов .wav в моменты, когда происходят определенные события: открытие/закрытие окон, их максимизация/минимизация, смена фокуса и т.д.
В сам модуль встроенная поддержка библиотеки rplay, но для проигрывания .wav файлов вы можете использовать в любую внешнюю программу.
3.2.5. Модуль FvwmBacker
Этот модуль также очень прост. Его можно использовать для выполнения какой-либо команды при перемещении на один из десктопов. Это особенно удобно, когда вы хотите для каждого десктопа установить свой собственный цвет фона или фоновую картинку.
3.2.6. Модуль FvwmBanner
Совсем простой модуль. Единственная его задача выводить при вызове заставку в виде заданного pixmap файла и удерживать ее на экране заданное количество секунд.
3.2.7. Модуль FvwmConsole
Данный модуль представляет собой окно для ввода команд fvwm95 в консольном режиме. Для своей работы требует, чтобы был установлен Perl.
3.2.8. Модуль FvwmCpp
Модуль позволяет производить препроцессорную обработку конфигурационного файла fvwm95 в стиле препроцессора cpp.
3.2.9. Модуль FvwmDebug
Этот модуль служит для отладочных целей.
3.2.10. Модуль FvwmForm
Идеологически устаревший модуль, с помощью которого раньше писали вещи, подобные тем, что делаются теперь в FvwmScript. Однако FvwmForm предоставляет гораздо более примитивные возможности, чем FvwmScript. Тем не менее данный модуль при отрисовке окна делает его модальным и это может вам понравиться.
3.2.11. Модуль FvwmIconBox


Опять- таки идеологически устаревший модуль. Его функция - размещение в окне модуля иконок запущенных в данный момент приложений. При нажатии на иконку осуществляет переход к окну приложения.
В данный момент эту задачу с успехом выполняет модуля FvwmTaskBar.
3.2.12. Модуль FvwmIdent
С помощью данного модуля можно получить информацию о любом окне.
3.2.13. Модуль FvwmM4
Модуль выполняет функцию аналогичную FvwmCpp, только препроцессор здесь работает в стиле M4.
3.2.14. Модуль FvwmPager
Данный модуль предназначен для отображения окошка с сильно уменьшенным содержимым указанного количества виртуальных десктопов. С помощью этих окошек можно также переключаться с десктопа на десктоп.
3.2.15. Модули FvwmSave и FvwmSaveDesk
Оба модуля предназначены для записи информации о текущем десктопе (окна и их местоположение) в файл для последующего использования.
Различие между ними заключается в том, что FvwmSave записывает состояние десктопа в файл с форматом в стиле .xinitrc, а FvwmSaveDesk делает тоже самое в формате вызова команд в fvwm95.
3.2.16. Модуль FvwmScroll
По возможности добавляет в окно полосу прокрутки.
3.2.17. Модуль FvwmTalk
Отображает маленькое окно, в котором с командной строки можно набирать команды fvwm95. Это полезно, например, для запуска модулей вручную.
3.2.18. Модуль FvwmWinList
Показывает окно, в котором размещены кнопки, соответствующие окнам запущенных приложений. При нажатии на такую кнопку осуществляется переход к окну с приложением.
Идеологически модуль устарел, так как теперь эти функции выполняет FvwmTaskBar.
3.2.19. Модуль FvwmIconMan
B опять идеологически устаревший модуль, который выполняет функции сходные с модулем FvwmWinList.
3.2.20. Модуль FvwmWharf
Этот модуль заимствован из менеджера окон afterstep. Функции, которые он выполняет сходны с функциями FvwmButtons. Несмотря на то, что FvwmWharf не умеет делать многого из того, что умеет делать FvwmButtons, он имеет несколько особенностей, которых нет у FvwmButtons:

  1. Может сворачиваться до размеров одной иконки и прыгать в ближайший угол, если на нем нажать среднюю кнопку мыши (в случае 3-х кнопочной мыши) или обе кнопки сразу (в случае 2-х кнопочной мыши со включенной эмуляцией 3-ей кнопки).
  2. Имеет так называемые Folder'ы (папки). Проще говоря позволяет создавать кнопки, после нажатия на которые появляется еще одна линейка кнопок, ориентированная перпендикулярно основной. Повторным нажатием на ту же кнопку, дополнительная линейка убирается.
  3. При оформлении могут быть использованы текстуры.



3.3. Функции
fvwm95 позволяет объединять несколько простых команд в функции. Кроме специальных функций типа InitFunction, пользователь может создать практически неограниченное количество своих.
В функции можно передавать параметры, которые затем будут доступны через идентификаторы $0,$1... в теле функции.
Используя функции можно создавать довольно мощные команды, что существенно расширяет возможности fvwm95. Кроме того можно прикрепить выполнение функции к какой-либо горячей клавише или к нажатию кнопки мыши.
3.4. Клавиши
fvwm95 предоставляет вам возможность назначить любые горячие клавиши или переопределить уже существующие. При этом при нажатии горячей клавиши можно вызывать функцию, модуль, меню, команду fvwm95 или внешнюю программу.
При задании горячих клавиш, есть возможность учитывать нажаты ли в это же время клавиши: shift, ctrl или alt.
3.5. Мышь
С мышью дела обстоят вообще уникально. Можно задавать выполнение действий не только при нажатии кнопок мыши (кстати для 3-х кнопочных мышей можно использовать все 3 кнопки) вне окна, но и при нажатии кнопок мыши на заголовке окна, на кнопках слева и справа от заголовка окна, на бордюре окна и даже на углах окна. При этом, например, вы можете задать одно действие при нажатии левой кнопки мыши на заголовке окна и другое при нажатии правой.
Естественно, что можно присвоить команду как для одиночного нажатия кнопок так и для двойного. Кроме этого при назначении команд опять таки может быть учтено нажатие клавиш shift, ctrl или alt.
Под действием понимается как и в случае клавиш вызов функции, модуля, меню, команды fvwm95 или внешней программы.

Содержание раздела