Книга: Свободные программы и системы в школе

2.4 Окноводы

2.4 Окноводы

Как же менеджер окон преодолевает указанное ограничение X-протокола? Никак – просто выделенным ему окном является весь экран. (На самом деле, менеджер окон – не единственная программа, способная работать с «корневым» окном; например, входящая в комплект поставки «xsetroot» позволяет установить цвет фона или поместить на него рисунок.)

Менеджеров окон существует превеликое множество – под любой набор задач, которые может решать графическая многооконная система. Их настолько много, что выбрать какой-нибудь в качестве «типичного представителя семейства» затруднительно. Поэтому выберем один из самых развитых – Enlightenment.

«Просвещение» (www.Enlightenment.org) создано Карстеном Хайцлером и Джеффом Харрисоном (Carsten Haitzler, Geoff Harrison) и его текущая версия – 0.16.5. До 2000 г. он был «штатным» менеджером окон в популярной среде «Гном» (см. раздел 2.17), затем уступив это место менее функциональной, но более быстрой «Рыбе-пиле» (Sawfish). Он продолжает оставаться «Гном»-совместимым, и многие пользователи этого популярного десктоп-менеджера предпочитают его, хотя и без «Гном» у Enlightenment поклонников хватает.


Рис. 2-4

Запустим «Просвещение» (Рис. 2-4). Как резко изменилась картина!

Первое, что мы видим – это появившиеся вокруг окна нашего xterm «виджеты» (элементы окон) – строка заголовка с кнопками и рамка. Окно теперь можно перемещать по экрану, «ухватив» за заголовок, масштабировать, «взяв» за бок или за угол, максимизировать, минимизировать или закрыть, нажав соответствующую кнопку. Спрашивается, что еще можно делать с окном?


Рис. 2-5

Вопрос не праздный. Нажав на левую кнопку в заголовке, получаем неожиданно разнообразное меню (меню – это тоже «виджет») таких действий (Рис. 2-5). Оказывается, его можно еще уничтожить (Annihilate), поднять/опустить (Raise/Lower), оттенить/растенить (Shade/Unshade) приклеить/отклеить (Stick/Unstick) и выполнить еще массу действий, для которых потребовались отдельные меню! Набор этих действий зависит от конкретного менеджера окон (и Enlightenment – один из самых богатых возможностями), а то, какие из них выведены в строку заголовка отдельными кнопками – вообще от его настройки.

Собственно, управление окнами – основная функция оконного менеджера, и на этом его функциональность может и заканчиваться. Однако большинство из них выполняют по крайней мере еще одну функцию.


Рис. 2-6

Вы уже обратили внимание на то, что при запуске «Просвещения» на экране появилось еще одно окно. Это так называемый пейджер (pager), на Рис. 2-6 он изображен крупным планом. На пейджере представлена миниатюрная копия экрана, обновляющаяся в режиме реального времени, причем, если подвести курсор к изображению отдельного окна, оно увеличивается и рядом высвечивается название приложения, запущенного в нем. Но почему экран занимает только четверть окна пейджера? Потому что оконный менеджер позволяет оперировать «виртуальным столом, по размеру превышающим физический экран, а пейджер – одно из средств перемещения физического экрана по рабочему столу. Enlightenment позволяет создавать до 64 экранов на рабочем столе.


Рис. 2-7

Еще один важный компонент Enlightenment мы не увидели сразу: это меню настройки самого менеджера, которое можно «достать», щелкнув правой кнопкой мыши на фоне экрана (Рис. 2-7). Порывшись в настройках, можно обнаружить, что вышесказанное о способах оперирования с этим менеджером весьма условно, потому что поменять можно буквально все, от декора виджетов до количества и функций элементов оформления окон и их реакции на различные действия.

Лишь один пример: сколько способов визуализировать перемещение окна вы знаете? Разработчики «Просвещения» придумали целых шесть, включая фантастический «полупрозрачный». Настройки и расширения Enlightenment можно объединять в «темы» (themes) и обмениваться ими.

Собственно, на этом функции оконного менеджера как такового и заканчиваются, а дальше Enlightenment вторгается во владения другого класса программ – менеджеров рабочего стола...

Оглавление книги


Генерация: 2.107. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз