diff options
Diffstat (limited to 'modules/freya/packages/wm.scm')
-rw-r--r-- | modules/freya/packages/wm.scm | 698 |
1 files changed, 497 insertions, 201 deletions
diff --git a/modules/freya/packages/wm.scm b/modules/freya/packages/wm.scm index fc21aed..53f7738 100644 --- a/modules/freya/packages/wm.scm +++ b/modules/freya/packages/wm.scm @@ -11,9 +11,21 @@ #:use-module (gnu packages gtk) #:use-module (gnu packages gl) #:use-module (gnu packages linux) + #:use-module (gnu packages gnome) + #:use-module (gnu packages compression) #:use-module (gnu packages pciutils) #:use-module (gnu packages image) #:use-module (gnu packages glib) + #:use-module (gnu packages xml) + #:use-module (gnu packages web) + #:use-module (gnu packages version-control) + #:use-module (gnu packages python) + #:use-module (gnu packages autotools) + #:use-module (gnu packages xorg) + #:use-module (gnu packages freedesktop) + #:use-module (gnu packages base) + #:use-module (gnu packages bash) + #:use-module (gnu packages qt) #:use-module (guix download) #:use-module (guix packages) #:use-module (guix gexp) @@ -21,9 +33,14 @@ #:use-module (guix build-system cmake) #:use-module (guix build-system meson) #:use-module (guix build-system trivial) + #:use-module (guix build-system qt) + #:use-module (guix build-system gnu) #:use-module (guix build utils) - #:use-module (rosenthal packages wm) - #:use-module (rosenthal packages freedesktop) + #:use-module (freya packages gl) + #:use-module (freya packages admin) + #:use-module (freya packages cmake) + #:use-module (freya packages freedesktop) + #:use-module (freya packages assembly) #:use-module (guix utils)) @@ -46,7 +63,7 @@ (package (inherit waybar) (name "waybar-new") - (version "0.10.3") + (version "0.10.4") (source (origin (method git-fetch) @@ -55,261 +72,340 @@ (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "04xd61ycn1nisq1s5ch14zkbsjcfcy6n29nkjn68s2ribmws0iid")))) + (base32 "0liiyz6212pmyhpsrb6773qf5b9b4kb76nggizygr9abfidbg5gw")))) (arguments (list #:configure-flags #~(list "--wrap-mode=nodownload" "-Dexperimental=true"))))) -(define cairo-for-hyprland +(define-public libliftoff (package - (inherit cairo) - (name "cairo") - (version "1.18.0") + (name "libliftoff") + (version "0.1.0") (source (origin (method url-fetch) - (uri (string-append "https://cairographics.org/releases/cairo-" - version ".tar.xz")) + (uri (string-append "https://github.com/emersion/libliftoff" + "/archive/refs/tags/v" version ".tar.gz")) (sha256 (base32 - "0r0by563s75xyzz0d0j1nmjqmdrk2x9agk7r57p3v8vqp4v0ffi4")))) + "17ssbjbv8njgvfha8zsx4nixpi5xxl1rwvk0lcacgqk0nmjyb23s")))) (build-system meson-build-system) - (arguments - (list #:tests? #f - #:glib-or-gtk? #t - #:configure-flags - #~(list "-Dspectre=disabled"))) - (outputs '("out")))) + (native-inputs (list gcc-13 + pkg-config + cmake-minimal-3.27.0 + libdrm)) + (home-page "https://github.com/emersion/libliftoff") + (synopsis "Lightweight KMS plane library") + (description "") + (license license:expat))) -(define hwdata-for-hyprland +(define-public wayland-protocols-1.36 (package - (inherit hwdata) - (arguments - (substitute-keyword-arguments (package-arguments hwdata) - ((#:phases _) #~%standard-phases))) - (outputs '("out")))) + (inherit wayland-protocols) + (name "wayland-protocols") + (version "1.36") + (source (origin + (method url-fetch) + (uri (string-append + "https://gitlab.freedesktop.org/wayland/wayland-protocols" + "/-/releases/" version "/downloads/" + "wayland-protocols-" version ".tar.xz")) + (sha256 + (base32 + "14kyxywpfkgpjpkrybs28q1s2prnz30k1b4zap5a3ybrbvh4vzbi")))))) -(define libdrm-for-hyprland +(define-public hyprlang (package - (inherit libdrm) - (name "libdrm") - (version "2.4.120") + (name "hyprlang") + (version "0.5.2") (source (origin - (method url-fetch) - (uri (string-append - "https://dri.freedesktop.org/libdrm/libdrm-" - version ".tar.xz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/hyprwm/hyprlang") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "0yijzgg6rdsa68bz03sw0lcfa2nclv9m3as1cja50wkcyxim7x9v")))))) + "17i0372yv0fcwnyki36crz7afw8c5f3j985m083p7rjbh4fn3br6")))) + (build-system cmake-build-system) + (native-inputs (list gcc-13)) + (home-page "https://hyprland.org/hyprlang/") + (synopsis "Official implementation library for hypr config language") + (description + "This package provides the official implementation for hypr configuration +language used in @code{hyprland}.") + (license license:gpl3+))) -(define hyprland-unbundle-wlroots-patch - (origin - (method url-fetch) - (uri (string-append "https://github.com/hyprwm/Hyprland" "/raw/" - "cba1ade848feac44b2eda677503900639581c3f4" - "/nix/patches/meson-build.patch")) - (sha256 - (base32 "0fwvsshz3k6061p3hdl175pydmj80vnw5rm4xfcn64w1ssfq7liw")))) +(define-public hyprcursor + (package + (name "hyprcursor") + (version "0.1.9") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hyprwm/hyprcursor") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0z3ar580n630145nq80qw0p8v0kai6knvhi6nr9z0y1jrb07b0ql")))) + (build-system cmake-build-system) + (arguments (list #:tests? #f)) + (inputs (list cairo hyprlang librsvg libzip tomlplusplus)) + (native-inputs (list gcc-13 pkg-config)) + (home-page "https://hyprland.org/") + (synopsis "Hyprland cursor format, library and utilities") + (description + "This package provides Hyprland cursor format, library and utilities.") + (license license:bsd-3))) -(define wayland-protocols-for-hyprland +(define-public hyprland-protocols (package - (inherit wayland-protocols) - (name "wayland-protocols") - (version "1.36") + (name "hyprland-protocols") + (version "0.3.0") (source (origin - (method url-fetch) - (uri (string-append - "https://gitlab.freedesktop.org/wayland/wayland-protocols" - "/-/releases/" version "/downloads/" - "wayland-protocols-" version ".tar.xz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/hyprwm/hyprland-protocols") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "14kyxywpfkgpjpkrybs28q1s2prnz30k1b4zap5a3ybrbvh4vzbi")))))) + "01j5hc8qnjzqiiwryfawx1wzrhkn0m794knphyc0vsxwkcmjaj8x")))) + (build-system meson-build-system) + (home-page "https://hyprland.org") + (synopsis "Wayland protocol extensions for Hyprland") + (description + "This package provides Wayland protocol extensions for Hyprland and it +exists in an effort to bridge the gap between Hyprland and KDE/Gnome's +functionality. Since @code{wlr-protocols} is closed for new submissions, and +@code{wayland-protocols} is very slow with changes, this package will hold +protocols used by Hyprland to bridge the aforementioned gap.") + (license license:bsd-3))) -(define wlroots-for-hyprland - (let ((base wlroots) - (revision "1") - (commit "5c1d51c5a2793480f5b6c4341ad0797052aec2ea")) - (package - (inherit base) - (name "wlroots") - (version (git-version "0.18.0-dev-hyprland" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/hyprwm/wlroots-hyprland") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0gy0g0kxb3q1wjqrypnvmrxcb4ld3advikchygpwpfp4s9v0mmvd")))) - (arguments - (substitute-keyword-arguments (package-arguments wlroots) - ((#:phases phases #~%standard-phases) - #~(modify-phases #$phases - (add-after 'unpack 'adjust-patching-script - (lambda _ - (substitute* "patches/apply.sh" - (("apply \\|\\| check_applied \\|\\| fail") - "patch -Np1 < $PATCH")))))))) - (propagated-inputs - (modify-inputs (package-propagated-inputs wlroots) - (prepend libdrm-for-hyprland) - (replace "libinput-minimal" libinput-minimal-1.24.0) - (replace "wayland-protocols" wayland-protocols-for-hyprland))) - (native-inputs - (modify-inputs (package-native-inputs base) - (replace "hwdata" `(,hwdata-for-hyprland "out"))))))) +(define-public hyprwayland-scanner + (package + (name "hyprwayland-scanner") + (version "0.4.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hyprwm/hyprwayland-scanner") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1xc2xcxpq61lg964ihk0wbfzqqvibw20iz09g0p33ym51gwlpxr4")))) + (build-system cmake-build-system) + (arguments (list #:tests? #f)) + (inputs (list pugixml)) + (native-inputs (list gcc-13 pkg-config)) + (home-page "https://github.com/hyprwm/hyprwayland-scanner") + (synopsis "hyprland implementation of wayland-scanner, in and for c++") + (description + "this package provides a hyprland implementation of wayland-scanner, in and +for c++.") + (license license:bsd-3))) -(define-public hyprland-plugin-hy3 +(define-public hyprutils (package - (name "hyprland-plugin-hy3") - (version "0.40.0") + (name "hyprutils") + (version "0.2.1") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/outfoxxed/hy3" - "/archive/refs/tags/hl" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/hyprwm/hyprutils") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0nxx5yb5k9726x95n8gi27xyxyzwb0ma0nj3czpb51sda1k0hz0g")))) + (build-system cmake-build-system) + (arguments (list #:tests? #f)) + (native-inputs (list gcc-13 pkg-config)) + (propagated-inputs (list pixman)) + (home-page "https://github.com/hyprwm/hyprutils") + (synopsis "Hyprland utilities library used across the ecosystem ") + (description + "this package provides hyprutils") + (license license:bsd-3))) + + +(define hwdata-for-hyprland + (package + (inherit hwdata) + (arguments + (substitute-keyword-arguments (package-arguments hwdata) + ((#:phases _) #~%standard-phases))) + (outputs '("out")))) + + +(define-public aquamarine + (package + (name "aquamarine") + (version "0.2.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hyprwm/aquamarine") + (commit (string-append "v" version)))) + (patches (list + (local-file "patches/aquamarine-fix-cmake.patch"))) + (file-name (git-file-name name version)) (sha256 (base32 - "13rnv24nc52fzvh7ryl7q91cr59z0qsv4vlnps5vr78g58lx11j0")))) + "061shgk8lvbk4f35cf057hl4jh36aahd6l3si6ga91rzl184b9sh")))) (build-system cmake-build-system) (arguments - `(#:tests? #f - #:configure-flags '("DCMAKE_BUILD_TYPE=Release"))) + (list #:tests? #f)) (native-inputs - (list meson pkg-config)) - (inputs - (list pixman - libdrm - pango - gcc-13 - libinput - hyprland-protocols + (list gcc-13 + pkg-config + mesa-headers hyprwayland-scanner - hyprlang - hyprland + hwdata-for-hyprland)) + (propagated-inputs + (list mesa-libglvnd + libglvnd + libseat-0.8.0 + libinput-minimal-1.26.1 + libxkbcommon + libdisplay-info + libxcb + libxinerama + libxcursor + xcb-util + xcb-util-errors + xcb-util-keysyms + xcb-util-wm wayland - wlroots-for-hyprland)) - (license license:gpl3) - (home-page "https://github.com/outfoxxed/hy3") - (synopsis "i3 / sway like layout for hyprland.") - (description "Hyprland plugin for an i3 / sway like manual tiling layout"))) + wayland-protocols-1.36)) + (inputs + (list hyprutils)) + (home-page "https://hyprland.org") + (synopsis "Aquamarine is a very light linux rendering backend library ") + (description "") ;; TODO: this + (license license:bsd-3))) -(define-syntax hyprland-plugin-impl - (syntax-rules () - ((_ plugin) - (let ((commit "fd133914bf1921db2a26627698f914478f6a9471") - (revision "1")) - (package - (name (string-append "hyprland-plugin-" plugin)) - (version (git-version "0.40.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/hyprwm/hyprland-plugins.git") - (commit commit))) - (sha256 - (base32 - "0518ggbam7rllf9xfzhfn9fp364rbiycsrkag74jscy5br5cyl4g")) - (file-name (git-file-name name version)))) - (build-system meson-build-system) - (arguments - `(#:tests? #f - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'chdir - (lambda _ (chdir (string-append "../source/" plugin "/"))))))) - (native-inputs - (list pkg-config - gcc-13)) - (inputs - (list gcc-13 - pango - libinput - hyprland-protocols - hyprwayland-scanner - hyprland - hyprlang - wayland - wlroots-for-hyprland)) - (license license:bsd-3) - (home-page "https://github.com/hyprwm/hyprland-plugins") - (synopsis (string-append "official " plugin " plugin for hyprland")) - (description (string-append "official " plugin " plugin for hyprland"))))))) -(define-public hyprland-plugins +(define xorg-server-xwayland-for-hyprland (package - (name "hyprland-plugins") - (version "0.40.0") - (source #f) - (build-system trivial-build-system) - (arguments '(#:builder (begin (mkdir %output) #t))) - (license license:bsd-3) - (home-page "https://github.com/hyprwm/hyprland-plugins") - (synopsis "A collection of all the official hyprland plugins") - (description "A metapackage containing inputs for each official plugin") - (propagated-inputs - (list (hyprland-plugin-impl "borders-plus-plus") - (hyprland-plugin-impl "csgo-vulkan-fix") - (hyprland-plugin-impl "hyprbars") - (hyprland-plugin-impl "hyprexpo") - (hyprland-plugin-impl "hyprtrails") - (hyprland-plugin-impl "hyprwinwrap"))))) + (inherit xorg-server-xwayland) + (arguments + (substitute-keyword-arguments (package-arguments xorg-server-xwayland) + ((#:phases phases) + #~(modify-phases #$phases + (add-after 'install 'install-headers + (lambda _ + (let ((fmw (string-append #$output "/include"))) + (mkdir-p fmw) + (copy-recursively "include" fmw)) + )) + )))))) -(define-public hyprlock - (let ((commit "d9a6229434fba475ea42b634ee2f03919236798d") + +(define-public hyprland + (let ((commit "0e86808e5912823f1c6bea1b6d5fcae297fc9f57") (revision "1")) (package - (name "hyprlock") - (version (git-version "0.3.0" revision commit)) + (name "hyprland") + (version (git-version "0.42.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/hyprwm/hyprlock") + (url "https://github.com/hyprwm/Hyprland") (commit commit))) + (patches (list + (local-file "patches/hyprland-fix-cmake.patch"))) + (modules '((guix build utils))) + (snippet + '(begin + (for-each delete-file-recursively + '("hyprpm" + "subprojects")))) (file-name (git-file-name name version)) (sha256 - (base32 "19cg8vj4sgz5pxib9m08af1lilay9bckjhlr6h333s014l7y09sw")))) + (base32 "10fiipxxkdvwxqgll5q5sa8sl5hm323gshx9bmlmlry07r0mk3mx")))) (build-system cmake-build-system) (arguments - `(#:tests? #f - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-egl - (lambda _ - (substitute* (list "src/core/Egl.hpp" - "src/renderer/DMAFrame.cpp") - (("#include <EGL/eglext.h>" include) - (string-append include "\n#include <EGL/eglmesaext.h>\n"))) - #t))))) + (list #:tests? #f + #:build-type "release" + #:cmake cmake-minimal-3.27.0 + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-path + (lambda* (#:key inputs #:allow-other-keys) + (substitute* (find-files "src" "\\.cpp$") + (("/usr/local(/bin/Hyprland)" _ path) + (string-append #$output path)) + (("/usr") #$output) + (("(execAndGet\\(\")\\<(cat|fc-list|lspci)\\>" + _ pre cmd) + (string-append + pre (search-input-file + inputs (string-append "bin/" cmd)))) + (("\\<cc\\>") (search-input-file inputs "bin/gcc")) + ;; NOTE: Add binutils to inputs will override ld-wrapper. + (("(execAndGet\\(\\(\")\\<nm\\>" _ pre) + (string-append pre #$binutils "/bin/nm")) + (("\\<(addr2line|objcopy)\\>" _ cmd) + (string-append #$binutils "/bin/" cmd))) + (substitute* "CMakeLists.txt" + (("libudis86") "udis86")) + )) + (add-after 'fix-path 'fix-protocols + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((protocols (string-append + (getcwd) + "/subprojects/hyprland-protocols/protocols"))) + (mkdir-p protocols) + (copy-recursively + (search-input-directory inputs "share/hyprland-protocols/protocols") + protocols)))) + (add-after 'install 'wrap-program + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (mesa (assoc-ref inputs "mesa"))) + (wrap-program (string-append out "/bin/Hyprland") + `("__EGL_VENDOR_LIBRARY_DIRS" prefix ,(list (string-append mesa "/share/glvnd/egl_vendor.d"))))))) + ))) (native-inputs (list gcc-13 + jq pkg-config - mesa-headers)) + hyprwayland-scanner + hwdata-for-hyprland)) (inputs - (list cairo-for-hyprland - pango - libxkbcommon - hyprlang - mesa - wayland-protocols-for-hyprland - wlroots-for-hyprland - linux-pam - libdrm-for-hyprland - libglvnd)) - (home-page "https://github.com/hyprwm/hyprlock") - (license license:bsd-3) - (synopsis "Screen locker for Hyprland") - (description "Screen locker for hyprland.")))) + (list gcc-13 + + cairo + pango + pciutils + libliftoff + udis86 + + aquamarine + hyprcursor + hyprland-protocols + hyprlang + hyprutils + + xorg-server-xwayland-for-hyprland)) + (home-page "https://hyprland.org") + (synopsis "Dynamic tiling Wayland compositor based on wlroots") + (description + "Hyprland is a dynamic tiling Wayland compositor based on @code{wlroots} +that doesn't sacrifice on its looks. It supports multiple layouts, fancy +effe cts, has a very flexible IPC model allowing for a lot of customization, and +more .") + (license license:bsd-3)))) (define-public hyprpaper @@ -331,9 +427,9 @@ pkg-config)) (inputs (list hyprlang - wayland-protocols-for-hyprland + wayland-protocols-1.36 wayland - cairo-for-hyprland + cairo libjpeg-turbo libwebp mesa @@ -364,7 +460,7 @@ pkg-config)) (inputs (list hyprlang - wayland-protocols-for-hyprland + wayland-protocols-1.36 wayland sdbus-c++)) (home-page "https://github.com/hyprwm/hypridle") @@ -373,7 +469,207 @@ (description "Hyprland's idle daemon "))) +(define-public hyprlock + (package + (name "hyprlock") + (version "0.4.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/hyprwm/hyprlock" + "/archive/refs/tags/v" version ".tar.gz")) + (sha256 + (base32 + "0q5smah3zmg8vwipfd74n664mavkgzrqjn0i57gwmbwc111illw7")))) + (build-system cmake-build-system) + (arguments + (list + #:tests? #f + #:phases + #~(modify-phases %standard-phases + (add-after 'install 'wrap-program + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (mesa (assoc-ref inputs "mesa"))) + (wrap-program (string-append out "/bin/hyprlock") + `("__EGL_VENDOR_LIBRARY_DIRS" prefix ,(list (string-append mesa "/share/glvnd/egl_vendor.d")))))))))) + (native-inputs + (list gcc-13 + pkg-config + mesa-headers + wayland)) + (inputs + (list cairo + pango + libxkbcommon + hyprlang + hyprutils + mesa-libglvnd + libdrm + libglvnd + wayland-protocols-1.36 + libjpeg-turbo + libwebp + linux-pam)) + (home-page "https://github.com/hyprwm/hyprlock") + (license license:bsd-3) + (synopsis "Screen locker for Hyprland") + (description "Screen locker for hyprland."))) + + +(define-public xdg-desktop-portal-hyprland + (package + (name "xdg-desktop-portal-hyprland") + (version "1.3.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hyprwm/xdg-desktop-portal-hyprland") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0fdbzxanmmzrvb9wfzg1pdsnlg7dl6v5k8bl44w10n48s7bbbzn0")))) + (build-system qt-build-system) + (arguments + (list #:tests? #f ;No tests + #:qtbase qtbase + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-path + (lambda* (#:key inputs #:allow-other-keys) + (substitute* (find-files "." "\\.cp?*$") + (("/bin/sh") "sh") + (("\\<(sh|grim|hyprctl|slurp)\\>" _ cmd) + (search-input-file inputs (string-append "/bin/" cmd))) + (("\\<(hyprland-share-picker)\\>" _ cmd) + (string-append #$output "/bin/" cmd)))))))) + (native-inputs + (list gcc-13 + pkg-config + wayland)) + (inputs + (list bash-minimal + grim + hyprland + hyprland-protocols + wayland-protocols-1.36 + hyprlang + mesa + pipewire + qtwayland + sdbus-c++ + slurp)) + (home-page "https://github.com/hyprwm/xdg-desktop-portal-hyprland") + (synopsis "XDG Desktop Portal backend for Hyprland") + (description + "This package provides @code{xdg-desktop-portal-hyprland}, which extends +@code{xdg-desktop-portal-wlr} for Hyprland with support for +@code{xdg-desktop-portal} screenshot and casting interfaces, while adding a few +extra portals specific to Hyprland, mostly for window sharing.") + (license license:bsd-3))) + + +(define-public hyprland-plugin-hy3 + (let ((commit "93759c8032995eb566008537389543b3e1b4a65c") + (revision "1")) + (package + (name "hyprland-plugin-hy3") + (version (git-version "0.42.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/outfoxxed/hy3.git") + (commit commit))) + (sha256 + (base32 + "0g59zd5724ply38h14r6hafklb8mh0xwb81i0jzzh3xz0r9pmv3s")))) + (build-system cmake-build-system) + (arguments + (list #:tests? #f + #:cmake cmake-minimal-3.27.0 + #:configure-flags #~(list "DCMAKE_BUILD_TYPE=Release"))) + (native-inputs + (list gcc-13 + pkg-config + hyprwayland-scanner)) + (inputs + (list gcc-13 + aquamarine + pango + gcc-13 + hyprland-protocols + hyprland + hyprlang + hyprutils + libdrm)) + (license license:gpl3) + (home-page "https://github.com/outfoxxed/hy3") + (synopsis "i3 / sway like layout for hyprland.") + (description "Hyprland plugin for an i3 / sway like manual tiling layout")))) + + +(define-syntax hyprland-plugin-impl + (syntax-rules () + ((_ plugin) + (let ((commit "4fcb4038f23e5273af9a5684f3ee10b0652b3bab") + (revision "1")) + (package + (name (string-append "hyprland-plugin-" plugin)) + (version (git-version "0.42.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hyprwm/hyprland-plugins.git") + (commit commit))) + (sha256 + (base32 + "1i1924a2kmjbp6c6y443hdv53nganj4g6dci20v9imrja21vc6s3")) + (file-name (git-file-name name version)))) + (build-system cmake-build-system) + (arguments + (list #:tests? #f + #:cmake cmake-minimal-3.27.0 + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ (chdir (string-append "../source/" plugin "/"))))))) + (native-inputs + (list pkg-config + gcc-13 + hyprwayland-scanner)) + (inputs + (list gcc-13 + aquamarine + pango + hyprland-protocols + hyprland + hyprlang + hyprutils + libdrm)) + (license license:bsd-3) + (home-page "https://github.com/hyprwm/hyprland-plugins") + (synopsis (string-append "official " plugin " plugin for hyprland")) + (description (string-append "official " plugin " plugin for hyprland"))))))) +(define-public hyprland-plugins + (package + (name "hyprland-plugins") + (version "0.42.0") + (source #f) + (build-system trivial-build-system) + (arguments '(#:builder (begin (mkdir %output) #t))) + (license license:bsd-3) + (home-page "https://github.com/hyprwm/hyprland-plugins") + (synopsis "A collection of all the official hyprland plugins") + (description "A metapackage containing inputs for each official plugin") + (propagated-inputs + (list (hyprland-plugin-impl "borders-plus-plus") + (hyprland-plugin-impl "csgo-vulkan-fix") + (hyprland-plugin-impl "hyprbars") + (hyprland-plugin-impl "hyprexpo") + (hyprland-plugin-impl "hyprtrails") + (hyprland-plugin-impl "hyprwinwrap"))))) |