[bug#76910,v2,1/4] gnu: Add Hyprland plugins.
Commit Message
* gnu/packages/wm.scm (hyprland-plugin): New function.
* gnu/packages/wm.scm (borders-plus-plus): New variable.
* gnu/packages/wm.scm (csgo-vulkan-fix): New variable.
* gnu/packages/wm.scm (hyprbars): New variable.
* gnu/packages/wm.scm (hyprexpo): New variable.
* gnu/packages/wm.scm (hyprtrails): New variable.
* gnu/packages/wm.scm (hyprwinwrap): New variable.
* gnu/packages/wm.scm (xtra-dispatchers): New variable.
Change-Id: I923095e0d0cbc1c237e55a78dd2e9c1b1a3235df
---
gnu/packages/wm.scm | 75 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 75 insertions(+)
Comments
The policy for Guix is one package per commit.
Even with the use of a helper like hyprland-plugin,
wouldn't that also apply here?
If you end up deciding to change that, here is a tip:
In the git-rebase-todo file, you can change the order of
the commits by rearranging their lines. If you use Magit,
you can do that by dragging the commit with M-n and M-p.
That way, you could modify your hyprland-plugin to
be the first, and have the other packages come next.
If you allow me to submit a v3, I think I could do that.
@@ -446,6 +446,81 @@ (define-public hyprland
`((upstream-name . "source")))
(license license:bsd-3)))
+(define hyprland-plugin
+ (lambda (plugin-name plugin-provision)
+ "Generate a packaged plugin from Hyprland's official plugin repository."
+ (package
+ (name plugin-name)
+ (version "0.47.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/hyprwm/hyprland-plugins")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "06jydclvivd7xq0kwn6s19jhmmfqc5q649z7w4wqqj6jdhgkhayg"))))
+ (build-system cmake-build-system)
+ (native-inputs (list gcc-14 pkg-config))
+ (inputs (list hyprland
+ libdrm
+ libinput
+ eudev
+ pango
+ pixman
+ wayland
+ libxkbcommon
+ mesa
+ hyprutils
+ hyprgraphics
+ aquamarine
+ hyprlang))
+ (arguments (list #:cmake cmake-3.30
+ #:tests? #f ; no tests.
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'chdir
+ (lambda _ (chdir #$plugin-name)))
+ (replace 'install-license-files
+ (lambda _ (install-file
+ "../LICENSE"
+ (string-append #$output "/share/doc/"
+ #$name "-"
+ #$version)))))))
+ (home-page (string-append "https://github.com/hyprwm/hyprland-plugins/"
+ plugin-name))
+ (synopsis (string-append "Hyprland plugin providing "
+ plugin-provision))
+ (description
+ (string-append "This is an official Hyprland plugin that provides "
+ plugin-provision "."))
+ (license license:bsd-3))))
+
+(define-public borders-plus-plus
+ (hyprland-plugin "borders-plus-plus" "extra borders around windows"))
+
+(define-public csgo-vulkan-fix
+ (let ((parent (hyprland-plugin "csgo-vulkan-fix"
+ "virtual native resolution reporting")))
+ (package (inherit parent) (inputs (modify-inputs (package-inputs parent)
+ (append xcb-util-wm))))))
+
+(define-public hyprbars
+ (hyprland-plugin "hyprbars" "window title bars"))
+
+(define-public hyprexpo
+ (hyprland-plugin "hyprexpo" "an exposé feature"))
+
+(define-public hyprtrails
+ (hyprland-plugin "hyprtrails" "trail effects behind windows"))
+
+(define-public hyprwinwrap
+ (hyprland-plugin "hyprwinwrap" "a window-as-wallpaper feature"))
+
+(define-public xtra-dispatchers
+ (hyprland-plugin "xtra-dispatchers" "extra dispatchers"))
+
(define-public i3status
(package
(name "i3status")