gnu: Remove python2-pyaudio.
[jackhill/guix/guix.git] / gnu / packages / xdisorg.scm
index 8502cb6..e5a98ed 100644 (file)
@@ -9,11 +9,10 @@
 ;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
 ;;; Copyright © 2015 xd1le <elisp.vim@gmail.com>
 ;;; Copyright © 2015 Florian Paul Schmidt <mista.tapas@gmx.net>
-;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
+;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org>
 ;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2016, 2017, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2016 Petter <petter@mykolab.ch>
 ;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
@@ -28,7 +27,7 @@
 ;;; Copyright © 2019 Wiktor Żelazny <wzelazny@vurv.cz>
 ;;; Copyright © 2019 Kyle Andrews <kyle.c.andrews@gmail.com>
 ;;; Copyright © 2019, 2020 Josh Holland <josh@inv.alid.pw>
-;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org>
+;;; Copyright © 2019, 2021 Tanguy Le Carrour <tanguy@bioneland.org>
 ;;; Copyright © 2020, 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2020 David Wilson <david@daviwil.com>
 ;;; Copyright © 2020 Ivan Vilata i Balaguer <ivan@selidor.net>
 ;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
 ;;; Copyright © 2020, 2021 Zheng Junjie <873216071@qq.com>
 ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
-;;; Copyright © 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2021, 2022 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
 ;;; Copyright © 2021 Renzo Poddighe <renzo@poddighe.nl>
 ;;; Copyright © 2021 Paul A. Patience <paul@apatience.com>
 ;;; Copyright © 2021 Niklas Eklund <niklas.eklund@posteo.net>
 ;;; Copyright © 2021 Nikita Domnitskii <nikita@domnitskii.me>
 ;;; Copyright © 2021 ikasero <ahmed@ikasero.com>
+;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
+;;; Copyright © 2021 jgart <jgart@dismail.de>
+;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
+;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
 
 (define-module (gnu packages xdisorg)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system copy)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system python)
   #:use-module (guix build-system scons)
   #:use-module (guix download)
+  #:use-module (guix gexp)
   #:use-module (guix git-download)
   #:use-module (guix hg-download)
   #:use-module ((guix licenses) #:prefix license:)
@@ -84,6 +89,7 @@
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages haskell-xyz)
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages image)
+  #:use-module (gnu packages libbsd)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages m4)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages tcl)
+  #:use-module (gnu packages terminals)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages)
         (base32 "0f5070k2bwarghl1vq886pl52xck1x5p7x3qhlfchsc2y3dcqms9"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libxcb" ,libxcb)
-       ("xcb-util" ,xcb-util)
-       ("xcb-util-wm" ,xcb-util-wm)))
+     (list libxcb xcb-util xcb-util-wm))
     (arguments
      `(#:tests? #f                      ;no test suite
        #:make-flags (list (string-append "CC=" ,(cc-for-target))
@@ -224,10 +230,9 @@ program.")
         (base32 "0msw9b1hdy3gbq9w5d04mfizhyirz1c648x84mlcbzl8salm7vpg"))))
     (build-system python-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("xrandr" ,xrandr)
-       ("libxcb" ,libxcb)))
+     (list xrandr libxcb))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -263,7 +268,7 @@ used to further tweak the behaviour of the different profiles.")
 (define-public bemenu
   (package
     (name "bemenu")
-    (version "0.6.2")
+    (version "0.6.4")
     (source
      (origin
        (method git-fetch)
@@ -272,7 +277,7 @@ used to further tweak the behaviour of the different profiles.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "13y4y3i03vdx3zkh4lm67xmigzycf8fxg4fdr5s4x2brr3ya46fv"))))
+        (base32 "18vplvnymgc6576sdh84lm5rlwyb9d038plqpjs638hzskf4q577"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f
@@ -283,7 +288,7 @@ used to further tweak the behaviour of the different profiles.")
                           (string-append "PREFIX=" (assoc-ref %outputs "out")))
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure))))
+         (delete 'configure))))         ; no configure script
     (inputs
      `(("cairo" ,cairo)
        ("libx11" ,libx11)
@@ -294,8 +299,7 @@ used to further tweak the behaviour of the different profiles.")
        ("wayland" ,wayland)
        ("wayland-protocols" ,wayland-protocols)))
     (native-inputs
-     `(("doxygen" ,doxygen)
-       ("pkg-config" ,pkg-config)))
+     (list doxygen pkg-config))
     (home-page "https://github.com/Cloudef/bemenu")
     (synopsis "Dynamic menu library and client program inspired by dmenu")
     (description
@@ -323,10 +327,7 @@ with X11 or Wayland, or in a text terminal with ncurses.")
    `(#:configure-flags '("-DCMAKE_BUILD_TYPE=Release")
      #:tests? #f)) ; Test suite is a rather manual process.
   (inputs
-   `(("qtbase" ,qtbase-5)
-     ("qtscript" ,qtscript)
-     ("qtsvg" ,qtsvg)
-     ("qtx11extras" ,qtx11extras)))
+   (list qtbase-5 qtscript qtsvg qtx11extras))
   (synopsis "Clipboard manager with advanced features")
   (description "CopyQ is clipboard manager with editing and scripting
 features.  CopyQ monitors system clipboard and saves its content in customized
@@ -350,11 +351,8 @@ application.")
     (arguments
      `(#:tests? #f))                    ;tests need /dev/uinput
     (inputs
-     `(("python-appdirs" ,python-appdirs)
-       ("python-evdev" ,python-evdev)
-       ("python-inotify-simple" ,python-inotify-simple)
-       ("python-xlib" ,python-xlib)
-       ("python-six" ,python-six)))
+     (list python-appdirs python-evdev python-inotify-simple python-xlib
+           python-six))
     (home-page "https://github.com/mooz/xkeysnail")
     (synopsis "Keyboard remapping tool for the X11 environment")
     (description
@@ -381,8 +379,7 @@ layers (evdev and uinput), making remapping work in almost all the places.")
     (arguments
      `(#:tests? #f))                    ;no test target
     (inputs
-     `(("libx11" ,libx11)
-       ("libxkbfile" ,libxkbfile)))
+     (list libx11 libxkbfile))
     (home-page "https://github.com/grwlf/xkb-switch")
     (synopsis "Switch your X keyboard layouts from the command line")
     (description
@@ -390,6 +387,30 @@ layers (evdev and uinput), making remapping work in almost all the places.")
 state.")
     (license license:gpl3+)))
 
+(define-public xkblayout
+  ;; Upstream doesn't have any version numbers
+  (let ((version "0.0.0")
+        (revision "0")
+        (commit "c0851b0f4bc9bc1a07240605baac8e50abe63fa8"))
+    (package
+      (name "xkblayout")
+      (version (git-version version revision commit))
+      (home-page "https://gitlab.freedesktop.org/whot/xkblayout")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url home-page)
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0057988l5l7pmwg7dp6cqvj5l4lr0g5z3wq189g6kz36l9rmh675"))))
+      (build-system python-build-system)
+      (synopsis "XKB layout template generator")
+      (description "xkblayout is a CLI application to generate templates for
+a new XKB layout, either in the user's home directory or the system directory.")
+      (license license:gpl3+))))
+
 (define-public xclip
   (package
     (name "xclip")
@@ -408,10 +429,8 @@ state.")
     (arguments
      '(#:tests? #f))                              ;there is no test suite
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)))
-    (inputs `(("libxmu" ,libxmu)
-              ("libxt" ,libxt)))
+     (list autoconf automake))
+    (inputs (list libxmu libxt))
     (home-page "https://github.com/astrand/xclip")
     (synopsis "Command line interface to X11 clipboard")
     (description "Xclip is a command line interface to the X11 clipboard.  It
@@ -432,16 +451,14 @@ avoiding password prompts when X11 forwarding has already been setup.")
                "0ysynzzgzd9jdrh1321r4bgw8wd5zljrlyn5y1a31g39xacf02bv"))))
     (build-system meson-build-system)
     (inputs
-     `(("libx11" ,libx11)
-       ("libxcb" ,libxcb)
-       ("libxml2" ,libxml2)
-       ("wayland" ,wayland)
-       ("wayland-protocols" ,wayland-protocols)
-       ("xkeyboard-config" ,xkeyboard-config)))
+     (list libx11
+           libxcb
+           libxml2
+           wayland
+           wayland-protocols
+           xkeyboard-config))
     (native-inputs
-     `(("bison" ,bison)
-       ("doxygen" ,doxygen)
-       ("pkg-config" ,pkg-config)))
+     (list bison doxygen pkg-config python))
     (arguments
      `(#:configure-flags
        (list (string-append "-Dxkb-config-root="
@@ -485,15 +502,11 @@ X11 (yet).")
            (lambda _
              (invoke "autoreconf" "-vfi"))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-
-       ;; For bootstrapping from git.
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list pkg-config
+           ;; For bootstrapping from git.
+           autoconf automake libtool))
     (inputs
-     `(("libxtst" ,libxtst)
-       ("libx11" ,libx11)))
+     (list libxtst libx11))
     (home-page "https://www.yoctoproject.org/tools-resources/projects/matchbox")
     (synopsis "X virtual keyboard library")
     (description
@@ -503,7 +516,7 @@ X11 (yet).")
 (define-public xdotool
   (package
     (name "xdotool")
-    (version "3.20160805.1")
+    (version "3.20211022.1")
     (source
       (origin
         (method url-fetch)
@@ -512,7 +525,7 @@ X11 (yet).")
               version "/xdotool-" version ".tar.gz"))
         (sha256
           (base32
-           "1a6c1zr86zb53352yxv104l76l8x21gfl2bgw6h21iphxpv5zgim"))))
+           "1nlsbwsdsgys607f00sc8xgb7l7cdzsb14avsg5fly3dvv7zmw4n"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f ; Test suite requires a lot of black magic
@@ -526,13 +539,13 @@ X11 (yet).")
                (setenv "LDFLAGS" (string-append "-Wl,-rpath=" out "/lib"))
                (setenv "CC" "gcc")
                #t))))))
-    (native-inputs `(("perl" ,perl))) ; for pod2man
-    (inputs `(("libx11" ,libx11)
-              ("libxext" ,libxext)
-              ("libxi" ,libxi)
-              ("libxinerama" ,libxinerama)
-              ("libxtst" ,libxtst)
-              ("libxkbcommon" ,libxkbcommon)))
+    (native-inputs (list perl)) ; for pod2man
+    (inputs (list libx11
+                  libxext
+                  libxi
+                  libxinerama
+                  libxtst
+                  libxkbcommon))
     (home-page "https://www.semicomplete.com/projects/xdotool/")
     (synopsis "Fake keyboard/mouse input, window management, and more")
     (description "Xdotool lets you simulate keyboard input and mouse activity,
@@ -566,9 +579,7 @@ between desktops, and change the number of desktops.")
        (modify-phases %standard-phases
          (delete 'configure))))
     (inputs
-     `(("libxcb" ,libxcb)
-       ("xcb-util-wm" ,xcb-util-wm)
-       ("xcb-util" ,xcb-util)))
+     (list libxcb xcb-util-wm xcb-util))
     (home-page "https://github.com/baskerville/xdo")
     (synopsis "Small X utility to perform elementary actions on windows")
     (description
@@ -589,12 +600,9 @@ options are given, the action applies to the focused window.")
         (base32 "0lq5j7fryx1wn998jq6h3icz1h6pqrsbs3adskjzjyhn5l6yrg2p"))))
     (build-system gnu-build-system)
     (inputs
-      `(("libxext" ,libxext)
-        ("libxmu" ,libxmu)
-        ("libxrender" ,libxrender)
-        ("libxt" ,libxt)))
+      (list libxext libxmu libxrender libxt))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.x.org/")    ; no dedicated Xeyes page exists
     (synopsis "Follow-the-mouse X demo")
     (description "Xeyes is a demo program for x.org.  It shows eyes
@@ -626,10 +634,9 @@ following the mouse.")
         "--enable-timers"
         "--enable-gnuplot")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libpng" ,libpng)
-       ("zlib" ,zlib)))
+     (list libpng zlib))
     (synopsis "Low-level pixel manipulation library")
     (description "Pixman is a low-level software library for pixel
 manipulation, providing features such as image compositing and trapezoid
@@ -667,9 +674,9 @@ rasterisation.")
                       (when tests?
                         (invoke "meson" "test" "--timeout-multiplier" "5")))))))
     (propagated-inputs
-     `(("libpciaccess" ,libpciaccess)))
+     (list libpciaccess))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://dri.freedesktop.org/wiki/")
     (synopsis "Direct rendering userspace library")
     (description "The Direct Rendering Infrastructure, also known as the DRI,
@@ -721,10 +728,9 @@ tracking.")
         (base32
          "0jmyryrpqb35y9hd5sgxqy2z0r1snw7d3ljw0jak0n0cjdz1yf9w"))))
     (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (inputs
-     `(("libx11" ,libx11)
-       ("xcb-util" ,xcb-util)))
+     (list libx11 xcb-util))
     (home-page "https://www.freedesktop.org/wiki/Software/startup-notification/")
     (synopsis "Application startup notification and feedback library")
     (description
@@ -754,11 +760,9 @@ System style license, and has no special dependencies.")
                             (assoc-ref %outputs "out")
                             "/share/man"))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("libx11" ,libx11)
-       ("libxmu" ,libxmu)
-       ("glib" ,glib)))
+     (list libx11 libxmu glib))
     (home-page "http://tomas.styblo.name/wmctrl/")
     (synopsis "Command-line tool to control X window managers")
     (description
@@ -771,7 +775,7 @@ move windows, switch between desktops, etc.).")
 (define-public scrot
   (package
     (name "scrot")
-    (version "1.5")
+    (version "1.7")
     (source
      (origin
        (method git-fetch)
@@ -781,18 +785,18 @@ move windows, switch between desktops, etc.).")
          (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0x64b7xqi5cbq29pb8s8r2kzbxaday1f5k0j70n3s2p7sahjxy72"))))
+        (base32 "0rls08mpalx4xp5ysmg7m5lgx9q8g8m8q40m47f11mqa84z88nd1"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("autoconf-archive" ,autoconf-archive)
-       ("automake" ,automake)))
+     (list autoconf autoconf-archive automake pkg-config))
     (inputs
-     `(("giblib" ,giblib)
-       ("libx11" ,libx11)
-       ("libxcomposite" ,libxcomposite)
-       ("libxext" ,libxext)
-       ("libXfixes" ,libxfixes)))
+     (list giblib
+           imlib2
+           libbsd
+           libx11
+           libxcomposite
+           libxext
+           libxfixes))
     (home-page "https://github.com/resurrecting-open-source-projects/scrot")
     (synopsis "Command-line screen capture utility for X Window System")
     (description
@@ -806,7 +810,7 @@ of the screen selected by mouse.")
 (define-public slop
   (package
     (name "slop")
-    (version "7.5")
+    (version "7.6")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -815,17 +819,17 @@ of the screen selected by mouse.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1k8xxb4rj2fylr4vj16yvsf73cyywliz9cy78pl4ibmi03jhg837"))))
+                "1xaka98vka5kh3wmby68ifwi6rp0985dj13fgs96bw8a1z3m1l1d"))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f)) ; no "check" target
     (inputs
-     `(("glew" ,glew)
-       ("glm" ,glm)
-       ("icu4c" ,icu4c)
-       ("libxext" ,libxext)
-       ("libxrender" ,libxrender)
-       ("mesa" ,mesa)))
+     (list glew
+           glm
+           icu4c
+           libxext
+           libxrender
+           mesa))
     (home-page "https://github.com/naelstrof/slop")
     (synopsis "Select a region and print its bounds to stdout")
     (description
@@ -899,7 +903,7 @@ include cursor in the resulting image.")
                (invoke "make" "install" "install.man"
                        (string-append "BINDIR=" bin)
                        (string-append "MANDIR=" man1))))))))
-    (inputs `(("libx11" ,libx11)))
+    (inputs (list libx11))
     (home-page "http://ftp.x.org/contrib/utilities/")
     (synopsis "Hide idle mouse cursor")
     (description
@@ -937,13 +941,9 @@ things less distracting.")
                  (modify-phases %standard-phases
                    (delete 'configure))))
     (inputs
-     `(("libx11" ,libx11)
-       ("libev" ,libev)
-       ("libxfixes" ,libxfixes)
-       ("libxi" ,libxi)))
+     (list libx11 libev libxfixes libxi))
     (native-inputs
-     `(("asciidoc" ,asciidoc)
-       ("pkg-config" ,pkg-config)))
+     (list asciidoc pkg-config))
     (home-page "https://github.com/Airblader/unclutter-xfixes")
     (synopsis "Hide idle mouse cursor")
     (description
@@ -978,12 +978,9 @@ things less distracting.")
          "03azv5wpg65h40ip2kk1kdh58vix4vy1r9bihgsq59jx2rhjr3zf"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libpng" ,libpng)
-       ("libx11" ,libx11)
-       ("libxi" ,libxi)
-       ("libxtst" ,libxtst)))
+     (list libpng libx11 libxi libxtst))
     (native-inputs
-     `(("xorgproto" ,xorgproto)))
+     (list xorgproto))
     (synopsis "Tools to automate tasks in X such as detecting on screen images")
     (description
      "Xautomation can control X from the command line for scripts, and
@@ -999,7 +996,7 @@ to find buttons, etc, on the screen to click on.")
 (define-public xbanish
   (package
     (name "xbanish")
-    (version "1.7")
+    (version "1.8")
     (home-page "https://github.com/jcs/xbanish")
     (source (origin
               (method git-fetch)
@@ -1008,7 +1005,7 @@ to find buttons, etc, on the screen to click on.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0ic5f7zgc32p5g1wxas9y5h8dhik0pvsa8wmn6skdry56gw9vg9q"))))
+                "12mjwn8hvrrhwyg3wi20bqr6k8d57xf9m5qr3s4nn511dcksh04g"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no tests
@@ -1017,10 +1014,7 @@ to find buttons, etc, on the screen to click on.")
        #:phases (modify-phases %standard-phases
                   (delete 'configure)))) ; no configure script
     (inputs
-     `(("libx11" ,libx11)
-       ("libxfixes" ,libxfixes)
-       ("libxi" ,libxi)
-       ("libxt" ,libxt)))
+     (list libx11 libxfixes libxi libxt))
     (synopsis "Banish the mouse cursor")
     (description
      "@command{xbanish} hides the mouse cursor when you start typing, and
@@ -1030,29 +1024,28 @@ shows it again when the mouse cursor moves or a mouse button is pressed.")
 (define-public xlockmore
   (package
     (name "xlockmore")
-    (version "5.66")
+    (version "5.68")
     (source (origin
-             (method url-fetch)
-             (uri (list (string-append "http://sillycycle.com/xlock/"
-                                       "xlockmore-" version ".tar.xz")
-                        ;; Previous releases are moved to a subdirectory.
-                        (string-append "http://sillycycle.com/xlock/"
-                                       "recent-releases/"
-                                       "xlockmore-" version ".tar.xz")))
-             (sha256
-              (base32
-               "0wdb7gpyjw3sigmhiplgg1bqxz6wipr0c3n9492x2a18cv1saxjr"))))
+              (method url-fetch)
+              (uri (list (string-append "http://sillycycle.com/xlock/"
+                                        "xlockmore-" version ".tar.xz")
+                         ;; Previous releases are moved to a subdirectory.
+                         (string-append "http://sillycycle.com/xlock/"
+                                        "recent-releases/"
+                                        "xlockmore-" version ".tar.xz")))
+              (sha256
+               (base32
+                "0vndfwccnvkaaraprjam8pmx0aj55va0ag64q6snxw83nbf1ywrh"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:configure-flags (list (string-append "--enable-appdefaultdir="
-                                              (assoc-ref %outputs "out")
-                                              "/lib/X11/app-defaults"))
-       #:tests? #f))                            ;no such thing as a test suite
+     (list
+      #:configure-flags
+      #~(list (string-append "--enable-appdefaultdir="
+                             #$output
+                             "/lib/X11/app-defaults"))
+      #:tests? #f))                     ;no such thing as a test suite
     (inputs
-     `(("libX11" ,libx11)
-       ("libXext" ,libxext)
-       ("libXt" ,libxt)
-       ("linux-pam" ,linux-pam)))
+     (list libx11 libxext libxt linux-pam))
     (home-page "https://sillycycle.com/xlockmore.html")
     (synopsis "Screen locker for the X Window System")
     (description
@@ -1078,10 +1071,7 @@ X Window System.")
      '(#:configure-flags
        (list (string-append "--mandir=" %output "/share/man"))))
     (inputs
-     `(("libx11" ,libx11)
-       ("libxt" ,libxt)
-       ("libxext" ,libxext)
-       ("libxinerama" ,libxinerama)))
+     (list libx11 libxt libxext libxinerama))
     (home-page "https://sourceforge.net/projects/libxosd/")
     (synopsis "X On Screen Display")
     (description
@@ -1092,22 +1082,19 @@ transparent text on your screen.")
 (define-public wob
   (package
     (name "wob")
-    (version "0.11")
+    (version "0.13")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://github.com/francma/wob/releases/download/"
                            version "/wob-" version ".tar.gz"))
        (sha256
-        (base32 "1vgngcg8wxn6zfg34czn9w55ia0zmhlgnpzf0gh31dc72li9353k"))))
+        (base32 "0i8y6kq37qcgdq85ll4rapisjl7zw6aa11yx2f2xw2d3j93kdxh8"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("scdoc" ,scdoc)))
+     (list pkg-config scdoc))
     (inputs
-     `(("libseccomp" ,libseccomp)
-       ("wayland" ,wayland)
-       ("wayland-protocols" ,wayland-protocols)))
+     (list libseccomp wayland wayland-protocols))
     (home-page "https://github.com/francma/wob")
     (synopsis "Lightweight overlay bar for Wayland")
     (description
@@ -1149,11 +1136,9 @@ backlight, progress, or anything bar for Wayland.")
                   (format #f "\"~a/bin/~a\"" out command)))
                #t))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("guile" ,guile-2.2)
-       ("libx11" ,libx11)
-       ("tk" ,tk)))
+     (list guile-2.2 libx11 tk))
     (home-page "https://www.nongnu.org/xbindkeys/")
     (synopsis "Associate a combination of keys with a shell command")
     (description
@@ -1182,11 +1167,7 @@ Guile will work for XBindKeys.")
         (base32 "1winwzdy9yxvxnrv8gqpigl9y0c2px27mnms62bdilp4x6llrs9r"))))
     (build-system gnu-build-system)
     (inputs
-     `(("asciidoc" ,asciidoc)
-       ("libxcb" ,libxcb)
-       ("xcb-util" ,xcb-util)
-       ("xcb-util-keysyms" ,xcb-util-keysyms)
-       ("xcb-util-wm" ,xcb-util-wm)))
+     (list asciidoc libxcb xcb-util xcb-util-keysyms xcb-util-wm))
     (arguments
      `(#:phases (modify-phases %standard-phases (delete 'configure))
        #:tests? #f  ; no check target
@@ -1205,14 +1186,14 @@ compact configuration syntax.")
 (define-public rxvt-unicode
   (package
     (name "rxvt-unicode")
-    (version "9.26")
+    (version "9.30")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://dist.schmorp.de/rxvt-unicode/Attic/"
                                   name "-" version ".tar.bz2"))
               (sha256
                (base32
-                "12y9p32q0v7n7rhjla0j2g9d5rj2dmwk20c9yhlssaaxlawiccb4"))))
+                "0badnkjsn3zps24r5iggj8k5v4f00npc77wqg92pcn1q5z8r677y"))))
     (build-system gnu-build-system)
     (arguments
      ;; This sets the destination when installing the necessary terminal
@@ -1240,8 +1221,7 @@ compact configuration syntax.")
                            TryExec=~@*~a/bin/urxvt~@
                            Icon=~@
                            Type=Application~%"
-                           output)))
-               #t)))
+                           output))))))
          (add-after 'install 'install-desktop-urxvtc
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((output (assoc-ref outputs "out"))
@@ -1258,16 +1238,15 @@ compact configuration syntax.")
                            TryExec=~@*~a/bin/urxvtc~@
                            Icon=~@
                            Type=Application~%"
-                           output)))
-               #t))))))
+                           output)))))))))
     (inputs
-     `(("libXft" ,libxft)
+     `(("libptytty" ,libptytty)
+       ("libXft" ,libxft)
        ("libX11" ,libx11)
        ("libXt" ,libxt)))
     (native-inputs
-     `(("ncurses" ,ncurses)         ;trigger the installation of terminfo data
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
+     (list ncurses ;trigger the installation of terminfo data
+           perl pkg-config))
     ;; FIXME: This should only be located in 'ncurses'.  Nonetheless it is
     ;; provided for usability reasons.  See <https://bugs.gnu.org/22138>.
     (native-search-paths
@@ -1306,10 +1285,9 @@ within a single process.")
                           "MANDIR=/share/man/man1"
                           ,(string-append "CC=" (cc-for-target)))))
     (inputs
-     `(("libxtst" ,libxtst)
-       ("libx11" ,libx11)))
+     (list libxtst libx11))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://github.com/alols/xcape")
     (synopsis "Use a modifier key in X.org as another key")
     (description
@@ -1334,18 +1312,15 @@ Escape key when Left Control is pressed and released on its own.")
     (arguments
      `(#:configure-flags '("--disable-static")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ;; For tests.
-       ("python" ,python)))
+     (list pkg-config
+           ;; For tests.
+           python))
     (inputs
-     `(("gtk+" ,gtk+)
-       ("libgudev" ,libgudev)
-       ("eudev" ,eudev)
-       ("libxml2" ,libxml2)))
+     (list gtk+ libgudev eudev libxml2))
     (propagated-inputs
      ;; libwacom includes header files that include GLib, and libinput uses
      ;; those header files.
-     `(("glib" ,glib)))
+     (list glib))
     (home-page "https://linuxwacom.github.io/")
     (synopsis "Helper library for Wacom tablet settings")
     (description
@@ -1378,13 +1353,9 @@ Wacom tablet applet.")
                             "/share/X11/xorg.conf.d"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("xorg-server" ,xorg-server)
-       ("libxrandr" ,libxrandr)
-       ("libxinerama" ,libxinerama)
-       ("libxi" ,libxi)
-       ("eudev" ,eudev)))
+     (list xorg-server libxrandr libxinerama libxi eudev))
     (home-page "https://linuxwacom.github.io/")
     (synopsis "Wacom input driver for X")
     (description
@@ -1449,20 +1420,18 @@ the X.Org X Server version 1.7 and later (X11R7.5 or later).")
                #t))))))
     (outputs '("out" "gtk"))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
+     (list pkg-config intltool))
     (inputs
-     `(("libdrm" ,libdrm)
-       ("libx11" ,libx11)
-       ("libxcb" ,libxcb)
-       ("libxxf86vm" ,libxxf86vm)
-       ("glib" ,glib)                   ;for Geoclue2 support
-
-       ;; To build the GTK3 GUI, we need these.
-       ("gtk+" ,gtk+)
-       ("python" ,python)
-       ("python-pygobject" ,python-pygobject)
-       ("python-pyxdg" ,python-pyxdg)))
+     (list libdrm
+           libx11
+           libxcb
+           libxxf86vm
+           glib ;for Geoclue2 support
+           ;; To build the GTK3 GUI, we need these.
+           gtk+
+           python
+           python-pygobject
+           python-pyxdg))
     (home-page "https://github.com/jonls/redshift")
     (synopsis "Adjust the color temperature of your screen")
     (description
@@ -1509,18 +1478,14 @@ color temperature should be set to match the lamps in your room.")
                             (("^_") ""))
                           #t))))))
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("libtool" ,libtool)
-         ("pkg-config" ,pkg-config)
-         ("intltool" ,intltool)))
+       (list autoconf automake libtool pkg-config intltool))
       (inputs
-       `(("libdrm" ,libdrm)
-         ("libx11" ,libx11)
-         ("libxcb" ,libxcb)
-         ("libxxf86vm" ,libxxf86vm)
-         ("glib" ,glib)                 ; for Geoclue2 support
-         ("wayland" ,wayland)))
+       (list libdrm
+             libx11
+             libxcb
+             libxxf86vm
+             glib ; for Geoclue2 support
+             wayland))
       (home-page "https://github.com/minus7/redshift")
       (synopsis "Adjust the color temperature of your screen (with Wayland support)")
       (description
@@ -1537,7 +1502,7 @@ protocol.")
 (define-public gammastep
   (package
     (name "gammastep")
-    (version "2.0.7")
+    (version "2.0.8")
     (source
      (origin
        (method git-fetch)
@@ -1546,7 +1511,7 @@ protocol.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "11j54rdd3cgngdhjwyapwjbrdm8cii4i7g4zdvfykvmb1w4zdk7g"))))
+        (base32 "071f3iqdbblb3awnx48j19kspk6l2g3658za80i2mf4gacgq9fm1"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -1557,28 +1522,28 @@ protocol.")
              ;; to Python libraries.
              (wrap-program (string-append (assoc-ref outputs "out")
                                           "/bin/gammastep-indicator")
-               `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
+               `("PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH")))
                `("GI_TYPELIB_PATH" ":" prefix
                  (,(getenv "GI_TYPELIB_PATH")))))))))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("gettext" ,gettext-minimal)
-       ("intltool" ,intltool)
-       ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf
+           automake
+           gettext-minimal
+           intltool
+           libtool
+           pkg-config))
     (inputs
-     `(("glib" ,glib)
-       ("gtk" ,gtk+)
-       ("libappindicator" ,libappindicator)
-       ("libdrm" ,libdrm)
-       ("libX11" ,libx11)
-       ("libxxf86vm" ,libxxf86vm)
-       ("libxcb" ,libxcb)
-       ("python" ,python)
-       ("python-pygobject" ,python-pygobject)
-       ("python-pyxdg" ,python-pyxdg)
-       ("wayland" ,wayland)))
+     (list glib
+           gtk+
+           libappindicator
+           libdrm
+           libx11
+           libxxf86vm
+           libxcb
+           python
+           python-pygobject
+           python-pyxdg
+           wayland))
     (home-page "https://gitlab.com/chinstrap/gammastep")
     (synopsis "Adjust the color temperature of your screen")
     (description
@@ -1616,8 +1581,7 @@ less if you are working in front of the screen at night.")
                                          (assoc-ref %outputs "out")
                                          "/lib/X11/app-defaults"))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
+     (list pkg-config intltool))
     (inputs
      `(("libx11" ,libx11)
        ("libxext" ,libxext)
@@ -1675,13 +1639,9 @@ demos.  It also acts as a nice screen locker.")
                             (delete 'configure)
                             (delete 'check))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("glib" ,glib)
-       ("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("libxscrnsaver" ,libxscrnsaver)
-       ("dbus" ,dbus)))
+     (list glib libx11 libxext libxscrnsaver dbus))
     (synopsis "Forward freedesktop.org Idle Inhibition Service calls to Xss")
     (description "xssproxy implements the @code{org.freedesktop.ScreenSaver}
 D-Bus interface described in the Idle Inhibition Service Draft by the
@@ -1715,11 +1675,9 @@ Saver extension) library.")
            (replace 'bootstrap
              (lambda _
                (invoke "autoreconf" "-vfi"))))))
-      (native-inputs `(("autoconf" ,autoconf)
-                       ("automake" ,automake)
-                       ("libtool" ,libtool)))
+      (native-inputs (list autoconf automake libtool))
       (inputs
-       `(("libxt" ,libxt)))
+       (list libxt))
       (home-page "http://www.vergenet.net/~conrad/software/xsel/")
       (synopsis "Manipulate X selection")
       (description
@@ -1746,7 +1704,7 @@ but can also follow a growing file, display contents, delete entries and more.")
                 "1h09wd2qcg08rj5hcakvdh9q01hkrj8vxly94ax3ch2x06lm0zq8"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libx11" ,libx11)))
+     (list libx11))
     (home-page "https://github.com/alezost/xdpyprobe")
     (synopsis "Probe X server for connectivity")
     (description
@@ -1757,34 +1715,40 @@ connectivity of the X server running on a particular @code{DISPLAY}.")
 (define-public rofi
   (package
     (name "rofi")
-    (version "1.6.1")
+    (version "1.7.3")
     (source (origin
               (method url-fetch)
-              (uri (string-append "https://github.com/DaveDavenport/rofi/"
+              (uri (string-append "https://github.com/davatorium/rofi/"
                                   "releases/download/"
                                   version "/rofi-" version ".tar.xz"))
               (sha256
                (base32
-                "12p9z8bl1gg8k024m4a6zfz7gf1zbyffardh98raqgabn6knwk22"))))
+                "0yxn9pmn9zp0k5ygnjqbj1pmp73g53wa47r145a8qcwqzxl8p1i5"))))
     (build-system gnu-build-system)
-    (inputs
-     `(("pango" ,pango)
-       ("cairo" ,cairo)
-       ("glib" ,glib)
-       ("startup-notification" ,startup-notification)
-       ("libjpeg" ,libjpeg-turbo)
-       ("librsvg" ,librsvg)
-       ("libxkbcommon" ,libxkbcommon)
-       ("libxcb" ,libxcb)
-       ("xcb-util" ,xcb-util)
-       ("xcb-util-xrm" ,xcb-util-xrm)
-       ("xcb-util-wm" ,xcb-util-wm)))
     (native-inputs
-     `(("bison" ,bison)
-       ("check" ,check)
-       ("flex" ,flex)
-       ("glib:bin" ,glib "bin")
-       ("pkg-config" ,pkg-config)))
+     (list bison
+           check
+           flex
+           `(,glib "bin")
+           pkg-config))
+    (inputs
+     (list cairo
+           glib
+           libjpeg-turbo
+           librsvg
+           libxcb
+           libxkbcommon
+           pango
+           startup-notification
+           xcb-util
+           xcb-util-cursor
+           xcb-util-wm
+           xcb-util-xrm))
+    (native-search-paths
+     ;; This is where rofi will search for plugins by default.
+     (list (search-path-specification
+            (variable "ROFI_PLUGIN_PATH")
+            (files '("lib/rofi")))))
     (arguments
      `(#:parallel-tests? #f             ; fails in some circumstances
        #:phases
@@ -1794,15 +1758,59 @@ connectivity of the X server running on a particular @code{DISPLAY}.")
              (substitute* '("test/helper-expand.c")
                (("~root") "/root")
                (("~") "")
-               (("g_get_home_dir \\(\\)") "\"/\""))
-             #t)))))
-    (home-page "https://github.com/DaveDavenport/rofi")
+               (("g_get_home_dir \\(\\)") "\"/\"")))))))
+    (home-page "https://github.com/davatorium/rofi")
     (synopsis "Application launcher")
     (description "Rofi is a minimalist application launcher.  It memorizes which
 applications you regularly use and also allows you to search for an application
 by name.")
     (license license:expat)))
 
+(define-public rofi-calc
+  (package
+    (name "rofi-calc")
+    (version "2.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/svenstaro/rofi-calc")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "021z7hwvdcs3g7icyp6xhry0xlq29gg1288hg2kzyzqq4l2irxdi"))))
+    (build-system gnu-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          ;; Don't try to install directly to rofi, instead install
+          ;; to lib/rofi to match rofi's search-path ROFI_PLUGIN_PATH.
+          (add-after 'unpack 'patch-plugindir
+            (lambda _
+              (substitute* "Makefile.am"
+                (("plugindir=\\$\\{rofi_PLUGIN_INSTALL_DIR\\}\\/")
+                 "plugindir=${libdir}/rofi/"))))
+          (add-after 'unpack 'patch-qalc-path
+            (lambda* (#:key inputs #:allow-other-keys)
+              (substitute* "src/calc.c"
+                (("\"qalc\"")
+                 (string-append "\""
+                                (search-input-file inputs "bin/qalc")
+                                "\""))))))))
+    (inputs
+     (list cairo libqalculate rofi))
+    (native-inputs
+     (list autoconf automake libtool pkg-config))
+    (home-page
+     "https://github.com/svenstaro/rofi-calc")
+    (synopsis "Do live calculations in rofi with qalc")
+    (description
+     "@code{rofi-calc} is a rofi plugin that uses qalculate's @code{qalc} to parse
+natural language input and provide results.")
+    (license license:expat)))
+
 (define-public tint2
   (package
     (name "tint2")
@@ -1826,15 +1834,15 @@ by name.")
                (("/etc") "${CMAKE_INSTALL_PREFIX}/etc"))
              #t)))))
     (inputs
-     `(("gtk+" ,gtk+-2)
-       ("imlib2" ,imlib2)
-       ("librsvg" ,librsvg)
-       ("libxcomposite" ,libxcomposite)
-       ("libxdamage" ,libxdamage)
-       ("libxft" ,libxft)
-       ("libxinerama" ,libxinerama)
-       ("libxrandr" ,libxrandr)
-       ("startup-notification" ,startup-notification)))
+     (list gtk+-2
+           imlib2
+           librsvg
+           libxcomposite
+           libxdamage
+           libxft
+           libxinerama
+           libxrandr
+           startup-notification))
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("pkg-config" ,pkg-config)))
@@ -1890,11 +1898,8 @@ actions, a built-in clock, a battery monitor and a system tray.")
               (substitute* "Makefile" (("include config.mk") ""))
               #t)))))
      (inputs
-      `(("libx11"      ,libx11)
-        ("libxft"      ,libxft)
-        ("libxpm"      ,libxpm)
-        ("libxinerama" ,libxinerama)))
-     (native-inputs `(("pkg-config" ,pkg-config)))
+      (list libx11 libxft libxpm libxinerama))
+     (native-inputs (list pkg-config))
      (synopsis "General purpose messaging, notification and menuing program for X11")
      (description "Dzen is a general purpose messaging, notification and menuing
 program for X11.  It was designed to be fast, tiny and scriptable in any language.")
@@ -1921,7 +1926,7 @@ program for X11.  It was designed to be fast, tiny and scriptable in any languag
               ("fontconfig" ,fontconfig)
               ("libxft" ,libxft)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -1961,12 +1966,9 @@ minimalistic tiling window managers such as herbstluftwm and bspwm.")
                   #t))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("m4" ,m4)
-       ("libx11" ,libx11))) ; for tests
+     (list pkg-config m4 libx11)) ; for tests
     (inputs
-     `(("libxcb" ,libxcb)
-       ("xcb-util" ,xcb-util)))
+     (list libxcb xcb-util))
     (home-page "https://github.com/Airblader/xcb-util-xrm")
     (synopsis "XCB utility functions for the X resource manager")
     (description
@@ -2012,10 +2014,7 @@ XCB util-xrm module provides the following libraries:
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f))                    ; no test suite
-    (inputs `(("libx11" ,libx11)
-              ("libxext" ,libxext)
-              ("libxrandr" ,libxrandr)
-              ("libxxf86vm" ,libxxf86vm)))
+    (inputs (list libx11 libxext libxrandr libxxf86vm))
     (synopsis "Tiny monitor calibration loader for XFree86 (or X.org)")
     (description "xcalib is a tiny tool to load the content of vcgt-Tags in ICC
 profiles to the video card's gamma ramp.  It does work with most video card
@@ -2040,12 +2039,8 @@ invert colors on a specific display/screen.")
     (arguments '(#:configure-flags `("--enable-sound"
                                      "--enable-wave"
                                      "--enable-alsa")))
-    (native-inputs `(("autoconf" ,autoconf)
-                     ("automake" ,automake)
-                     ("pkg-config" ,pkg-config)
-                     ("perl" ,perl)))
-    (inputs `(("libx11" ,libx11)
-              ("alsa-lib" ,alsa-lib)))
+    (native-inputs (list autoconf automake pkg-config perl))
+    (inputs (list libx11 alsa-lib))
     (synopsis "Daemon that performs an action every time the X11 bell is rung")
     (description "nxbelld is a tiny utility to aid people who either don't
 like the default PC speaker beep, or use a sound driver that doesn't have
@@ -2069,11 +2064,9 @@ or playing a PCM encoded WAVE file.")
                 "18jd3k3pvlm5x1adyqw63z2b3f4ixh9mfvz9asvnskk3fm8jgw0i"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("imake" ,imake)))
+     (list imake))
     (inputs
-     `(("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("libxscrnsaver" ,libxscrnsaver)))
+     (list libx11 libxext libxscrnsaver))
     (arguments
      `(#:tests? #f
        #:phases
@@ -2122,7 +2115,7 @@ a user-configurable period of time.")
     (inputs `(("gtk3" ,gtk+)
               ("gdk" ,gdk-pixbuf)
               ("pango" ,pango)))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs (list pkg-config))
     (arguments
      ;; The default configure puts the 'sm' binary in games/ instead of bin/ -
      ;; this fixes it:
@@ -2154,11 +2147,9 @@ commandline).")
                  (base32
                   "10hx7k7ga8g08akwz8qrsvj8iqr5nd4siiva6sjx789jvf0sak7r"))))
       (build-system cmake-build-system)
-      (inputs `(("glib" ,glib)
-                ("xcb-util" ,xcb-util)))
+      (inputs (list glib xcb-util))
       (native-inputs
-       `(("python-docutils" ,python-docutils)
-         ("pkg-config" ,pkg-config)))
+       (list python-docutils pkg-config))
       (arguments
        `(#:tests? #f))
       (synopsis "Use external screen locker on events")
@@ -2174,20 +2165,19 @@ before the system goes to sleep.")
 (define-public python-pyperclip
   (package
     (name "python-pyperclip")
-    (version "1.6.4")
+    (version "1.8.2")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "pyperclip" version))
         (sha256
          (base32
-          "1p505c23ji06r28k1y67siihsbdzdf1brhlqpyv9ams4gk9863pp"))))
+          "0mxzm43z2anr55gyz7awagvam4d5c2rlxhp9hjyg0d29n2l58lhh"))))
     (build-system python-build-system)
     (arguments
      '(#:tests? #f)) ; Not clear how to make tests pass.
     (inputs
-     `(("xclip" ,xclip)
-       ("xsel" ,xsel)))
+     (list xclip xsel))
     (home-page "https://github.com/asweigart/pyperclip")
     (synopsis "Python clipboard module")
     (description
@@ -2211,7 +2201,7 @@ the X11 clipboard")
                 "1w49fayhwzn5rx0z1q2lrvm7z8jrd34lgb89p853a024bixc3cf2"))))
     (build-system gnu-build-system)
     (inputs
-     `(("xorg-server" ,xorg-server)))
+     (list xorg-server))
     (home-page "https://github.com/rg3/numlockx")
     (synopsis "Turns on the numlock key in X11")
     (description "@command{numlockx} is a tiny program that lets you turn on
@@ -2222,7 +2212,7 @@ to automatically turn it on on login.")
 (define-public xrandr-invert-colors
   (package
     (name "xrandr-invert-colors")
-    (version "0.01")
+    (version "0.02")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2231,7 +2221,7 @@ to automatically turn it on on login.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1br3x9vr6xm4ika06n8cfxx1b3wdchdqvyzjl4y1chmivrml8x9h"))))
+                "0gk1fgxb2kjyr78xn8m0ckjdic99ras7msa67piwnhj3j4scg1ih"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags (list ,(string-append "CC=" (cc-for-target)))
@@ -2240,13 +2230,16 @@ to automatically turn it on on login.")
        (modify-phases %standard-phases
          (delete 'configure)
          (replace 'install
+           ;; It's simpler to install the single binary ourselves than to patch
+           ;; the Makefile's install target into working.
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out  (assoc-ref outputs "out"))
                     (bin  (string-append out "/bin")))
-               (install-file "xrandr-invert-colors.bin" bin)
-               #t))))))
+               (mkdir-p bin)
+               (copy-file "xrandr-invert-colors.bin"
+                          (string-append bin "/xrandr-invert-colors"))))))))
     (inputs
-     `(("libxrandr" ,libxrandr)))
+     (list libxrandr))
     (home-page "https://github.com/zoltanp/xrandr-invert-colors")
     (synopsis "Invert display colors")
     (description "This package provides a small utility for inverting the
@@ -2297,10 +2290,10 @@ colors on all monitors attached to an XRandR-capable X11 display server.")
                             (string-append out "/bin/sctd"))
                #t))))))
     (inputs
-     `(("coreutils" ,coreutils) ; sctd uses "date", "printf" and "sleep"
-       ("inetutils" ,inetutils) ; sctd uses "logger"
-       ("libxrandr" ,libxrandr)
-       ("sed" ,sed))) ; sctd uses "sed"
+     (list coreutils ; sctd uses "date", "printf" and "sleep"
+           inetutils ; sctd uses "logger"
+           libxrandr
+           sed)) ; sctd uses "sed"
     (home-page "https://www.umaxx.net")
     (synopsis "Set the color temperature of the screen")
     (description "@code{sct} is a lightweight utility to set the color
@@ -2310,14 +2303,14 @@ temperature of the screen.")
 (define-public xsecurelock
   (package
     (name "xsecurelock")
-    (version "1.6.0")
+    (version "1.7.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "https://github.com/google/xsecurelock/releases"
                     "/download/v" version "/xsecurelock-" version ".tar.gz"))
               (sha256
-               (base32 "070gknyv0s5hz9hkc6v73m2v7ssyjwgl93b5hd4glayfqxqjbmdp"))))
+               (base32 "0s2q69g1xhvs18q2jhcval5vpa9j0kkrdv02r176vvxvdms7hhc7"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags
@@ -2325,8 +2318,7 @@ temperature of the screen.")
          "--with-xkb"
          "--with-default-authproto-module=/run/setuid-programs/authproto_pam")))
     (native-inputs
-     `(("pandoc" ,pandoc)
-       ("pkg-config" ,pkg-config)))
+     (list pandoc pkg-config))
     (inputs
      `(("fontconfig" ,fontconfig)
        ("libX11" ,libx11)
@@ -2380,18 +2372,58 @@ binary to setuid-binaries:
                 (string-append "\"" (assoc-ref inputs "xdg-utils")
                                "/bin/xdg-mime\""))))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("coreutils" ,coreutils)
-       ("wayland" ,wayland)
-       ("wayland-protocols" ,wayland-protocols)
-       ("xdg-utils" ,xdg-utils)))
+     (list coreutils wayland wayland-protocols xdg-utils))
     (home-page "https://github.com/bugaevc/wl-clipboard")
     (synopsis "Command-line copy/paste utilities for Wayland")
     (description "Wl-clipboard is a set of command-line copy/paste utilities for
 Wayland.")
     (license license:gpl3+)))
 
+(define-public wl-clipboard-x11
+  (package
+    (name "wl-clipboard-x11")
+    (version "5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/brunelli/wl-clipboard-x11")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1y7jv7rps0sdzmm859wn2l8q4pg2x35smcrm7mbfxn5vrga0bslb"))))
+    (build-system copy-build-system)
+    (arguments
+     `(#:install-plan
+       '(("src/" "bin/")
+         ("man/" "man/man1"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'wrap-binary
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out          (assoc-ref outputs "out"))
+                   (wl-clipboard (assoc-ref inputs "wl-clipboard")))
+               (wrap-program (string-append out "/bin/wl-clipboard-x11")
+                `("PATH" prefix (,(string-append wl-clipboard "/bin")))))
+             #t))
+         (add-after 'wrap-binary 'symlink-utilities
+           ;; As seen in the Makefile.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
+               (symlink "wl-clipboard-x11" (string-append bin "xclip"))
+               (symlink "wl-clipboard-x11" (string-append bin "xsel")))
+             #t)))))
+    (inputs
+     (list bash-minimal wl-clipboard))
+    (home-page "https://github.com/brunelli/wl-clipboard-x11")
+    (synopsis "Use wl-clipboard as a drop-in replacement to X11 clipboard tools")
+    (description "This package provides a wrapper script around
+@code{x11-clipboard} to use it as a clipboard on X11 also.  It also contains
+helper scripts for @code{xclip} and @code{xsel} to assist with the transition.")
+    (license license:gpl3+)))
+
 (define-public autocutsel
   (package
     (name "autocutsel")
@@ -2407,8 +2439,7 @@ Wayland.")
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f)) ; no "check" target
-    (native-inputs `(("libx11" ,libx11)
-                     ("libxaw" ,libxaw)))
+    (native-inputs (list libx11 libxaw))
     (home-page "https://www.nongnu.org/autocutsel/")
     (synopsis "Automated X11 clipboard and cutbuffer synchronization")
     (description "@code{autocutsel} tracks changes in the server's cutbuffer
@@ -2420,7 +2451,7 @@ The cutbuffer and clipboard selection are always synchronized.")
 (define-public jgmenu
   (package
     (name "jgmenu")
-    (version "4.3.0")
+    (version "4.4.0")
     (source
      (origin
        (method git-fetch)
@@ -2429,20 +2460,18 @@ The cutbuffer and clipboard selection are always synchronized.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "13y4ra2hjfqbn2vxyyn4ar5iqklbabyfwksbryc2gzxspw1vz4zq"))))
+        (base32 "08dyygclayyipa0p2qsxqa3fsfyflkrkhpi25dkc3ybkicvynk24"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("cppcheck" ,cppcheck)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
+     (list cppcheck perl pkg-config))
     (inputs
-     `(("cairo" ,cairo)
-       ("glib" ,glib)
-       ("librsvg" ,librsvg)
-       ("libx11" ,libx11)
-       ("libxml2" ,libxml2)
-       ("libxrandr" ,libxrandr)
-       ("pango" ,pango)))
+     (list cairo
+           glib
+           librsvg
+           libx11
+           libxml2
+           libxrandr
+           pango))
     (arguments
      `(#:test-target "test"
        #:phases
@@ -2463,7 +2492,7 @@ can optionally use some appearance settings from XSettings, tint2 and GTK.")
 (define-public xwallpaper
   (package
     (name "xwallpaper")
-    (version "0.6.6")
+    (version "0.7.3")
     (source
      (origin
        (method git-fetch)
@@ -2472,19 +2501,17 @@ can optionally use some appearance settings from XSettings, tint2 and GTK.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "10klm81rs3k3l2i7whpvcsg95x51ja11l86fmwbrvg3kq705p2sr"))))
+        (base32 "1rsv42cl0s149sbpdxz9yqqjip3si95jv3dglwzrcm7pjfg7519v"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake pkg-config))
     (inputs
-     `(("libjpeg-turbo" ,libjpeg-turbo)
-       ("libpng" ,libpng)
-       ("libxpm" ,libxpm)
-       ("pixman" ,pixman)
-       ("xcb-util" ,xcb-util)
-       ("xcb-util-image" ,xcb-util-image)))
+     (list libjpeg-turbo
+           libpng
+           libxpm
+           pixman
+           xcb-util
+           xcb-util-image))
     (home-page "https://github.com/stoeckmann/xwallpaper")
     (synopsis "Wallpaper setting utility for X")
     (description
@@ -2518,8 +2545,7 @@ backgrounds.")
                (install-file "README" doc)
                #t))))))
     (inputs
-     `(("libx11" ,libx11)
-       ("libxinerama" ,libxinerama)))
+     (list libx11 libxinerama))
     (home-page "https://www.lcdf.org/~eddietwo/xwrits/")
     (synopsis "Reminds you to take wrist breaks")
     (description "Xwrits reminds you to take wrist breaks for prevention or
@@ -2545,7 +2571,7 @@ Xwrits hides itself until you should take another break.")
         (base32 "14gnkz18dipsa2v24f4nm9syxaa7g21iqjm7y65jn849ka2jr1h8"))))
     (build-system scons-build-system)
     (inputs
-     `(("libx11" ,libx11)))
+     (list libx11))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("googletest" ,googletest)
@@ -2711,13 +2737,13 @@ tools to complement clipnotify.")
                (invoke "tests/test-clipmenu")
                #t)))))
       (inputs
-       `(("clipnotify" ,clipnotify)
-         ("coreutils-minimal" ,coreutils-minimal)
-         ("gawk" ,gawk)
-         ("guile" ,guile-3.0) ; for wrap-script
-         ("util-linux" ,util-linux)
-         ("xdotool" ,xdotool)
-         ("xsel" ,xsel)))
+       (list clipnotify
+             coreutils-minimal
+             gawk
+             guile-3.0 ; for wrap-script
+             util-linux
+             xdotool
+             xsel))
       (home-page "https://github.com/cdown/clipmenu")
       (synopsis "Simple clipboard manager using dmenu or rofi and xsel")
       (description "Start @command{clipmenud}, then run @command{clipmenu} to
@@ -2746,14 +2772,10 @@ After selection, the clip is put onto the PRIMARY and CLIPBOARD X selections.")
          "0qkq75grbd4wkx4nlvswgavpijk9ad0pzqyj89a0ayjsbsn36pqy"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("glib" ,glib "bin")
-       ("pkg-config" ,pkg-config)))
+     (list autoconf automake
+           `(,glib "bin") pkg-config))
     (inputs
-     `(("dbus-glib" ,dbus-glib)
-       ("glib" ,glib)
-       ("libx11" ,libx11)))
+     (list dbus-glib glib libx11))
     (home-page "https://github.com/qnikst/kbdd")
     (synopsis "Per-window keyboard layout switching daemon for X")
     (description "@command{kbdd} is a simple keyboard layout switching
@@ -2782,7 +2804,7 @@ create layout indicator widgets.")
                 "1gxpgifzy0hnpd0ymw3r32amzr32z3bgb90ldjzl438p6h1q0i26"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("catch2" ,catch-framework2)))
+     (list catch-framework2))
     (arguments
      `(#:configure-flags '("-DWITH_GIT_CATCH=off")
        #:phases
@@ -2820,7 +2842,7 @@ using @command{dmenu}.")
     (arguments
      `(#:glib-or-gtk? #t))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("gtk3" ,gtk+)
        ("wayland" ,wayland)))
@@ -2852,9 +2874,9 @@ such as sway, similar to @command{rofi}.")
          (delete 'configure))
        #:tests? #f))
     (inputs
-     `(("python" ,python)))
+     (list python))
     (native-inputs
-     `(("python-sphinx" ,python-sphinx)))
+     (list python-sphinx))
     (home-page "https://github.com/jceb/dex")
     (synopsis "Execute DesktopEntry files")
     (description
@@ -2865,7 +2887,7 @@ and execute @file{.desktop} files of the Application type.")
 (define-public sx
   (package
     (name "sx")
-    (version "2.1.6")
+    (version "2.1.7")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2874,7 +2896,7 @@ and execute @file{.desktop} files of the Application type.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0p24ghp1ygvyc2hv81byhxax7491yhcc5priq5ldv07nzl7akagc"))))
+                "0xv15m30nhcknasqiybj5wwf7l91q4a4jf6xind8x5x00c6br6nl"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f                      ; no tests
@@ -2883,10 +2905,14 @@ and execute @file{.desktop} files of the Application type.")
          (list (string-append "PREFIX=" out)))
        #:phases
        (modify-phases %standard-phases
-         ;; no configure script
-         (delete 'configure))))
-    (propagated-inputs
-     `(("xauth" ,xauth)))
+         (add-after 'unpack 'refer-to-xauth
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "sx"
+               (("\\bxauth\\b" command)
+                (string-append (assoc-ref inputs "xauth") "/bin/" command)))))
+         (delete 'configure))))         ; no configure script
+    (inputs
+     (list xauth))
     (home-page "https://github.com/Earnestly/sx")
     (synopsis "Start an xorg server")
     (description
@@ -2923,11 +2949,9 @@ and execute @file{.desktop} files of the Application type.")
              (let ((out (assoc-ref outputs "out")))
                (mkdir-p (string-append out "/bin"))))))))
     (inputs
-     `(("libx11" ,libx11)
-       ("imlib2" ,imlib2)
-       ("libxinerama" ,libxinerama)))
+     (list libx11 imlib2 libxinerama))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (synopsis "Imlib2-based wallpaper changer")
     (description
      "The @command{hsetroot} command composes wallpapers for X.
@@ -2937,7 +2961,7 @@ This package is the fork of hsetroot by Hyriand.")
 (define-public jumpapp
   (package
     (name "jumpapp")
-    (version "1.1")
+    (version "1.2")
     (source
      (origin
        (method git-fetch)
@@ -2946,7 +2970,7 @@ This package is the fork of hsetroot by Hyriand.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1jrk4mm42sz6ca2gkb6w3dad53d4im4shpgsq8s4vr6xpl3b43ry"))))
+        (base32 "05shgw4agkhgk5vbvc05s12q7m0djc0m4qrd328hmis37bxp9j7n"))))
     (build-system gnu-build-system)
     (arguments `(#:phases
                  (modify-phases %standard-phases
@@ -2957,15 +2981,11 @@ This package is the fork of hsetroot by Hyriand.")
                        (let ((out (assoc-ref outputs "out")))
                          (substitute* "Makefile"
                            (("PREFIX =.*")
-                            (string-append "PREFIX = " out "\n")))
-                         #true))))))
+                            (string-append "PREFIX = " out "\n")))))))))
     (propagated-inputs
-     `(("wmctrl" ,wmctrl)
-       ("xdotool" ,xdotool)
-       ("xprop" ,xprop)))
+     (list wmctrl xdotool xprop))
     (native-inputs
-     `(("pandoc" ,pandoc)
-       ("perl" ,perl)))
+     (list pandoc perl))
     (synopsis "Run-or-raise application switcher for any X11 desktop")
     (description
      "Bind a key for any given application that will launch the application,
@@ -2988,9 +3008,7 @@ if there's more than one.")
         (base32 "199mlm127zk1lr8nrq22n68l2l8cjwc4cgwd67rg1i6497n2y0xc"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libx11" ,libx11)
-       ("perl" ,perl)
-       ("perl-tk" ,perl-tk)))
+     (list libx11 perl perl-tk))
     (arguments
      `(#:tests? #f                      ; There are none.
        #:make-flags
@@ -3028,3 +3046,31 @@ System.  This includes such features as MouseKeys, AccessX, StickyKeys,
 BounceKeys, and SlowKeys.  It includes a graphical program to help with
 MouseKeys-acceleration management.")
     (license license:bsd-3)))
+
+(define-public wlsunset
+  (package
+    (name "wlsunset")
+    (version "0.2.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://git.sr.ht/~kennylevinsen/wlsunset/")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0hhsddh3rs066rbsjksr8kcwg8lvglbvs67dq0r5wx5c1xcwb51w"))))
+    (build-system meson-build-system)
+    (inputs
+     (list wayland wayland-protocols))
+    (native-inputs
+     (list pkg-config))
+    (synopsis "Day/night gamma adjustments for Wayland compositors")
+    (home-page "https://sr.ht/~kennylevinsen/wlsunset/")
+    (description
+     "wlunset adjusts gamma based on day-night cycles on Wayland compositors
+that support @samp{wlr-gamma-control-unstable-v1}.  It is also known as a blue
+light filter or night light.")
+    (license license:expat)))
+