;;; Copyright © 2015 xd1le <elisp.vim@gmail.com>
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
-;;; Copyright © 2016, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Al McElrath <hello@yrns.org>
;;; Copyright © 2016 Carlo Zancanaro <carlo@zancanaro.id.au>
;;; Copyright © 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 doncatnip <gnopap@gmail.com>
;;; Copyright © 2016 Ivan Vilata i Balaguer <ivan@selidor.net>
;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
-;;; Copyright © 2017, 2019 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2017, 2019, 2020 Marius Bakke <marius@gnu.org>
;;; Copyright © 2017, 2020 Oleg Pykhalov <go.wigust@gmail.com>
-;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Pierre-Antoine Rouby <contact@parouby.fr>
;;; Copyright © 2018, 2019 Meiyo Peng <meiyo@riseup.net>
;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2020 Boris A. Dekshteyn <harlequin78@gmail.com>
;;; Copyright © 2020 Marcin Karpezo <sirmacik@wioo.waw.pl>
+;;; Copyright © 2020 EuAndreh <eu@euandre.org>
+;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020 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>
+;;; Copyright © 2021 Zheng Junjie <873216071@qq.com>
;;;
;;; This file is part of GNU Guix.
;;;
#: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)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages fribidi)
#:use-module (gnu packages gawk)
+ #:use-module (gnu packages gcc)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages gperf)
(define-public bspwm
(package
(name "bspwm")
- (version "0.9.9")
+ (version "0.9.10")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/baskerville/bspwm.git")
+ (url "https://github.com/baskerville/bspwm")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1i7crmljk1vra1r6alxvj6lqqailjjcv0llyg7a0gm23rbv4a42g"))))
+ (base32 "0qlv7b4c2mmjfd65y100d11x8iqyg5f6lfiws3cgmpjidhdygnxc"))))
(build-system gnu-build-system)
(inputs
`(("libxcb" ,libxcb)
(define-public herbstluftwm
(package
(name "herbstluftwm")
- (version "0.8.2")
+ (version "0.8.3")
(source
(origin
(method url-fetch)
(uri (string-append "https://herbstluftwm.org/tarballs/herbstluftwm-"
version ".tar.gz"))
(sha256
- (base32
- "0wbl1s1gwdc61ll6qmkwb56swjxv99by1dhi080bdqn0w8p75804"))
+ (base32 "1qmb4pjf2f6g0dvcg11cw9njwmxblhqzd70ai8qnlgqw1iz3nkm1"))
(file-name (string-append "herbstluftwm-" version ".tar.gz"))))
(build-system cmake-build-system)
(inputs
(define-public i3-wm
(package
(name "i3-wm")
- (version "4.18.1")
+ (version "4.18.3")
(source (origin
(method url-fetch)
(uri (string-append "https://i3wm.org/downloads/i3-"
version ".tar.bz2"))
(sha256
(base32
- "0z709cianlzw0x0qwq4361347354xd9ckj1v7vjvhb1zh3x91gws"))))
+ "03dijnwv2n8ak9jq59fhq0rc80m5wjc9d54fslqaivnnz81pkbjk"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
(define-public i3-gaps
(package (inherit i3-wm)
(name "i3-gaps")
- (version "4.18")
+ (version "4.18.3")
(source (origin
(method url-fetch)
(uri (string-append
version "/i3-" version ".tar.bz2"))
(sha256
(base32
- "0id4qm9a7kc5yawff85blmph4zbizhb6ka88aqm10wrpfsknri3j"))))
+ "1hcakwyz78lgp8mhqv7pw86jlb3m415pfql1q19rkijnhm3fn3ci"))))
(home-page "https://github.com/Airblader/i3")
(synopsis "Tiling window manager with gaps")
(description "i3-gaps is a fork of i3wm, a tiling window manager
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/vivien/i3blocks.git")
+ (url "https://github.com/vivien/i3blocks")
(commit version)))
(sha256
(base32
;; for years.
(method git-fetch)
(uri (git-reference
- (url "https://github.com/ziberna/i3-py.git")
+ (url "https://github.com/ziberna/i3-py")
(commit "27f88a616e9ecc340e7d041d3d00782f8a1964c1")))
(sha256
(base32
;; instead of the release.
(method git-fetch)
(uri (git-reference
- (url "https://github.com/proxypoke/quickswitch-for-i3.git")
+ (url "https://github.com/proxypoke/quickswitch-for-i3")
(commit commit)))
(sha256
(base32
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/PandorasFox/i3lock-color.git")
+ (url "https://github.com/PandorasFox/i3lock-color")
(commit version)))
(file-name (git-file-name name version))
(sha256
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/meskarune/i3lock-fancy.git")
+ (url "https://github.com/meskarune/i3lock-fancy")
(commit version)))
(file-name (git-file-name name version))
(sha256
"/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"))
(string-append bin "/i3lock-fancy"))
(copy-recursively "icons" icons)
#t))))))
- (native-inputs
+ (inputs
`(("imagemagick" ,imagemagick)
("wmctrl" ,wmctrl)
("gawk" ,gawk)))
"xmonad-" version ".tar.gz"))
(sha256
(base32
- "0a7rh21k9y6g8fwkggxdxjns2grvvsd5hi2ls4klmqz5xvk4hyaa"))))
+ "0a7rh21k9y6g8fwkggxdxjns2grvvsd5hi2ls4klmqz5xvk4hyaa"))
+ (patches (search-patches "xmonad-dynamic-linking.patch"))))
(build-system haskell-build-system)
(inputs
`(("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
(define-public xmobar
(package
(name "xmobar")
- (version "0.33")
+ (version "0.34")
(source (origin
(method url-fetch)
(uri (string-append "mirror://hackage/package/xmobar/"
"xmobar-" version ".tar.gz"))
(sha256
(base32
- "1hr3qqykc5givcpcwrr9f2y920jmiinmxm5mcy6qgpgymgwqb618"))))
+ "0x09xbz7y9ay0046j1xpr9jjk5jqivqi06vm3q6mhcrgc4y922rx"))))
(build-system haskell-build-system)
(native-inputs
`(("ghc-hspec" ,ghc-hspec)
Haskell, no knowledge of the language is required to install and use it.")
(license license:bsd-3)))
+(define-public yeganesh
+ (package
+ (name "yeganesh")
+ (version "2.4")
+ (source
+ (origin
+
+ (method url-fetch)
+ (uri (string-append "http://dmwit.com/yeganesh/yeganesh-" version ".tar.gz"))
+ (sha256
+ (base32 "04djfyjab3c5y9z9x8zd0xcx0jyy35zq7cl9ddr4ppf6k5ky6iky"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-strict" ,ghc-strict)
+ ("ghc-xdg-basedir" ,ghc-xdg-basedir)))
+ (home-page "http://dmwit.com/yeganesh/")
+ (synopsis "Small wrapper around dmenu")
+ (description "@code{yeganesh} is a small wrapper around demnu. Like
+dmenu, it accepts input on stdin and writes the chosen result on stdout.
+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
(package
(name "ghc-xmonad-contrib")
(modify-phases %standard-phases
(add-before 'configure 'set-paths
(lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "lib/awful/completion.lua"
+ (("/usr/bin/env")
+ ""))
;; The build process needs to load Cairo dynamically.
(let* ((cairo (string-append (assoc-ref inputs "cairo") "/lib"))
(lua-version ,(version-major+minor (package-version lua)))
(lua-version ,(version-major+minor (package-version lua)))
(lua-lgi (assoc-ref inputs "lua-lgi")))
(wrap-program (string-append awesome "/bin/awesome")
- `("LUA_PATH" suffix
+ `("LUA_PATH" ";" suffix
(,(format #f "~a/share/lua/~a/?.lua" lua-lgi lua-version)))
- `("LUA_CPATH" suffix
+ `("LUA_CPATH" ";" suffix
(,(format #f "~a/lib/lua/~a/?.so" lua-lgi lua-version)))
`("GI_TYPELIB_PATH" ":" prefix (,(getenv "GI_TYPELIB_PATH")))
`("LD_LIBRARY_PATH" suffix (,cairo)))
(define-public menumaker
(package
(name "menumaker")
- (version "0.99.11")
+ (version "0.99.12")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/menumaker/"
"menumaker-" version ".tar.gz"))
(sha256
- (base32 "0dprndnhwm7b803zkp4pisiq06ic9iv8vr42in5is47jmvdim0wx"))))
+ (base32 "034v5204bsgkzzk6zfa5ia63q95gln47f7hwf96yvad5hrhmd8z3"))))
(build-system gnu-build-system)
(inputs
`(("python" ,python)))
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/conformal/spectrwm.git")
+ (url "https://github.com/conformal/spectrwm")
(commit
(string-append "SPECTRWM_"
(string-join (string-split version #\.) "_")))))
(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
project derived from the original Calm Window Manager.")
(license license:isc)))
+(define-public dwl
+ (package
+ (name "dwl")
+ (version "0.1")
+ (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
+ "18g2sx8cv54zl5iw5m9lzngrp6ra2pyp7c68qps2ava3brw9m0j2"))))
+ (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
+ (replace 'install ; no install target
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin")))
+ (install-file "dwl" bin)))))))
+ (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")
(define-public polybar
(package
(name "polybar")
- (version "3.4.3")
+ (version "3.5.4")
(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 "0awwjp3l0y9yhmrl914710ipawp2xr43jxrvmnanahlznblg8fhk"))))
(build-system cmake-build-system)
(arguments
;; Test is disabled because it requires downloading googletest from the
(define-public wlroots
(package
(name "wlroots")
- (version "0.10.1")
+ (version "0.12.0")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/swaywm/wlroots.git")
+ (url "https://github.com/swaywm/wlroots")
(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")
(define-public sway
(package
(name "sway")
- (version "1.4")
+ (version "1.5.1")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/swaywm/sway.git")
+ (url "https://github.com/swaywm/sway")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "11qf89y3q92g696a6f4d23qb44gqixg6qxq740vwv2jw59ms34ja"))))
+ (base32 "1xsa3h8zhf29p0mi90baxpr76jkd9pd1gr97ky8cnjbcs4isj9j0"))))
(build-system meson-build-system)
(arguments
`(#:phases
("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)
(uri (git-reference
- (url "https://github.com/swaywm/swayidle.git")
+ (url "https://github.com/swaywm/swayidle")
(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")))
(define-public swaylock
(package
(name "swaylock")
- (version "1.4")
+ (version "1.5")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/swaywm/swaylock.git")
+ (url "https://github.com/swaywm/swaylock")
(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)
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/swaywm/swaybg.git")
+ (url "https://github.com/swaywm/swaybg")
(commit version)))
(file-name (git-file-name name version))
(sha256
(define-public waybar
(package
(name "waybar")
- (version "0.9.1")
+ (version "0.9.4")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/Alexays/Waybar.git")
+ (url "https://github.com/Alexays/Waybar")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0drlv8im5phz39jxp3gxkc40b6f85bb3piff2v3hmnfzh7ib915s"))))
+ (base32 "038vnma7y7z81caywp45yr364bc1aq8d01j5vycyiyfv33nm76fy"))))
(build-system meson-build-system)
- (arguments
- `(#:configure-flags
- (list (string-append "-Dout=" (assoc-ref %outputs "out")))))
(inputs `(("date" ,date)
- ("fmt" ,fmt)
+ ("fmt" ,fmt-6)
("gtk-layer-shell" ,gtk-layer-shell)
("gtkmm" ,gtkmm)
("jsoncpp" ,jsoncpp)
("libmpdclent" ,libmpdclient)
("libnl" ,libnl)
("pulseaudio" ,pulseaudio)
- ("spdlog" ,spdlog)
+ ("spdlog" ,spdlog-1.7)
("wayland" ,wayland)))
- (native-inputs `(("glib:bin" ,glib "bin")
- ("pkg-config" ,pkg-config)
- ("wayland-protocols" ,wayland-protocols)))
+ (native-inputs
+ `(("gcc" ,gcc-8) ; for #include <filesystem>
+ ("glib:bin" ,glib "bin")
+ ("pkg-config" ,pkg-config)
+ ("scdoc" ,scdoc)
+ ("wayland-protocols" ,wayland-protocols)))
(home-page "https://github.com/Alexays/Waybar")
(synopsis "Wayland bar for Sway and Wlroots based compositors")
(description "Waybar is a highly customisable Wayland bar for Sway and
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)
(uri (git-reference
- (url "https://github.com/emersion/mako.git")
+ (url "https://github.com/emersion/mako")
(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)
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)
(uri (git-reference
- (url "https://github.com/stumpwm/stumpwm.git")
+ (url "https://github.com/stumpwm/stumpwm")
(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)))
+ ("texinfo" ,texinfo)
+
+ ;; To build the manual.
+ ("autoconf" ,autoconf)
+ ("automake" ,automake)))
(inputs `(("cl-ppcre" ,sbcl-cl-ppcre)
("clx" ,sbcl-clx)
("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")
out)))
#t)))
(add-after 'install 'install-manual
- (lambda* (#:key outputs #:allow-other-keys)
- ;; The proper way to the manual is bootstrapping a full autotools
- ;; build system and running ‘./configure && make stumpwm.info’ to
- ;; do some macro substitution. We can get away with much less.
+ (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(info (string-append out "/share/info")))
- (invoke "makeinfo" "stumpwm.texi.in")
+ (invoke "./autogen.sh")
+ (invoke "sh" "./configure" "SHELL=sh")
+ (apply invoke "make" "stumpwm.info" make-flags)
(install-file "stumpwm.info" info)
#t))))))
(synopsis "Window manager written in Common Lisp")
(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")
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/stumpwm/stumpwm-contrib.git")
+ (url "https://github.com/stumpwm/stumpwm-contrib")
(commit commit)))
+ (file-name (git-file-name name version))
(sha256
(base32 "0giac390bq95ag41xkxqp8jjrhfx1wpgglz7jg5rkm0wjhcwmyml"))))
(build-system asdf-build-system/sbcl)
(name "stumpish")
(inputs
`(("bash" ,bash)
- ("rlwrap" ,rlwrap)))
+ ("rlwrap" ,rlwrap)
+ ("xprop" ,xprop)))
(build-system trivial-build-system)
(arguments
'(#:modules ((guix build utils))
- #:tests? #f
#:builder
(begin
(use-modules (guix build utils))
(substitute* "stumpish"
(("rlwrap") (string-append (assoc-ref %build-inputs "rlwrap")
"/bin/rlwrap"))
+ (("xprop") (string-append (assoc-ref %build-inputs "xprop")
+ "/bin/xprop"))
(("/bin/sh") (string-append (assoc-ref %build-inputs "bash")
"/bin/bash")))
(install-file "stumpish" (string-append %output "/bin")))))
`(("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
(inherit stumpwm-contrib)
(name "sbcl-stumpwm-pass")
(arguments
- '(#:asd-system-name "pass"
+ '(#:asd-systems '("pass")
#:tests? #f
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda _ (chdir "util/pass") #t)))))
(home-page "https://github.com/stumpwm/stumpwm-contrib")
- (synopsis "Integrate @code{pass} wih StumpWM")
+ (synopsis "Integrate @code{pass} with StumpWM")
(description "This package provides an interface which integrates
password-store into StumpWM.")
(license (list license:gpl2+ license:gpl3+ license:bsd-2))))
(inherit stumpwm-contrib)
(name "sbcl-stumpwm-globalwindows")
(arguments
- '(#:asd-system-name "globalwindows"
+ '(#:asd-systems '("globalwindows")
#:tests? #f
#:phases
(modify-phases %standard-phases
(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
(inherit stumpwm-contrib)
(name "sbcl-stumpwm-net")
(arguments
- '(#:asd-system-name "net"
+ '(#:asd-systems '("net")
#:tests? #f
#:phases
(modify-phases %standard-phases
(inherit stumpwm-contrib)
(name "sbcl-stumpwm-wifi")
(arguments
- '(#:asd-system-name "wifi"
+ '(#:asd-systems '("wifi")
#:tests? #f
#:phases
(modify-phases %standard-phases
(inherit stumpwm-contrib)
(name "sbcl-stumpwm-stumptray")
(arguments
- '(#:asd-system-name "stumptray"
+ '(#:asd-systems '("stumptray")
#:tests? #f
#:phases
(modify-phases %standard-phases
(filter (lambda (a) (string-contains a "linux")) %supported-systems))
(license license:gpl3+)))
+(define-public sbcl-stumpwm-kbd-layouts
+ (package
+ (inherit stumpwm-contrib)
+ (name "sbcl-stumpwm-kbd-layouts")
+ (arguments
+ '(#:asd-systems '("kbd-layouts")
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'chdir (lambda _ (chdir "util/kbd-layouts") #t)))))
+ (home-page
+ "https://github.com/stumpwm/stumpwm-contrib/tree/master/util/kbd-layouts")
+ (synopsis "Keyboard layout switcher for StumpWM")
+ (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-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"))
formatting, RandR and Xinerama support and EWMH compliance without
wasting your precious memory.")
(license license:x11))))
+
+(define-public lemonbar-xft
+ ;; Upstream v2.0 tag is several years behind HEAD
+ (let ((commit "481e12363e2a0fe0ddd2176a8e003392be90ed02"))
+ (package
+ (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/drscream/lemonbar-xft")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0588g37h18lv50h7w8vfbwhvc3iajh7sdr53848spaif99nh3mh4"))))
+ (inputs
+ `(("freetype" ,freetype)
+ ("libxft" ,libxft)
+ ("libx11" ,libx11)
+ ,@(package-inputs lemonbar)))
+ (arguments
+ (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.2")
+ (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
+ "1nd5qz0qz5j7gx2jsbcp234giwaa0xmg42vrcjrcf587q9ivakfl"))))
+ (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)))
+
+(define-public xmenu
+ (package
+ (name "xmenu")
+ (version "4.4.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/phillbush/xmenu")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1s70zvsaqnsjqs298vw3py0vcvia68xlks1wcz37pb88bwligz1x"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("libx11" ,libx11)
+ ("libxinerama" ,libxinerama)
+ ("libxft" ,libxft)
+ ("freetype" ,freetype)
+ ("imlib2" ,imlib2)))
+ (arguments
+ `(#:tests? #f ;no test suite
+ #:make-flags
+ (list (string-append "CC=" ,(cc-for-target))
+ (string-append "PREFIX=" %output)
+ (string-append "CFLAGS="
+ "-I" (assoc-ref %build-inputs "freetype")
+ "/include/freetype2"))
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure))))
+ (home-page "https://github.com/phillbush/xmenu")
+ (synopsis "Menu utility for X")
+ (description "@code{xmenu} receives a menu specification in stdin, shows
+a menu for the user to select one of the options, and outputs the option
+selected to stdout. It can be controlled both via mouse and via keyboard.")
+ (license license:public-domain)))
+
+(define-public idesk
+ (package
+ (name "idesk")
+ (version "0.7.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://sourceforge/idesk/idesk/idesk-" version
+ "/idesk-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "1lxk2yvgysxwl514zc82lwr1dwc8cd62slgr5lzdhjbdrxfymdyl"))
+ (modules '((guix build utils)
+ (ice-9 format)))
+ (snippet
+ '(let* ((file "src/DesktopConfig.cpp")
+ (template (string-append file ".XXXXXX"))
+ (out (mkstemp! template))
+ (st (stat file))
+ (mode (stat:mode st)))
+ (call-with-ascii-input-file file
+ (lambda (p)
+ (format out "~{~a~%~}" '("#include <unistd.h>"
+ "#include <sys/stat.h>"
+ "#include <sys/types.h>"))
+ (dump-port p out)
+ (close out)
+ (chmod template mode)
+ (rename-file template file)
+ #t))))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("libx11" ,libx11)
+ ("libxft" ,libxft)
+ ("libxpm" ,libxpm)
+ ("libpng" ,libpng)
+ ("freetype" ,freetype)
+ ("imlib2" ,imlib2)
+ ("sed" ,sed)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (arguments
+ `(#:tests? #f)) ;no test suite
+ (home-page "https://sourceforge.net/projects/idesk/")
+ (synopsis "Add icons on X desktop and set background image for wallpaper")
+ (description "Idesk is program that draws desktop icons. Each icon will
+execute a shell command on a configurable action. The icons can be moved on
+the desktop by dragging them, and the icons will remember their positions on
+start-up.")
+ (license license:bsd-3)))
+
+(define-public xnotify
+ (package
+ (name "xnotify")
+ (version "0.7.3")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/phillbush/xnotify")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "09s29m8z4x3mc3wja2587ik3f6zg16b40adr3nllnpyy1mqnprq5"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("libx11" ,libx11)
+ ("libxft" ,libxft)
+ ("libxinerama" ,libxinerama)
+ ("imlib2" ,imlib2)))
+ (arguments
+ `(#:make-flags
+ (list (string-append "CC=" ,(cc-for-target))
+ (string-append "PREFIX=" %output)
+ (string-append "CFLAGS="
+ "-I" (assoc-ref %build-inputs "freetype")
+ "/include/freetype2"))
+ #:tests? #f ;no test suite
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure))))
+ (home-page "https://github.com/phillbush/xnotify")
+ (synopsis "Displays a notification on the screen")
+ (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.4.4")
+ (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
+ "0mnxs1m7jrqdl0asx39nxfzvkp7d4jqpdchi63w2yd1igpj2frb2"))))
+ (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)))