2007년 3월에 시작된 xmonad의 0.1 버전은 2007년 4월에 500 라인의 하스켈 코드로 발표되었다. (현재는 2000라인까지 늘어났다). xmonad는 Dwm, larswm, StumpWM과 유사한 타일형 창 관리자이다. 창을 겹치지 않는 패턴으로 배열하며, 마우스를 사용하지 않고도 창을 관리할 수 있게 한다. xmonad는 많은 리눅스 배포판과 BSD 시스템을 포함한 광범위한 유닉스 계열운영체제에서 패키지화되어 배포된다.
원래는 dwm의 클론(기본 키 바인딩과 같은 부분에서 파생됨)이었으나, 현재 xmonad는 작업 공간별 레이아웃, 타일링 반전, 상태 보존, 레이아웃 미러링, GNOME 지원 및 화면별 상태 표시줄과 같이 dwm 사용자가 사용할 수 없는 기능을 지원한다. 또한 외부 설정 파일을 수정하여 사용자 정의가 가능하며, 실행 중에 '다시 로드'할 수 있다. xmonad의 기능은 다른 타일형 창 관리자에 영향을 주기 시작했다. dwm은 xmonad에서 "urgency hooks"를 차용했으며, 버전 4.8에서 (다중 모니터를 위한) Xinerama 지원을 포함했고, xmonad의 피보나치 나선 레이아웃을 재구현하기 위한 패치도 존재한다.
풍부한 정적 자료형 시스템을 갖춘 현대적인 함수형 언어의 표현력을 활용함으로써, xmonad는 정확성과 견고성에 중점을 둔 완벽하고 기능이 풍부한 창 관리자를 제공한다 [...]. 창 관리자의 내부 속성은 자료형 체계가 제공하는 정적 보증과 자료형 기반의 자동화된 테스트의 조합을 사용하여 확인된다. 이로 인한 이점은 코드가 이해하기 쉽고 수정하기 용이하다는 점이다.
소스 코드 크기가 500라인에 불과하다는 점을 내세웠던 초창기 이후, xmonad는 2023년 기준[update] 약 2,000라인까지 성장했다.
다른 창 관리자의 에뮬레이션이나 피보나치 나선 기반의 창 타일링과 같은 독특한 레이아웃 알고리즘을 포함한 핵심 시스템의 확장 기능들은 활발한 커뮤니티에 의해 구현되었으며 라이브러리로 사용 가능하다.
마우스의 필요성을 제거한 것과 더불어, xmonad 개발자들은 신뢰성을 높이고 버전 0.7 기준 총 코드 수를 1200라인 미만으로 유지하기 위해 준정형 기법과 프로그램 파생을 집중적으로 사용한다. (창 포커스 동작과 같은) 창 관리자의 속성은 QuickCheck를 사용하여 확인된다. 이러한 강조점 덕분에 xmonad는 여러 면에서 독특하다. 하스켈로 작성된 최초의 창 관리자일 뿐만 아니라, 포커스를 자동으로 관리하기 위해 지퍼자료 구조를 사용한 최초의 사례이기도 하며, 그 핵심은 패턴 매칭과 관련하여 안전함이 증명되어 신뢰성에 더욱 기여한다. 개발자들은 다음과 같이 기록했다:
xmonad는 X 윈도 시스템을 위한 타일형 창 관리자로, 하스켈로 구현되고 설정되며 동적으로 확장 가능하다. 이 시연은 부작용이 지배적인 소프트웨어도 순수 함수형 자료 구조, 표현력 있는 자료형 체계, 확장된 정적 검사 및 속성 기반 테스트를 활용함으로써 하스켈에서 기대하는 정밀도와 효율성으로 개발될 수 있음을 보여준다. 또한 하스켈을 애플리케이션 설정 및 확장 언어로 사용하는 방법을 설명한다.
코드는 부작용이 없는 코드와 부작용을 위한 얇은 래퍼로 분리되어 있다. 알레한드로 세라노 메나에 따르면, 하스켈 응용 소프트웨어 및 라이브러리에서 동작을 위한 도메인 특화 언어를 구현하는 방법에는 "콤비네이터 라이브러리를 개발하는 것"과 "자신만의 모나드를 만드는 것"의 두 가지가 있는데, xmonad는 후자의 성공적인 예이다.
xmonad는 2013년 함수형 프로그래밍 서적에서 가장 잘 알려진 하스켈 프로젝트 중 하나로 간주되었다.
평가
리눅스 매거진은 "2009년 최고의 리소스" 목록에 xmonad를 포함했다. 2012년 하우투긱(How-To Geek)은 xmonad가 훌륭하지만 복잡한 설정 능력을 갖추고 있다고 설명했으며, 2013년 리눅스를 위한 8가지 데스크톱 환경 목록에 포함되었다. 라이프해커는 xmonad 사용자 인터페이스의 기본 조작을 소수의 명령어로 익힐 수 있다고 썼다. Network World는 높은 수준의 사용자 정의 가능성과 속도를 주목했으며, MakeUseOf에서는 오픈박스에 비해 긍정적인 평가를 받았다.
2016년 아르스 테크니카는 xmonad와 Awesome이 시나몬보다 더 발전된 타일링 능력을 갖추고 있다고 언급했다. 2017년에는 빅 데이터용 창 관리자로서의 응용 가능성과 함께 강력하다는 설명을 들었으며, 반면 opensource.com의 한 기사에서는 xmonad 대신 dwm이 선택되기도 했다. 테크레이더의 "2018년 최고의 리눅스 데스크톱" 리뷰에서는 "우리가 다룬 모든 데스크톱 환경 중에서 단 하나 눈에 띄는 것이 있다면 바로 이것이다"라고 평했다.
↑xmonad 사용자는 #xmonad보관됨 2007-12-29 - 웨이백 머신 IRC 채널과 xmonad 메일링 리스트에서 상당한 트래픽을 생성한다. 또한 핵심 개발자가 아닌 이들의 확장 라이브러리 기여도 많다(xmonad 통계 페이지보관됨 2007-12-23 - 웨이백 머신 참고).
↑Mitchell, Neil (June 2008). 〈6.5.5〉 (PhD). 《Transformation and Analysis》(PDF). University of York. 12 September 2018에 원본 문서(PDF)에서 보존된 문서. 12 September 2018에 확인함.
Lunduke, Bryan (2018년 2월 5일). 《Half a Decade of Linux-y Shenanigans》. Bryan Lunduke. 5쪽. ISBN9781387571246. 브라이언 런듀크에 따르면 xmonad는 알려지지 않은 프로그래밍 언어로 작성된 알려지지 않은 데스크톱 환경이며, "xmonad와 하스켈은 실패작인가? 그들은 죽었는가? 아니다. 그들은 독특하기 때문이다. 사용자 정의가 가능하다. 그들은 여전히 건재하다(그리고 멋지다)."라고 덧붙였다.