gnu: r-maldiquant: Move to (gnu packages cran).
[jackhill/guix/guix.git] / gnu / packages / wm.scm
index 2e97535..15fbf43 100644 (file)
@@ -35,6 +35,7 @@
 ;;; 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>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -77,6 +78,7 @@
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages fribidi)
   #:use-module (gnu packages gawk)
+  #:use-module (gnu packages gcc)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gperf)
 (define-public bspwm
   (package
     (name "bspwm")
-    (version "0.9.9")
+    (version "0.9.10")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/baskerville/bspwm.git")
+             (url "https://github.com/baskerville/bspwm")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1i7crmljk1vra1r6alxvj6lqqailjjcv0llyg7a0gm23rbv4a42g"))))
+        (base32 "0qlv7b4c2mmjfd65y100d11x8iqyg5f6lfiws3cgmpjidhdygnxc"))))
     (build-system gnu-build-system)
     (inputs
      `(("libxcb" ,libxcb)
@@ -151,15 +153,14 @@ the leaves of a full binary tree.")
 (define-public herbstluftwm
   (package
     (name "herbstluftwm")
-    (version "0.8.2")
+    (version "0.8.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://herbstluftwm.org/tarballs/herbstluftwm-"
                            version ".tar.gz"))
        (sha256
-        (base32
-         "0wbl1s1gwdc61ll6qmkwb56swjxv99by1dhi080bdqn0w8p75804"))
+        (base32 "1qmb4pjf2f6g0dvcg11cw9njwmxblhqzd70ai8qnlgqw1iz3nkm1"))
        (file-name (string-append "herbstluftwm-" version ".tar.gz"))))
     (build-system cmake-build-system)
     (inputs
@@ -271,14 +272,14 @@ commands would.")
 (define-public i3-wm
   (package
     (name "i3-wm")
-    (version "4.18.1")
+    (version "4.18.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://i3wm.org/downloads/i3-"
                                   version ".tar.bz2"))
               (sha256
                (base32
-                "0z709cianlzw0x0qwq4361347354xd9ckj1v7vjvhb1zh3x91gws"))))
+                "030jym6b8b07yf4y6pb806hg8k77zsprv569gy0r72rh5zb1g1mj"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -341,7 +342,7 @@ many programming languages.")
 (define-public i3-gaps
   (package (inherit i3-wm)
            (name "i3-gaps")
-           (version "4.18")
+           (version "4.18.2")
            (source (origin
                      (method url-fetch)
                      (uri (string-append
@@ -349,7 +350,7 @@ many programming languages.")
                            version "/i3-" version ".tar.bz2"))
                      (sha256
                       (base32
-                       "0id4qm9a7kc5yawff85blmph4zbizhb6ka88aqm10wrpfsknri3j"))))
+                       "0lz08wf4b0yprzqsmymn94kiyg885dcwmh0p64v2rnf52s165g2g"))))
            (home-page "https://github.com/Airblader/i3")
            (synopsis "Tiling window manager with gaps")
            (description "i3-gaps is a fork of i3wm, a tiling window manager
@@ -404,7 +405,7 @@ Despite the name it should work with any X11 window manager.")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://github.com/vivien/i3blocks.git")
+                    (url "https://github.com/vivien/i3blocks")
                     (commit version)))
               (sha256
                (base32
@@ -459,7 +460,7 @@ You can then subscribe to events or send messages and receive their replies.")
        ;; for years.
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/ziberna/i3-py.git")
+             (url "https://github.com/ziberna/i3-py")
              (commit "27f88a616e9ecc340e7d041d3d00782f8a1964c1")))
        (sha256
         (base32
@@ -504,7 +505,7 @@ subscribe to events.")
          ;; instead of the release.
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/proxypoke/quickswitch-for-i3.git")
+               (url "https://github.com/proxypoke/quickswitch-for-i3")
                (commit commit)))
          (sha256
           (base32
@@ -542,7 +543,7 @@ prompt.")
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/PandorasFox/i3lock-color.git")
+             (url "https://github.com/PandorasFox/i3lock-color")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
@@ -585,7 +586,7 @@ Features include:
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/meskarune/i3lock-fancy.git")
+             (url "https://github.com/meskarune/i3lock-fancy")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
@@ -654,7 +655,8 @@ desktop environment.")
                                   "xmonad-" version ".tar.gz"))
               (sha256
                (base32
-                "0a7rh21k9y6g8fwkggxdxjns2grvvsd5hi2ls4klmqz5xvk4hyaa"))))
+                "0a7rh21k9y6g8fwkggxdxjns2grvvsd5hi2ls4klmqz5xvk4hyaa"))
+              (patches (search-patches "xmonad-dynamic-linking.patch"))))
     (build-system haskell-build-system)
     (inputs
      `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
@@ -695,14 +697,14 @@ tiled on several screens.")
 (define-public xmobar
   (package
     (name "xmobar")
-    (version "0.33")
+    (version "0.34")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://hackage/package/xmobar/"
                                   "xmobar-" version ".tar.gz"))
               (sha256
                (base32
-                "1hr3qqykc5givcpcwrr9f2y920jmiinmxm5mcy6qgpgymgwqb618"))))
+                "0x09xbz7y9ay0046j1xpr9jjk5jqivqi06vm3q6mhcrgc4y922rx"))))
     (build-system haskell-build-system)
     (native-inputs
      `(("ghc-hspec" ,ghc-hspec)
@@ -743,6 +745,29 @@ is also usable with any other window manager.  While xmobar is written in
 Haskell, no knowledge of the language is required to install and use it.")
     (license license:bsd-3)))
 
+(define-public yeganesh
+  (package
+    (name "yeganesh")
+    (version "2.4")
+    (source
+     (origin
+
+       (method url-fetch)
+       (uri (string-append "http://dmwit.com/yeganesh/yeganesh-" version ".tar.gz"))
+       (sha256
+        (base32 "04djfyjab3c5y9z9x8zd0xcx0jyy35zq7cl9ddr4ppf6k5ky6iky"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-strict" ,ghc-strict)
+       ("ghc-xdg-basedir" ,ghc-xdg-basedir)))
+    (home-page "http://dmwit.com/yeganesh/")
+    (synopsis "Small wrapper around dmenu")
+    (description "@code{yeganesh} is a small wrapper around demnu.  Like
+dmenu, it accepts input on stdin and writes the chosen result on stdout.
+Unlike dmenu, it mangles the input before it presents its choices.  In
+particular, it displays commonly-chosen options before uncommon ones.")
+    (license license:bsd-3)))
+
 (define-public ghc-xmonad-contrib
   (package
     (name "ghc-xmonad-contrib")
@@ -1013,14 +1038,14 @@ dynamic and extensible using the Lua programming language.")
 (define-public menumaker
   (package
     (name "menumaker")
-    (version "0.99.11")
+    (version "0.99.12")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://sourceforge/menumaker/"
                            "menumaker-" version ".tar.gz"))
        (sha256
-        (base32 "0dprndnhwm7b803zkp4pisiq06ic9iv8vr42in5is47jmvdim0wx"))))
+        (base32 "034v5204bsgkzzk6zfa5ia63q95gln47f7hwf96yvad5hrhmd8z3"))))
     (build-system gnu-build-system)
     (inputs
      `(("python" ,python)))
