packages: wm: Add xmonad

main
Luis Guilherme Coelho 2024-09-29 22:11:59 -03:00
parent 047ef31382
commit 424326cc04
No known key found for this signature in database
GPG Key ID: 1F2E76ACE3F531C8
1 changed files with 44 additions and 0 deletions

View File

@ -2,6 +2,8 @@
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages guile)
#:use-module (gnu packages guile-xyz)
#:use-module (gnu packages haskell-check)
#:use-module (gnu packages haskell-xyz)
#:use-module (gnu packages linux)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages wm)
@ -9,7 +11,9 @@
#:use-module (gnu packages zig-xyz)
#:use-module (gnu packages)
#:use-module (guix build-system gnu)
#:use-module (guix build-system haskell)
#:use-module (guix build-system zig)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix packages)
@ -147,3 +151,43 @@ which case the previously focused tags are focused again.")
(native-inputs
(modify-inputs (package-native-inputs river)
(delete "libxkbcommon")))))
(define-public xmonad
(package
(name "xmonad")
(version "0.18.0")
(source
(origin
(method url-fetch)
(uri (hackage-uri "xmonad" version))
(sha256
(base32 "1ysxxjkkx2l160nlj1h8ysxrfhxjlmbws2nm0wyiivmjgn20xs11"))))
(build-system haskell-build-system)
(properties '((upstream-name . "xmonad")))
(arguments
(list #:phases
#~(modify-phases %standard-phases
(add-after 'install 'install-xsession
(lambda _
(let ((xsessions (string-append #$output "/share/xsessions")))
(mkdir-p xsessions)
(make-desktop-entry-file
(string-append xsessions "/xmonad.desktop")
#:name "xmonad"
#:comment "xmonad window manager"
#:type "Application"
#:exec (string-append #$output "/bin/xmonad"))))))))
(inputs (list ghc-x11 ghc-data-default-class ghc-setlocale))
(native-inputs (list ghc-quickcheck ghc-quickcheck-classes))
(home-page "http://xmonad.org")
(synopsis "Tiling window manager")
(description
"Xmonad is a tiling window manager for X. Windows are arranged
automatically to tile the screen without gaps or overlap, maximising screen
use. All features of the window manager are accessible from the keyboard: a
mouse is strictly optional. Xmonad is written and extensible in Haskell.
Custom layout algorithms, and other extensions, may be written by the user in
config files. Layouts are applied dynamically, and different layouts may be
used on each workspace. Xinerama is fully supported, allowing windows to be
tiled on several screens.")
(license license:bsd-3)))