Merge branch 'master' into core-updates-frozen
[jackhill/guix/guix.git] / gnu / packages / wm.scm
index 4df1af2..1986fbb 100644 (file)
@@ -8,13 +8,13 @@
 ;;; Copyright © 2016, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Al McElrath <hello@yrns.org>
 ;;; Copyright © 2016 Carlo Zancanaro <carlo@zancanaro.id.au>
-;;; Copyright © 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016, 2017, 2018, 2019, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016, 2017, 2018, 2020 Nikita <nikita@n0.is>
 ;;; Copyright © 2016 doncatnip <gnopap@gmail.com>
 ;;; Copyright © 2016 Ivan Vilata i Balaguer <ivan@selidor.net>
 ;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
 ;;; Copyright © 2017, 2019, 2020 Marius Bakke <marius@gnu.org>
-;;; Copyright © 2017, 2020 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2017, 2020, 2021 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Pierre-Antoine Rouby <contact@parouby.fr>
 ;;; Copyright © 2018, 2019 Meiyo Peng <meiyo@riseup.net>
@@ -44,6 +44,8 @@
 ;;; Copyright © 2021 Zheng Junjie <873216071@qq.com>
 ;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
 ;;; Copyright © 2021 qblade <qblade@protonmail.com>
+;;; Copyright © 2021 lasnesne <lasnesne@lagunposprasihopre.org>
+;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -81,6 +83,7 @@
   #:use-module (gnu packages bison)
   #:use-module (gnu packages build-tools) ;for meson-0.55
   #:use-module (gnu packages calendar)
+  #:use-module (gnu packages datastructures)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages fontutils)
@@ -162,14 +165,14 @@ the leaves of a full binary tree.")
 (define-public herbstluftwm
   (package
     (name "herbstluftwm")
-    (version "0.9.2")
+    (version "0.9.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://herbstluftwm.org/tarballs/herbstluftwm-"
                            version ".tar.gz"))
        (sha256
-        (base32 "0avfhr68f6fjnafjdcyxcx7dkg38f2nadmhpj971qyqzfq2f6i38"))
+        (base32 "01f1bv9axjhw1l2gwhdwahljssj0h8q7a1bqwbpnwvln0ayv39qb"))
        (file-name (string-append "herbstluftwm-" version ".tar.gz"))))
     (build-system cmake-build-system)
     (inputs
@@ -333,7 +336,7 @@ commands would.")
      `(("which" ,which)
        ("perl" ,perl)
        ("pkg-config" ,pkg-config)
-       ("asciidoc-py3" ,asciidoc-py3)
+       ("asciidoc" ,asciidoc)
        ;; For building the documentation.
        ("libxml2" ,libxml2)
        ("docbook-xsl" ,docbook-xsl)))
@@ -382,14 +385,14 @@ from many programming languages.")
 (define-public i3lock
   (package
     (name "i3lock")
-    (version "2.11.1")
+    (version "2.13")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://i3wm.org/i3lock/i3lock-"
                                   version ".tar.bz2"))
               (sha256
                (base32
-                "015dn534m7cxjvqdncpvaq9p8b2r4w5hp1yanbdy2abmhbcc7a7j"))))
+                "02szjsaz7rqrdkd0r2nwgwa85c4hwfrcskxw7ryk695kmjcfhzv3"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -409,6 +412,43 @@ from many programming languages.")
 Despite the name it should work with any X11 window manager.")
     (license license:bsd-3)))
 
+(define-public i3lock-blur
+  (package
+    (name "i3lock-blur")
+    (version "2.10")
+    (source (origin
+              (method git-fetch)
+              (uri
+               (git-reference
+                (url "https://github.com/karulont/i3lock-blur")
+                (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1bd5nrlga5g1sz1f64gnc3dqy8yfrr4q1ss59krymbpxa1hhf55c"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("automake" ,automake)
+       ("autoconf" ,autoconf)))
+    (inputs
+     `(("cairo" ,cairo)
+       ("mesa" ,mesa)
+       ("libev" ,libev)
+       ("linux-pam" ,linux-pam)
+       ("libxcb" ,libxcb)
+       ("libxkbcommon" ,libxkbcommon)
+       ("xcb-util" ,xcb-util)
+       ("xcb-util-image" ,xcb-util-image)
+       ("xcb-util-xrm" ,xcb-util-xrm)))
+    (home-page "https://github.com/karulont/i3lock-blur")
+    (synopsis "Lightweight screen locker with transparent blurring background")
+    (description
+     "Simple X11 screen locker with transparent blurring background developed
+alongside the i3 project.  Despite the name it should work with any X11 window
+manager.")
+    (license license:expat)))
+
 (define-public i3blocks
   (package
     (name "i3blocks")
@@ -611,14 +651,10 @@ Features include:
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (icons (string-append out "/share/i3lock-fancy/icons/"))
-                    (wmctrl (string-append (assoc-ref inputs "wmctrl")
-                                           "/bin/wmctrl"))
-                    (mconvert (string-append (assoc-ref inputs "imagemagick")
-                                             "/bin/convert"))
-                    (mimport (string-append (assoc-ref inputs "imagemagick")
-                                            "/bin/import"))
-                    (awk (string-append (assoc-ref inputs "gawk")
-                                        "/bin/gawk")))
+                    (wmctrl (search-input-file inputs "/bin/wmctrl"))
+                    (mconvert (search-input-file inputs "/bin/convert"))
+                    (mimport (search-input-file inputs "/bin/import"))
+                    (awk (search-input-file inputs "/bin/gawk")))
 
                (substitute* "lock"
                  (("\\$\\(command -V wmctrl\\)") wmctrl)
@@ -643,6 +679,7 @@ Features include:
     (inputs
      `(("imagemagick" ,imagemagick)
        ("wmctrl" ,wmctrl)
+       ("i3lock" ,i3lock)
        ("gawk" ,gawk)))
     (home-page "https://github.com/meskarune/i3lock-fancy")
     (synopsis "Screen locker with screenshot function")
@@ -907,6 +944,39 @@ experience.")
     (home-page "http://fluxbox.org/")
     (license license:expat)))
 
+(define-public fnott
+  (package
+    (name "fnott")
+    (version "1.1.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://codeberg.org/dnkl/fnott")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1xaz13iry3fdjhqk9xzg29kbv7hqj8dzzqxr5mhrj8f2m013jdc3"))))
+    (build-system meson-build-system)
+    (arguments `(#:build-type "release"))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("wayland-protocols" ,wayland-protocols)
+       ("tllist" ,tllist)
+       ("gcc" ,gcc-10)     ;TODO: Remove when the default compiler is > GCC 7.
+       ("scdoc" ,scdoc)))
+    (inputs
+     `(("wlroots" ,wlroots)
+       ("wayland" ,wayland)
+       ("fcft" ,fcft)
+       ("dbus" ,dbus)
+       ("libpng" ,libpng)))
+    (home-page "https://codeberg.org/dnkl/fnott")
+    (synopsis "Keyboard driven and lightweight Wayland notification daemon")
+    (description "Fnott is a keyboard driven and lightweight notification daemon
+for wlroots-based Wayland compositors.")
+    (license license:expat)))
+
 (define-public awesome
   (package
     (name "awesome")
@@ -1390,7 +1460,7 @@ functionality to display information about the most commonly used services.")
 (define-public wlroots
   (package
     (name "wlroots")
-    (version "0.12.0")
+    (version "0.13.0")
     (source
      (origin
        (method git-fetch)
@@ -1399,11 +1469,10 @@ functionality to display information about the most commonly used services.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "01j38lmgs2c6fq68v8b75pkilia2wsgzgp46ivfbi9hhx47kgcfn"))))
+        (base32 "01plhbnsp5yg18arz0v8fr0pr9l4w4pdzwkg9px486qdvb3s1vgy"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags '("-Dlogind-provider=elogind")
-       #:meson ,meson-0.55
        #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'hardcode-paths
@@ -1438,7 +1507,7 @@ modules for building a Wayland compositor.")
 (define-public sway
   (package
     (name "sway")
-    (version "1.5.1")
+    (version "1.6")
     (source
      (origin
        (method git-fetch)
@@ -1447,7 +1516,7 @@ modules for building a Wayland compositor.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1xsa3h8zhf29p0mi90baxpr76jkd9pd1gr97ky8cnjbcs4isj9j0"))))
+        (base32 "0vnplva11yafhbijrk68wy7pw0psn9jm0caaymswq1s951xsn1c8"))))
     (build-system meson-build-system)
     (arguments
      `(#:phases
@@ -1508,7 +1577,7 @@ modules for building a Wayland compositor.")
     (native-inputs `(("pkg-config" ,pkg-config)
                      ("scdoc" ,scdoc)
                      ("wayland-protocols" ,wayland-protocols)))
-    (home-page "https://github.com/swaywm/sway")
+    (home-page "https://github.com/swaywm/swayidle")
     (synopsis "Idle management daemon for Wayland compositors")
     (description "Swayidle is a idle management daemon for Wayland compositors.")
     (license license:expat))) ; MIT license
@@ -1569,7 +1638,7 @@ modules for building a Wayland compositor.")
 (define-public waybar
   (package
     (name "waybar")
-    (version "0.9.5")
+    (version "0.9.7")
     (source
      (origin
        (method git-fetch)
@@ -1578,7 +1647,7 @@ modules for building a Wayland compositor.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1kzrgqaclfk6gcwhknxn28xl74gm5swipgn8kk8avacb4nsw1l9q"))))
+        (base32 "17cn4d3dx92v40jd9vl41smp8hh3gf5chd1j2f7l1lrpfpnllg5x"))))
     (build-system meson-build-system)
     (inputs `(("date" ,date)
               ("fmt" ,fmt)
@@ -1593,8 +1662,7 @@ modules for building a Wayland compositor.")
               ("spdlog" ,spdlog)
               ("wayland" ,wayland)))
     (native-inputs
-     `(("gcc" ,gcc-8)                   ; for #include <filesystem>
-       ("glib:bin" ,glib "bin")
+     `(("glib:bin" ,glib "bin")
        ("pkg-config" ,pkg-config)
        ("scdoc" ,scdoc)
        ("wayland-protocols" ,wayland-protocols)))
@@ -2191,7 +2259,7 @@ support, for easier unicode usage.")))))
 (define-public xclickroot
   (package
     (name "xclickroot")
-    (version "1.2")
+    (version "1.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2200,7 +2268,7 @@ support, for easier unicode usage.")))))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1nd5qz0qz5j7gx2jsbcp234giwaa0xmg42vrcjrcf587q9ivakfl"))))
+                "0wnsfxvh4v02r2jjyh2n6jfkbj2dna2hlm6anl4b36lwji749k2k"))))
     (build-system gnu-build-system)
     (inputs
      `(("libx11" ,libx11)))
@@ -2221,7 +2289,7 @@ button is pressed on the root window.")
 (define-public xmenu
   (package
     (name "xmenu")
-    (version "4.4.1")
+    (version "4.5.5")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2230,7 +2298,7 @@ button is pressed on the root window.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1s70zvsaqnsjqs298vw3py0vcvia68xlks1wcz37pb88bwligz1x"))))
+                "0qgxkrv9jnnnf3px7zh0paf8xsr4bcpf0f2nq9zy012m214223hs"))))
     (build-system gnu-build-system)
     (inputs
      `(("libx11" ,libx11)
@@ -2311,16 +2379,16 @@ start-up.")
 (define-public xnotify
   (package
     (name "xnotify")
-    (version "0.7.3")
+    (version "0.8.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
                     (url "https://github.com/phillbush/xnotify")
-                    (commit version)))
+                    (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "09s29m8z4x3mc3wja2587ik3f6zg16b40adr3nllnpyy1mqnprq5"))))
+                "1jxms4md2mwfjgm2pgg3vakpp33800jbn9hnl0j4jyfc9f1ckbsv"))))
     (build-system gnu-build-system)
     (inputs
      `(("libx11" ,libx11)
@@ -2451,3 +2519,39 @@ read and write, and compatible with JSON.")
      "Hikari is a stacking Wayland compositor with additional tiling
 capabilities.  It is heavily inspired by the Calm Window manager(cwm).")
     (license license:bsd-2)))
+
+(define-public wlogout
+  (package
+    (name "wlogout")
+    (version "1.1.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/ArtsyMacaw/wlogout")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1swhzkqkzli59c89pvrakfvicd00x7ga860c3x2pbb4y3xziqfvi"))))
+    (build-system meson-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("scdoc" ,scdoc)))
+    (inputs
+     `(("gtk-layer-shell" ,gtk-layer-shell)
+       ("gtk+" ,gtk+)))
+    (arguments
+     '(#:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack  'patch-source-paths
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (substitute* "main.c"
+                 (("/usr/share") (string-append out "/share"))
+                 (("/etc") (string-append out "/etc"))))
+             #t)))))
+    (home-page "https://github.com/ArtsyMacaw/wlogout")
+    (synopsis "Logout menu for Wayland")
+    (description "wlogout is a logout menu for Wayland environments.")
+    (license license:expat)))