@@ -1110,7 +1135,7 @@ Keybinder works with GTK-based applications using the X Window System.")
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/conformal/spectrwm.git")
+             (url "https://github.com/conformal/spectrwm")
              (commit
               (string-append "SPECTRWM_"
                              (string-join (string-split version #\.) "_")))))
@@ -1318,7 +1343,7 @@ functionality to display information about the most commonly used services.")
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/swaywm/wlroots.git")
+             (url "https://github.com/swaywm/wlroots")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
@@ -1363,7 +1388,7 @@ modules for building a Wayland compositor.")
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/swaywm/sway.git")
+             (url "https://github.com/swaywm/sway")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
@@ -1415,7 +1440,7 @@ modules for building a Wayland compositor.")
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/swaywm/swayidle.git")
+             (url "https://github.com/swaywm/swayidle")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
@@ -1441,7 +1466,7 @@ modules for building a Wayland compositor.")
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/swaywm/swaylock.git")
+             (url "https://github.com/swaywm/swaylock")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
@@ -1469,7 +1494,7 @@ modules for building a Wayland compositor.")
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/swaywm/swaybg.git")
+             (url "https://github.com/swaywm/swaybg")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
@@ -1489,20 +1514,17 @@ modules for building a Wayland compositor.")
 (define-public waybar
   (package
     (name "waybar")
-    (version "0.9.1")
+    (version "0.9.3")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/Alexays/Waybar.git")
+             (url "https://github.com/Alexays/Waybar")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0drlv8im5phz39jxp3gxkc40b6f85bb3piff2v3hmnfzh7ib915s"))))
+        (base32 "0ks719khhg2zwpyiwa2079i6962qcxpapm28hmr4ckpsp2n659ck"))))
     (build-system meson-build-system)
-    (arguments
-     `(#:configure-flags
-       (list (string-append "-Dout=" (assoc-ref %outputs "out")))))
     (inputs `(("date" ,date)
               ("fmt" ,fmt)
               ("gtk-layer-shell" ,gtk-layer-shell)
@@ -1515,9 +1537,12 @@ modules for building a Wayland compositor.")
               ("pulseaudio" ,pulseaudio)
               ("spdlog" ,spdlog)
               ("wayland" ,wayland)))
-    (native-inputs `(("glib:bin" ,glib "bin")
-                     ("pkg-config" ,pkg-config)
-                     ("wayland-protocols" ,wayland-protocols)))
+    (native-inputs
+     `(("gcc" ,gcc-8)                   ; for #include <filesystem>
+       ("glib:bin" ,glib "bin")
+       ("pkg-config" ,pkg-config)
+       ("scdoc" ,scdoc)
+       ("wayland-protocols" ,wayland-protocols)))
     (home-page "https://github.com/Alexays/Waybar")
     (synopsis "Wayland bar for Sway and Wlroots based compositors")
     (description "Waybar is a highly customisable Wayland bar for Sway and
@@ -1532,7 +1557,7 @@ Wlroots based compositors.")
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/emersion/mako.git")
+             (url "https://github.com/emersion/mako")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
@@ -1560,7 +1585,7 @@ compositors that support the layer-shell protocol.")
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/stumpwm/stumpwm.git")
+             (url "https://github.com/stumpwm/stumpwm")
              (commit version)))
        (file-name (git-file-name "stumpwm" version))
        (sha256
@@ -1660,166 +1685,202 @@ productive, customizable lisp based systems.")
            (delete 'cleanup)
            (delete 'create-symlinks)))))))
 
-(define-public stumpish
-  (let ((commit "920f8fc1488f7953f205e1dda4c2ecbbbda56d6")
+(define stumpwm-contrib
+  (let ((commit "920f8fc1488f7953f205e1dda4c2ecbbbda56d63")
         (revision "2"))
     (package
-      (name "stumpish")
+      (name "stumpwm-contrib")
       (version (git-version "0.0.1" revision commit)) ;no upstream release
       (source
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/stumpwm/stumpwm-contrib.git")
+               (url "https://github.com/stumpwm/stumpwm-contrib")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
           (base32 "0giac390bq95ag41xkxqp8jjrhfx1wpgglz7jg5rkm0wjhcwmyml"))))
+      (build-system asdf-build-system/sbcl)
       (inputs
-       `(("bash" ,bash)
-         ("rlwrap" ,rlwrap)))
-      (build-system trivial-build-system)
-      (arguments
-       '(#:modules ((guix build utils))
-         #:builder
-         (begin
-           (use-modules (guix build utils))
-           (copy-recursively (assoc-ref %build-inputs "source") ".")
-           (chdir "util/stumpish")
-           (substitute* "stumpish"
-             (("rlwrap") (string-append (assoc-ref %build-inputs "rlwrap")
-                                        "/bin/rlwrap"))
-             (("/bin/sh") (string-append (assoc-ref %build-inputs "bash")
-                                         "/bin/bash")))
-           (install-file "stumpish" (string-append %output "/bin")))))
+       `(("stumpwm" ,stumpwm "lib")))
       (home-page "https://github.com/stumpwm/stumpwm-contrib")
       (synopsis "StumpWM interactive shell")
       (description "This package provides a StumpWM interactive shell.")
       (license (list license:gpl2+ license:gpl3+ license:bsd-2)))))
 
+(define-public stumpish
+  (package
+    (inherit stumpwm-contrib)
+    (name "stumpish")
+    (inputs
+     `(("bash" ,bash)
+       ("rlwrap" ,rlwrap)))
+    (build-system trivial-build-system)
+    (arguments
+     '(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules (guix build utils))
+         (copy-recursively (assoc-ref %build-inputs "source") ".")
+         (chdir "util/stumpish")
+         (substitute* "stumpish"
+           (("rlwrap") (string-append (assoc-ref %build-inputs "rlwrap")
+                                      "/bin/rlwrap"))
+           (("/bin/sh") (string-append (assoc-ref %build-inputs "bash")
+                                       "/bin/bash")))
+         (install-file "stumpish" (string-append %output "/bin")))))
+    (home-page "https://github.com/stumpwm/stumpwm-contrib")
+    (synopsis "StumpWM interactive shell")
+    (description "This package provides a StumpWM interactive shell.")
+    (license (list license:gpl2+ license:gpl3+ license:bsd-2))))
+
 (define-public sbcl-stumpwm+slynk
   (deprecated-package "sbcl-stumpwm-with-slynk" stumpwm+slynk))
 
 (define-public sbcl-stumpwm-ttf-fonts
-  (let ((commit "920f8fc1488f7953f205e1dda4c2ecbbbda56d6")
-        (revision "2"))
-    (package
-      (name "sbcl-ttf-fonts")
-      (version (git-version "0.0.1" revision commit)) ;no upstream release
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/stumpwm/stumpwm-contrib.git")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "0giac390bq95ag41xkxqp8jjrhfx1wpgglz7jg5rkm0wjhcwmyml"))))
-      (inputs
-       `(("stumpwm" ,stumpwm "lib")
-         ("clx-truetype" ,sbcl-clx-truetype)))
-      (build-system asdf-build-system/sbcl)
-      (arguments
-       '(#:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'chdir
-             (lambda _
-               (chdir "util/ttf-fonts"))))))
-      (home-page "https://github.com/stumpwm/stumpwm-contrib")
-      (synopsis "Implementation of TTF font rendering for Lisp")
-      (description "This package provides a Lisp implementation of TTF font
+  (package
+    (inherit stumpwm-contrib)
+    (name "sbcl-stumpwm-ttf-fonts")
+    (inputs
+     `(("stumpwm" ,stumpwm "lib")
+       ("clx-truetype" ,sbcl-clx-truetype)))
+    (arguments
+     '(#:asd-system-name "ttf-fonts"
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'chdir
+           (lambda _ (chdir "util/ttf-fonts") #t)))))
+    (home-page "https://github.com/stumpwm/stumpwm-contrib")
+    (synopsis "Implementation of TTF font rendering for Lisp")
+    (description "This package provides a Lisp implementation of TTF font
 rendering.")
-      (license (list license:gpl2+ license:gpl3+ license:bsd-2)))))
+    (license (list license:gpl2+ license:gpl3+ license:bsd-2))))
 
 (define-public sbcl-stumpwm-pass
-  (let ((commit "920f8fc1488f7953f205e1dda4c2ecbbbda56d6")
-        (revision "2"))
-    (package
-      (name "sbcl-pass")
-      (version (git-version "0.0.1" revision commit)) ;no upstream release
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/stumpwm/stumpwm-contrib.git")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "0giac390bq95ag41xkxqp8jjrhfx1wpgglz7jg5rkm0wjhcwmyml"))))
-      (inputs
-       `(("stumpwm" ,stumpwm "lib")))
-      (build-system asdf-build-system/sbcl)
-      (arguments
-       '(#:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'chdir
-             (lambda _
-               (chdir "util/pass"))))))
-      (home-page "https://github.com/stumpwm/stumpwm-contrib")
-      (synopsis "Integrate @code{pass} wih StumpWM")
-      (description "This package provides an interface which integrates
+  (package
+    (inherit stumpwm-contrib)
+    (name "sbcl-stumpwm-pass")
+    (arguments
+     '(#:asd-system-name "pass"
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'chdir
+           (lambda _ (chdir "util/pass") #t)))))
+    (home-page "https://github.com/stumpwm/stumpwm-contrib")
+    (synopsis "Integrate @code{pass} with StumpWM")
+    (description "This package provides an interface which integrates
 password-store into StumpWM.")
-      (license (list license:gpl2+ license:gpl3+ license:bsd-2)))))
+    (license (list license:gpl2+ license:gpl3+ license:bsd-2))))
 
 (define-public sbcl-stumpwm-globalwindows
-    (let ((commit "920f8fc1488f7953f205e1dda4c2ecbbbda56d6")
-        (revision "2"))
-    (package
-      (name "sbcl-globalwindows")
-      (version (git-version "0.0.1" revision commit)) ;no upstream release
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/stumpwm/stumpwm-contrib.git")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "0giac390bq95ag41xkxqp8jjrhfx1wpgglz7jg5rkm0wjhcwmyml"))))
-      (inputs
-       `(("stumpwm" ,stumpwm "lib")))
-      (build-system asdf-build-system/sbcl)
-      (arguments
-       '(#:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'chdir
-             (lambda _
-               (chdir "util/globalwindows"))))))
-      (home-page "https://github.com/stumpwm/stumpwm-contrib")
-      (synopsis "Manipulate all windows in the current X session")
-      (description "This package provides a StumpWM module to manipulate all
+  (package
+    (inherit stumpwm-contrib)
+    (name "sbcl-stumpwm-globalwindows")
+    (arguments
+     '(#:asd-system-name "globalwindows"
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'chdir
+           (lambda _ (chdir "util/globalwindows") #t)))))
+    (home-page "https://github.com/stumpwm/stumpwm-contrib")
+    (synopsis "Manipulate all windows in the current X session")
+    (description "This package provides a StumpWM module to manipulate all
 windows in the current X session.")
-      (license (list license:gpl2+ license:gpl3+ license:bsd-2)))))
+    (license (list license:gpl2+ license:gpl3+ license:bsd-2))))
 
 (define-public sbcl-stumpwm-swm-gaps
-  (let ((commit "920f8fc1488f7953f205e1dda4c2ecbbbda56d6")
-        (revision "2"))
-    (package
-      (name "sbcl-swm-gaps")
-      (version (git-version "0.0.1" revision commit)) ;no upstream release
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/stumpwm/stumpwm-contrib.git")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "0giac390bq95ag41xkxqp8jjrhfx1wpgglz7jg5rkm0wjhcwmyml"))))
-      (inputs
-       `(("stumpwm" ,stumpwm "lib")))
-      (build-system asdf-build-system/sbcl)
-      (arguments
-       '(#:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'chdir
-             (lambda _
-               (chdir "util/swm-gaps"))))))
-      (home-page "https://github.com/stumpwm/stumpwm-contrib")
-      (synopsis "Gaps between windows for StumpWM")
-      (description "This package provides a StumpWM module which adds gaps
+  (package
+    (inherit stumpwm-contrib)
+    (name "sbcl-stumpwm-swm-gaps")
+    (arguments
+     '(#:asd-system-name "swm-gaps"
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'chdir
+           (lambda _ (chdir "util/swm-gaps") #t)))))
+    (home-page "https://github.com/stumpwm/stumpwm-contrib")
+    (synopsis "Gaps between windows for StumpWM")
+    (description "This package provides a StumpWM module which adds gaps
 between windows.")
-      (license (list license:gpl2+ license:gpl3+ license:bsd-2)))))
+    (license (list license:gpl2+ license:gpl3+ license:bsd-2))))
+
+(define-public sbcl-stumpwm-net
+  (package
+    (inherit stumpwm-contrib)
+    (name "sbcl-stumpwm-net")
+    (arguments
+     '(#:asd-system-name "net"
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'chdir (lambda _ (chdir "modeline/net") #t)))))
+    (home-page
+     "https://github.com/stumpwm/stumpwm-contrib/tree/master/modeline/net")
+    (synopsis "Modeline support for network connectivity")
+    (description "Modeline support for network connectivity.")
+    (supported-systems
+     (filter (lambda (a) (string-contains a "linux")) %supported-systems))
+    (license license:gpl3+)))
+
+(define-public sbcl-stumpwm-wifi
+  (package
+    (inherit stumpwm-contrib)
+    (name "sbcl-stumpwm-wifi")
+    (arguments
+     '(#:asd-system-name "wifi"
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'chdir (lambda _ (chdir "modeline/wifi") #t)))))
+    (home-page
+     "https://github.com/stumpwm/stumpwm-contrib/tree/master/modeline/wifi")
+    (synopsis "Modeline support for wifi connectivity")
+    (description "Modeline support for wifi connectivity.")
+    (supported-systems
+     (filter (lambda (a) (string-contains a "linux")) %supported-systems))
+    (license license:gpl3+)))
+
+(define-public sbcl-stumpwm-stumptray
+  (package
+    (inherit stumpwm-contrib)
+    (name "sbcl-stumpwm-stumptray")
+    (arguments
+     '(#:asd-system-name "stumptray"
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'chdir (lambda _ (chdir "modeline/stumptray") #t)))))
+    (inputs
+     `(("stumpwm" ,stumpwm "lib")
+       ("xembed" ,sbcl-clx-xembed)
+       ("alexandria" ,sbcl-alexandria)))
+    (home-page
+     "https://github.com/stumpwm/stumpwm-contrib/tree/master/modeline/stumptray")
+    (synopsis "Modeline support for stumptray connectivity")
+    (description "Modeline support for stumptray connectivity.")
+    (supported-systems
+     (filter (lambda (a) (string-contains a "linux")) %supported-systems))
+    (license license:gpl3+)))
+
+(define-public sbcl-stumpwm-kbd-layouts
+  (package
+    (inherit stumpwm-contrib)
+    (name "sbcl-stumpwm-kbd-layouts")
+    (arguments
+     '(#:asd-system-name "kbd-layouts"
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'chdir (lambda _ (chdir "util/kbd-layouts") #t)))))
+    (home-page
+     "https://github.com/stumpwm/stumpwm-contrib/tree/master/util/kbd-layouts")
+    (synopsis "Keyboard layout switcher for StumpWM")
+    (description "Keyboard layout switcher for StumpWM")
+    (license license:gpl3+)))
 
 (define-public lemonbar
   (let ((commit "35183ab81d2128dbb7b6d8e119cc57846bcefdb4")
@@ -1838,9 +1899,10 @@ between windows.")
                   "1wwqbph392iwz8skaqxb0xpklb1l6yganqz80g4x1fhrnz7idmlh"))))
       (build-system gnu-build-system)
       (arguments
-       '(#:tests? #f ; no test suite
-         #:make-flags (list "CC=gcc"
-                            (string-append "PREFIX=" %output))
+       `(#:tests? #f                    ; no test suite
+         #:make-flags
+         (list ,(string-append "CC=" (cc-for-target))
+               (string-append "PREFIX=" %output))
          #:phases
          (modify-phases %standard-phases
            (delete 'configure))))
@@ -1856,3 +1918,124 @@ bar entirely based on XCB.  Provides full UTF-8 support, basic
 formatting, RandR and Xinerama support and EWMH compliance without
 wasting your precious memory.")
       (license license:x11))))
+
+(define-public xclickroot
+  (let ((commit "309fd17174dba4149b5ea66654c6fd02cfcf7c9a")
+        (revision "1"))
+    (package
+      (name "xclickroot")
+      (version (git-version "0.0.1" revision commit)) ;no upstream release
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/phillbush/xclickroot")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0fjqkg3wnyks0my1vrzhxfjicsfy8xwnijaazmpz6mhilcqkpvnd"))))
+      (build-system gnu-build-system)
+      (inputs
+       `(("libx11" ,libx11)))
+      (arguments
+       `(#:tests? #f ;no test suite
+         #:make-flags
+         (list ,(string-append "CC=" (cc-for-target))
+               (string-append "PREFIX=" %output))
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'configure))))
+      (home-page "https://github.com/phillbush/xclickroot")
+      (synopsis "Run a command when a mouse button is pressed on the root window")
+      (description "@code{xclickroot} runs a command every time a given mouse
+button is pressed on the root window.")
+      (license license:public-domain))))
+
+(define-public xmenu
+  (package
+    (name "xmenu")
+    (version "3.4")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/phillbush/xmenu")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1sw9l87fh03jp03a2v7rhgpyx29yg2x9blzfzp40jwad2whs7m7n"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("libx11" ,libx11)
+       ("libxft" ,libxft)
+       ("freetype" ,freetype)
+       ("imlib2" ,imlib2)))
+    (arguments
+     `(#:tests? #f ;no test suite
+       #:make-flags
+       (list (string-append "CC=" ,(cc-for-target))
+             (string-append "PREFIX=" %output)
+             (string-append "CFLAGS="
+                            "-I" (assoc-ref %build-inputs "freetype")
+                            "/include/freetype2"))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))
+    (home-page "https://github.com/phillbush/xmenu")
+    (synopsis "Menu utility for X")
+    (description "@code{xmenu} receives a menu specification in stdin, shows
+a menu for the user to select one of the options, and outputs the option
+selected to stdout.  It can be controlled both via mouse and via keyboard.")
+    (license license:public-domain)))
+
+(define-public idesk
+  (package
+    (name "idesk")
+    (version "0.7.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://sourceforge/idesk/idesk/idesk-" version
+             "/idesk-" version ".tar.bz2"))
+       (sha256
+        (base32
+         "1lxk2yvgysxwl514zc82lwr1dwc8cd62slgr5lzdhjbdrxfymdyl"))
+       (modules '((guix build utils)
+                  (ice-9 format)))
+       (snippet
+        '(let* ((file     "src/DesktopConfig.cpp")
+                (template (string-append file ".XXXXXX"))
+                (out      (mkstemp! template))
+                (st       (stat file))
+                (mode     (stat:mode st)))
+           (call-with-ascii-input-file file
+             (lambda (p)
+               (format out "~{~a~%~}" '("#include <unistd.h>"
+                                        "#include <sys/stat.h>"
+                                        "#include <sys/types.h>"))
+               (dump-port p out)
+               (close out)
+               (chmod template mode)
+               (rename-file template file)
+               #t))))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("libx11" ,libx11)
+       ("libxft" ,libxft)
+       ("libxpm" ,libxpm)
+       ("libpng" ,libpng)
+       ("freetype" ,freetype)
+       ("imlib2" ,imlib2)
+       ("sed" ,sed)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (arguments
+     `(#:tests? #f)) ;no test suite
+    (home-page "https://sourceforge.net/projects/idesk/")
+    (synopsis "Add icons on X desktop and set background image for wallpaper")
+    (description "Idesk is program that draws desktop icons.  Each icon will
+execute a shell command on a configurable action.  The icons can be moved on
+the desktop by dragging them, and the icons will remember their positions on
+start-up.")
+    (license license:bsd-3)))