xmonad — це мозаїчний менеджер вікон для X Window System, написаний на функціональній мові програмування Гаскель.

xmonad
xmonad у режимі мозаїки
Тип Віконний менеджер
Автор Spencer Janssen, Don Stewart, Jason Creighton
Стабільний випуск 0.9 (25 жовтня 2009)
Нестабільний випуск остання ревізія Darcs
Платформа декілька; потребує X Window та GHC
Операційна система POSIX-сумісний
Мова програмування Haskell
Доступні мови Англійська
Стан розробки Альфа
Ліцензія BSD-3
Репозиторій github.com/xmonad/xmonad
Вебсайт http://www.xmonad.org/

Заснований у березні 2007 року, він схожий до dwm, larswm, StumpWM та інших членів родини мозаїчних віконних менеджерів, тому що він намагається зробити можливим продуктивне керування вікнами без застосування миші. Попри те, що спочатку це був клон dwm (що наслідував його поведінку в таких областях, як стандартні комбінації клавіш), xmonad має можливості, які dwm не забезпечує своїм користувачам, такі як Xinerama (підтримка декількох моніторів),[1] різного розташування фреймів на кожному робочому столі, повноекранної мозаїки, збереження стану, віддзеркалення розташування та поекранних рядків статусу. Як і dwm, він налаштовується модифікацією і компіляцією вихідного коду[2] — але це вже змінено у останній розробницькій версії. Зміни конфігурації відображаються у робочому середовищі перезапуском програми (зі збереженням стану між перезапусками). Існує певна кількість розширень базової системи, включаючи різноманітні алгоритми розташування, які були створені розробниками та користувачами системи і наявні як бібліотека.[3] Також розробники широко використовують формальні методи та виведення програм для покращення надійності та зменшення загального обсягу коду. Властивості віконного менеджера (такі як поведінка фокусу вікна) перевіряються використанням QuickCheck. Ці особливості роблять xmonad унікальним у багатьох аспектах; окрім того, що це перший віконний менеджер, написаний на Хаскелі, він також перший, що використовує структуру даних зіппер для автоматичного керування фокусом. Розробники пишуть:

«Використовуючи виразність сучасної функціональної мови з багатою системою статичних типів, xmonad є повноцінним віконним менеджером з великою функціональністю, що містить менш, ніж 500 рядків коду, з наголосом на коректність та надійність. Внутрішні властивості віконного менеджера перевіряються комбінацією гарантій, які забезпечуються статичною системою типів, та автоматичному тестуванні, що базується на типах. Перевагою такого підходу є те, що код легко зрозуміти та просто модифікувати.»[4]

Він використовує такі інструменти та особливості Хаскеля, як: QuickCheck, розширення GHC (такі як охорона шаблонів), монади, перетворювачі монад, зіппери, та систему пакетів Cabal, у доповнення до прив'язки Хаскеля до Xlib.

Посилання ред.

  1. Keyboard-Driven Environments Open a New Window. OSnews. 31 травня 2007. Архів оригіналу за 26 червня 2013. Процитовано 31 травня 2007.
  2. Haskell Weekly News: April 27, 2007. Haskell Weekly News. 27 квітня 2007. Архів оригіналу за 26 червня 2013. Процитовано 23 травня 2007.
  3. xmonad: Contributed code. xmonad.org. 22 травня 2007. Архів оригіналу за 26 червня 2013. Процитовано 23 травня 2007.
  4. Manpage of xmonad. xmonad.org. 18 квітня 2007. Архів оригіналу за 26 червня 2013. Процитовано 17 травня 2007.

Зовнішні посилання ред.