хмонада
Оригинальный автор(ы) | Спенсер Янссен, Дон Стюарт, Джейсон Крейтон |
---|---|
Первоначальный выпуск | 6 марта 2007 г [1] |
Стабильная версия | 0.18.0 [2] / 3 февраля 2024 г. |
Репозиторий | |
Написано в | Хаскелл |
Операционная система | с POSIX Совместимость |
Платформа | Кроссплатформенность ; требуется система X Window и GHC |
Размер | 56 КБ (исходный код) [3] |
Доступно в | Английский |
Тип | Оконный менеджер |
Лицензия | BSD 3-пункт |
Веб-сайт | хмонада |
xmonad — динамический оконный менеджер ( плитка ) для X Window System , известный тем, что написан на функциональном языке программирования Haskell . [4] [5]
Оконный менеджер
[ редактировать ]В марте 2007 года была анонсирована версия 0.1. [6] в апреле 2007 г. как 500 строк Haskell [7] (которые с тех пор выросли до 2000 строк). xmonad — это тайловый оконный менеджер , аналог dwm , larswm и StumpWM . Он располагает окна неперекрывающимся образом и позволяет управлять окнами без использования мыши . xmonad упаковывается и распространяется в широком спектре Unix-подобных операционных систем, таких как большое количество дистрибутивов Linux и системы Berkeley Software Distribution (BSD).
Первоначально xmonad был клоном dwm (производным в таких областях, как сочетания клавиш по умолчанию), но теперь xmonad поддерживает функции, недоступные пользователям dwm. [8] [9] такие как макет для каждого рабочего пространства, отражение мозаики, сохранение состояния, зеркальное отображение макета, поддержка GNOME и строки состояния для каждого экрана; его можно настроить, изменив внешний файл конфигурации и «перезагрузив» во время работы. [10] Функции xmonad начали влиять на другие оконные менеджеры листов: dwm позаимствовал «привязки срочности» у xmonad, [11] 4.8 также включена Xinerama поддержка (для дисплеев с несколькими головками ) В версию , а также существуют исправления для повторной реализации макета Фибоначчи в xmonad. [12]
Хаскелл-проект
[ редактировать ]В 2023 году на странице руководства говорилось:
Используя выразительность современного функционального языка с богатой системой статических типов , xmonad представляет собой полнофункциональный оконный менеджер [...] с упором на корректность и надежность. Внутренние свойства оконного менеджера проверяются с использованием комбинации статических гарантий, предоставляемых системой типов на основе типов , и автоматического тестирования . Преимущество этого в том, что код прост для понимания и легко модифицируется. [13]
С момента создания xmonad, когда рекламировался небольшой размер кода в 500 строк кода, он вырос примерно до . 2000 строк в 2023 году.
Расширения базовой системы, включая эмуляцию других оконных менеджеров и необычные алгоритмы компоновки, такие как мозаика окон на основе спирали Фибоначчи , были реализованы активным сообществом. [14] и доступны как библиотека. [15]
Наряду с устранением необходимости в мыши, [16] разработчики xmonad активно используют полуформальные методы и создание программ для повышения надежности и обеспечения общего количества строк кода менее 1200, начиная с версии 0.7; Свойства оконного менеджера (например, поведение фокуса окна) проверяются с помощью QuickCheck . [17] Этот акцент делает xmonad необычным во многих отношениях; Помимо того, что он является первым оконным менеджером, написанным на Haskell, он также первым использует Zipper структуру данных для автоматического управления фокусом , а его ядро, как было доказано, безопасно в отношении совпадений с шаблонами . [18] еще больше повышая надежность. Разработчики пишут:
xmonad — это тайловый оконный менеджер для системы X Window, реализованный, настраиваемый и динамически расширяемый в Haskell. Эта демонстрация демонстрирует тот случай, когда программное обеспечение, в котором преобладают побочные эффекты , может быть разработано с той точностью и эффективностью, которую мы ожидаем от Haskell, за счет использования чисто функциональных структур данных, системы выразительных типов , расширенной статической проверки и тестирования на основе свойств. Кроме того, мы описываем использование Haskell в качестве языка конфигурации и расширения приложений. [19]
Код разделен на код, свободный от побочных эффектов, и тонкую оболочку для побочных эффектов. [20] По словам Алехандро Серрано Мена, существует два способа реализации предметно-ориентированных языков для действий в приложениях и библиотеках Haskell : «разработка библиотеки комбинатора » или «создание собственной монады », причем xmonad является успешным примером последнего. [21] xmonad был назван одним из самых известных проектов Haskell в книге по функциональному программированию 2013 года. [5]
Прием
[ редактировать ]Журнал Linux Magazine включил xmonad в список «Мои лучшие ресурсы 2009 года». [22] В 2012 году How-To Geek описал xmonad как обладающий хорошей, но сложной возможностью настройки. [23] и он был включен в список восьми сред рабочего стола для Linux в 2013 году. [24] Лайфхакер пишет, что базовым операциям пользовательского интерфейса xmonad можно научиться с помощью небольшого набора инструкций. [25] Высокий уровень настройки и скорость отметили Network World , [4] и в MakeUseOf xmonad получил положительную оценку по сравнению с Openbox . [26]
В 2016 году Ars Technica заявила, что xmonad и Awesome обладают более продвинутыми возможностями тайлинга, чем Cinnamon . [27] В 2017 году его описывали как мощный, с приложением в качестве диспетчера окон для больших данных . [28] в то время как в статье на opensource.com , с другой стороны, dwm был выбран вместо xmonad. [29] В обзоре TechRadar «Лучшего рабочего стола Linux 2018 года» говорится: «Если есть одна среда рабочего стола, которая выделяется среди всех остальных, которые у нас есть, то это именно эта». [30]
Из-за небольшого количества строк кода приложения Xmonad, использования программирования чисто функционального языка Haskell и зафиксированного использования строгой процедуры тестирования его иногда используют в качестве базового приложения в других исследовательских проектах. Это включало повторную реализацию xmonad с использованием помощника по проверке доказательств Coq , [31] определение xmonad является императивной программой , [32] и исследования управления пакетами , относящимися к дистрибутиву NixOS Linux. [33]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Первоначальный импорт: xmonad/xmonad@b2c1430» . Гитхаб .
- ^ «Релиз 0.18.0» . 3 февраля 2024 г. Проверено 20 февраля 2024 г.
- ^ «xmonad: скачать» . suckless.org . Архивировано из оригинала 26 декабря 2012 г. Проверено 17 декабря 2012 г.
- ^ Jump up to: а б Лундьюк, Брайан (15 мая 2013 г.). «10 потрясающих сред рабочего стола Linux, которые вы, вероятно, никогда не видели» . Сетевой мир . xmonad. Архивировано из оригинала 26 мая 2018 года.
- ^ Jump up to: а б Олиг, Йенс; Менерт, Ханнес; Ширмер, Стефани (24 сентября 2018 г.). Книга Карри — Изучите функциональное программирование с помощью JavaScript . О'Рейли Германия . п. 177. ИСБН 978-3868993691 – через Google Книги.
- ^ Янссен, Спенсер (22 апреля 2007 г.). «Объявить: xmonad 0.1» . Haskell-кафе (Список рассылки). Архивировано из оригинала 30 августа 2021 г. Проверено 30 августа 2021 г.
- ^ «Xmonad: тайлинговый оконный менеджер, написанный на Haskell» . ОСНовости . 22 мая 2007 г. Архивировано из оригинала 11 апреля 2008 г. Проверено 23 сентября 2007 г.
- ^ «Среды, управляемые с помощью клавиатуры, открывают новое окно» . ОСНовости . 31 мая 2007 г. Архивировано из оригинала 4 июня 2007 г. Проверено 31 мая 2007 г.
- ^ «Выпущена xmonad 0.4» . ОСНовости . 19 октября 2007 г. Архивировано из оригинала 22 декабря 2007 г. Проверено 23 декабря 2007 г.
- ^ Благодаря сочетанию быстрой перекомпиляции и последующего выполнения нового двоичного файла xmonad; видеть «Еженедельные новости Haskell: 27 апреля 2007 г.» . Еженедельные новости Haskell. 27 апреля 2007 г. Архивировано из оригинала 29 мая 2007 г. Проверено 23 мая 2007 г.
- ^ См. обсуждение разработчиков. Архивировано 18 сентября 2018 г. на Wayback Machine в списке рассылки dwm.
- ^ Suckless.org: патч для раскладок Фибоначчи. Архивировано 13 апреля 2013 г. на Wayback Machine в dwm.
- ^ «Страница руководства xmonad» . xmonad.org. 27 октября 2021 г. Архивировано из оригинала 13 августа 2023 г. Проверено 1 сентября 2023 г.
- ^ Пользователи xmonad генерируют значительный трафик в #xmonad. Архивировано 29 декабря 2007 г. на Wayback Machine канале интернет-релейного чата (IRC) и в списке рассылки xmonad; кроме того, существует множество коммитов в библиотеку расширений от неосновных разработчиков (см. страницу статистики xmonad , заархивировано 23 декабря 2007 г. на Wayback Machine ).
- ^ «xmonad: предоставленный код» . xmonad.org. 22 мая 2007 г. Архивировано из оригинала 16 сентября 2007 г. Проверено 23 мая 2007 г.
- ^ Митчелл, Нил (июнь 2008 г.). «6.5.5». Трансформация и анализ (PDF) (доктор философии). Университет Йорка. Архивировано (PDF) из оригинала 12 сентября 2018 г. Проверено 12 сентября 2018 г.
- ^ Ху, Чжэньцзян; Хьюз, Джон; Ван, Мэн (2015). «Какое значение имеет функциональное программирование» (PDF) . Национальный научный обзор . 2 (3): 350–351. дои : 10.1093/nsr/nwv042 . ISSN 2095-5138 . Архивировано (PDF) из оригинала 23 июля 2018 г. Проверено 27 сентября 2018 г.
- ^ Митчелл, Нил (9 мая 2007 г.). «Блог Нила Митчелла о Haskell: происходит ли сбой XMonad?» . Архивировано из оригинала 14 мая 2007 г. Проверено 17 мая 2007 г.
- ^ Стюарт и Янссен, 2007 г.
- ^ Смотритель, Шейн; Бьянкуцци, Федерико (2009). Вдохновители программирования: беседы с создателями основных языков программирования . О'Рейли Медиа . п. 181. ИСБН 978-0596515171 . Архивировано из оригинала 19 сентября 2018 г. Проверено 18 сентября 2018 г.
- ^ Мена, Алехандро Серрано (5 марта 2014 г.). Начало Haskell: проектный подход . Апресс . п. 385. ИСБН 9781430262510 . Архивировано из оригинала 24 сентября 2018 г. Получено 24 сентября 2018 г. - через Google Книги.
- ^ Заводный, Джереми (6 декабря 2009 г.). «Мои лучшие ресурсы 2009 года» . Журнал Линукс . Архивировано из оригинала 23 сентября 2018 г. Проверено 23 сентября 2018 г.
{{cite news}}
: CS1 maint: неподходящий URL ( ссылка ) - ^ Хоффман, Крис (24 мая 2012 г.). «Как использовать Xmonad, менеджер окон для Linux» . Как компьютерщик. Архивировано из оригинала 18 сентября 2018 г. Проверено 17 сентября 2018 г.
- ^ Хоффман, Крис (18 мая 2013 г.). «У пользователей Linux есть выбор: 8 сред рабочего стола Linux» . Как компьютерщик. Архивировано из оригинала 13 июля 2017 г. Проверено 24 сентября 2018 г.
- ^ Герцен, Джон (8 января 2013 г.). «Я воспитал своих детей в командной строке… и им это нравится» . Лайфхакер . Юнивизион Коммуникейшнс . Архивировано из оригинала 18 сентября 2018 г. Проверено 17 сентября 2018 г.
- ^ Штибен, Дэнни (18 сентября 2018 г.). «Нужна новая среда рабочего стола для Linux? Попробуйте Openbox или xmonad» . makeuseof.com . Архивировано из оригинала 23 ноября 2017 г. Проверено 24 сентября 2018 г.
- ^ «Обзор Mint 18: «Просто работает». Linux не может быть лучше этого» . Арс Техника . 04.08.2016. Архивировано из оригинала 17 сентября 2018 г. Проверено 17 сентября 2018 г.
- ^ Нита, Стефания Лоредана; Михайлеску, Мариус (14 сентября 2017 г.). Практический параллельный Haskell: с приложениями для больших данных . Апресс . стр. 40–41. ISBN 978-1484227800 – через Амазон.
- ^ «4 основных причины, по которым я использую dwm в качестве оконного менеджера Linux» . Opensource.com . Красная шляпа . 18 июля 2017 г. Архивировано из оригинала 18 сентября 2018 г. Проверено 17 сентября 2018 г.
- ^ «Лучший рабочий стол Linux 2018 года» . ТехРадар . ООО «Фьючер» . 15 января 2018 г. Архивировано из оригинала 18 сентября 2018 г. Проверено 17 сентября 2018 г.
- ^ Свирстра, Воутер (13 сентября 2012 г.). «xmonad в Coq (отчет об опыте) Программирование оконного менеджера с помощью помощника по проверке». В Фойгтлендере, Дж. (ред.). Haskell '12 Материалы симпозиума Haskell 2012 года . ICFP 2012 17-я Международная конференция ACM SIGPLAN по функциональному программированию . Копенгаген, Дания: Ассоциация вычислительной техники . стр. 131–136. ISBN 978-1-4503-1574-6 .
- ^ Липпмайер, Бен (май 2010 г.). Вывод типа и оптимизация для нечистого мира (PDF) (доктор философии). Австралийский национальный университет. стр. 45–46. Архивировано из оригинала 27 сентября 2018 г.
{{cite thesis}}
: CS1 maint: неподходящий URL ( ссылка ) - ^ Долстра, Eelco; ЛО, Андрес; Пьеррон, Николя (ноябрь 2010 г.). «NixOS: чисто функциональный дистрибутив Linux» . Журнал функционального программирования . 20 (5–6): 577–615. дои : 10.1017/S0956796810000195 . ISSN 0956-7968 .
Цитируемые работы
[ редактировать ]- Стюарт, Дон; Янссен, Спенсер (сентябрь 2007 г.). «Хмонад» (PDF) . Материалы семинара ACM SIGPLAN по Haskell . п. 119. дои : 10.1145/1291201.1291218 . ISBN 978-1-59593-674-5 . S2CID 263875343 . Проверено 22 октября 2007 г.
- Архив Ассоциации вычислительной техники
- «Проектирование и реализация Xmonad — диспетчер оконных плиток — презентация видео (.mov)» . Архивировано из оригинала 30 апреля 2016 года . Проверено 18 сентября 2018 г.
{{cite web}}
: CS1 maint: bot: исходный статус URL неизвестен ( ссылка )
Дальнейшее чтение
[ редактировать ]- Лундьюк, Брайан (05 февраля 2018 г.). Полвека Linux-ных махинаций . Брайан Ландук. п. 5. ISBN 9781387571246 . По словам Брайана Лундьюка, xmonad — это неизвестная среда рабочего стола , написанная на неизвестном языке программирования, и он добавляет: «Являются ли xmonad и Haskell неудачными? Они мертвы? Нет. Потому что они уникальны. Их можно настраивать. Они живы и здоровы (и потрясающие). "
- Такер, Ронни (29 ноября 2013 г.). «Журнал Full Circle № 79: Независимый журнал для сообщества Ubuntu Linux» . Полный круг . Команда Full Circle – через Google Книги. — использование xmonad и других облегченных оконных менеджеров
Внешние ссылки
[ редактировать ]- Официальный сайт
- «Вкус Haskell» - на конференции O'Reilly Open Source Convention презентация Саймона Пейтона Джонса (OSCON) о Haskell на примере xmonad.