[PATCH 0/4] gnu: Add Hyprland plugins

  • Open
  • quality assurance status badge
Details
One participant
  • Andrew Wong
Owner
unassigned
Submitted by
Andrew Wong
Severity
normal

Debbugs page

Andrew Wong wrote 2 days ago
(address . guix-patches@gnu.org)(name . Andrew Wong)(address . wongandj@icloud.com)
cover.1741580560.git.wongandj@icloud.com
This patch series adds official and unofficial plugins for the
Hyprland window manager.

Andrew Wong (4):
gnu: Add Hyprland plugins.
gnu: Add hyprscroller.
gnu: Add hy3.
gnu: Add hypr-darkwindow.

gnu/packages/wm.scm | 209 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 209 insertions(+)


base-commit: c10ca0d37a640000d09e42766123088041431e6c
--
2.48.1
Andrew Wong wrote 2 days ago
[PATCH 1/4] gnu: Add Hyprland plugins.
(address . 76910@debbugs.gnu.org)(name . Andrew Wong)(address . wongandj@icloud.com)
95680edecb89a234398415e227b94af2b6525104.1741580560.git.wongandj@icloud.com
* 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(+)

Toggle diff (88 lines)
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index a0b6c6f40a..0cfd2c99d4 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -443,6 +443,81 @@ (define-public hyprland
its looks.")
(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")
--
2.48.1
Andrew Wong wrote 2 days ago
[PATCH 2/4] gnu: Add hyprscroller.
(address . 76910@debbugs.gnu.org)(name . Andrew Wong)(address . wongandj@icloud.com)
52e958776aa7a69eed92fc646d789fac3fbcb3ef.1741580560.git.wongandj@icloud.com
* gnu/packages/wm.scm (hyprscroller): New variable.

Change-Id: I56c9984c7ce013f0ce4b22ec1f5df778fe17f736
---
gnu/packages/wm.scm | 49 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 49 insertions(+)

Toggle diff (62 lines)
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 0cfd2c99d4..4c6d0eadd5 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -518,6 +518,55 @@ (define-public hyprwinwrap
(define-public xtra-dispatchers
(hyprland-plugin "xtra-dispatchers" "extra dispatchers"))
+(define-public hyprscroller
+ (package
+ (name "hyprscroller")
+ ;; Upstream has no tags, but we can use the commits which add support for
+ ;; the corresponding Hyprland version (see ./hyprscoller.toml).
+ (version "0.47.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/dawsers/hyprscroller")
+ (commit "e87f2caeced2d36a304620a082b36245d06f9218")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0aay8d0ldmd3441w4x156z4npfzlk7zkvq1fbbbm414p995jqj51"))))
+ (build-system cmake-build-system)
+ (native-inputs (list gcc-14 pkg-config))
+ (inputs (list aquamarine
+ hyprgraphics
+ hyprlang
+ hyprutils
+ libdrm
+ libinput
+ libxkbcommon
+ mesa
+ pango
+ pixman
+ wayland
+ hyprland))
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'check)
+ (replace 'install
+ (lambda* _
+ (install-file "hyprscroller.so"
+ (string-append #$output "/lib")))))))
+ (home-page "https://github.com/dawsers/hyprscroller")
+ (synopsis "Hyprland plugin for a PaperWM-like scrolling layout")
+ (description
+ "Hyprscroller is a Hyprland layout plugin that creates a window layout
+similar to PaperWM. The plugin supports gaps, borders, decorations,
+special workspace, full screen modes, overview, marks, pinned columns,
+touchpad gestures, copying/pasting windows, trails/trailmarks, quick
+jump mode, and installation through hyprpm.")
+ (license license:expat)))
+
(define-public i3status
(package
(name "i3status")
--
2.48.1
Andrew Wong wrote 2 days ago
[PATCH 3/4] gnu: Add hy3.
(address . 76910@debbugs.gnu.org)(name . Andrew Wong)(address . wongandj@icloud.com)
3c4133f1965c57313046adf895462a78ef579474.1741580560.git.wongandj@icloud.com
* gnu/packages/wm.scm (hy3): New variable.

Change-Id: Id42dc76ab3440c7c651933c60b1ae30f8055afed
---
gnu/packages/wm.scm | 39 +++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)

Toggle diff (52 lines)
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 4c6d0eadd5..49e02f1f93 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -567,6 +567,45 @@ (define-public hyprscroller
jump mode, and installation through hyprpm.")
(license license:expat)))
+(define-public hy3
+ (package
+ (name "hy3")
+ (version "0.47.0-1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/outfoxxed/hy3")
+ (commit (string-append "hl" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "02iayhdmw42ipy6j05qbnlpwqn74qyslczw7ikk3vxwrxh426iky"))))
+ (build-system cmake-build-system)
+ (native-inputs (list gcc-14 pkg-config))
+ (inputs (list aquamarine
+ eudev
+ hyprgraphics
+ hyprlang
+ hyprutils
+ libdrm
+ libinput
+ libxkbcommon
+ mesa
+ pango
+ pixman
+ wayland
+ hyprland))
+ (arguments
+ (list
+ #:tests? #f))
+ (home-page "https://github.com/outfoxxed/hy3")
+ (synopsis "Hyprland plugin for an i3/sway-like manual tiling layout")
+ (description
+ "hy3 is a Hyprland plugin providing an i3/sway-like manual
+tiling layout, including node-based window manipulation and optional
+autotiling.")
+ (license license:gpl3)))
+
(define-public i3status
(package
(name "i3status")
--
2.48.1
Andrew Wong wrote 2 days ago
[PATCH 4/4] gnu: Add hypr-darkwindow.
(address . 76910@debbugs.gnu.org)(name . Andrew Wong)(address . wongandj@icloud.com)
c22062f3c7bf5d28bc3112f057443f1a2f534fbb.1741580560.git.wongandj@icloud.com
* gnu/packages/wm.scm (hypr-darkwindow): New variable.

Change-Id: Ide445c85047e17b5817580bde896a6c303e6a4cd
---
gnu/packages/wm.scm | 46 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 46 insertions(+)

Toggle diff (59 lines)
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 49e02f1f93..f21cf03780 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -606,6 +606,52 @@ (define-public hy3
autotiling.")
(license license:gpl3)))
+(define-public hypr-darkwindow
+ (package
+ (name "hypr-darkwindow")
+ (version "0.47.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/micha4w/Hypr-DarkWindow")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0g7zmzwa9w98wwygzl3wxgc6adh6h5ixrm3b8biimby2z5vwc2fz"))))
+ (build-system gnu-build-system)
+ (native-inputs (list gcc-14 pkg-config))
+ (inputs (list aquamarine
+ eudev
+ hyprgraphics
+ hyprlang
+ hyprutils
+ libdrm
+ libinput
+ libxkbcommon
+ mesa
+ pango
+ pixman
+ wayland
+ hyprland))
+ (arguments
+ (list
+ #:tests? #f
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'install
+ (lambda* _
+ (install-file "out/hypr-darkwindow.so"
+ (string-append #$output "/lib")))))))
+ (home-page "https://github.com/micha4w/Hypr-DarkWindow")
+ (synopsis "Hyprland plugin that provides window color inversion")
+ (description
+ "This plugin adds the dispatchers @code{invertwindow WINDOW}
+and @code{invertactivewindow}, which invert the colors of the indicated
+window.")
+ (license license:expat)))
+
(define-public i3status
(package
(name "i3status")
--
2.48.1
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 76910@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 76910
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch
You may also tag this issue. See list of standard tags. For example, to set the confirmed and easy tags
mumi command -t +confirmed -t +easy
Or, remove the moreinfo tag and set the help tag
mumi command -t -moreinfo -t +help