wmii | |
---|---|
| |
Тип | Менеджер окон |
Разработчик | Сообщество suckless.org |
Написана на | Си |
Операционная система | UNIX-подобные |
Первый выпуск | 2003 |
Последняя версия | 3.9.2 (10 июня 2010) |
Репозиторий | code.google.com/archive/… |
Лицензия | Лицензия MIT |
Сайт | code.google.com/p/wmii/ |
Медиафайлы на Викискладе |
wmii, window manager improved 2 — фреймовый оконный менеджер для X11, поддерживающий динамическое расположение окон, метки окон и управление с помощью клавиатуры, мыши или протокола 9P с использованием виртуальной файловой системы.
В wmii все окна автоматически распределяются и изменяются в размерах при создании так, чтобы заполнить всё видимое пространство. Видимая область разделена на виртуальные колонки нефиксированного размера, в которых по столбцам размещаются окна, причём в любой колонке можно включить, например, показ одного окна из столбца одновременно. Так реализуется фреймовая концепция оконного менеджера. Кроме того, можно использовать лишь клавиатуру для управления окнами, хотя мышь также полностью поддерживается во всех операциях. Любое окно можно переместить на «плавающий» слой, в котором используется традиционное (ручное, с использованием мыши) позиционирование, что бывает удобно для диалоговых окон и приложений, не приспособленных под фреймовую модель.
Любому окну в wmii можно назначить одну или несколько меток, для каждой из которых будет создано своё рабочее пространство (сходное с виртуальным рабочим столом из более традиционных оконных менеджеров). Все окна с определённой меткой автоматически размещаются на соответствующем рабочем пространстве, причём одно окно может присутствовать в нескольких пространствах сразу. Средствами wmii можно также назначать правила для автоматического присваивания окнам с определёнными заголовками своих меток, чтобы окна сами распределялись по рабочим зонам.
На дизайн wmii оказали влияние идеи операционной системы Plan 9, что выразилось в использовании для управления менеджером простого интерфейса, основанного на файлах. Поставляемая с wmii утилита wmiir позволяет получить доступ к виртуальной файловой системе, изменением данных в которой и реализуется всё управление wmii. Вот пример использования wmiir:
Получить список окон на текущем рабочем пространстве:
$ wmiir read /tag/sel/index
Получить список всех окон:
$ wmiir read /client/
Переместить текущее окно на активном пространстве в колонку левее и выше по столбцу:
$ echo "send sel left" | wmiir write /tag/sel/ctl $ echo "send sel up" | wmiir write /tag/sel/ctl
Перенести текущее окно на плавающий слой:
$ echo "send sel toggle" | wmiir write /tag/sel/ctl
Присвоить окну с кодом 0x1000004 (полученным из списка окон) новый набор меток:
$ echo "test+terms" | wmiir write /client/0x1000004/tags
Закрыть окно с кодом 0xc00004 (оно исчезнет со всех рабочих пространств):
$ echo "kill" | wmiir write /client/0xc00004/ctl
Таким образом, оконный менеджер wmii предоставляет обобщённый механизм для управления окнами, реализация определённой политики на основе которого может быть выполнена с использованием любого средства, поддерживающего вызов команд. В комплекте с wmii поставляется сценарий оболочки, реализующий доступ со стороны пользователя к операциям над окнами посредством мыши и клавиатуры, однако существуют и альтернативные решения.[1]
Можно также по-настоящему монтировать файловую систему wmii, чтобы работать с ней напрямую, а не посредством wmiir.[2]
Оконный менеджер wmii также предоставляет статусную строку в нижней части экрана, на которую можно вывести список созданных рабочих пространств и любую другую информацию (например, текущее время, данные о погоде), так как к строке также обеспечивается файловый интерфейс.
В комплекте с wmii поставляются две программы для формирования меню: wimenu — программа, заменившая ранее используемый dmenu из dwm, для вывода элементов меню в строку, и wmii9menu для вывода в столбец.
Автор wmii стремится к элегантности и простоте дизайна программы, не превышая предела в десять тысяч строк для всего исходного кода.
wmii выходит под лицензией MIT, совместимой с GNU GPL.[3] Однако в используемой оконным менеджером библиотеке libixp есть участки кода, заимствованные из Plan 9, которые попадают под действие лицензии LPL[4], несовместимой с GPL2.