xmonad
Original author(s) | Spencer Janssen, Don Stewart, Jason Creighton |
---|---|
Initial release | March 6, 2007[1] |
Stable release | 0.18.0[2]
/ 3 February 2024 |
Repository | |
Written in | Cross-platform; requires an X Window System and GHC |
Size | 56 KB (source code)[3] |
Available in | English |
Type | Window manager |
License | BSD 3-clause |
Website | xmonad |
xmonad is a dynamic window manager (tiling) for the X Window System, noted for being written in the functional programming language Haskell.[4][5]
Window manager
Begun in March 2007, version 0.1 was announced
While originally a clone of dwm (derivative in areas such as default keybindings), xmonad now supports features not available to dwm users[8][9] such as per-workspace layout, tiling reflection, state preservation, layout mirroring, GNOME support and per-screen status bars; it can be customised by modifying an external configuration file and 'reloaded' while running.[10] xmonad features have begun to influence other tiling window managers: dwm has borrowed "urgency hooks" from xmonad,[11] has also included Xinerama support (for multihead displays) with release 4.8, and patches exist to reimplement xmonad's Fibonacci layout.[12]
Haskell project
In 2023 the
Since xmonad's inception, when its small code size of 500 lines of code was advertised, it has grown to ca. 2000 lines in 2023.
Extensions to the core system, including emulation of other window managers, and unusual layout algorithms, such as window
Along with obviating the need for a mouse,[16] the xmonad developers make heavy use of semi-formal methods and program derivation for improving reliability and enabling a total line of code count less than 1200, as of version 0.7; window manager properties (such as the behavior of window focus) are checked through use of QuickCheck.[17] This emphasis makes xmonad unusual in a number of ways; besides being the first window manager written in Haskell, it is also the first to use the zipper data structure for automatically managing focus, and its core has been proven to be safe with respect to pattern matches,[18] contributing further to reliability. The developers write:
xmonad is a tiling window manager for the X Window system, implemented, configured and dynamically extensible in Haskell. This demonstration presents the case that software dominated by side effects can be developed with the precision and efficiency we expect from Haskell by utilising purely functional data structures, an expressive type system, extended static checking and property-based testing. In addition, we describe the use of Haskell as an application configuration and extension language.[19]
The code is separated into side-effect free code, and a thin wrapper for the side-effects.
Reception
In 2016
Due to the small number of lines of code of the Xmonad application, the use of the
See also
References
- ^ "Initial import: xmonad/xmonad@b2c1430". GitHub.
- ^ "Release 0.18.0". 3 February 2024. Retrieved 20 February 2024.
- ^ "xmonad: download". suckless.org. Archived from the original on 2012-12-26. Retrieved December 17, 2012.
- ^ Network World. xmonad. Archived from the originalon 26 May 2018.
- ^ ISBN 978-3868993691– via Google Books.
- ^ Janssen, Spencer (2007-04-22). "Announce: xmonad 0.1". Haskell-cafe (Mailing list). Archived from the original on 2021-08-30. Retrieved 2021-08-30.
- ^ "Xmonad: a Tiling Window Manager Written in Haskell". OSNews. 2007-05-22. Archived from the original on 2008-04-11. Retrieved 2007-09-23.
- ^ "Keyboard-Driven Environments Open a New Window". OSNews. 2007-05-31. Archived from the original on 2007-06-04. Retrieved 2007-05-31.
- ^ "xmonad 0.4 Released". OSNews. 2007-10-19. Archived from the original on 2007-12-22. Retrieved 2007-12-23.
- execing the new xmonad binary; see "Haskell Weekly News: April 27, 2007". Haskell Weekly News. 2007-04-27. Archived from the originalon 2007-05-29. Retrieved 2007-05-23.
- ^ See the developer discussion Archived 2018-09-18 at the Wayback Machine on the dwm mailing list
- ^ Suckless.org: Fibonacci layouts patch Archived 2013-04-13 at the Wayback Machine to dwm
- ^ "Manpage of xmonad". xmonad.org. 2021-10-27. Archived from the original on 2023-08-13. Retrieved 2023-09-01.
- Internet Relay Chat (IRC) channel and the xmonad mailing list; also, there are many commits to the extension library from non-core devs (see the xmonad statistic page Archived 2007-12-23 at the Wayback Machine)
- ^ "xmonad: Contributed code". xmonad.org. 2007-05-22. Archived from the original on 2007-09-16. Retrieved 2007-05-23.
- ^ Mitchell, Neil (June 2008). "6.5.5". Transformation and Analysis (PDF) (PhD). University of York. Archived (PDF) from the original on 12 September 2018. Retrieved 12 September 2018.
- (PDF) from the original on 2018-07-23. Retrieved 27 September 2018.
- ^ Mitchell, Neil (9 May 2007). "Neil Mitchell's Haskell Blog: Does XMonad crash?". Archived from the original on 2007-05-14. Retrieved 2007-05-17.
- ^ Stewart & Janssen, 2007
- ISBN 978-0596515171. Archivedfrom the original on 2018-09-19. Retrieved 2018-09-18.
- ISBN 9781430262510. Archivedfrom the original on 2018-09-24. Retrieved 2018-09-24 – via Google Books.
- ^ Zawodny, Jeremy (2009-12-06). "My Top Resources of 2009". Linux Magazine. Archived from the original on 2018-09-23. Retrieved 2018-09-23.
{{cite news}}
: CS1 maint: unfit URL (link) - ^ Hoffman, Chris (2012-05-24). "How to Use Xmonad, a Tiling Window Manager for Linux". How-To Geek. Archived from the original on 2018-09-18. Retrieved 2018-09-17.
- ^ Hoffman, Chris (2013-05-18). "Linux Users Have a Choice: 8 Linux Desktop Environments". How-To Geek. Archived from the original on 2017-07-13. Retrieved 2018-09-24.
- Univision Communications. Archivedfrom the original on 2018-09-18. Retrieved 2018-09-17.
- ^ Stieben, Danny (2018-09-18). "Need A Fresh Desktop Environment for Linux? Try Openbox Or xmonad". makeuseof.com. Archived from the original on 2017-11-23. Retrieved 2018-09-24.
- ^ "Mint 18 review: "Just works" Linux doesn't get any better than this". Ars Technica. 2016-08-04. Archived from the original on 2018-09-17. Retrieved 2018-09-17.
- ISBN 978-1484227800– via Amazon.
- from the original on 2018-09-18. Retrieved 2018-09-17.
- ^ "Best Linux desktop of 2018". TechRadar. Future plc. 2018-01-15. Archived from the original on 2018-09-18. Retrieved 2018-09-17.
- ISBN 978-1-4503-1574-6.
- ^ Lippmeier, Ben (May 2010). Type Inference and Optimisation for an Impure World (PDF) (PhD). Australian National University. pp. 45–46. Archived from the original on 2018-09-27.
{{cite thesis}}
: CS1 maint: unfit URL (link) - ISSN 0956-7968.
Works cited
- Stewart, Don; Janssen, Spencer (September 2007). "Xmonad" (PDF). Proceedings of the ACM SIGPLAN workshop on Haskell workshop. p. 119. S2CID 263875343. Retrieved 2007-10-22.
- Association for Computing Machinery archive
- "Design and Implementation of Xmonad – A Tiling Window Manager – Video (.mov) presentation". Archived from the original on April 30, 2016. Retrieved September 18, 2018.
{{cite web}}
: CS1 maint: bot: original URL status unknown (link)
Further reading
- Lunduke, Bryan (2018-02-05). Half a Decade of Linux-y Shenanigans. Bryan Lunduke. p. 5. ISBN 9781387571246. According to Bryan Lunduke xmonad is an unknown desktop environmentwritten in an unknown programming language, adding "Are xmonad and Haskell failures? Are they dead? No. Because they are unique. They are customizable. They are alive and kicking (and awesome)."
- Tucker, Ronnie (29 November 2013). "Full Circle Magazine #79: The Independent Magazine for the Ubuntu Linux Community". Full Circle. Full Circle Team – via Google Books. – the use of xmonad and other lightweight window managers
External links
- Official website
- "Taste of Haskell" – O'Reilly Open Source Convention (OSCON) presentation by Simon Peyton Jones on Haskell, using xmonad as an example
- First half of talk on YouTube (video)
- Second half of talk on YouTube (video)