diff options
Diffstat (limited to 'gnu/packages/wm.scm')
-rw-r--r-- | gnu/packages/wm.scm | 147 |
1 files changed, 143 insertions, 4 deletions
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index acaa64b9e6..8ed3ed1107 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -41,7 +41,7 @@ ;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com> ;;; Copyright © 2020 Niklas Eklund <niklas.eklund@posteo.net> ;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net> -;;; Copyright © 2021, 2023 Zheng Junjie <873216071@qq.com> +;;; Copyright © 2021, 2023, 2024 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; Copyright © 2021 qblade <qblade@protonmail.com> ;;; Copyright © 2021 lasnesne <lasnesne@lagunposprasihopre.org> @@ -64,10 +64,11 @@ ;;; Copyright © 2023 Jonathan Brielamier <jonathan.brielmaier@web.de> ;;; Copyright © 2023 Vessel Wave <vesselwave@disroot.org> ;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr> -;;; Copyright © 2023 Jaeme Sifat <jaeme@runbox.com> +;;; Copyright © 2023, 2024 Jaeme Sifat <jaeme@runbox.com> ;;; Copyright © 2023 Josselin Poiret <dev@jpoiret.xyz> ;;; Copyright © 2024 Timotej Lazar <timotej.lazar@araneo.si> ;;; Copyright © 2024 Ahmad Draidi <a.r.draidi@redscript.org> +;;; Copyright © 2024 chris <chris@bumblehead.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -91,6 +92,7 @@ #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix build-system asdf) + #:use-module (guix build-system cargo) #:use-module (guix build-system cmake) #:use-module (guix build-system copy) #:use-module (guix build-system gnu) @@ -108,11 +110,14 @@ #:use-module (gnu packages bison) #:use-module (gnu packages build-tools) #:use-module (gnu packages calendar) - #:use-module (gnu packages compression) #:use-module (gnu packages check) + #:use-module (gnu packages compression) + #:use-module (gnu packages crates-io) + #:use-module (gnu packages crates-graphics) #:use-module (gnu packages datastructures) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation) + #:use-module (gnu packages flex) #:use-module (gnu packages fontutils) #:use-module (gnu packages freedesktop) #:use-module (gnu packages fribidi) @@ -208,7 +213,9 @@ the leaves of a full binary tree.") (file-name (git-file-name name version)) (sha256 (base32 "11sg9x08zl2nr7a723h462knz5lf58sgvkhv1mgc9z3hhkhvbsja")))) (build-system meson-build-system) - (native-inputs (list pkg-config scdoc)) + (native-inputs (list pkg-config scdoc + ;; for wayland-scanner + wayland)) (inputs (list wayland wlroots-0.16 libxkbcommon)) (home-page "https://github.com/cage-kiosk/cage") (synopsis "Wayland kiosk") @@ -1933,6 +1940,94 @@ display a clock or apply image manipulation techniques to the background image." (description "Swaybg is a wallpaper utility for Wayland compositors.") (license license:expat))) ; MIT license +(define-public swww + (package + (name "swww") + (version "0.8.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/LGFae/swww") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1ps10dv6a8a0hiw7p8kg64mf81pvavskmyn5xpbfw6hrc991vdlz")) + (modules '((guix build utils))) + (snippet + '(begin (substitute* "utils/Cargo.toml" + (("\"=([[:digit:]]+(\\.[[:digit:]]+)*)" _ version) + (string-append "\"^" version))))))) + (build-system cargo-build-system) + (arguments + (list + #:install-source? #f + #:cargo-inputs + `(("rust-log" ,rust-log-0.4) + ("rust-simplelog" ,rust-simplelog-0.12) + ("rust-wayland-client" ,rust-wayland-client-0.31) + ("rust-smithay-client-toolkit" ,rust-smithay-client-toolkit-0.18) + ("rust-nix" ,rust-nix-0.27) + ("rust-keyframe" ,rust-keyframe-1) + ("rust-rkyv" ,rust-rkyv-0.7) + ("rust-rayon" ,rust-rayon-1) + ("rust-spin-sleep" ,rust-spin-sleep-1) + ("rust-sd-notify" ,rust-sd-notify-0.4) + ("rust-image" ,rust-image-0.24) + ("rust-fast-image-resize" ,rust-fast-image-resize-2) + ("rust-clap" ,rust-clap-4) + ("rust-rand" ,rust-rand-0.8) + ("rust-lazy-static" ,rust-lazy-static-1) + ("rust-lzzzz" ,rust-lzzzz-1)) + #:cargo-development-inputs + `(("rust-rand" ,rust-rand-0.8) + ("rust-assert-cmd" ,rust-assert-cmd-2) + ("rust-criterion" ,rust-criterion-0.5)) + #:phases + #~(modify-phases %standard-phases + (add-before 'build 'build-documentation + (lambda* (#:key inputs #:allow-other-keys) + (invoke "doc/gen.sh"))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (share (string-append out "/share")) + (man1 (string-append share "/man/man1")) + (swww (car (find-files "target" "^swww$"))) + (swww-daemon (car (find-files "target" "^swww-daemon$"))) + (bash-completions-dir + (string-append share "/bash-completion/completions")) + (zsh-completions-dir + (string-append share "/zsh/site-functions")) + (fish-completions-dir + (string-append share "/fish/vendor_completions.d")) + (elvish-completions-dir + (string-append share "/elvish/lib"))) + (install-file swww bin) + (install-file swww-daemon bin) + (copy-recursively "doc/generated" man1) + (install-file "completions/swww.bash" bash-completions-dir) + (install-file "completions/_swww" zsh-completions-dir) + (install-file "completions/swww.fish" fish-completions-dir) + (install-file "completions/swww.elv" elvish-completions-dir)))) + (add-after 'install 'wrap-binaries + (lambda* (#:key outputs inputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (lz4 (assoc-ref inputs "lz4"))) + (wrap-program (string-append out "/bin/swww") + `("PATH" prefix (,(string-append lz4 "/bin")))) + (wrap-program (string-append out "/bin/swww-daemon") + `("PATH" prefix (,(string-append lz4 "/bin")))))))))) + (native-inputs (list scdoc)) + (inputs (list bash-minimal lz4)) + (home-page "https://github.com/LGFae/swww") + (synopsis + "Efficient animated wallpaper daemon for wayland controlled at runtime") + (description + "A Solution to your Wayland Wallpaper Woes (swww). It uses minimal resources +and provides animations for switching between backgrounds.") + (license license:gpl3+))) (define-public swaynotificationcenter (package @@ -3584,3 +3679,47 @@ notable features include: (description "velox is a simple window manager for Wayland based on swc. It is inspired by dwm and xmonad.") (license license:expat)))) + +(define-public yambar-wayland + (package + (name "yambar-wayland") + (version "1.10.0") + (home-page "https://codeberg.org/dnkl/yambar") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "14lxhgyyia7sxyqjwa9skps0j9qlpqi8y7hvbsaidrwmy4857czr")))) + (build-system meson-build-system) + (arguments + (list + #:build-type "release" + #:configure-flags #~'("-Db_lto=true" + "-Dbackend-x11=disabled" + "-Dbackend-wayland=enabled"))) + (native-inputs (list pkg-config + tllist + flex + bison + scdoc + wayland-protocols)) + (inputs (list fcft + wayland + pipewire + libyaml + pixman + alsa-lib + json-c + libmpdclient + eudev)) + (synopsis "X11 and Wayland status panel") + (description + "@command{yambar} is a lightweight and configurable status panel (bar, +for short) for X11 and Wayland, that goes to great lengths to be both CPU and +battery efficient---polling is only done when absolutely necessary.") + (license license:expat))) |