kwm — это менеджер окон для операционной системы macOS, реализующий тайлинговый подход к размещению окон на рабочем столе. Программа разработана как демон, который контролирует позиционирование и размеры окон, предоставляя несколько режимов компоновки, включая бинарное разделение пространства (binary space partitioning), монокль и плавающий режим. Управление daemon-ом осуществляется через клиентскую утилиту kwmc, принимающую команды для изменения режимов, переключения фокуса и настройки поведения.
Проект ориентирован на пользователей, предпочитающих клавиатурную навигацию и автоматическое упорядочивание окон без необходимости вручную перемещать их по экрану. Kwm поддерживает модель focus-follows-mouse (фокус следует за указателем), набор сочетаний клавиш для изменения размеров и положения окон, а также правила для автоматического размещения приложений в заданных областях экрана. В документации и сообществе по применению kwm рассматриваются сценарии работы с несколькими рабочими пространствами и мониторами.
- Тайлинговая компоновка: реализация бинарного разбиения экрана на области для автоматического размещения окон в иерархической структуре.
- Монокль: режим, при котором одно окно занимает весь экран, а остальные остаются в стеке или скрытыми.
- Плавающий режим: позволяет отдельным окнам игнорировать тайлинг и вести себя как в традиционной среде оконного менеджера.
- Focus-follows-mouse: возможность активировать окно при наведении указателя без клика.
- Демон и клиент: фоновой процесс (демон) для управления окнами и утилита kwmc для отправки команд и конфигурации.
- Горячие клавиши и скрипты: поддержка назначения комбинаций клавиш для управления окнами и интеграция со скриптами для автоматизации рабочих процессов.
- Конфигурация правил: задания поведения для отдельных приложений и рабочих пространств, включая предустановки позиций и размеров окон.
- Мультимониторность: управление окнами на нескольких экранах с отдельными зонами тайлинга для каждого дисплея.
- Производительность: оптимизация для минимального воздействия на ресурсы системы при постоянной работе фонового процесса.
- Сообщество и поддержка: наличие обсуждений и пользовательских конфигураций, которые расширяют функциональность и позволяют адаптировать поведение к индивидуальным потребностям.