
ГЛАВА 9 ДИСПЕТЧЕРЫ ОКОН
Диспетчеры окон управляют окнами на экране. Они определяют размер, расположение и вид окон. Кроме того, диспетчер окон управляет значками на экране и отслеживает мышь, позволяя пользователю производить с ее помощью различные действия.
Наиболее популярным диспетчером окон в мире UNIX/X является диспетчер окон Motif, mwm. Коммерческий продукт, распространяемый Open Group, mwm продается как сам по себе, так и в составе основанного на нем диспетчера окон dtwm являющегося главной частью CDE.
В число других популярных диспетчеров окон входят диспетчер окон Open Look (olwm), диспетчер окон Tab (twm) и диспетчер окон fvwm, обычно входящий в состав поставок Linux. Эти диспетчеры окон распространяются бесплатно.
Хотя диспетчер окон dtwm и основан на mwm, он имеет более дружественный интерфейс. Более того, dtwm представляет собой не просто диспетчер окон, а рабочую среду, содержащую специальные приложения, такие как панель задач, панель управления и т. п. Также имеется целый набор программ, специально созданных для работы под управлением dtwm. (Вы можете найти описание таких программ в главе 5; названия этих программ начинаются с букв dt.) Панель задач обеспечивает удобную работу с такими приложениями.
В большинстве случаев диспетчер окон сконфигурирован по умолчанию так, чтобы вам не понадобилось изменять его настройку перед началом работы. Однако если вы хотите изменить внешний вид окон, а также некоторые другие параметры, существует простой способ это сделать.
Мы не будем обсуждать, как использовать диспетчеры окон mwm и dtwm, но мы опишем, как изменить их настройки.
Параметры запуска
Эти параметры должны быть указаны в командной строке при запуске диспетчера окон.
Параметр Назначение
-display Использование Х сервера с задан-система: номер_ сервера ным номером (обычно- 0) на ука занной системе
-хгт ресурсы Указание строки ресурсов
-multiscreen Управление всеми экранами. Ис пользуется по умолчанию при запус ке dtwm и, как правило, при запус ке mwm
-name имя Использование указанного имени для поиска ресурсов (ресурсы ищутся в виде имя*ресурс)
-screens имя [имя [...]] Указание имен ресурсов для экра нов, управляемых dtwm и mwm.
Ресурсы
Ресурсы определяют, как будет работать диспетчер окон и как он будет взаимодействовать с пользователем и с приложениями. Ресурсы хранятся в файле ресурсов. Обычно файлом ресурсов является файл /usr/dt/app-defaults/SLANG/Dtwm или $HOME/Dtwm при использовании диспетчера окон dtwm; и в каталоге /usr/lib/ XII/app-defaults/Mwm или /$HOME/Mwm при использовании mwm. (Эти файлы могут находиться и в других местах; обратитесь к документации по dtwm и mwm.)
Что находится в файлах ресурсов? Как правило, информация о значках и шрифтах, используемых диспетчером окон; ресурсы, определяющие вид меню и поведение диспетчера окон. Ресурсы задаются при помощи имени ресурса (которое пишется со строчной буквы) или имени класса ресурса (которое пишется с прописной буквы). Имя ресурса имеет приоритет над именем класса ресурса.
Ресурсы, используемые mwm и dtwm, делятся на следующие категории:
• Ресурсы компонентов, определяющие внешний вид меню, рамок, значков, окон и других элементов интерфейса. Эти ресурсы перечислены в табл. 9.1.
• Общие ресурсы, определяющие то, как диспетчер окон взаимодействует с другими приложениями, и использующие на всех экранах и на всех рабочих столах. Эти ресурсы перечислены в табл. 9.2.
• Ресурсы экрана, определяющие поведение диспетчера окон на конкретном экране. Эти ресурсы перечислены в табл. 9.3.
• Ресурсы клиентов, определяющие поведение окон конкретного приложения или класса приложений. Эти ресурсы перечислены в табл. 9.4.
• Ресурсы рабочего стола, определяющие поведение диспетчера окон на конкретном рабочем столе. Эти ресурсы перечислены в табл. 9.5, однако они используются только диспетчером окон dtwm.
Перечисленные ниже имена ресурсов используются в сочетании с названием диспетчера окон. Например, чтобы установить ресурс background, используйте имя Dtwm*background. Аналогично, для установки ресурса keyboardFocusPolicy используйте имя Dtwm *keyboardFocusPolicy.
| Имя | Класс Тип | Описание |
| значения | ||
| bakground | Background цвет | Цвет фона; может использоваться любое значение, |
| распознаваемое Х-сервером | ||
| background-Pixmap | Background- рисунок Pixmap | Рисунок, содержащий текстуру для рамок и заголовков неактивных |
| окон | ||
| bottom -ShadowColor | Bottom- цвет ShadowColor | Цвет правой фаски рамки окна; может использоваться любое значение, |
| распознаваемое Х-сервером | ||
| bottom | Bottom рисунок | Рисунок, содержащий текстуру правой фаски рамки окна |
| ShadowPixmap ShadowPixmap | ||
| fontList | FontList шрифт | Шрифт, используемый в заголовке |
| окна; по умолчанию — fixed | ||
| foreground | Foreground цвет | Основной цвет может использоваться любое значение, |
| распознаваемое Х-сервером | ||
| savellnder | SaveUnder T/F | Сохранение содержимого экрана под окном; по умолчанию значение F (False, ложь) —со |
| хранения не происходит | ||
| Имя | Класс | Тип | Описание |
| значения | |||
| topShadow-Color | Background | цвет | Цвет верхней и левой фасок рамки |
| окна | |||
| topShadow-Pixmap | TopShadow-Pixmap | рисунок | Рисунок,содержащий текстуру левой и верхней фасок |
| рамки окна | |||
| active-Background | Background | цвет | Дополнительный цвет рамки актив |
| ного окна | |||
| active-Background-Pixmap | Background-Pixmap | рисунок | Рисунок,содержащий текстуру рамки активного окна |
| activeBottom-ShadowColor | Foreground | цвет | Цвет нижней тени активного окна |
| activeBottom | Bottom Shadow | рисунок | Рисунок, содержащий текстуру ниж |
| ней тени активного | |||
| окна | |||
| active Foreground | Foreground | цвет | Основной цвет рамки активного |
| окна | |||
| activeTop-ShadowColor | Background | цвет | Цвет верхней тени активного окна |
| activeTop-ShadowPixmap | TopShadow-Pixmap | рисунок | Рисунок, содержащий текстуру верх |
| ней тени активного | |||
| окна |
Имя Класс Тип Описание значения
autoKey- AutoKey- T/F Если установлено Focus Focus значение Т, то при закрытии или свора- чивании окна,со держащего фокус ввода, фокус ввода перемещается в пре дыдущее окно. которое его содер жало
autoRaise- Auto- милли- Время, через кото-Delay Raise- секунды рое окно, получив-Delay шее фокус ввода, будет выведено на передний план
bitmap Bitmap каталог Каталог, содержа -
Directory Directory щий рисунки
client Client T/F Положение окна, не AutoPlace AutoPlace имеющего положе ния по умолчанию. По умолчанию окна размещаются каска дом
colormap Colormap значение Перемещение фоку-FocusPolicy FocusPolicy ca цветовой палит ры: explicit— по зап росу приложения- клиента; pointer— фокус следует за указателем;
keyboard— фокус цветовой палитры следует за фокусом ввода
| Имя | Класс | Тип | Описание |
| значения | |||
| configFile | ConfigFile | файл | Расположение кон |
| фигурационного | |||
| файла; по умолча | |||
| нию | |||
| $HOME/dtwmrc | |||
| ДЛЯСПУУПГ! | |||
| и .гтлтпгсдля | |||
| mwm | |||
| deiconify | Deiconify | T/F | Перенос(Т)или |
| KeyFocus | KeyFocus | запрет переноса(F) | |
| фокуса ввода в раз | |||
| ворачиваемое из | |||
| значка окно | |||
| double | Double | милли | Максимально допу |
| ClickTime | ClickTime | секунды | стимое время между |
| щелчками двойного | |||
| щелчка | |||
| enableWarp | EnableWarp | T/F | Перенос (Т) или |
| запрет переноса(F) | |||
| указателя в центр | |||
| перемещаемого | |||
| окна или окна, раз | |||
| мер которого изме | |||
| няется при выпол | |||
| нении этих опера | |||
| ций с помощью кла | |||
| виатуры | |||
| enforce- | Enforce | T/F | Фокус ввода |
| KeyFocus | KeyFocus | ||
| frameStyle | FrameStyle | значение | Стиль рамки окна: |
| slab (высота области | |||
| приложения совпа | |||
| дает с высотой | |||
| окна) или recessed |
| Имя | Класс | Тип | Описание |
| значения | |||
| (высота области | |||
| приложения меньше высоты окна). Этот | |||
| ресурс доступен | |||
| только при использовании dtwm | |||
| icon AutoPlace | Icon AutoPlace | T/F | Расположение значков, определенное |
| ресурсом IconPlacement | |||
| iconClick | IconClick | T/F | Этот ресурс указы |
| вает, остается ли на | |||
| экране системное | |||
| меню после щелчка | |||
| на значке | |||
| interactive Placement | Interactive Placement | T/F | Установка начального положения |
| окна пользователем | |||
| (Т) или согласно | |||
| значению по | |||
| keyboard | Keyboard | значение | умолчанию для приложения (F) Фокус ввода: explicit (пользователь дол |
| жен щелкнуть в | |||
| окне для переноса в него фокуса ввода) или pointer (фокус | |||
| ввода следует за указателем мыши) | |||
| lower Onlnconify | Lower Onlnconify | T/F | Присворачивании окна значок поме |
| щается в нижнюю часть экрана(Т) или | |||
| остается на месте | |||
| окна (F) |
| Имя | Класс Тип | Описание |
| значения | ||
| marquee Select Granularity | Marquee пикселы Select Granularity | Шаг перемещения бегущей строки |
| move | Move пикселы | Максимальное ко |
| Treshhold | Treshhold | личество пикселов, |
| на которое может быть произведен сдвиг без начала | ||
| операции перемещения. По умолчанию—4 | ||
| multiscreen | Multiscreen T/F | Диспетчер окон об |
| служивает все экраны (Т) или только один(Г) | ||
| passButtons | PassButtons T/F | Передавать (Т) или нет (F) щелчок |
| мыши приложению | ||
| после выполнения | ||
| соответствующих | ||
| ему операций | ||
| диспетчера окон | ||
| positionis-Frame | Positionis- T/F Frame | Положением окна считается положение рамки (Т) или области приложения (F) |
| position OnScreen | Position T/F OnScreen | Допустимо (F) или нет(Т)начальное |
| положение окна, | ||
| при котором оно не | ||
| помещается цели | ||
| ком на экране |
| Имя | Класс Тип | Описание |
| значения | ||
| quitTimeout | QuitTimeout милли | Время, которое дис |
| секунды | петчер окон ожида | |
| ет обновления | ||
| клиентом реквизита | ||
| WMCOMMAND | ||
| после запроса | ||
| raiseKey | RaiseKey T/F | Этот ресурс опреде |
| ляет, получает ли | ||
| окно, выведенное | ||
| на передний план | ||
| функцией | ||
| f.normalizeand | ||
| raise, фокус ввода | ||
| refresh | Refresh T/F | Способ обновления |
| ByClearing | ByClearing | экрана: выполнение |
| XCIearArea (T) или | ||
| создание нового | ||
| окна и уничтожение | ||
| старого | ||
| rootButton- | RootButton- T/F | Определяет режим |
| Click | Click | вывода системного |
| меню при щелчке на | ||
| Главном окне | ||
| screens | Screens значение | Имена ресурсов, ис |
| пользуемых для уп | ||
| равляемых окон | ||
| show- | Show- значение | Этот ресурс опреде |
| Feedback | Feedback | ляет, отображается |
| ли окно диалога, | ||
| требующее под | ||
| тверждения дей | ||
| ствий пользователя | ||
| startup- | Startup- T/F | Этот ресурс опреде |
| KeyFocus | KeyFocus | ляет, получает ли |
| окно фокус ввода | ||
| при открытии |
| Имя | Класс | Тип | Описание |
| значения | |||
| useFront | Use | T/F | Этот ресурс опреде |
| ляет, выводится ли | |||
| панель задач | |||
| (доступен только | |||
| при использовании | |||
| dtwm) | |||
| wMenu | WMenu | T/F | Этот ресурс опреде |
| ляет режим, в кото | |||
| ром выводится | |||
| меню окна | |||
| wMenu | WMenu | T/F | Этот ресурс опреде |
| ButtonClick2 | ButtonClick2 | ляет, вызывает ли | |
| двойной щелчок на | |||
| кнопке открытия | |||
| меню окна выполне | |||
| ние операции f.kill. |
| Имя | Класс Тип | Описание |
| значения | ||
| button Bindings | Button значение Bindings | Этот ресурс определяет операции, |
| соответствующие | ||
| кнопкам мыши | ||
| cleanText CleanText | ||
| T/F | Этот ресурс определяет способ вывода | |
| текста в заголовках | ||
| окон и информаци | ||
| онных окнах диалога: без фона (Т) или | ||
| поверх существующего фона (F) | ||
| fade-Normallcon | Fade- T/F Normallcon | Этот ресурс определяет, происходит ли |
| затемнение значка | ||
| после развертыва | ||
| ния окна | ||
| feedback-Geometry | Feedback- значение Geometry | Положение информационных окон |
| при операциях | ||
| перемещения и | ||
| изменения размера | ||
| окна | ||
| frame-BorderWidth | Frame- пикселы BorderWidth | Ширина границы окна |
| icon Box-Geometry | IconBox- значение Geometry | Начальное расположение и размер |
| поля для значков | ||
| icon Box-Name | IconBox- имя Name | Имя ресурсов для поля значков |
| icon Box SBDIsplay Policy | IconBox строка SBDIsplay Policy | Вывод полос прокрутки: всех (all), вертикальных (vertical) или гори |
| зонтальных | ||
| (horizontal) |
| Имя | Класс | Тип | Описание |
| значения | |||
| iconBoxTitle | IconBoxTitle | строка | Заголовок поля для |
| значков | |||
| icon- | Icon- | значение | Общий вид значка |
| Decoration | Decoration | ||
| iconlmage-Maximum | Iconlmage-Maximum | ширинах высота | Максимальный размер изображения на |
| значке | |||
| icomlmage Minimum | Iconlmage Minimum | ширинах высота | Минимальный размер изображения на |
| значке | |||
| icon Placement | Icon Placement | - | Схема размещения значков |
| icon-Placement-Margin | Icon-Placement-Margin | пикселы | Расстояние между границей экрана и значками, размеща |
| емыми вдоль нее | |||
| keyBindings | KeyBindings | строка | Этот ресурс опреде |
| ляет операции, | |||
| соответствующие | |||
| клавишам клавиа | |||
| туры | |||
| limitResize | LimitResize | T/F | Этот ресурс опреде |
| ляет, может ли | |||
| пользователь уста | |||
| новить размер окна, больший макси | |||
| мального размера, | |||
| запрошенного при | |||
| ложением | |||
| maximum Maximum-Size | Maximum Maximum-Size | ширинах высота | Максимальный размер окна (в пикселах) |
| Имя | Класс Тип | Описание |
| move-Opaque | значения Move- T/F Opaque |
Этот ресурс определяет, передвигается ли все окно (Т) или |
| его схематический эскиз(F) во время операции перемещения окна | ||
| resize-BorderWidth | Resize- пикселы BorderWidth | Толщина границы рамки |
| resize-Cursors | Resize- T/F Cursors | Этот ресурс определяет, постоянно ли отображаются на экране указатели изменения размера |
| transient | Transient строка | Этот ресурс определяет количество управляющих элементов, создаваемых |
| для временных окон | ||
| transient-Functions | Transient- строка Functions | Этот ресурс определяет, какие функции управления окнами доступны для временных окон |
| uselconBox | UselconBox T/F | Этот ресурс определяет, помещаются |
| ли значки в поле | ||
| значков | ||
| workspace Count | Workspace число Count | Начальное количество рабочих столов, создаваемых |
| диспетчером окон при запуске. Этот ресурс используется только в dtwm |
| Имя | Класс | Тип | Описание |
| значения | |||
| client-Decoration | Client-Decoration | строка | Этот ресурс определяет вид рамки, по |
| мещаемой вокруг окна | |||
| client-Functions | Client-Functions | строка | Этот ресурс определяет, какие функции dtwm доступны |
| приложению | |||
| focus AutoRaise | Focus AutoRaise | VF | Этот ресурс определяет, выводится |
| окно приложения на передний план (Т) или нет (F) при получении им фокуса | |||
| ввода | |||
| iconlmage | Iconlmage | файл | Рисунок для значка |
| приложения | |||
| iconlmage Background | Background | цвет | Цвет фона значка приложения |
| iconlmage Bottom Foreground | ShadowColor | цвет | Цвет нижней тени значка приложения |
| iconlmage-Bottom-Shadow- | Pixmap | рисунок | Рисунок, содержащий текстуру нижней тени значка |
| Pixmap- | приложения | ||
| iconlmage Foreground | Foreground | Цвет | Основной цвет значка приложения |
| iconlmage TopShadow Color | Background | цвет | Цвет верхней тени значка приложения |
| Имя | Класс | Тип | Описание |
| значения | |||
| iconlmageTop Pixmap | TopShadow Pixmap | рисунок | Рисунок, содержащий текстуру верх |
| ней тени значка | |||
| приложения | |||
| matte Background | Background | Цвет | Фоновый цвет текстуры |
| matteBottom ShadowColor | Foreground | цвет | Цвет текстуры в том месте, куда падает |
| тень от кнопки | |||
| matteBottom Shadow Pixmap | Bottom Shadow Pixmap | рисунок | Рисунок,
содержащий текстуру тени КНОПКИ |
| matte Foreground | Foreground | цвет | Цвет текстуры |
| matteTop ShadowColor | Background | цвет | Цвет текстуры в области верхней тени |
| КНОПКИ | |||
| matteTop Shadow | Top Shadow | рисунок | Рисунок текстуры в области верхней |
| тени кнопки | |||
| matteWidth | MatteWidth | число | Шаг текстуры |
| maximum ClientSize | Maximum ClientSize | ширина». высота | Размер или направление, указываю |
| щие, как должно | |||
| разворачиваться | |||
| окно приложения | |||
| useClientlcon | UseClientlcon | T/F | Этот ресурс указывает, должен ли ис |
| пользоваться зна | |||
| чок, определенный приложением (Т) | |||
| или пользователем | |||
| (F) |
| Имя | Класс | Тип | Описание |
| значения | |||
| usePPosition | UsePPosition | строка | Этот ресурс указы |
| вает, должно ли ис | |||
| пользоваться поло | |||
| жение окна,задан | |||
| ное в реквизите | |||
| WM NORMAL | |||
| HINTS | |||
| window | Window | строка | Имя меню |
| Menu | Menu |
| Имя | Класс | Тип | Описание |
| значения | |||
| title | Title | строка | Имя рабочего стола |
| colorSetId | ColorSetId | число | Набор цветов, ис |
| пользуемый для фона рабочего | |||
| стола | |||
| image | Image | рисунок | Рисунок,используе |
| мый в качестве | |||
| фона рабочего | |||
| стола | |||
| image Background | Image Background | цвет | Цвет фона рисунка, используемого в качестве фона рабоче |
| го стола | |||
| image Foreground | Image Foreground | цвет | Основной цвет рисунка, используемого в качестве фона рабочего стола |