;;; Copyright © 2016 Ivan Vilata i Balaguer <ivan@selidor.net>
;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.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 © 2017, 2020, 2021 Oleg Pykhalov <go.wigust@gmail.com>
+;;; 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 © 2019 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2019 Noodles! <nnoodle@chiru.no>
;;; Copyright © 2019, 2020 Alexandru-Sergiu Marton <brown121407@member.fsf.org>
-;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; 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>
+;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
+;;; Copyright © 2021 qblade <qblade@protonmail.com>
+;;; Copyright © 2021 lasnesne <lasnesne@lagunposprasihopre.org>
;;;
;;; This file is part of GNU Guix.
;;;
(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
("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
("libxkbcommon" ,libxkbcommon)
("libev" ,libev)
("libyajl" ,libyajl)
- ("asciidoc" ,asciidoc)
("xmlto" ,xmlto)
("perl-pod-simple" ,perl-pod-simple)
("libx11" ,libx11)
`(("which" ,which)
("perl" ,perl)
("pkg-config" ,pkg-config)
+ ("asciidoc-py3" ,asciidoc-py3)
;; For building the documentation.
("libxml2" ,libxml2)
("docbook-xsl" ,docbook-xsl)))
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")
(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
("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)
- ("wayland-protocols" ,wayland-protocols)))
+ `(("pkg-config" ,pkg-config)))
(home-page "https://github.com/swaywm/wlroots")
(synopsis "Pluggable, composable, unopinionated modules for building a
Wayland compositor")
(define-public waybar
(package
(name "waybar")
- (version "0.9.4")
+ (version "0.9.5")
(source
(origin
(method git-fetch)
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "038vnma7y7z81caywp45yr364bc1aq8d01j5vycyiyfv33nm76fy"))))
+ (base32 "1kzrgqaclfk6gcwhknxn28xl74gm5swipgn8kk8avacb4nsw1l9q"))))
(build-system meson-build-system)
(inputs `(("date" ,date)
- ("fmt" ,fmt-6)
+ ("fmt" ,fmt)
("gtk-layer-shell" ,gtk-layer-shell)
("gtkmm" ,gtkmm)
("jsoncpp" ,jsoncpp)
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")
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")
(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" "slynk")
(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
(commit commit)))
(file-name (git-file-name name version))
(sha256
- (base32 "0giac390bq95ag41xkxqp8jjrhfx1wpgglz7jg5rkm0wjhcwmyml"))))
+ (base32 "09akdaaya7lga5lzbq1aj1filsyjwvflghkidpmr0nk0jz5xx1g7"))))
(build-system asdf-build-system/sbcl)
(inputs
`(("stumpwm" ,stumpwm "lib")))
(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)
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")
+ (version "1.3")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (git-file-name name version))
(sha256
(base32
- "1nd5qz0qz5j7gx2jsbcp234giwaa0xmg42vrcjrcf587q9ivakfl"))))
+ "0wnsfxvh4v02r2jjyh2n6jfkbj2dna2hlm6anl4b36lwji749k2k"))))
(build-system gnu-build-system)
(inputs
`(("libx11" ,libx11)))
(define-public xnotify
(package
(name "xnotify")
- (version "0.7.3")
+ (version "0.8.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/phillbush/xnotify")
- (commit version)))
+ (commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
- "09s29m8z4x3mc3wja2587ik3f6zg16b40adr3nllnpyy1mqnprq5"))))
+ "1jxms4md2mwfjgm2pgg3vakpp33800jbn9hnl0j4jyfc9f1ckbsv"))))
(build-system gnu-build-system)
(inputs
`(("libx11" ,libx11)
(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)))