X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/1aa765fd52086731bf2ec6da04f0afbe6535c8aa..69924071806ba0d3f2c231167ccdcc2ced98cb2b:/gnu/packages/wm.scm diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index 56a0ca63cf..8ae4c2c1fc 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -13,9 +13,9 @@ ;;; Copyright © 2016 doncatnip ;;; Copyright © 2016 Ivan Vilata i Balaguer ;;; Copyright © 2017 Mekeor Melire -;;; Copyright © 2017, 2019 Marius Bakke -;;; Copyright © 2017, 2020 Oleg Pykhalov -;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice +;;; Copyright © 2017, 2019, 2020 Marius Bakke +;;; Copyright © 2017, 2020, 2021 Oleg Pykhalov +;;; Copyright © 2018–2021 Tobias Geerinckx-Rice ;;; Copyright © 2018 Pierre-Antoine Rouby ;;; Copyright © 2018, 2019 Meiyo Peng ;;; Copyright © 2019 Rutger Helling @@ -31,12 +31,20 @@ ;;; Copyright © 2019 Brett Gilio ;;; Copyright © 2019 Noodles! ;;; Copyright © 2019, 2020 Alexandru-Sergiu Marton -;;; Copyright © 2020 Nicolas Goaziou +;;; Copyright © 2020, 2021 Nicolas Goaziou ;;; Copyright © 2020 Brice Waegeneire ;;; Copyright © 2020 Boris A. Dekshteyn ;;; Copyright © 2020 Marcin Karpezo ;;; Copyright © 2020 EuAndreh ;;; Copyright © 2020 Michael Rohleder +;;; Copyright © 2020 Guillaume Le Vaillant +;;; Copyright © 2020 B. Wilson +;;; Copyright © 2020 Niklas Eklund +;;; Copyright © 2020 Robert Smith +;;; Copyright © 2021 Zheng Junjie <873216071@qq.com> +;;; Copyright © 2021 Sharlatan Hellseher +;;; Copyright © 2021 qblade +;;; Copyright © 2021 lasnesne ;;; ;;; This file is part of GNU Guix. ;;; @@ -72,6 +80,7 @@ #:use-module (gnu packages autotools) #:use-module (gnu packages base) #:use-module (gnu packages bison) + #:use-module (gnu packages build-tools) ;for meson-0.55 #:use-module (gnu packages calendar) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation) @@ -154,14 +163,14 @@ the leaves of a full binary tree.") (define-public herbstluftwm (package (name "herbstluftwm") - (version "0.8.3") + (version "0.9.2") (source (origin (method url-fetch) (uri (string-append "https://herbstluftwm.org/tarballs/herbstluftwm-" version ".tar.gz")) (sha256 - (base32 "1qmb4pjf2f6g0dvcg11cw9njwmxblhqzd70ai8qnlgqw1iz3nkm1")) + (base32 "0avfhr68f6fjnafjdcyxcx7dkg38f2nadmhpj971qyqzfq2f6i38")) (file-name (string-append "herbstluftwm-" version ".tar.gz")))) (build-system cmake-build-system) (inputs @@ -174,10 +183,12 @@ the leaves of a full binary tree.") ("libx11" ,libx11) ("libxext" ,libxext) ("libxinerama" ,libxinerama) - ("libxrandr" ,libxrandr))) + ("libxrandr" ,libxrandr) + ("libxft" ,libxft))) (native-inputs `(("asciidoc" ,asciidoc) - ("pkg-config" ,pkg-config))) + ("pkg-config" ,pkg-config) + ("python" ,python))) (arguments '(#:tests? #f #:configure-flags @@ -312,7 +323,6 @@ commands would.") ("libxkbcommon" ,libxkbcommon) ("libev" ,libev) ("libyajl" ,libyajl) - ("asciidoc" ,asciidoc) ("xmlto" ,xmlto) ("perl-pod-simple" ,perl-pod-simple) ("libx11" ,libx11) @@ -324,6 +334,7 @@ commands would.") `(("which" ,which) ("perl" ,perl) ("pkg-config" ,pkg-config) + ("asciidoc-py3" ,asciidoc-py3) ;; For building the documentation. ("libxml2" ,libxml2) ("docbook-xsl" ,docbook-xsl))) @@ -611,7 +622,7 @@ Features include: "/bin/gawk"))) (substitute* "lock" - (("$(which wmctrl)") wmctrl) + (("\\$\\(command -V wmctrl\\)") wmctrl) (("convert") mconvert) (("shot=\\(import") (string-append "shot=\(" mimport)) (("awk -F") (string-append awk " -F")) @@ -1205,18 +1216,17 @@ It is inspired by Xmonad and dwm. Its major features include: (define-public cwm (package (name "cwm") - (version "6.6") + (version "6.7") (source (origin (method url-fetch) (uri (string-append "https://leahneukirchen.org/releases/cwm-" version ".tar.gz")) (sha256 - (base32 - "0p350pbfn92m21jiq4i324sdskxhs71p435g0mgz7cmzprnhhg92")))) + (base32 "022zld29qawd8gl700g4m24qa89il3aks397zkhh66wvzssdblzx")))) (build-system gnu-build-system) (arguments - `(#:make-flags (list "CC=gcc" + `(#:make-flags (list (string-append "CC=" ,(cc-for-target)) (string-append "PREFIX=" %output)) #:tests? #f #:phases @@ -1254,6 +1264,45 @@ It is inspired by Xmonad and dwm. Its major features include: project derived from the original Calm Window Manager.") (license license:isc))) +(define-public dwl + (package + (name "dwl") + (version "0.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/djpohly/dwl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0r5hsxpckkrq1y7bjfq58rlc5xy45z499rg628q3nh289978ail1")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no tests + #:make-flags + (list + (string-append "CC=" ,(cc-for-target)) + (string-append "PREFIX=" (assoc-ref %outputs "out"))) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) ; no configure + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("wlroots" ,wlroots))) + (home-page "https://github.com/djpohly/dwl") + (synopsis "Dynamic window manager for Wayland") + (description + "@command{dwl} is a compact, hackable compositor for Wayland based on +wlroots. It is intended to fill the same space in the Wayland world that dwm +does in X11, primarily in terms of philosophy, and secondarily in terms of +functionality. Like dwm, dwl is easy to understand and hack on, due to a +limited size and a few external dependencies. It is configurable via +@file{config.h}.") + ;; LICENSE LICENSE.dwm LICENSE.tinywl + (license (list license:gpl3+ license:expat license:cc0)))) + (define-public nitrogen (package (name "nitrogen") @@ -1297,14 +1346,14 @@ its size (define-public polybar (package (name "polybar") - (version "3.4.3") + (version "3.5.5") (source (origin (method url-fetch) (uri (string-append "https://github.com/polybar/polybar/releases/" - "download/" version "/polybar-" version ".tar")) + "download/" version "/polybar-" version ".tar.gz")) (sha256 - (base32 "0bw22qvbcdvyd0qv3ax48r34rnclbbb6dyb8h8zljq1r3lf15vfl")))) + (base32 "1c8br9972x1qw7l2shj9aqzv0gsx58fdh3r0f1z5i1bqdwxmsqky")))) (build-system cmake-build-system) (arguments ;; Test is disabled because it requires downloading googletest from the @@ -1342,7 +1391,7 @@ functionality to display information about the most commonly used services.") (define-public wlroots (package (name "wlroots") - (version "0.10.1") + (version "0.12.0") (source (origin (method git-fetch) @@ -1351,32 +1400,35 @@ functionality to display information about the most commonly used services.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0j2lh9vc92zhn44rjbia5aw3y1rpgfng1x1h17lcvj5m4i6vj0pc")))) + (base32 "01j38lmgs2c6fq68v8b75pkilia2wsgzgp46ivfbi9hhx47kgcfn")))) (build-system meson-build-system) (arguments `(#:configure-flags '("-Dlogind-provider=elogind") + #:meson ,meson-0.55 #:phases (modify-phases %standard-phases (add-before 'configure 'hardcode-paths (lambda* (#:key inputs #:allow-other-keys) - (substitute* "xwayland/xwayland.c" + (substitute* "xwayland/server.c" (("Xwayland") (string-append (assoc-ref inputs "xorg-server-xwayland") "/bin/Xwayland"))) #t))))) - (inputs `(("elogind" ,elogind) - ("eudev" ,eudev) - ("libinput" ,libinput) - ("libxkbcommon" ,libxkbcommon) - ("mesa" ,mesa) - ("pixman" ,pixman) - ("wayland" ,wayland) - ("xorg-server-xwayland" ,xorg-server-xwayland))) - (native-inputs `(("ffmpeg" ,ffmpeg) - ("libcap" ,libcap) - ("libpng" ,libpng) - ("pkg-config" ,pkg-config) - ("wayland-protocols" ,wayland-protocols))) + (propagated-inputs + `(;; As required by wlroots.pc. + ("elogind" ,elogind) + ("eudev" ,eudev) + ("libinput" ,libinput) + ("libxkbcommon" ,libxkbcommon) + ("mesa" ,mesa) + ("pixman" ,pixman) + ("wayland" ,wayland) + ("wayland-protocols" ,wayland-protocols) + ("xcb-util-errors" ,xcb-util-errors) + ("xcb-util-wm" ,xcb-util-wm) + ("xorg-server-xwayland" ,xorg-server-xwayland))) + (native-inputs + `(("pkg-config" ,pkg-config))) (home-page "https://github.com/swaywm/wlroots") (synopsis "Pluggable, composable, unopinionated modules for building a Wayland compositor") @@ -1387,9 +1439,7 @@ modules for building a Wayland compositor.") (define-public sway (package (name "sway") - ;; XXX When updating, check whether grim-revert-output-rotation.patch can - ;; be dropped from the grim package. - (version "1.4") + (version "1.5.1") (source (origin (method git-fetch) @@ -1398,7 +1448,7 @@ modules for building a Wayland compositor.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "11qf89y3q92g696a6f4d23qb44gqixg6qxq740vwv2jw59ms34ja")))) + (base32 "1xsa3h8zhf29p0mi90baxpr76jkd9pd1gr97ky8cnjbcs4isj9j0")))) (build-system meson-build-system) (arguments `(#:phases @@ -1427,21 +1477,21 @@ modules for building a Wayland compositor.") ("swaybg" ,swaybg) ("wayland" ,wayland) ("wlroots" ,wlroots))) - (native-inputs `(("libcap" ,libcap) - ("linux-pam" ,linux-pam) - ("mesa" ,mesa) - ("pkg-config" ,pkg-config) - ("scdoc" ,scdoc) - ("wayland-protocols" ,wayland-protocols))) + (native-inputs + `(("linux-pam" ,linux-pam) + ("mesa" ,mesa) + ("pkg-config" ,pkg-config) + ("scdoc" ,scdoc) + ("wayland-protocols" ,wayland-protocols))) (home-page "https://github.com/swaywm/sway") (synopsis "Wayland compositor compatible with i3") (description "Sway is a i3-compatible Wayland compositor.") - (license license:expat))) ; MIT license + (license license:expat))) (define-public swayidle (package (name "swayidle") - (version "1.5") + (version "1.6") (source (origin (method git-fetch) @@ -1450,7 +1500,7 @@ modules for building a Wayland compositor.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "05qi96j58xqxjiighay1d39rfanxcpn6vlynj23mb5dymxvlaq9n")))) + (base32 "1nd3v8r9549lykdwh4krldfl59lzaspmmai5k1icy7dvi6kkr18r")))) (build-system meson-build-system) (arguments `(#:configure-flags '("-Dlogind-provider=elogind"))) @@ -1467,7 +1517,7 @@ modules for building a Wayland compositor.") (define-public swaylock (package (name "swaylock") - (version "1.4") + (version "1.5") (source (origin (method git-fetch) @@ -1476,7 +1526,7 @@ modules for building a Wayland compositor.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1ii9ql1mxkk2z69dv6bg1x22nl3a46iww764wqjiv78x08xpk982")))) + (base32 "0r95p4w11dwm5ra614vddz83r8j7z6gd120z2vcchy7m9b0f15kf")))) (build-system meson-build-system) (inputs `(("cairo" ,cairo) ("gdk-pixbuf" ,gdk-pixbuf) @@ -1520,7 +1570,7 @@ modules for building a Wayland compositor.") (define-public waybar (package (name "waybar") - (version "0.9.4") + (version "0.9.7") (source (origin (method git-fetch) @@ -1529,10 +1579,10 @@ modules for building a Wayland compositor.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "038vnma7y7z81caywp45yr364bc1aq8d01j5vycyiyfv33nm76fy")))) + (base32 "17cn4d3dx92v40jd9vl41smp8hh3gf5chd1j2f7l1lrpfpnllg5x")))) (build-system meson-build-system) (inputs `(("date" ,date) - ("fmt" ,fmt-6) + ("fmt" ,fmt) ("gtk-layer-shell" ,gtk-layer-shell) ("gtkmm" ,gtkmm) ("jsoncpp" ,jsoncpp) @@ -1555,10 +1605,31 @@ modules for building a Wayland compositor.") Wlroots based compositors.") (license license:expat))) ; MIT license +(define-public wlr-randr + (package + (name "wlr-randr") + (version "0.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emersion/wlr-randr") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "10c8zzp78s5bw34vvjhilipa28bsdx3jbyhnxgp8f8kawh3cvgsc")))) + (build-system meson-build-system) + (inputs `(("wayland" ,wayland))) + (native-inputs `(("pkg-config" ,pkg-config))) + (home-page "https://github.com/emersion/wlr-randr") + (synopsis "Utility to manage Wayland compositor outputs") + (description "wlr-randr is a utility to manage outputs of a Wayland compositor.") + (license license:expat))) ; MIT license + (define-public mako (package (name "mako") - (version "1.4") + (version "1.4.1") (source (origin (method git-fetch) @@ -1567,7 +1638,7 @@ Wlroots based compositors.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "11ymiq6cr2ma0iva1mqybn3j6k73bsc6lv6pcbdq7hkhd4f9b7j9")))) + (base32 "0hwvibpnrximb628w9dsfjpi30b5jy7nfkm4d94z5vhp78p43vxh")))) (build-system meson-build-system) (inputs `(("cairo" ,cairo) ("elogind" ,elogind) @@ -1583,10 +1654,34 @@ Wlroots based compositors.") compositors that support the layer-shell protocol.") (license license:expat))) ; MIT license +(define-public kanshi + (package + (name "kanshi") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emersion/kanshi") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0nbpgm8qnn7ljsg9vgs35kl8l4rrk542vdcbx8wrn9r909ld3x92")))) + (build-system meson-build-system) + (inputs `(("wayland" ,wayland))) + (native-inputs `(("pkg-config" ,pkg-config) + ("scdoc" ,scdoc))) + (home-page "https://wayland.emersion.fr/kanshi") + (synopsis "Hotswappable output profiles for Wayland") + (description "Kanshi allows you to define output profiles that are +automatically enabled and disabled on hotplug. Kanshi can be used with +Wayland compositors supporting the wlr-output-management protocol.") + (license license:expat))) ; MIT license + (define-public stumpwm (package (name "stumpwm") - (version "19.11") + (version "20.11") (source (origin (method git-fetch) @@ -1595,7 +1690,7 @@ compositors that support the layer-shell protocol.") (commit version))) (file-name (git-file-name "stumpwm" version)) (sha256 - (base32 "1ha8803ll7472kqxsy2xz0v5d4sv8apmc9z631d67m31q0z1m9rz")))) + (base32 "1ghs6ihvmb3bz4q4ys1d3h6rdi96xyiw7l2ip7jh54c25049aymf")))) (build-system asdf-build-system/sbcl) (native-inputs `(("fiasco" ,sbcl-fiasco) ("texinfo" ,texinfo) @@ -1608,10 +1703,10 @@ compositors that support the layer-shell protocol.") ("alexandria" ,sbcl-alexandria))) (outputs '("out" "lib")) (arguments - '(#:asd-system-name "stumpwm" + '(#:asd-systems '("stumpwm") #:phases (modify-phases %standard-phases - (add-after 'create-symlinks 'build-program + (add-after 'create-asdf-configuration 'build-program (lambda* (#:key outputs #:allow-other-keys) (build-program (string-append (assoc-ref outputs "out") "/bin/stumpwm") @@ -1677,26 +1772,22 @@ productive, customizable lisp based systems.") (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (program (string-append out "/bin/stumpwm"))) + (setenv "HOME" "/tmp") (build-program program outputs #:entry-program '((stumpwm:stumpwm) 0) - #:dependencies '("stumpwm" - ,@(@@ (gnu packages lisp-xyz) slynk-systems)) + #:dependencies '("stumpwm" "slynk") #:dependency-prefixes (map (lambda (input) (assoc-ref inputs input)) '("stumpwm" "slynk"))) - ;; Remove unneeded file. - (delete-file (string-append out "/bin/stumpwm-exec.fasl")) #t))) (delete 'copy-source) (delete 'build) (delete 'check) - (delete 'create-asd-file) - (delete 'cleanup) - (delete 'create-symlinks))))))) + (delete 'cleanup))))))) (define stumpwm-contrib - (let ((commit "920f8fc1488f7953f205e1dda4c2ecbbbda56d63") - (revision "2")) + (let ((commit "a7dc1c663d04e6c73a4772c8a6ad56a34381096a") + (revision "3")) (package (name "stumpwm-contrib") (version (git-version "0.0.1" revision commit)) ;no upstream release @@ -1708,7 +1799,7 @@ productive, customizable lisp based systems.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "0giac390bq95ag41xkxqp8jjrhfx1wpgglz7jg5rkm0wjhcwmyml")))) + (base32 "09akdaaya7lga5lzbq1aj1filsyjwvflghkidpmr0nk0jz5xx1g7")))) (build-system asdf-build-system/sbcl) (inputs `(("stumpwm" ,stumpwm "lib"))) @@ -1757,7 +1848,7 @@ productive, customizable lisp based systems.") `(("stumpwm" ,stumpwm "lib") ("clx-truetype" ,sbcl-clx-truetype))) (arguments - '(#:asd-system-name "ttf-fonts" + '(#:asd-systems '("ttf-fonts") #:tests? #f #:phases (modify-phases %standard-phases @@ -1774,7 +1865,7 @@ rendering.") (inherit stumpwm-contrib) (name "sbcl-stumpwm-pass") (arguments - '(#:asd-system-name "pass" + '(#:asd-systems '("pass") #:tests? #f #:phases (modify-phases %standard-phases @@ -1791,7 +1882,7 @@ password-store into StumpWM.") (inherit stumpwm-contrib) (name "sbcl-stumpwm-globalwindows") (arguments - '(#:asd-system-name "globalwindows" + '(#:asd-systems '("globalwindows") #:tests? #f #:phases (modify-phases %standard-phases @@ -1808,7 +1899,7 @@ windows in the current X session.") (inherit stumpwm-contrib) (name "sbcl-stumpwm-swm-gaps") (arguments - '(#:asd-system-name "swm-gaps" + '(#:asd-systems '("swm-gaps") #:tests? #f #:phases (modify-phases %standard-phases @@ -1825,7 +1916,7 @@ between windows.") (inherit stumpwm-contrib) (name "sbcl-stumpwm-net") (arguments - '(#:asd-system-name "net" + '(#:asd-systems '("net") #:tests? #f #:phases (modify-phases %standard-phases @@ -1843,7 +1934,7 @@ between windows.") (inherit stumpwm-contrib) (name "sbcl-stumpwm-wifi") (arguments - '(#:asd-system-name "wifi" + '(#:asd-systems '("wifi") #:tests? #f #:phases (modify-phases %standard-phases @@ -1861,7 +1952,7 @@ between windows.") (inherit stumpwm-contrib) (name "sbcl-stumpwm-stumptray") (arguments - '(#:asd-system-name "stumptray" + '(#:asd-systems '("stumptray") #:tests? #f #:phases (modify-phases %standard-phases @@ -1883,7 +1974,7 @@ between windows.") (inherit stumpwm-contrib) (name "sbcl-stumpwm-kbd-layouts") (arguments - '(#:asd-system-name "kbd-layouts" + '(#:asd-systems '("kbd-layouts") #:tests? #f #:phases (modify-phases %standard-phases @@ -1894,6 +1985,127 @@ between windows.") (description "Keyboard layout switcher for StumpWM") (license license:gpl3+))) +(define-public sbcl-stumpwm-numpad-layouts + (package + (inherit stumpwm-contrib) + (name "sbcl-stumpwm-numpad-layouts") + (arguments + '(#:asd-systems '("numpad-layouts") + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ + (chdir "util/numpad-layouts")))))) + (home-page + "https://github.com/stumpwm/stumpwm-contrib/tree/master/util/numpad-layouts") + (synopsis "Keyboard numpad layouts for StumpWM") + (description "This is a module for handling different keyboards numpad +layouts in StumpWM.") + (license license:gpl3+))) + +(define-public sbcl-stumpwm-cpu + (package + (inherit stumpwm-contrib) + (name "sbcl-stumpwm-cpu") + (arguments + '(#:asd-systems '("cpu") + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ + (chdir "modeline/cpu")))))) + (home-page + "https://github.com/stumpwm/stumpwm-contrib/tree/master/modeline/cpu") + (synopsis "Modeline support for CPU info") + (description "Modeline support for CPU info.") + (license license:gpl3+))) + +(define-public sbcl-stumpwm-disk + (package + (inherit stumpwm-contrib) + (name "sbcl-stumpwm-disk") + (arguments + '(#:asd-systems '("disk") + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ (chdir "modeline/disk") #t))))) + (inputs + `(("stumpwm" ,stumpwm "lib") + ("cl-diskspace" ,sbcl-cl-diskspace) + ("cl-mount-info" ,sbcl-cl-mount-info))) + (home-page "https://github.com/stumpwm/stumpwm-contrib") + (synopsis "StumpWM modeline support to show disk usage") + (description "StumpWM modeline support to show disk usage") + (license (list license:gpl2+ license:gpl3+)))) + +(define-public sbcl-stumpwm-mem + (package + (inherit stumpwm-contrib) + (name "sbcl-stumpwm-mem") + (arguments + '(#:asd-systems '("mem") + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ + (chdir "modeline/mem")))))) + (home-page + "https://github.com/stumpwm/stumpwm-contrib/tree/master/modeline/mem") + (synopsis "Modeline support for memory info") + (description "Modeline support for memory info.") + (license license:gpl3+))) + +(define-public sbcl-stumpwm-winner-mode + (package + (inherit stumpwm-contrib) + (name "sbcl-stumpwm-winner-mode") + (arguments + '(#:asd-systems '("winner-mode") + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ + (chdir "util/winner-mode")))))) + (home-page + "https://github.com/stumpwm/stumpwm-contrib/tree/master/util/winner-mode") + (synopsis "Emacs' winner-mode for StumpWM") + (description "This module provides a winner-mode for StumpWM similar to the +one in Emacs.") + (license license:gpl3+))) + +(define-public sbcl-stumpwm-screenshot + (package + (inherit stumpwm-contrib) + (name "sbcl-stumpwm-screenshot") + (inputs + `(("stumpwm" ,stumpwm "lib") + ("zpng" ,sbcl-zpng))) + (arguments + '(#:asd-systems '("screenshot") + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ + (chdir "util/screenshot"))) + (add-after 'chdir 'fix-build + (lambda _ + (substitute* "screenshot.asd" + (("#:zpng") + "#:stumpwm #:zpng"))))))) + (home-page + "https://github.com/stumpwm/stumpwm-contrib/tree/master/util/screenshot") + (synopsis "Screenshots for StumpWM") + (description "This StumpWM module can take screenshots and store them as +PNG files.") + (license license:gpl3+))) + (define-public lemonbar (let ((commit "35183ab81d2128dbb7b6d8e119cc57846bcefdb4") (revision "1")) @@ -1931,42 +2143,86 @@ formatting, RandR and Xinerama support and EWMH compliance without wasting your precious memory.") (license license:x11)))) -(define-public xclickroot - (let ((commit "309fd17174dba4149b5ea66654c6fd02cfcf7c9a") - (revision "1")) +(define-public lemonbar-xft + ;; Upstream v2.0 tag is several years behind HEAD + (let ((commit "481e12363e2a0fe0ddd2176a8e003392be90ed02")) (package - (name "xclickroot") - (version (git-version "0.0.1" revision commit)) ;no upstream release + (inherit lemonbar) + (name "lemonbar-xft") + (version (string-append "2.0." (string-take commit 7))) (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/phillbush/xclickroot") + (url "https://github.com/drscream/lemonbar-xft") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 - "0fjqkg3wnyks0my1vrzhxfjicsfy8xwnijaazmpz6mhilcqkpvnd")))) - (build-system gnu-build-system) + "0588g37h18lv50h7w8vfbwhvc3iajh7sdr53848spaif99nh3mh4")))) (inputs - `(("libx11" ,libx11))) + `(("freetype" ,freetype) + ("libxft" ,libxft) + ("libx11" ,libx11) + ,@(package-inputs lemonbar))) (arguments - `(#:tests? #f ;no test suite - #:make-flags - (list ,(string-append "CC=" (cc-for-target)) - (string-append "PREFIX=" %output)) - #:phases - (modify-phases %standard-phases - (delete 'configure)))) - (home-page "https://github.com/phillbush/xclickroot") - (synopsis "Run a command when a mouse button is pressed on the root window") - (description "@code{xclickroot} runs a command every time a given mouse + (substitute-keyword-arguments (package-arguments lemonbar) + ((#:make-flags make-flags) + `(append + ,make-flags + (list (string-append + "CFLAGS=" + (string-join + (list (string-append + "-I" (assoc-ref %build-inputs "freetype") + "/include/freetype2") + (string-append + "-D" "VERSION=" + (format #f "'~s'" ,version)))))))))) + (home-page "https://github.com/drscream/lemonbar-xft") + (synopsis + (string-append + (package-synopsis lemonbar) + " with fontconfig support")) + (description + (string-append + (package-description lemonbar) + "This is a fork of the @code{lemonbar} package that adds fontconfig +support, for easier unicode usage."))))) + +(define-public xclickroot + (package + (name "xclickroot") + (version "1.3") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/phillbush/xclickroot") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0wnsfxvh4v02r2jjyh2n6jfkbj2dna2hlm6anl4b36lwji749k2k")))) + (build-system gnu-build-system) + (inputs + `(("libx11" ,libx11))) + (arguments + `(#:tests? #f ;no test suite + #:make-flags + (list ,(string-append "CC=" (cc-for-target)) + (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) + (home-page "https://github.com/phillbush/xclickroot") + (synopsis "Run a command when a mouse button is pressed on the root window") + (description "@code{xclickroot} runs a command every time a given mouse button is pressed on the root window.") - (license license:public-domain)))) + (license license:public-domain))) (define-public xmenu (package (name "xmenu") - (version "3.4") + (version "4.4.1") (source (origin (method git-fetch) (uri (git-reference @@ -1975,10 +2231,11 @@ button is pressed on the root window.") (file-name (git-file-name name version)) (sha256 (base32 - "1sw9l87fh03jp03a2v7rhgpyx29yg2x9blzfzp40jwad2whs7m7n")))) + "1s70zvsaqnsjqs298vw3py0vcvia68xlks1wcz37pb88bwligz1x")))) (build-system gnu-build-system) (inputs `(("libx11" ,libx11) + ("libxinerama" ,libxinerama) ("libxft" ,libxft) ("freetype" ,freetype) ("imlib2" ,imlib2))) @@ -2055,7 +2312,7 @@ start-up.") (define-public xnotify (package (name "xnotify") - (version "0.5.0") + (version "0.8.1") (source (origin (method git-fetch) (uri (git-reference @@ -2064,7 +2321,7 @@ start-up.") (file-name (git-file-name name version)) (sha256 (base32 - "0ris7jhi7hgw7nxkwkn3zk7n3y4nvnnm6dbz0qs0g2srp2k67v7v")))) + "1jxms4md2mwfjgm2pgg3vakpp33800jbn9hnl0j4jyfc9f1ckbsv")))) (build-system gnu-build-system) (inputs `(("libx11" ,libx11) @@ -2087,3 +2344,147 @@ start-up.") (description "XNotify receives a notification specification in stdin and shows a notification for the user on the screen.") (license license:expat))) + +(define-public cagebreak + (package + (name "cagebreak") + (version "1.6.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/project-repo/cagebreak") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "02gxmypfj75amdd8lwdkkk7imw7lwmghpyk8h9asljy9aq6ymdqp")))) + (build-system meson-build-system) + (arguments '(#:configure-flags '("-Dxwayland=true"))) + (native-inputs + `(("pandoc" ,pandoc) + ("pkg-config" ,pkg-config))) + (inputs + `(("pango" ,pango) + ("wlroots" ,wlroots))) + (home-page "https://github.com/project-repo/cagebreak") + (synopsis "Tiling wayland compositor inspired by ratpoison") + (description + "@command{cagebreak} is a slim, keyboard-controlled, tiling compositor +for wayland conceptually based on the X11 window manager +@command{ratpoison}.") + (license license:expat))) + +(define-public libucl + (package + (name "libucl") + (version "0.8.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vstakhov/libucl/") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1h52ldxankyhbbm1qbqz1f2q0j03c1b4mig7343bs3mc6fpm18gf")))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("pkg-config" ,pkg-config) + ("libtool" ,libtool))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f)) ;; no tests + (home-page "https://github.com/vstakhov/libucl") + (synopsis "Universal configuration language (UCL) parser") + (description "libucl implements a configuration language that is easy to +read and write, and compatible with JSON.") + (license license:bsd-2))) + +(define-public hikari + (package + (name "hikari") + (version "2.2.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://hikari.acmelabs.space/releases/" + "hikari-" version ".tar.gz")) + (sha256 + (base32 "1d023cphzi15k434n60l1rp5awxmdijvsxfrm59fmsvd5rjxh9q7")))) + (build-system gnu-build-system) + (native-inputs + `(("bmake" ,bmake) + ("pkg-config" ,pkg-config) + ("wayland-protocols" ,wayland-protocols))) + (inputs + `(("cairo" ,cairo) + ("libinput" ,libinput) + ("libucl" ,libucl) + ("libxkbcommon" ,libxkbcommon) + ("pam" ,linux-pam) + ("pango" ,pango) + ("wayland" ,wayland) + ("wlroots" ,wlroots))) + (arguments + `(#:tests? #f ; no tests + #:make-flags + (list + (string-append "PREFIX=" (assoc-ref %outputs "out")) + (string-append "CC=" ,(cc-for-target)) + "WITH_XWAYLAND=YES" + "WITH_SCREENCOPY=YES" + "WITH_LAYERSHELL=YES" + "WITH_VIRTUAL_INPUT=YES") + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'build + (lambda* (#:key inputs outputs make-flags #:allow-other-keys) + (apply invoke "bmake" make-flags))) + (replace 'install + (lambda* (#:key inputs outputs make-flags #:allow-other-keys) + (apply invoke "bmake" "install" make-flags)))))) + (home-page "https://hikari.acmelabs.space/") + (synopsis "Stacking Wayland compositor with tiling capabilities") + (description + "Hikari is a stacking Wayland compositor with additional tiling +capabilities. It is heavily inspired by the Calm Window manager(cwm).") + (license license:bsd-2))) + +(define-public wlogout + (package + (name "wlogout") + (version "1.1.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ArtsyMacaw/wlogout") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1swhzkqkzli59c89pvrakfvicd00x7ga860c3x2pbb4y3xziqfvi")))) + (build-system meson-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("scdoc" ,scdoc))) + (inputs + `(("gtk-layer-shell" ,gtk-layer-shell) + ("gtk+" ,gtk+))) + (arguments + '(#:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-source-paths + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "main.c" + (("/usr/share") (string-append out "/share")) + (("/etc") (string-append out "/etc")))) + #t))))) + (home-page "https://github.com/ArtsyMacaw/wlogout") + (synopsis "Logout menu for Wayland") + (description "wlogout is a logout menu for Wayland environments.") + (license license:expat)))