Управление окнами в Linux

Когда в разгар работы с Linux вы обнаруживаете, что у вас открыто 25 окон на девяти виртуальных рабочих столах, в голову невольно приходит мысль о необходимости средств эффективного управления окнами.

О менеджерах окон

Графическая система Linux представляет собой трехслойный "бутерброд". Самый нижний слой - сервер X-Window. Самый верхний слой - графическая оболочка, например GNOME. Между ними находится еще один важный элемент - менеджер окон. Главная особенность этой многослойной системы, которая нравится одним пользователям и отпугивает других - возможность заменить любой слой этого "бутерброда" независимо от других слоев. Это касается не только оболочек, но и систем X-Window (в последнее время, например, многие дистрибутивы перешли с сервера XFree86 на X.Org, не меняя ничего при этом на других уровнях).

Одним из весьма популярных менеджеров окон является менеджер Metacity. Этот менеджер потребляет мало ресурсов системы, функциональность его может быть расширена за счет плагинов, написанных на C (для упрощения разработки плагинов в состав Metacity входит специальная библиотека).

Одна из приятных особенностей Metacity - возможность создания правил для окон определенных приложений (window matching). Заданные пользователями правила автоматически изменяют свойства соответствующих окон в момент их создания. Например, с помощью таких правил вы можете указать, чтобы некоторая программа всегда открывала свое окно с максимальным размером на определенном виртуальном рабочем столе, или автоматически присваивать свойство sticky (всегда поверх остальных окон) окнам программ-чатов. Для менеджеров окон, не поддерживающих систему правил, можно использовать специальную программу, например, Devil's Pie.

Альбомы окон

Многие средства управления окнами используют один и тот же очевидный прием - уменьшающее масштабирование окон (просмотр окон в режиме макета) с возможностью переключаться между окнами.

Тот же менеджер Metacity дополнен интересным средством, вдохновленным системой управления окон Mac OS/X Expose. Эта программа, получившая название Expocity, добавляет возможность масштабировать окна для просмотра на уровне менеджера окон. Хорошим средством управления окнами для NetWM- и gnome-wm-совместимых менеджеров является программа Skippy (рис. 1), которая может использовать новейшие возможности X-сервера X.Org.

Десктоп KDE тоже не остался в стороне от общей моды и обзавелся программой Kompose (рис. 2). Последняя версия Kompose также использует расширения X.Org. И Kompose, и Skippy обладают хорошей поддержкой клавиатуры. Вы можете использовать клавиши стрелок, чтобы переходить от одного уменьшенного изображения окна к другому.

Если же вам необходимо управлять окнами с помощью консольной утилиты, утилита wmctrl позволит вам полностью контролировать оконные менеджеры, совместимые со спецификациями EWMH/NETWM из окна терминала. Например, если вам нужно переместить окна со всех рабочих столов на один (что потребует много работы если окон много и вы все делаете вручную), wmctrl сможет сделать это одной командой (правда придется запомнить не очень простой синтаксис wmctrl).

Пытаясь решить проблему навигации между окнами приложений, некоторые разработчики пошли своим, оригинальным путем. Одной из таких экспериментальных разработок является оконный менеджер Ion (рис. 3). Этот менеджер делит пространство экрана на прямоугольные непересекающиеся области, в каждой из которых отображается одно приложение (это можно сравнить с расположением окон в обычном оконном менеджере в режиме мозаики, с той разницей, что в Ion мозаику нельзя отключить). Как объясняют сами разработчики, на большом экране найдется достаточно места для всех нужных программ, а на маленьком экране все равно нельзя работать больше чем с одним окном одновременно.

Подобный подход к расположению окон обладает некоторыми преимуществами. Например, легко организовать быстрое переключение между приложениями с помощью клавиатуры. Разработчики Ion вообще считают, что интерфейсы, ориентированные на мышь, зачастую неэффективны и стремятся обойтись без функций мыши в своем менеджере. И эта особенность Ion тоже может быть плюсом - для людей, чьи физические особенности не позволяют им работать с мышью. Ion может быть полезен и для разработчика, когда нужно держать под рукой редактор с исходным текстом программы, окно компилятора и окно отладчика.

Недостатков у Ion, собственно, два: во-первых, экраны мониторов не такие уж большие, чтобы работать с несколькими приложениями, уделяя каждому только часть экрана, а во-вторых модель X-Window изначально рассчитывалась на другую схему расположения окон (Z-order - одно окно может перекрывать другое), и потому многие приложения X будут работать в сере Ion неправильно. Подводя итог вышесказанному, нужно признать, что проблема, которую пытаются решить разработчики средств управления окнами, - не надуманная. У меня сейчас, когда я пишу эту статью, открыто в общей сложности четырнадцать окон, и мне бы хотелось иметь средство эффективного управления ими. Однако следует признать, что все предложенные до сих пор подходы не являются действительно эффективными. Может быть, по-настоящему хорошая идея еще не озарила головы разработчиков, а может быть сам многооконный интерфейс не рассчитан на слишком большое количество окон?

http://www.getinfo.ru/article692.html

Главная тема: 
Программное обеспечение: