Merge branch 'master' into staging
[jackhill/guix/guix.git] / gnu / packages / xdisorg.scm
index 2e64ce3..ed801d6 100644 (file)
 ;;; 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 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
-;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2016, 2017, 2019 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2016 Petter <petter@mykolab.ch>
 ;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
 ;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
-;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Marek Benc <dusxmt@gmx.com>
 ;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
 ;;; Copyright © 2018 Thomas Sigurdsen <tonton@riseup.net>
-;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
-;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
+;;; Copyright © 2018, 2019 Rutger Helling <rhelling@mykolab.com>
+;;; Copyright © 2018, 2019 Pierre Neidhardt <mail@ambrevar.xyz>
+;;; Copyright © 2018 Nam Nguyen <namn@berkeley.edu>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system glib-or-gtk)
+  #:use-module (guix build-system meson)
   #:use-module (guix build-system python)
   #:use-module (gnu packages)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages admin)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages check)
   #:use-module (gnu packages image)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages flex)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages icu4c)
+  #:use-module (gnu packages man)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages m4)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages guile)
@@ -126,19 +133,74 @@ are saved as executable shell scripts which can be loaded without using this
 program.")
     (license license:gpl3+)))
 
+(define-public autorandr
+  ;; Use latest commit since 1.7 lacks many new features such as the
+  ;; autorandr_launcher.
+  (let ((commit "b484c0ea9c9a4838278bbd661a7cc384333c1df8"))
+    (package
+      (name "autorandr")
+      (version (git-version "1.7" "1" commit))
+      (home-page "https://github.com/phillipberndt/autorandr")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url home-page)
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0da17kzsisjv3s993j5idkk1n2d2cvjdn7pngs2b0ic1r2h5z02h"))))
+      (build-system python-build-system)
+      (native-inputs
+       `(("man-db" ,man-db)))
+      (inputs
+       `(("xrandr" ,xrandr)
+         ("libxcb" ,libxcb)))
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-before 'build 'configure
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "autorandr.py"
+                 (("popen\\(\"xrandr") (string-append "popen(\""
+                                                      (assoc-ref inputs "xrandr")
+                                                      "/bin/xrandr"))
+                 (("\\[\"xrandr") (string-append "[\""
+                                                 (assoc-ref inputs "xrandr")
+                                                 "/bin/xrandr")))
+               #t))
+           (add-after 'install 'install-contrib
+             (lambda* (#:key outputs #:allow-other-keys)
+               (invoke "make"
+                       (string-append "DESTDIR=" (assoc-ref outputs "out"))
+                       "PREFIX="
+                       "BASH_COMPLETIONS_DIR=etc/bash_completiond.d"
+                       "install_manpage"
+                       "install_bash_completion"
+                       "install_launcher"))))))
+      (synopsis "Auto-detect connected displays and load appropiate setup")
+      (description "Autorandr wraps around xrandr to help with X11
+multi-screen configuration management.  It allows the user to create profiles
+for various multi-screen setups.  Autorandr automatically detects the profiles
+that can be activated based on the connected hardware.  Hook scripts can be
+used to further tweak the behaviour of the different profiles.")
+      (license license:gpl3+))))
+
 (define-public xclip
   (package
     (name "xclip")
     (version "0.13")
     (source
-      (origin
-        (method url-fetch)
-        (uri (string-append "https://github.com/astrand/xclip"
-                            "/archive/" version ".tar.gz"))
-        (file-name (string-append name "-" version ".tar.gz"))
-        (sha256
-          (base32
-           "0n7pczk9vv30zf8qfln8ba3hnif9yfdxg0m84djac469wc28hnya"))))
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/astrand/xclip.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0q0hmvcjlv8arhh1pzhja2wglyj6n7z209jnpnzd281kqqv4czcs"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f))                              ;there is no test suite
@@ -157,14 +219,14 @@ avoiding password prompts when X11 forwarding has already been setup.")
 (define-public libxkbcommon
   (package
     (name "libxkbcommon")
-    (version "0.8.2")
+    (version "0.8.4")
     (source (origin
              (method url-fetch)
-             (uri (string-append "https://xkbcommon.org/download/" name "-"
+             (uri (string-append "https://xkbcommon.org/download/libxkbcommon-"
                                  version ".tar.xz"))
              (sha256
               (base32
-               "136mdq11lrwg6rjmm44lmysxxgb9c35p4sq6k0cd129x82rw9f3s"))))
+               "12vc91ydhphd5sddz15560r41l7k0i7mq6nma8kkbzdp6bwwzpb0"))))
     (build-system gnu-build-system)
     (inputs
      `(("libx11" ,libx11)
@@ -243,7 +305,8 @@ X11 (yet).")
                (mkdir-p (string-append out "/lib"))
                (setenv "PREFIX" out)
                (setenv "LDFLAGS" (string-append "-Wl,-rpath=" out "/lib"))
-               (setenv "CC" "gcc")))))))
+               (setenv "CC" "gcc")
+               #t))))))
     (native-inputs `(("perl" ,perl))) ; for pod2man
     (inputs `(("libx11" ,libx11)
               ("libxext" ,libxext)
@@ -290,15 +353,15 @@ following the mouse.")
 (define-public pixman
   (package
     (name "pixman")
-    (version "0.34.0")
+    (version "0.36.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "http://cairographics.org/releases/pixman-"
+                    "https://www.cairographics.org/releases/pixman-"
                     version ".tar.gz"))
               (sha256
                (base32
-                "13m842m9ffac3m9r0b4lvwjhwzg3w4353djkjpf00s0wnm4v5di1"))
+                "1blzrx50ssdv0pn56hcv2v0zw0vrjwj1sx22pkgjls1p9n6rr88w"))
               (patches (search-patches "pixman-CVE-2016-5296.patch"))))
     (build-system gnu-build-system)
     (inputs
@@ -316,7 +379,7 @@ rasterisation.")
 (define-public libdrm
   (package
     (name "libdrm")
-    (version "2.4.93")
+    (version "2.4.97")
     (source
       (origin
         (method url-fetch)
@@ -326,7 +389,7 @@ rasterisation.")
                ".tar.bz2"))
         (sha256
          (base32
-          "0g6d9wsnb7lx8r1m4kq8js0wsc5jl20cz1csnlh6z9s8jpfd313f"))
+          "08yimlp6jir1rs5ajgdx74xa5qdzcqahpdzdk0rmkmhh7vdcrl3p"))
         (patches (search-patches "libdrm-symbol-check.patch"))))
     (build-system gnu-build-system)
     (arguments
@@ -335,14 +398,12 @@ rasterisation.")
              ("armhf-linux"
               '("--enable-exynos-experimental-api"
                 "--enable-omap-experimental-api"
-                ;; XXX: This fails a symbol check on a build machine:
-                ;; <https://hydra.gnu.org/build/2270314/nixlog/4/raw>
-                ;; TODO: Update the list of symbols.
-                ;;"--enable-etnaviv-experimental-api"
+                "--enable-etnaviv-experimental-api"
                 "--enable-tegra-experimental-api"
                 "--enable-freedreno-kgsl"))
              ("aarch64-linux"
               '("--enable-tegra-experimental-api"
+                "--enable-etnaviv-experimental-api"
                 "--enable-freedreno-kgsl"))
              (_ '())))))
     (inputs
@@ -449,40 +510,24 @@ move windows, switch between desktops, etc.).")
 (define-public scrot
   (package
     (name "scrot")
-    (version "0.8")
-    (source (origin
-              (method url-fetch)
-              (uri (list (string-append
-                           "http://linuxbrit.co.uk/downloads/scrot-"
-                           version ".tar.gz")
-                         (string-append
-                           "https://fossies.org/linux/privat/old/scrot-"
-                           version ".tar.gz")))
-              (sha256
-               (base32
-                "1wll744rhb49lvr2zs6m93rdmiq59zm344jzqvijrdn24ksiqgb1"))))
+    (version "0.9")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/resurrecting-open-source-projects/scrot.git")
+         (commit version)))
+       (sha256
+        (base32 "1dg0pnmk09p7zlbyxv7d40vf54amrv73y976ds5p7096x6lmlndy"))))
     (build-system gnu-build-system)
-    (arguments
-     ;; By default, man and doc are put in PREFIX/{man,doc} instead of
-     ;; PREFIX/share/{man,doc}.
-     '(#:configure-flags
-       (list (string-append "--mandir="
-                            (assoc-ref %outputs "out")
-                            "/share/man"))
-       #:phases
-       (modify-phases %standard-phases
-         (replace 'install
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (doc (string-append out "/share/doc/scrot")))
-               (mkdir-p doc)
-               (zero?
-                (system* "make" "install"
-                         (string-append "docsdir=" doc)))))))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)))
     (inputs
-     `(("libx11" ,libx11)
-       ("giblib" ,giblib)))
-    (home-page "http://linuxbrit.co.uk/software/")
+     `(("giblib" ,giblib)
+       ("libx11" ,libx11)))
+    (home-page "https://github.com/resurrecting-open-source-projects/scrot")
     (synopsis "Command-line screen capture utility for X Window System")
     (description
      "Scrot allows to save a screenshot of a full screen, a window or a part
@@ -497,14 +542,14 @@ of the screen selected by mouse.")
     (name "slop")
     (version "7.4")
     (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/naelstrof/slop/archive/v"
-                    version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/naelstrof/slop.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "1kpdrikgpjb4fpxalb6pjcih5njv1w9cnrjj5612ywdv1q5mjs48"))))
+                "0fgd8a2dqkg64all0f96sca92sdss9r3pzmv5kck46b99z2325z6"))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f)) ; no "check" target
@@ -530,14 +575,14 @@ selection's dimensions to stdout.")
     (name "maim")
     (version "5.5.2")
     (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/naelstrof/maim/archive/v"
-                    version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/naelstrof/maim.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "14zdhsx1cndg5m8wbv1rqmza7wgknwfj5h0knzxg3p2jkjw66i95"))))
+                "14mfxdm39kc5jk8wysrzx05ag2g4sk9l24i8m5pzqn8j611150v3"))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f))            ; no "check" target
@@ -585,10 +630,9 @@ include cursor in the resulting image.")
                     (man1 (string-append out "/share/man/man1")))
                (mkdir-p bin)
                (mkdir-p man1)
-               (zero?
-                 (system* "make" "install" "install.man"
-                          (string-append "BINDIR=" bin)
-                          (string-append "MANDIR=" man1)))))))))
+               (invoke "make" "install" "install.man"
+                       (string-append "BINDIR=" bin)
+                       (string-append "MANDIR=" man1))))))))
     (inputs `(("libx11" ,libx11)))
     (home-page "http://ftp.x.org/contrib/utilities/")
     (synopsis "Hide idle mouse cursor")
@@ -637,6 +681,36 @@ to find buttons, etc, on the screen to click on.")
     (home-page "https://www.hoopajoo.net/projects/xautomation.html")
     (license license:gpl2+)))
 
+(define-public xbanish
+  (package
+    (name "xbanish")
+    (version "1.6")
+    (home-page "https://github.com/jcs/xbanish")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference (url home-page)
+                                  (commit (string-append "v" version))))
+              (sha256
+               (base32
+                "0vp8ja68hpmqkl61zyjar3czhmny1hbm74m8f393incfz1ymr3i8"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ;no tests
+       #:make-flags (list "CC=gcc"
+                          (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:phases (modify-phases %standard-phases
+                  (delete 'configure))))
+    (inputs
+     `(("libx11" ,libx11)
+       ("libxfixes" ,libxfixes)
+       ("libxi" ,libxi)
+       ("libxt" ,libxt)))
+    (synopsis "Banish the mouse cursor")
+    (description
+     "@command{xbanish} hides the mouse cursor when you start typing, and
+shows it again when the mouse cursor moves or a mouse button is pressed.")
+    (license license:bsd-3)))
+
 (define-public xlockmore
   (package
     (name "xlockmore")
@@ -850,15 +924,15 @@ within a single process.")
   (package
     (name "xcape")
     (version "1.2")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (string-append "https://github.com/alols/" name
-                            "/archive/v" version ".tar.gz"))
-        (file-name (string-append name "-" version ".tar.gz"))
-        (sha256
-          (base32
-            "0898zc3vwxia00h9kfknpf7jygxgwggrx8v5mxc31w4lzn2dhzm2"))))
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/alols/xcape.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "09a05cxgrip6nqy1qmwblamp2bhknqnqmxn7i2a1rgxa0nba95dm"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; no check target
@@ -883,15 +957,15 @@ Escape key when Left Control is pressed and released on its own.")
 (define-public libwacom
   (package
     (name "libwacom")
-    (version "0.31")
+    (version "0.32")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "https://github.com/linuxwacom/libwacom/releases/download/"
-                    name "-" version "/" name "-" version ".tar.bz2"))
+                    "libwacom-" version "/libwacom-" version ".tar.bz2"))
               (sha256
                (base32
-                "00xzkxhm0s9bvhbf27hscjbh17wa8lcgvxjqbmzm527f9cjqrm8q"))))
+                "102kz0q7i0bjsnl6yy83vcj2rpir12rs2d4xr0wvhw84rs5sp7bb"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -987,7 +1061,7 @@ color temperature should be set to match the lamps in your room.")
 (define-public xscreensaver
   (package
     (name "xscreensaver")
-    (version "5.40")
+    (version "5.42")
     (source
      (origin
        (method url-fetch)
@@ -996,7 +1070,7 @@ color temperature should be set to match the lamps in your room.")
                        version ".tar.gz"))
        (sha256
         (base32
-         "1q2sr7h6ps6d3hk8895g12rrcqiihjl7py1ly077ikv4866r181h"))))
+         "1qfbsnj7201d03vf0b2lzxmlcq4kvkvzp48r5gcgsjr17c1sl7a4"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f  ; no check target
@@ -1006,10 +1080,13 @@ color temperature should be set to match the lamps in your room.")
            (lambda _
              (substitute* '("driver/Makefile.in" "po/Makefile.in.in")
                (("@GTK_DATADIR@") "@datadir@")
-               (("@PO_DATADIR@") "@datadir@")))))
+               (("@PO_DATADIR@") "@datadir@"))
+             #t)))
        #:configure-flags '("--with-pam" "--with-proc-interrupts"
                            "--without-readdisplay")
-       #:make-flags (list (string-append "AD_DIR="
+       ;; FIXME: Remove CFLAGS once our default compiler is GCC6 or later.
+       #:make-flags (list "CFLAGS=-std=c99"
+                          (string-append "AD_DIR="
                                          (assoc-ref %outputs "out")
                                          "/usr/lib/X11/app-defaults"))))
     (native-inputs
@@ -1101,7 +1178,7 @@ connectivity of the X server running on a particular @code{DISPLAY}.")
 (define-public rofi
   (package
     (name "rofi")
-    (version "1.5.1")
+    (version "1.5.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/DaveDavenport/rofi/"
@@ -1109,7 +1186,7 @@ connectivity of the X server running on a particular @code{DISPLAY}.")
                                   version "/rofi-" version ".tar.xz"))
               (sha256
                (base32
-                "0wx118banbwfqdwc5y44fkp3hxg97gj3vma16528slhy408hkg7i"))))
+                "17faa0rj8vqidrijwx9jrq0c29003n8v3izvc66yssfljgb8kcpj"))))
     (build-system gnu-build-system)
     (inputs
      `(("pango" ,pango)
@@ -1166,7 +1243,8 @@ by name.")
          (add-after 'unpack 'fix-installation-prefix
            (lambda _
              (substitute* "CMakeLists.txt"
-               (("/etc") "${CMAKE_INSTALL_PREFIX}/etc")))))))
+               (("/etc") "${CMAKE_INSTALL_PREFIX}/etc"))
+             #t)))))
     (inputs
      `(("gtk+" ,gtk+-2)
        ("imlib2" ,imlib2)
@@ -1340,15 +1418,11 @@ invert colors on a specific display/screen.")
     (build-system gnu-build-system)
     (arguments '(#:configure-flags `("--enable-sound"
                                      "--enable-wave"
-                                     "--enable-alsa")
-                 #:phases (modify-phases %standard-phases
-                           (add-before 'configure 'autoreconf
-                             (lambda _
-                               (zero? (system* "autoreconf" "-vfi")))))))
-   (native-inputs `(("autoconf" ,autoconf)
-                    ("automake" ,automake)
-                    ("pkg-config" ,pkg-config)
-                    ("perl" ,perl)))
+                                     "--enable-alsa")))
+    (native-inputs `(("autoconf" ,autoconf)
+                     ("automake" ,automake)
+                     ("pkg-config" ,pkg-config)
+                     ("perl" ,perl)))
     (inputs `(("libx11" ,libx11)
               ("alsa-lib" ,alsa-lib)))
     (synopsis "Daemon that performs an action every time the X11 bell is rung")
@@ -1403,7 +1477,7 @@ or playing a PCM encoded WAVE file.")
                #t)))
          (add-after 'install 'install/man
            (lambda _
-             (zero? (system* "make" "install.man")))))))
+             (invoke "make" "install.man"))))))
     (home-page "http://ibiblio.org/pub/Linux/X11/screensavers/")
     (synopsis "Program launcher for idle X sessions")
     (description "Xautolock monitors input devices under the X Window
@@ -1499,3 +1573,140 @@ before the system goes to sleep.")
      "Pyperclip is a clipboard module for Python, handling copy/pasting from
 the X11 clipboard")
     (license license:bsd-3)))
+
+(define-public numlockx
+  (package
+    (name "numlockx")
+    (version "1.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    ;; It seems that upstream is gone.
+                    (url "https://github.com/rg3/numlockx")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1w49fayhwzn5rx0z1q2lrvm7z8jrd34lgb89p853a024bixc3cf2"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("xorg-server" ,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
+the numlock key in X11.  It can be called from the user's initialization files
+to automatically turn it on on login.")
+    (license license:expat)))
+
+(define-public xrandr-invert-colors
+  (package
+    (name "xrandr-invert-colors")
+    (version "0.01")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/zoltanp/xrandr-invert-colors.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1br3x9vr6xm4ika06n8cfxx1b3wdchdqvyzjl4y1chmivrml8x9h"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags (list "CC=gcc")
+       #:tests? #f ; there are none
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (replace 'install
+           (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))))))
+    (inputs
+     `(("libxrandr" ,libxrandr)))
+    (home-page "https://github.com/zoltanp/xrandr-invert-colors")
+    (synopsis "Invert display colors")
+    (description "This package provides a small utility for inverting the
+colors on all monitors attached to an XRandR-capable X11 display server.")
+    (license license:gpl3+)))
+
+(define-public sct
+  (package
+    (name "sct")
+    (version "0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://www.umaxx.net/dl/sct-"
+                       version ".tar.gz"))
+       (sha256
+        (base32
+         "0r57z9ki8pvxhawfxys0v5h85z2x211sqxki0xvk1bga88ryldlv"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:make-flags (list "CC=gcc")
+       #:tests? #f ; No tests exist.
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-after 'unpack 'fix-sctd-paths
+           (lambda* (#:key outputs inputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (coreutils (assoc-ref inputs "coreutils"))
+                   (inetutils (assoc-ref inputs "inetutils"))
+                   (sed (assoc-ref inputs "sed")))
+               (substitute* "sctd.sh"
+                 (("\\$\\(which sct\\)") (string-append out "/bin/sct"))
+                 (("date") (string-append coreutils "/bin/date"))
+                 (("printf") (string-append coreutils "/bin/printf"))
+                 (("sleep") (string-append coreutils "/bin/sleep"))
+                 (("logger") (string-append inetutils "/bin/logger"))
+                 (("sed") (string-append sed "/bin/sed"))))))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (install-file "sct" (string-append out "/bin"))
+               (install-file "sctd.sh" (string-append out "/bin"))
+               (install-file "sct.1" (string-append out "/man/man1"))
+               (install-file "sctd.1" (string-append out "/man/man1"))
+               (rename-file (string-append out "/bin/sctd.sh")
+                            (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"
+    (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
+temperature of the screen.")
+    (license (license:non-copyleft "file://sct.c")))) ; "OpenBSD" license
+
+(define-public wl-clipboard
+  (package
+    (name "wl-clipboard")
+    (version "1.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/bugaevc/wl-clipboard.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "03h6ajcc30w6928bkd4h6xfj4iy2359ww6hdlybq8mr1zwmb2h0q"))))
+    (build-system meson-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("wayland" ,wayland)
+       ("wayland-protocols" ,wayland-protocols)))
+    (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+)))