summaryrefslogtreecommitdiff
path: root/gnu/packages/wm.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/wm.scm')
-rw-r--r--gnu/packages/wm.scm555
1 files changed, 345 insertions, 210 deletions
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 2fd70af07f..e6f593ec27 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -37,7 +37,7 @@
;;; Copyright © 2020 Marcin Karpezo <sirmacik@wioo.waw.pl>
;;; Copyright © 2020 EuAndreh <eu@euandre.org>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
-;;; Copyright © 2020, 2022 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2020, 2022, 2023 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
;;; Copyright © 2020 Niklas Eklund <niklas.eklund@posteo.net>
;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net>
@@ -46,7 +46,7 @@
;;; Copyright © 2021 qblade <qblade@protonmail.com>
;;; Copyright © 2021 lasnesne <lasnesne@lagunposprasihopre.org>
;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
-;;; Copyright © 2021 jgart <jgart@dismail.de>
+;;; Copyright © 2021, 2023 jgart <jgart@dismail.de>
;;; Copyright © 2021 Disseminate Dissent <disseminatedissent@protonmail.com>
;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2022 Gabriel Wicki <gabriel@erlikon.ch>
@@ -100,6 +100,7 @@
#:use-module (gnu packages bison)
#:use-module (gnu packages build-tools)
#:use-module (gnu packages calendar)
+ #:use-module (gnu packages compression)
#:use-module (gnu packages check)
#:use-module (gnu packages datastructures)
#:use-module (gnu packages docbook)
@@ -108,6 +109,7 @@
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages fribidi)
#:use-module (gnu packages gawk)
+ #:use-module (gnu packages gettext)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages gperf)
@@ -189,14 +191,14 @@ the leaves of a full binary tree.")
(define-public herbstluftwm
(package
(name "herbstluftwm")
- (version "0.9.4")
+ (version "0.9.5")
(source
(origin
(method url-fetch)
(uri (string-append "https://herbstluftwm.org/tarballs/herbstluftwm-"
version ".tar.gz"))
(sha256
- (base32 "1k03rdr6irsgnjl4w0vac0kk9nsz46qhy74iflmaycxgfv8fxy7f"))
+ (base32 "01c1f5041bblg8d7p12jkynd57xi1frxy61qsrdcxgp5144n1m5j"))
(file-name (string-append "herbstluftwm-" version ".tar.gz"))))
(build-system cmake-build-system)
(inputs
@@ -207,6 +209,7 @@ the leaves of a full binary tree.")
xterm
xsetroot
libx11
+ libxcursor
libxext
libxfixes
libxinerama
@@ -223,6 +226,10 @@ the leaves of a full binary tree.")
(string-append "-DBASHCOMPLETIONDIR=" out "/etc/bash_completion.d")))
#:phases
(modify-phases %standard-phases
+ (add-before 'configure 'link-libxcursor
+ (lambda _
+ ;; libX11 will dlopen libXcursor to load cursors.
+ (setenv "LDFLAGS" "-lXcursor")))
(add-after 'install 'install-xsession
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@@ -734,89 +741,131 @@ This screen locker can be used with any window manager or
desktop environment.")
(license license:expat)))
-(define-public xmonad-next
+(define-public icewm
(package
- (name "xmonad-next")
- (version "0.17.0")
- (synopsis "Tiling window manager")
+ (name "icewm")
+ (version "3.3.1")
(source (origin
(method url-fetch)
- (uri (string-append "mirror://hackage/package/xmonad/"
- "xmonad-" version ".tar.gz"))
+ (uri (string-append
+ "https://github.com/ice-wm/icewm/releases/download/"
+ version "/icewm-" version ".tar.lz"))
(sha256
(base32
- "04qspdz9w6xpw1npcmx2zx0595wc68q985pv4i0hvp32zillvdqy"))
- (patches (search-patches "xmonad-next-dynamic-linking.patch"))))
- (build-system haskell-build-system)
- (inputs (list ghc-data-default-class ghc-setlocale ghc-x11))
- (native-inputs (list ghc-quickcheck ghc-quickcheck-classes))
+ "1m0jl9d2ikwb1s2cpm3q7f73h84mai9y31k8bhsq8y47jbkc6slk"))))
+ (build-system gnu-build-system)
+ (native-inputs (list pkg-config))
+ (inputs (list fontconfig
+ fribidi
+ glib ;for icewm-menu-fdo
+ imlib2
+ libice
+ libjpeg-turbo
+ libsm
+ libxcomposite
+ libxdamage
+ libxext
+ libxfixes
+ libxft
+ libxinerama
+ libxpm
+ libxrandr
+ libxrender
+ libx11
+ lzip
+ perl))
(arguments
(list #:phases
#~(modify-phases %standard-phases
- (add-after 'install 'install-xsession
+ (add-after 'unpack 'remove-gmo-files
+ ;; gmo files are generated from .po files
+ ;; so remove them before build to make sure
+ ;; they are re-generated if needed
+ (lambda _
+ (for-each delete-file
+ (find-files "po" "\\.gmo$"))))
+ (add-after 'unpack 'skip-failing-test
+ ;; strtest.cc tests failing due to $HOME and /etc setup
+ ;; difference under guix
(lambda _
- (let ((xsessions (string-append #$output "/share/xsessions")))
- (mkdir-p xsessions)
- (call-with-output-file (string-append xsessions
- "/xmonad.desktop")
- (lambda (port)
- (format port "~
- [Desktop Entry]~@
- Name=~a~@
- Comment=~a~@
- Exec=~a/bin/xmonad~@
- Type=Application~%" #$name #$synopsis #$output)))))))))
- (home-page "https://xmonad.org")
+ (substitute* "src/Makefile.in"
+ (("TESTS = strtest\\$\\(EXEEXT\\)")
+ "TESTS = ")))))))
+ (home-page "https://ice-wm.org/")
+ (synopsis "Window manager for the X Window System")
(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)))
+ "IceWM is a window manager for the X Window System. The goal of IceWM is
+speed, simplicity, and not getting in the user’s way. It comes with a taskbar
+with pager, global and per-window keybindings and a dynamic menu system.
+Application windows can be managed by keyboard and mouse. Windows can be
+iconified to the taskbar, to the tray, to the desktop or be made hidden. They
+are controllable by a quick switch window (Alt+Tab) and in a window list. A
+handful of configurable focus models are menu-selectable. Setups with
+multiple monitors are supported by RandR and Xinerama. IceWM is very
+configurable, themeable and well documented. It includes an optional external
+background wallpaper manager with transparency support, a simple session
+manager and a system tray.")
+ (license license:lgpl2.0)))
(define-public xmonad
(package
- (inherit xmonad-next)
(name "xmonad")
- (version "0.15")
+ (version "0.17.1")
(source (origin
(method url-fetch)
- (uri (string-append "mirror://hackage/package/xmonad/"
- "xmonad-" version ".tar.gz"))
+ (uri (hackage-uri "xmonad" version))
(sha256
(base32
- "0a7rh21k9y6g8fwkggxdxjns2grvvsd5hi2ls4klmqz5xvk4hyaa"))
+ "1apqwyqmc51gamfgsvlanzqqig9qvjss89ibcamhnha1gs1k4jl8"))
(patches (search-patches "xmonad-dynamic-linking.patch"))))
- (inputs
- (list ghc-extensible-exceptions
- ghc-data-default
- ghc-quickcheck
- ghc-semigroups
- ghc-setlocale
- ghc-utf8-string
- ghc-x11))
- (native-inputs '())
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "xmonad")))
+ (inputs (list ghc-x11 ghc-data-default-class ghc-setlocale))
+ (native-inputs (list ghc-quickcheck ghc-quickcheck-classes))
(arguments
- `(#:cabal-revision
- ("1" "0yqh96qqphllr0zyz5j93cij5w2qvf39xxnrb52pz0qz3pywz9wd")
- ,@(package-arguments xmonad-next)))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'install 'install-xsession
+ (lambda _
+ (let ((xsessions (string-append #$output "/share/xsessions")))
+ (mkdir-p xsessions)
+ (call-with-output-file (string-append xsessions
+ "/xmonad.desktop")
+ (lambda (port)
+ (format port "~
+ [Desktop Entry]~@
+ Name=~a~@
+ Comment=xmonad window manager~@
+ Exec=~a/bin/xmonad~@
+ Type=Application~%" #$name #$output)))))))
+ #:cabal-revision '("2"
+ "1rgwrnyb7kijzl2mqm8ks2nydh37q5vkbg4400rg9n6x13w2r9b3")))
+ (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)))
(define-public xmobar
(package
(name "xmobar")
- (version "0.44.2")
+ (version "0.46")
(source (origin
(method url-fetch)
- (uri (string-append "https://hackage.haskell.org/package/xmobar/"
- "xmobar-" version ".tar.gz"))
+ (uri (hackage-uri "xmobar" version))
(sha256
(base32
- "0gdphjn5ll5lkb2psdsb34563wsz6g0y2gg3z8cj4jy8lvbbv808"))))
+ "0glpiq7c0qwfcxnc2flgzj7afm5m1a9ghzwwcq7f8q27m21kddrd"))))
(build-system haskell-build-system)
+ (properties '((upstream-name . "xmobar")))
(native-inputs
(list ghc-hspec hspec-discover))
(inputs
@@ -837,16 +886,22 @@ tiled on several screens.")
ghc-timezone-olson
ghc-x11
ghc-x11-xft
+ ghc-cairo
+ ghc-pango
libxpm))
(arguments
`(#:configure-flags (list "--flags=all_extensions")
+ ;; Haddock documentation is for the library.
+ #:haddock? #f
#:phases
(modify-phases %standard-phases
+ (add-after 'register 'remove-libraries
+ (lambda* (#:key outputs #:allow-other-keys)
+ (delete-file-recursively (string-append (assoc-ref outputs "out") "/lib"))))
(add-before 'build 'patch-test-shebang
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "test/Xmobar/Plugins/Monitors/AlsaSpec.hs"
- (("/bin/bash") (which "bash")))
- #t)))))
+ (("/bin/bash") (which "bash"))))))))
(home-page "https://xmobar.org")
(synopsis "Minimalistic text based status bar")
(description
@@ -878,54 +933,30 @@ Unlike dmenu, it mangles the input before it presents its choices. In
particular, it displays commonly-chosen options before uncommon ones.")
(license license:bsd-3)))
-(define-public ghc-xmonad-contrib-next
+(define-public ghc-xmonad-contrib
(package
- (name "ghc-xmonad-contrib-next")
- (version "0.17.0")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "mirror://hackage/package/xmonad-contrib/"
- "xmonad-contrib-" version ".tar.gz"))
- (sha256
- (base32 "11g1cyfgfvcmz35qhgi9wzxrk3br8m8b7qy3jvph4nnf6aj13wvy"))))
+ (name "ghc-xmonad-contrib")
+ (version "0.17.1")
+ (source (origin
+ (method url-fetch)
+ (uri (hackage-uri "xmonad-contrib" version))
+ (sha256
+ (base32
+ "0lwj8xkyaw6h0rv3lz2jdqrwzz7yghfmnhpndygkb3wgyhvq6dxb"))))
(build-system haskell-build-system)
- (propagated-inputs (list ghc-random ghc-x11 ghc-utf8-string ghc-x11-xft xmonad-next))
+ (properties '((upstream-name . "xmonad-contrib")))
+ (inputs (list ghc-random ghc-x11 xmonad ghc-utf8-string ghc-x11-xft))
(native-inputs (list ghc-quickcheck ghc-hspec))
- (home-page "https://xmonad.org")
+ (arguments
+ `(#:cabal-revision ("1"
+ "0dc9nbn0kaw98rgpi1rq8np601zjhdr1y0ydg6yb82wwaqawql6z")))
+ (home-page "https://xmonad.org/")
(synopsis "Third party extensions for xmonad")
(description
"Third party tiling algorithms, configurations, and scripts to Xmonad, a
tiling window manager for X.")
(license license:bsd-3)))
-(define-public ghc-xmonad-contrib
- (package
- (inherit ghc-xmonad-contrib-next)
- (name "ghc-xmonad-contrib")
- (version "0.16")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "mirror://hackage/package/xmonad-contrib/"
- "xmonad-contrib-" version ".tar.gz"))
- (sha256
- (base32 "1pddgkvnbww28wykncc7j0yb0lv15bk7xnnhdcbrwkxzw66w6wmd"))))
- (arguments
- `(#:cabal-revision
- ("1" "0vimkby2gq6sgzxzbvz67caba609xqlv2ii2gi8a1cjrnn6ib011")
- ,@(package-arguments ghc-xmonad-contrib-next)))
- (native-inputs '())
- (propagated-inputs
- (list ghc-old-time
- ghc-random
- ghc-utf8-string
- ghc-extensible-exceptions
- ghc-semigroups
- ghc-x11
- ghc-x11-xft
- xmonad))))
-
(define-public evilwm
(package
(name "evilwm")
@@ -958,7 +989,7 @@ tiling window manager for X.")
#:tests? #f ;no tests
#:phases (modify-phases %standard-phases
(delete 'configure)))) ;no configure script
- (home-page "http://www.6809.org.uk/evilwm/")
+ (home-page "https://www.6809.org.uk/evilwm/")
(synopsis "Minimalist window manager for the X Window System")
(description
"evilwm is a minimalist window manager based on aewm, extended to feature
@@ -977,12 +1008,17 @@ drags, snap-to-border support, and virtual desktops.")
version "/fluxbox-" version ".tar.xz"))
(sha256
(base32
- "1h1f70y40qd225dqx937vzb4k2cz219agm1zvnjxakn5jkz7b37w"))))
+ "1h1f70y40qd225dqx937vzb4k2cz219agm1zvnjxakn5jkz7b37w"))
+ (patches
+ (search-patches "fluxbox-1.3.7-no-dynamic-cursor.patch"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags '("CPPFLAGS=-U__TIME__") ;ugly, but for reproducibility
#:phases
(modify-phases %standard-phases
+ (add-before 'bootstrap 'force-bootstrap
+ (lambda _
+ (delete-file "configure")))
(add-after 'install 'install-vim-files
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@@ -1005,12 +1041,13 @@ drags, snap-to-border support, and virtual desktops.")
Type=Application~%" ,name ,synopsis out)))
#t))))))
(native-inputs
- (list pkg-config))
+ (list autoconf automake gnu-gettext pkg-config))
(inputs
(list freetype
fribidi
imlib2
libx11
+ libxcursor
libxext
libxft
libxinerama
@@ -1227,7 +1264,7 @@ all of them. Currently supported window managers include:
@item WindowMaker
@item XFCE
@end enumerate\n")
- (home-page "http://menumaker.sourceforge.net/")
+ (home-page "https://menumaker.sourceforge.net/")
(license license:bsd-2)))
(define-public keybinder
@@ -1332,47 +1369,40 @@ It is inspired by Xmonad and dwm. Its major features include:
(define-public cwm
(package
(name "cwm")
- (version "6.7")
+ (version "7.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://leahneukirchen.org/releases/cwm-"
version ".tar.gz"))
(sha256
- (base32 "022zld29qawd8gl700g4m24qa89il3aks397zkhh66wvzssdblzx"))))
+ (base32 "145xjwam11194w2irsvs4z0xgn0jdijxfmx67gqd1n0j8g5wan2a"))))
(build-system gnu-build-system)
(arguments
- `(#:make-flags (list (string-append "CC=" ,(cc-for-target))
- (string-append "PREFIX=" %output))
- #:tests? #f
- #:phases
- (modify-phases %standard-phases
- (delete 'configure)
- (add-after 'build 'install-xsession
- (lambda* (#:key outputs #:allow-other-keys)
- ;; Add a .desktop file to xsessions.
- (let* ((output (assoc-ref outputs "out"))
- (xsessions (string-append output "/share/xsessions")))
- (mkdir-p xsessions)
- (with-output-to-file
- (string-append xsessions "/cwm.desktop")
- (lambda _
- (format #t
- "[Desktop Entry]~@
- Name=cwm~@
- Comment=OpenBSD Calm Window Manager fork~@
- Exec=~a/bin/cwm~@
- TryExec=~@*~a/bin/cwm~@
- Icon=~@
- Type=Application~%"
- output)))
- #t))))))
- (inputs
- (list libxft libxrandr libxinerama))
+ (list
+ #:tests? #f
+ #:make-flags #~(list (string-append "CC=" #$(cc-for-target))
+ (string-append "PREFIX=" #$output))
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)
+ (add-after 'build 'install-xsession
+ (lambda _
+ ;; Add a .desktop file to xsessions.
+ (let ((xsessions (string-append #$output "/share/xsessions")))
+ (mkdir-p xsessions)
+ (make-desktop-entry-file
+ (string-append xsessions "/cwm.desktop")
+ #:name: cwm
+ #:exec (string-append #$output "/bin/cwm")
+ #:try-exec (string-append #$output "/bin/cwm")
+ #:comment '((#f "OpenBSD Calm Window Manager fork")))))))))
(native-inputs
- (list pkg-config bison))
+ (list bison pkg-config))
+ (inputs
+ (list libxrandr libxft libxinerama))
(home-page "https://github.com/leahneukirchen/cwm")
- (synopsis "OpenBSD fork of the calmwm window manager")
+ (synopsis "OpenBSD fork of the Calm Window Manager")
(description "Cwm is a stacking window manager for X11. It is an OpenBSD
project derived from the original Calm Window Manager.")
(license license:isc)))
@@ -1807,6 +1837,14 @@ core/thread.")
(home-page "https://github.com/plattfot/cpu-histogram/")
(license license:expat)))
+(define-public waybar-experimental
+ (let ((base waybar))
+ (package/inherit base
+ (name "waybar-experimental")
+ (arguments
+ (list #:configure-flags #~(list "-Dexperimental=true")))
+ (synopsis "Waybar with experimental features"))))
+
(define-public wlr-randr
(package
(name "wlr-randr")
@@ -1889,59 +1927,55 @@ Wayland compositors supporting the wlr-output-management protocol.")
(license license:expat))) ; MIT license
(define-public stumpwm
- ;; Some fixes to make stumpwm work with sbcl>=2.2.7 are not in a release
- ;; yet, so we use a commit directly.
- (let ((commit "ff6cb73f48f0df4285948f1009ef3b285c78b351")
- (revision "1"))
- (package
- (name "stumpwm")
- (version (git-version "22.05" revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/stumpwm/stumpwm")
- (commit commit)))
- (file-name (git-file-name "stumpwm" version))
- (sha256
- (base32 "0gvr136fv5zs61017gns3kbkz00837n0b52fif9vany5fslx3aj2"))))
- (build-system asdf-build-system/sbcl)
- (native-inputs
- (list sbcl-fiasco
- texinfo
+ (package
+ (name "stumpwm")
+ (version "22.11")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/stumpwm/stumpwm")
+ (commit version)))
+ (file-name (git-file-name "stumpwm" version))
+ (sha256
+ (base32 "1wxgddmkgmpml44a3m6bd8y529b13jz14apxxipmij10wzpgay6d"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ (list sbcl-fiasco
+ texinfo
- ;; To build the manual.
- autoconf
- automake))
- (inputs
- (list sbcl-alexandria
- sbcl-cl-ppcre
- sbcl-clx))
- (outputs '("out" "lib"))
- (arguments
- (list
- #:phases
- #~(modify-phases %standard-phases
- (add-after 'unpack 'fix-tests
- (lambda _
- (substitute* "stumpwm-tests.asd"
- (("\"ALL-TESTS\"")
- "\"RUN-PACKAGE-TESTS\" :package"))))
- (add-after 'create-asdf-configuration 'build-program
- (lambda* (#:key outputs #:allow-other-keys)
- (build-program
- (string-append (assoc-ref outputs "out") "/bin/stumpwm")
- outputs
- #:entry-program '((stumpwm:stumpwm) 0))))
- (add-after 'build-program 'create-desktop-file
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (xsessions (string-append out "/share/xsessions")))
- (mkdir-p xsessions)
- (call-with-output-file
- (string-append xsessions "/stumpwm.desktop")
- (lambda (file)
- (format file
+ ;; To build the manual.
+ autoconf
+ automake))
+ (inputs
+ (list sbcl-alexandria
+ sbcl-cl-ppcre
+ sbcl-clx))
+ (outputs '("out" "lib"))
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-tests
+ (lambda _
+ (substitute* "stumpwm-tests.asd"
+ (("\"ALL-TESTS\"")
+ "\"RUN-PACKAGE-TESTS\" :package"))))
+ (add-after 'create-asdf-configuration 'build-program
+ (lambda* (#:key outputs #:allow-other-keys)
+ (build-program
+ (string-append (assoc-ref outputs "out") "/bin/stumpwm")
+ outputs
+ #:entry-program '((stumpwm:stumpwm) 0))))
+ (add-after 'build-program 'create-desktop-file
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (xsessions (string-append out "/share/xsessions")))
+ (mkdir-p xsessions)
+ (call-with-output-file
+ (string-append xsessions "/stumpwm.desktop")
+ (lambda (file)
+ (format file
"[Desktop Entry]~@
Name=stumpwm~@
Comment=The Stump Window Manager~@
@@ -1950,26 +1984,23 @@ Wayland compositors supporting the wlr-output-management protocol.")
Icon=~@
Type=Application~%"
out))))))
- (add-after 'install 'install-manual
- (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (info (string-append out "/share/info")))
- (invoke "./autogen.sh")
- (invoke "sh" "./configure" "SHELL=sh")
- (apply invoke "make" "stumpwm.info" make-flags)
- (install-file "stumpwm.info" info)))))))
- (synopsis "Window manager written in Common Lisp")
- (description
- "Stumpwm is a window manager written entirely in Common Lisp.
+ (add-after 'install 'install-manual
+ (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (info (string-append out "/share/info")))
+ (invoke "./autogen.sh")
+ (invoke "sh" "./configure" "SHELL=sh")
+ (apply invoke "make" "stumpwm.info" make-flags)
+ (install-file "stumpwm.info" info)))))))
+ (synopsis "Window manager written in Common Lisp")
+ (description
+ "Stumpwm is a window manager written entirely in Common Lisp.
It attempts to be highly customizable while relying entirely on the keyboard
for input. These design decisions reflect the growing popularity of
productive, customizable lisp based systems.")
- (home-page "https://github.com/stumpwm/stumpwm")
- (license license:gpl2+)
- (properties `((cl-source-variant . ,(delay cl-stumpwm)))))))
-
-(define-public sbcl-stumpwm
- (deprecated-package "sbcl-stumpwm" stumpwm))
+ (home-page "https://github.com/stumpwm/stumpwm")
+ (license license:gpl2+)
+ (properties `((cl-source-variant . ,(delay cl-stumpwm))))))
(define-public cl-stumpwm
(package
@@ -2006,8 +2037,8 @@ productive, customizable lisp based systems.")
(delete 'cleanup)))))))
(define stumpwm-contrib
- (let ((commit "d0c05077eca5257d33083de949c10bca4aac4242")
- (revision "4"))
+ (let ((commit "4613a956add7a17986a3b26c341229466cd13f1d")
+ (revision "5"))
(package
(name "stumpwm-contrib")
(version (git-version "0.0.1" revision commit)) ;no upstream release
@@ -2019,7 +2050,7 @@ productive, customizable lisp based systems.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
- (base32 "0zxhqh9wjfk7zas67kmwfx0a47y8rxmh8f1a5rcs300bv1083lkb"))))
+ (base32 "1g8h2vd5qsmaiz6ixlx9ykrv6a08izmkf0js18fvljvznpyhsznz"))))
(build-system asdf-build-system/sbcl)
(inputs
`(("stumpwm" ,stumpwm "lib")))
@@ -2087,9 +2118,6 @@ productive, customizable lisp based systems.")
control module for StumpWM.")
(license license:gpl3))))
-(define-public sbcl-stumpwm+slynk
- (deprecated-package "sbcl-stumpwm-with-slynk" stumpwm+slynk))
-
(define-public sbcl-stumpwm-ttf-fonts
(package
(inherit stumpwm-contrib)
@@ -2357,6 +2385,25 @@ one in Emacs.")
PNG files.")
(license license:gpl3+)))
+(define-public sbcl-stumpwm-hostname
+ (package
+ (inherit stumpwm-contrib)
+ (name "sbcl-stumpwm-hostname")
+ (arguments
+ '(#:asd-systems '("hostname")
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'chdir
+ (lambda _
+ (chdir "modeline/hostname"))))))
+ (home-page
+ "https://github.com/stumpwm/stumpwm-contrib/tree/master/modeline/hostname")
+ (synopsis "Put hostname in the StumpWM modeline")
+ (description "This StumpWM module puts the hostname in the StumpWM
+modeline.")
+ (license license:gpl3+)))
+
(define-public sbcl-stumpwm-notify
(package
(inherit stumpwm-contrib)
@@ -2764,6 +2811,94 @@ read and write, and compatible with JSON.")
capabilities. It is heavily inspired by the Calm Window manager(cwm).")
(license license:bsd-2)))
+(define-public jwm
+ (package
+ (name "jwm")
+ (version "2.4.3")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/joewing/jwm/releases/download/"
+ "v" version "/jwm-" version ".tar.xz"))
+ (sha256
+ (base32
+ "1av7r9sp26r5l74zvwdmyyyzav29mw5bafihp7y33vsjqkh4wfzf"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:tests? #f ; no check target
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'install 'install-xsession
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (xsessions (string-append out "/share/xsessions")))
+ (mkdir-p xsessions)
+ (call-with-output-file
+ (string-append xsessions "/jwm.desktop")
+ (lambda (port)
+ (format port "~
+ [Desktop Entry]~@
+ Name=jwm~@
+ Comment=Joe's Window Manager~@
+ Exec=~a/bin/jwm~@
+ Type=XSession~%" out)))))))))
+ (native-inputs (list pkg-config))
+ (inputs
+ (list cairo
+ libjpeg-turbo
+ libpng
+ librsvg
+ libxext
+ libxinerama
+ libxmu
+ libxpm
+ libxrender
+ libxt
+ pango))
+ (home-page "http://joewing.net/projects/jwm")
+ (synopsis "Joe's Window Manager")
+ (description
+ "JWM is a light-weight window manager for the X11 Window System. it is
+written in C and uses only Xlib at a minimum. Because of its small footprint,
+it makes a good window manager for older computers and less powerful systems,
+such as the Raspberry Pi, though it is perfectly capable of running on modern
+systems.")
+ (license license:expat)))
+
+(define-public mjwm
+ (package
+ (name "mjwm")
+ (version "4.1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/chiku/mjwm")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0lgfp2xidhvmbj4zqvzz9g8zwbn6mz0pgacc57b43ha523vamsjq"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:tests? #f ; no check target
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-subcategory.h
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "include/subcategory.h"
+ ;; icon name should be application-other instead of
+ ;; application-others.
+ (("applications-others") "applications-other")))))))
+ (home-page "https://github.com/chiku/mjwm")
+ (synopsis "Create menu for JWM")
+ (description
+ "MJWM can create JWM's menu from (freedesktop) desktop files and the
+generated file can be include in the rootmenu section of your jwm config
+file.")
+ (license license:gpl2+)))
+
(define-public devour
(package
(name "devour")
@@ -2962,7 +3097,7 @@ used for multimedia keys.")
(build-system copy-build-system)
(arguments
(list #:install-plan #~`(("grimshot" "bin/")
- ("grimshot.1" "usr/share/man/man1/"))
+ ("grimshot.1" "share/man/man1/"))
#:phases #~(modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda _