Xmonad - Xmonad
xmonad в режиме мозаики | |
Оригинальный автор (ы) | Спенсер Янссен, Дон Стюарт, Джейсон Крейтон |
---|---|
изначальный выпуск | 6 марта 2007 г.[1] |
Стабильный выпуск | 0.15[2] / 30 сентября 2018 г. |
Предварительный выпуск | последний Darcs редакция / (снимок) |
Репозиторий | |
Написано в | Haskell |
Операционная система | POSIX-совместимый |
Платформа | Кроссплатформенность; требует X Window System и GHC |
Размер | 56 КБ (исходный код)[3] |
Доступно в | английский |
Тип | Оконный менеджер |
Лицензия | BSD-3 |
Интернет сайт | xmonad |
xmonad это динамический оконный менеджер (черепица ) для X Window System, отмеченный тем, что был написан в функциональный язык программирования Haskell.[4][5]
Оконный менеджер
Начато в марте 2007 г., анонсирована версия 0.1.[6] в апреле 2007 года как 500 линии из Haskell.[7] xmonad - это тайловый оконный менеджер, сродни dwm, larswm, и StumpWM. Он упорядочивает окна в неперекрывающемся шаблоне и позволяет управлять окнами без использования мышь. xmonad это упакованный и распространяется на широкий спектр Unix-подобный операционные системы, например большое количество Дистрибутивы Linux, и Системы BSD.
Хотя изначально клон dwm (производный в таких областях, как привязки клавиш по умолчанию), xmonad теперь поддерживает функции, недоступные для пользователей dwm[8][9] такие как макет для каждой рабочей области, отражение мозаики, сохранение состояния, зеркальное отображение макета, ГНОМ поддержка и экранные строки состояния; его можно настроить, изменив внешний файл конфигурации и «перезагрузив» во время работы.[10] Возможности xmonad начали влиять на другие менеджеры тайловых окон - dwm позаимствовал «хуки срочности» у xmonad,[11] также включены Xinerama Поддержка для многоголовочные дисплеи ) с участием выпуск 4.8, и существуют патчи для повторной реализации схемы Фибоначчи xmonad.[12]
Проект Haskell
В 2007 г. страница руководства заявил:
Используя выразительность современного функционального языка с богатым статический тип system, xmonad предоставляет полный, функциональный оконный менеджер, содержащий менее 500 строк кода, с упором на правильность и надежность. Внутренние свойства оконного менеджера проверяются с использованием комбинации статических гарантий, предоставляемых системой типов, и на основе типов. автоматизированное тестирование. Преимущество этого состоит в том, что код прост для понимания и легко модифицируется.[13]
Расширения основной системы, включая эмуляцию других оконных менеджеров и необычных алгоритмов компоновки, таких как окно черепица на основе Спираль Фибоначчи, были реализованы активным сообществом[14] и доступны в виде библиотеки.[15]
Помимо устранения необходимости в мыши,[16] разработчики xmonad активно используют полу-формальные методы и вывод программы для повышения надежности и включения общего количества строк кода менее 1200, начиная с версии 0.7; Свойства оконного менеджера (такие как поведение фокуса окна) проверяются с помощью Быстрая проверка.[17] Этот акцент делает xmonad необычным во многих отношениях; помимо того, что он был первым оконным менеджером, написанным на Haskell, он также первым использовал молния структура данных для автоматического управления фокус, и его ядро оказалось безопасным в отношении соответствие шаблонов,[18] способствуя дальнейшему повышению надежности. Разработчики пишут:
xmonad - это тайловый оконный менеджер для системы X Window, реализованный, сконфигурированный и динамически расширяемый в Haskell. Эта демонстрация представляет случай, когда в программном обеспечении преобладают побочные эффекты могут быть разработаны с точностью и эффективностью, которые мы ожидаем от Haskell, за счет использования чисто функциональных структур данных, выразительных система типов, расширенная статическая проверка и тестирование на основе свойств. Кроме того, мы описываем использование Haskell как языка конфигурации и расширения приложения.[19]
Код разделен на код без побочных эффектов и тонкую оболочку для побочных эффектов.[20] По словам Алехандро Серрано Мена, есть два способа реализовать предметно-ориентированные языки для действий в Haskell Приложения и библиотеки "разработка библиотека комбинаторов "или" катить самостоятельно монада ", и xmonad является успешным примером последнего.[21]xmonad был признан одним из самых известных проектов Haskell в книге по функциональному программированию 2013 года.[5]
Прием
Журнал Linux включил xmonad в список «Мои лучшие ресурсы 2009 года».[22] В 2012, How-To Компьютерщик описал xmonad как имеющий хорошую, но сложную возможность настройки,[23] и он был включен в список из восьми окружений рабочего стола для Linux 2013 года.[24] Лайфхакер написал, что базовым операциям пользовательского интерфейса xmonads можно обучить с помощью небольшого набора инструкций.[25] Высокий уровень настройки и скорости отмечен Сетевой мир,[4] а в MakeUseOf xmonad получил положительные отзывы по сравнению с Открытая коробка.[26]
В 2016 г. Ars Technica сказал xmonad и Потрясающие имел более развитую способность мозаики, чем Корица.[27] В 2017 году он был описан как мощный, с приложением в качестве диспетчера Windows для большое количество данных,[28] в то время как в статье о opensource.com с другой стороны, dwm был выбран вместо xmonad.[29] А TechRadar Обзор «Лучшего рабочего стола Linux 2018 года» гласил: «Если есть одна среда рабочего стола, которая выделяется среди всех остальных, которые у нас есть здесь, то это эта».[30]
Из-за небольшого количества строк кода приложения Xmonad использование чисто функциональное программирование язык Haskell, а также зарегистрировано использование строгой процедуры тестирования, которое иногда используется в качестве базового приложения в других исследовательских проектах. Это включало повторную реализацию xmonad с использованием Помощник доказательства Coq,[31] определение xmonad является императивная программа,[32] и исследования управление пакетами относящийся к NixOS дистрибутив linux.[33]
Смотрите также
использованная литература
- ^ "Первоначальный импорт. · Xmonad / xmonad @ b2c1430". GitHub.
- ^ «Релизы - xmonad / xmonad». Получено 1 февраля 2019 - через GitHub.
- ^ "xmonad: скачать". suckless.org. В архиве из оригинала от 26.12.2012. Получено 17 декабря, 2012.
- ^ а б Лундук, Брайан (15 мая 2013 г.). «10 удивительных окружений рабочего стола Linux, которые вы, вероятно, никогда не видели». Сетевой мир. xmonad. В архиве с оригинала 25 мая 2018 г.
- ^ а б Олиг, Йенс; Менерт, Ханнес; Ширмер, Стефани (24 сентября 2018 г.). Das Curry-Buch - Функциональные программы для JavaScript. O'Reilly Германия. п. 177. ISBN 978-3868993691 - через Google Книги.
- ^ "{заглавие}". Архивировано 25 июня 2007 г.. Получено 2018-09-23.CS1 maint: BOT: статус исходного URL-адреса неизвестен (ссылка на сайт) Список рассылки Haskell-cafe от Спенсера Янссена
- ^ "Xmonad: оконный менеджер тайлов, написанный на Haskell". OSNews. 2007-05-22. В архиве из оригинала от 11.04.2008. Получено 2007-09-23.
- ^ «Среда, управляемая клавиатурой, открывает новое окно». OSNews. 2007-05-31. В архиве из оригинала от 04.06.2007. Получено 2007-05-31.
- ^ "xmonad 0.4 выпущен". OSNews. 2007-10-19. В архиве из оригинала от 22 декабря 2007 г.. Получено 2007-12-23.
- ^ Благодаря сочетанию быстрой повторной компиляции, а затем исполнение новый двоичный файл xmonad; увидеть "Еженедельные новости Haskell: 27 апреля 2007 г.". Еженедельные новости Haskell. 2007-04-27. Архивировано из оригинал на 2007-05-29. Получено 2007-05-23.
- ^ Увидеть обсуждение разработчиков В архиве 2018-09-18 в Wayback Machine в списке рассылки dwm
- ^ Suckless.org: патч макетов Фибоначчи В архиве 2013-04-13 в Wayback Machine dwm
- ^ "Справочная страница xmonad". xmonad.org. 2007-04-18. В архиве из оригинала 2007-07-08. Получено 2007-05-17.
- ^ Пользователи xmonad генерируют значительный трафик в #xmonad В архиве 2007-12-29 на Wayback Machine IRC канал и список рассылки xmonad; кроме того, существует значительное количество коммитов в библиотеку расширений от неосновных разработчиков (см. страница статистики xmonad В архиве 2007-12-23 на Wayback Machine )
- ^ "xmonad: добавленный код". xmonad.org. 2007-05-22. В архиве из оригинала от 16.09.2007. Получено 2007-05-23.
- ^ Митчелл, Нил (июнь 2008 г.). «6.5.5». Трансформация и анализ (PDF) (Кандидат наук). Йоркский университет. В архиве (PDF) из оригинала 12 сентября 2018 г.. Получено 12 сентября 2018.
- ^ Ху, Чжэньцзян; Хьюз, Джон; Ван, Мэн (2015). «Какое значение имеет функциональное программирование» (PDF). Национальный научный обзор. 2 (3): 350–351. Дои:10.1093 / nsr / nwv042. ISSN 2095-5138. В архиве (PDF) из оригинала на 2018-07-23. Получено 27 сентября 2018.
- ^ Митчелл, Нил (9 мая 2007 г.). "Блог Нила Митчелла на Haskell: происходит ли сбой XMonad?". В архиве из оригинала от 14 мая 2007 г.. Получено 2007-05-17.
- ^ Стюарт и Янссен, 2007 г.
- ^ Уорден, Шейн; Бьянкуцци, Федерико (2009). Идеи программирования: беседы с создателями основных языков программирования. O'Reilly Media. п. 181. ISBN 978-0596515171. В архиве из оригинала на 2018-09-19. Получено 2018-09-18.
- ^ Мена, Алехандро Серрано (5 марта 2014 г.). Начало работы с Haskell: проектный подход. Apress. п. 385. ISBN 9781430262510. В архиве из оригинала на 2018-09-24. Получено 2018-09-24 - через Google Книги.
- ^ Заводный, Джереми (06.12.2009). «Мои лучшие ресурсы 2009 года». Журнал Linux. В архиве из оригинала на 2018-09-23. Получено 2018-09-23.
- ^ Хоффман, Крис (2012-05-24). «Как использовать Xmonad, диспетчер окон мозаики для Linux». How-To Компьютерщик. В архиве из оригинала 2018-09-18. Получено 2018-09-17.
- ^ Хоффман, Крис (18 мая 2013 г.). «У пользователей Linux есть выбор: 8 сред рабочего стола Linux». How-To Компьютерщик. В архиве из оригинала на 13.07.2017. Получено 2018-09-24.
- ^ Герцен, Джон (2013-01-08). «Я вырастил своих детей с помощью командной строки ... и им это нравится». Лайфхакер. Univision Communications. В архиве из оригинала 2018-09-18. Получено 2018-09-17.
- ^ Стибен, Дэнни (18.09.2018). «Нужна свежая среда рабочего стола для Linux? Попробуйте Openbox или xmonad». makeuseof.com. В архиве из оригинала от 23.11.2017. Получено 2018-09-24.
- ^ «Обзор Mint 18:« Просто работает »« Linux не может быть лучше этого ». Ars Technica. 2016-08-04. В архиве из оригинала на 2018-09-17. Получено 2018-09-17.
- ^ Нита, Стефания Лоредана; Михайлеску, Мариус (14 сентября 2017 г.). Практический параллельный Haskell: с приложениями для больших данных. Apress. С. 40–41. ISBN 978-1484227800 - через Amazon.
- ^ «Четыре основных причины, по которым я использую dwm в качестве оконного менеджера Linux». Opensource.com. Красная Шапка. 2017-07-18. В архиве из оригинала 2018-09-18. Получено 2018-09-17.
- ^ «Лучший рабочий стол Linux 2018 года». TechRadar. Future plc. 2018-01-15. В архиве из оригинала 2018-09-18. Получено 2018-09-17.
- ^ Свиерстра, Воутер (13 сентября 2012 г.). «xmonad в Coq (отчет о впечатлениях), программирование оконного менеджера с помощью помощника по проверке». В Voigtländer, J (ред.). Haskell '12 Материалы симпозиума по Haskell 2012 г.. ICFP 2012 17-я Международная конференция ACM SIGPLAN по функциональному программированию. Копенгаген, Дания: Ассоциация вычислительной техники. С. 131–136. ISBN 978-1-4503-1574-6.
- ^ Липпмайер, Бен (май 2010 г.). Вывод типов и оптимизация для нечистого мира (PDF) (Кандидат наук). Австралийский национальный университет. С. 45–46. В архиве (PDF) из оригинала от 27.09.2018.
- ^ Долстра, Eelco; ЛЁ, Андрес; Пьерон, Николас (ноябрь 2010 г.). «NixOS: чисто функциональный дистрибутив Linux». Журнал функционального программирования. 20 (5–6): 577–615. Дои:10.1017 / S0956796810000195. ISSN 0956-7968.
- Заметки
- Стюарт, Дон; Янссен, Спенсер (сентябрь 2007 г.). "XMonad: диспетчер окон мозаики" (PDF). Haskell '07: Материалы семинара ACM SIGPLAN по Haskell Workshop: 119. Дои:10.1145/1291201.1291218. ISBN 978-1-59593-674-5. Получено 2007-10-22.
- Архив Ассоциации вычислительной техники
- Проектирование и реализация Xmonad - Диспетчер окон мозаики - Видео .mov презентация на Wayback Machine (архивировано 30 апреля 2016 г.)
дальнейшее чтение
- Лундук, Брайан (05.02.2018). Половина десятилетия Linux-шенаниганов. Брайан Лундук. п. 5. ISBN 9781387571246. По словам Брайана Лундукэ, xmonad неизвестен среда рабочего стола написаны на неизвестном языке программирования с добавлением «Являются ли ошибки xmonad и Haskell ошибками? Они мертвы? Нет. Потому что они уникальны. Они настраиваемы.
- Такер, Ронни (29 ноября 2013 г.). "Full Circle Magazine # 79: НЕЗАВИСИМЫЙ ЖУРНАЛ ДЛЯ СООБЩЕСТВА UBUNTU LINUX". Полный круг. Команда Full Circle - через Google Книги. - использование xmonad и других легких оконных менеджеров
внешние ссылки
- Официальный веб-сайт
- «Вкус Haskell» - ОСКОН презентация Саймон Пейтон Джонс на Haskell, используя xmonad в качестве примера