refactor hypr

This commit is contained in:
Freya Murphy 2024-11-08 11:56:37 -05:00
parent 148091a09f
commit 92bd36b305
Signed by: freya
GPG key ID: 9FBC6FFD6D2DBF17
3 changed files with 247 additions and 371 deletions

View file

@ -30,6 +30,7 @@
#:use-module (gnu packages cmake) #:use-module (gnu packages cmake)
#:use-module (gnu packages admin) #:use-module (gnu packages admin)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages commencement)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix gexp) #:use-module (guix gexp)
@ -42,61 +43,11 @@
#:use-module (sakura packages) #:use-module (sakura packages)
#:use-module (guix utils)) #:use-module (guix utils))
;; Newer packages needed for Hyprland ;; Newer packages needed for Hyprland
;; ;;
;; - libinput
;; - wayland
;; - hwdata
;; - udis86 ;; - udis86
;; - xorg headers
;; - mesa libglvnd
;; - sdbus-cpp ;; - sdbus-cpp
(define-public libinput-minimal-for-hyprland
(hidden-package (package
(inherit libinput-minimal)
(name "libinput-minimal")
(version "1.26.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.freedesktop.org/libinput/libinput.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"094k23i10jjmgdzhv5lj7xpc3fgkwi9afcihf0l2fjj71ym8l9fy"))))
(native-inputs
(modify-inputs (package-native-inputs libinput)
(append python-minimal-wrapper python-pytest))))))
(define-public wayland-for-hyprland
(hidden-package (package
(inherit wayland)
(name "wayland")
(version "1.23.1")
(source (origin
(method url-fetch)
(uri (string-append "https://gitlab.freedesktop.org/" name
"/" name "/-/releases/" version "/downloads/"
name "-" version ".tar.xz"))
(sha256
(base32
"1vg5h6d94hglh7724q6wx9dpg4y0afvxksankp1hwbcy76lb4kw6")))))))
(define-public hwdata-for-hyprland
(hidden-package (package
(inherit hwdata)
(arguments
(substitute-keyword-arguments (package-arguments hwdata)
((#:phases _) #~%standard-phases)))
(outputs '("out")))))
(define-public udis86-for-hyprland (define-public udis86-for-hyprland
(let ((revision "186") (let ((revision "186")
(commit "5336633af70f3917760a6d441ff02d93477b0c86")) (commit "5336633af70f3917760a6d441ff02d93477b0c86"))
@ -122,37 +73,6 @@ set architectures. It consists of a C library called @code{libudis86} and a
command line tool called @code{udcli} that incorporates the library.") command line tool called @code{udcli} that incorporates the library.")
(license license:bsd-2))))) (license license:bsd-2)))))
(define-public xorg-server-xwayland-for-hyprland
(hidden-package (package
(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 mesa-for-hyprland
(hidden-package (package
(inherit mesa)
(inputs
(modify-inputs
(package-inputs mesa)
(prepend libglvnd)))
(arguments
(substitute-keyword-arguments (package-arguments mesa)
((#:configure-flags flags ''())
#~(append (list "-Dglvnd=true")
#$flags)))))))
(define-public sdbus-c++-for-hyprland (define-public sdbus-c++-for-hyprland
(hidden-package (package (hidden-package (package
(inherit sdbus-c++) (inherit sdbus-c++)
@ -174,10 +94,8 @@ command line tool called @code{udcli} that incorporates the library.")
(delete 'check))))) (delete 'check)))))
))) )))
;; Hyprland Packages ;; Hyprland Packages
(define-public hyprland-protocols (define-public hyprland-protocols
(package (package
(name "hyprland-protocols") (name "hyprland-protocols")
@ -202,45 +120,6 @@ functionality. Since @code{wlr-protocols} is closed for new submissions, and
protocols used by Hyprland to bridge the aforementioned gap.") protocols used by Hyprland to bridge the aforementioned gap.")
(license license:bsd-3))) (license license:bsd-3)))
;; Common Packages needed by
;; multiple hyprland packages
(define hyprwayland-common
(list ; libs
cairo
pango
; mesa
mesa-for-hyprland
libglvnd
; wayland
wayland-for-hyprland
wayland-protocols-next
hyprland-protocols))
;; Common Packages needed by
;; aquamarine and any package
;; that uses it
(define aquamarine-common
(append hyprwayland-common
(list ; lib
libseat
pixman
libinput-minimal-for-hyprland
; x11
libdisplay-info
libxcb
libxinerama
libxcursor
libxkbcommon
xcb-util
xcb-util-errors
xcb-util-keysyms
xcb-util-wm)))
(define-public hyprlang (define-public hyprlang
(package (package
(name "hyprlang") (name "hyprlang")
@ -255,8 +134,7 @@ protocols used by Hyprland to bridge the aforementioned gap.")
(base32 (base32
"0yvfrz3hdyxzhngzhr0bgc5279ra5fv01hbfi6pdj84pz0lpaw02")))) "0yvfrz3hdyxzhngzhr0bgc5279ra5fv01hbfi6pdj84pz0lpaw02"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(native-inputs (list gcc-13 (native-inputs (list gcc-13 pkg-config))
pkg-config))
(inputs (list hyprutils)) (inputs (list hyprutils))
(home-page "https://hyprland.org/hyprlang/") (home-page "https://hyprland.org/hyprlang/")
(synopsis "Official implementation library for hypr config language") (synopsis "Official implementation library for hypr config language")
@ -265,7 +143,6 @@ protocols used by Hyprland to bridge the aforementioned gap.")
language used in @code{hyprland}.") language used in @code{hyprland}.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public hyprcursor (define-public hyprcursor
(package (package
(name "hyprcursor") (name "hyprcursor")
@ -281,15 +158,14 @@ language used in @code{hyprland}.")
"1rdn03ln7pqcwp8h4nmi7nc489q8y25dd3v4paq8ykvwzhvs3a1n")))) "1rdn03ln7pqcwp8h4nmi7nc489q8y25dd3v4paq8ykvwzhvs3a1n"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (list #:tests? #f)) (arguments (list #:tests? #f))
(inputs (list cairo hyprlang librsvg libzip tomlplusplus))
(native-inputs (list gcc-13 pkg-config)) (native-inputs (list gcc-13 pkg-config))
(inputs (list cairo hyprlang (librsvg-for-system) libzip tomlplusplus))
(home-page "https://hyprland.org/") (home-page "https://hyprland.org/")
(synopsis "Hyprland cursor format, library and utilities") (synopsis "Hyprland cursor format, library and utilities")
(description (description
"This package provides Hyprland cursor format, library and utilities.") "This package provides Hyprland cursor format, library and utilities.")
(license license:bsd-3))) (license license:bsd-3)))
(define-public hyprwayland-scanner (define-public hyprwayland-scanner
(package (package
(name "hyprwayland-scanner") (name "hyprwayland-scanner")
@ -314,7 +190,6 @@ language used in @code{hyprland}.")
for c++.") for c++.")
(license license:bsd-3))) (license license:bsd-3)))
(define-public hyprutils (define-public hyprutils
(package (package
(name "hyprutils") (name "hyprutils")
@ -337,7 +212,6 @@ for c++.")
"this package provides hyprutils") "this package provides hyprutils")
(license license:bsd-3))) (license license:bsd-3)))
(define-public aquamarine (define-public aquamarine
(package (package
(name "aquamarine") (name "aquamarine")
@ -347,28 +221,35 @@ for c++.")
(uri (git-reference (uri (git-reference
(url "https://github.com/hyprwm/aquamarine") (url "https://github.com/hyprwm/aquamarine")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(patches (sakura-patches "aquamarine-fix-cmake.patch"))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0x1zz1ywchs0awkjkvdgskgqnp6pz5lqwmgr8g0zc0i7inhyg1p3")))) "0x1zz1ywchs0awkjkvdgskgqnp6pz5lqwmgr8g0zc0i7inhyg1p3"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
(list #:tests? #f)) (list #:cmake cmake-3.30
#:tests? #f))
(native-inputs (native-inputs
(list gcc-13 (list gcc-13
pkg-config pkg-config
mesa-headers hyprwayland-scanner))
hyprwayland-scanner
hwdata-for-hyprland))
(inputs (inputs
(append aquamarine-common (list hyprutils))) (list eudev
hwdata
hyprutils
libdisplay-info
libglvnd
libinput-minimal
libseat
mesa
pixman
wayland
wayland-protocols))
(home-page "https://hyprland.org") (home-page "https://hyprland.org")
(synopsis "Aquamarine is a very light linux rendering backend library ") (synopsis "Aquamarine is a very light linux rendering backend library.")
(description "") ;; TODO: this (description "Aquamarine is a very light linux rendering backend library.")
(license license:bsd-3))) (license license:bsd-3)))
(define-public hyprland (define-public hyprland
(package (package
(name "hyprland") (name "hyprland")
@ -379,10 +260,11 @@ for c++.")
(uri (git-reference (uri (git-reference
(url "https://github.com/hyprwm/Hyprland") (url "https://github.com/hyprwm/Hyprland")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(patches (sakura-patches "hyprland-fix-cmake.patch"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin
(substitute* "CMakeLists.txt"
(("^add_subdirectory\\(hyprpm\\).*") ""))
(for-each delete-file-recursively (for-each delete-file-recursively
'("hyprpm" '("hyprpm"
"subprojects")))) "subprojects"))))
@ -391,65 +273,49 @@ for c++.")
(base32 "11vw1h9al4jvqprwbrmxvcpxwhvsjj398wbz4flqbnmxa8idvdq1")))) (base32 "11vw1h9al4jvqprwbrmxvcpxwhvsjj398wbz4flqbnmxa8idvdq1"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
(list #:tests? #f (list #:cmake cmake-3.30
#:cmake cmake-3.30 #:tests? #f
#:build-type "release"
#:phases #:phases
#~(modify-phases %standard-phases #~(modify-phases %standard-phases
(add-after 'unpack 'fix-path (add-after 'unpack 'patch-source
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(substitute* (find-files "src" "\\.cpp$") (substitute* (find-files "src" "\\.cpp$")
(("/usr/local(/bin/Hyprland)" _ path) (("/usr/local(/bin/Hyprland)" _ path)
(string-append #$output path)) (string-append #$output path))
(("/usr") #$output) (("/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) (("\\<(addr2line|objcopy)\\>" _ cmd)
(string-append #$binutils "/bin/" cmd))) (string-append #$binutils "/bin/" cmd)))
(substitute* "CMakeLists.txt" (substitute* "src/xwayland/Server.cpp"
(("libudis86") "udis86")) (("Xwayland( \\{\\})" _ suffix)
)) (string-append
(add-after 'fix-path 'fix-protocols (search-input-file inputs "bin/Xwayland")
(lambda* (#:key inputs outputs #:allow-other-keys) suffix)))))
(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 (native-inputs
(list gcc-14 (list gcc-14
jq
pkg-config
hyprwayland-scanner hyprwayland-scanner
hwdata-for-hyprland)) ld-wrapper
pkg-config))
(inputs (inputs
(append aquamarine-common (list aquamarine
(list ; libs binutils
pciutils cairo
libliftoff
udis86-for-hyprland
xorg-server-xwayland-for-hyprland
; hypr
aquamarine
hyprcursor hyprcursor
hyprland-protocols
hyprlang hyprlang
hyprutils))) hyprutils
libinput-minimal
libxcursor
libxkbcommon
mesa
pango
pciutils
udis86-for-hyprland
wayland
wayland-protocols
xcb-util-errors
xcb-util-wm
xorg-server-xwayland))
(home-page "https://hyprland.org") (home-page "https://hyprland.org")
(synopsis "Dynamic tiling Wayland compositor based on wlroots") (synopsis "Dynamic tiling Wayland compositor based on wlroots")
(description (description
@ -459,7 +325,6 @@ ef cts, has a very flexible IPC model allowing for a lot of customization, and
mo .") mo .")
(license license:bsd-3))) (license license:bsd-3)))
(define-public hyprpaper (define-public hyprpaper
(package (package
(name "hyprpaper") (name "hyprpaper")
@ -473,55 +338,70 @@ mo .")
"1rwi2cs8hwbyk67q57cvi5ybfs881xhzq8zdb8qlcr0jwk3sk1hh")))) "1rwi2cs8hwbyk67q57cvi5ybfs881xhzq8zdb8qlcr0jwk3sk1hh"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:tests? #f)) (list #:cmake cmake-3.30
#:tests? #f
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-source
(lambda _
(substitute* "CMakeLists.txt"
(("PkgConfig REQUIRED")
(string-append "PkgConfig REQUIRED)\n"
"find_package(OpenGL REQUIRED COMPONENTS \"GLES2\""))
((" OpenGL")
"OpenGL::GL")
((" GLESv2")
"OpenGL::GLES2")))))))
(native-inputs (native-inputs
(list gcc-13 (list gcc-13
hyprwayland-scanner
ld-wrapper
pkg-config)) pkg-config))
(inputs (inputs
(append hyprwayland-common (list binutils
(list ; libs cairo
hyprutils
hyprlang
libjpeg-turbo libjpeg-turbo
libwebp libwebp
; hypr mesa
hyprwayland-scanner pango
hyprutils wayland
hyprlang))) wayland-protocols))
(home-page "https://github.com/hyprwm/hyprpaper") (home-page "https://github.com/hyprwm/hyprpaper")
(license license:bsd-3)
(synopsis "Hyprpaper is a blazing fast wayland wallpaper utility with IPC controls.") (synopsis "Hyprpaper is a blazing fast wayland wallpaper utility with IPC controls.")
(description "Hyprpaper is a blazing fast wayland wallpaper utility with IPC controls."))) (description "Hyprpaper is a blazing fast wayland wallpaper utility with IPC controls.")
(license license:bsd-3)))
(define-public hypridle (define-public hypridle
(package (package
(name "hypridle") (name "hypridle")
(version "0.1.4") (version "0.1.5")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/hyprwm/hypridle" (uri (string-append "https://github.com/hyprwm/hypridle"
"/archive/refs/tags/v" version ".tar.gz")) "/archive/refs/tags/v" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0l406qgdrzxxl2fbpwdr8nw6223175iq8dlh9zr2vav5pqbqk1sa")))) "0jwak5544mcbcg0hix307y94qmmmjyrc6z0av3k7jp7c0r3lnk8p"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:tests? #f)) (list #:cmake cmake-3.30
#:tests? #f))
(native-inputs (native-inputs
(list gcc-13 (list gcc-13
pkg-config)) pkg-config))
(inputs (inputs
(append hyprwayland-common (list hyprlang
(list ; libs hyprutils
sdbus-c++-for-hyprland sdbus-c++-for-hyprland
; hypr wayland
hyprlang wayland-protocols))
hyprutils)))
(home-page "https://github.com/hyprwm/hypridle") (home-page "https://github.com/hyprwm/hypridle")
(license license:bsd-3) (license license:bsd-3)
(synopsis "Hyprland's idle daemon ") (synopsis "Hyprland's idle daemon ")
(description "Hyprland's idle daemon "))) (description "Hyprland's idle daemon ")))
(define-public hyprlock (define-public hyprlock
(package (package
(name "hyprlock") (name "hyprlock")
@ -535,38 +415,71 @@ mo .")
"16dg3lvrdyvw7vwl8bhnqsihnjjijq0qra1x9qdd4ni0vsch32jg")))) "16dg3lvrdyvw7vwl8bhnqsihnjjijq0qra1x9qdd4ni0vsch32jg"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
(list (list #:cmake cmake-3.30
#:tests? #f #:tests? #f
#:phases #:phases
#~(modify-phases %standard-phases #~(modify-phases %standard-phases
(add-after 'install 'wrap-program (add-after 'unpack 'patch-source
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda _
(let ((out (assoc-ref outputs "out")) (substitute* "CMakeLists.txt"
(mesa (assoc-ref inputs "mesa"))) ((" opengl") "")
(wrap-program (string-append out "/bin/hyprlock") (("OpenGL REQUIRED")
`("__EGL_VENDOR_LIBRARY_DIRS" prefix ,(list (string-append mesa "/share/glvnd/egl_vendor.d")))))))))) "OpenGL REQUIRED COMPONENTS GLES2 EGL")))))))
(native-inputs (native-inputs
(list gcc-13 (list gcc-13
pkg-config ld-wrapper
mesa-headers pkg-config))
wayland))
(inputs (inputs
(append aquamarine-common (list cairo
(list ; lib hyprutils
hyprlang
libjpeg-turbo libjpeg-turbo
libwebp libwebp
libdrm libxkbcommon
linux-pam linux-pam
mesa
pango
sdbus-c++-for-hyprland sdbus-c++-for-hyprland
; hypr wayland
aquamarine wayland-protocols))
hyprlang
hyprutils)))
(home-page "https://github.com/hyprwm/hyprlock") (home-page "https://github.com/hyprwm/hyprlock")
(license license:bsd-3) (license license:bsd-3)
(synopsis "Screen locker for Hyprland") (synopsis "Screen locker for Hyprland")
(description "Screen locker for hyprland."))) (description "Screen locker for hyprland.")))
(define-public hyprpicker
(package
(name "hyprpicker")
(version "0.4.1")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/hyprwm/hyprpicker"
"/archive/refs/tags/v" version ".tar.gz"))
(sha256
(base32
"12ikv9zd3hv8rmxjyljw8p9lmqlq9vn7a21p54xn7za5jqgqhkg1"))))
(build-system cmake-build-system)
(arguments
`(#:cmake ,cmake-3.30
#:tests? #f
#:configure-flags (list (string-append "-DCMAKE_INSTALL_MANDIR="
(assoc-ref %outputs "out")
"/share/man"))))
(native-inputs (list gcc-13
hyprwayland-scanner
pkg-config))
(inputs (list cairo
hyprutils
libjpeg-turbo
libxkbcommon
mesa
pango
wayland
wayland-protocols))
(home-page "https://hyprland.org/")
(synopsis "Wlroots-compatible Wayland color picker that does not suck")
(description "A wlroots-compatible Wayland color picker that does not suck.")
(license license:bsd-3)))
(define-public xdg-desktop-portal-hyprland (define-public xdg-desktop-portal-hyprland
(package (package
@ -583,35 +496,37 @@ mo .")
"0aixrjyky2mzclnwypybpg01ihfbmwzfv09zbjis49q1clrszq2p")))) "0aixrjyky2mzclnwypybpg01ihfbmwzfv09zbjis49q1clrszq2p"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
(list #:tests? #f ;No tests (list #:cmake cmake-3.30
#:tests? #f
#:phases #:phases
#~(modify-phases %standard-phases #~(modify-phases %standard-phases
(add-after 'unpack 'fix-path (add-after 'unpack 'fix-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(substitute* (find-files "." "\\.cp?*$") (substitute* (find-files "." "\\.cp?*$")
(("/bin/sh") "sh") (("/bin/sh") "sh")
(("\\<(sh|grim|hyprctl|slurp)\\>" _ cmd) (("\\<(sh|grim|hyprctl|hyprpicker|slurp)\\>" _ cmd)
(search-input-file inputs (string-append "/bin/" cmd))) (search-input-file inputs (string-append "/bin/" cmd)))
(("\\<(hyprland-share-picker)\\>" _ cmd) (("\\<(hyprland-share-picker)\\>" _ cmd)
(string-append #$output "/bin/" cmd)))))))) (string-append #$output "/bin/" cmd))))))))
(native-inputs (native-inputs
(list gcc-13 (list gcc-13
pkg-config hyprwayland-scanner
hyprwayland-scanner)) pkg-config))
(inputs (inputs
(append hyprwayland-common (list bash-minimal
(list ; libs
bash-minimal
grim grim
sdbus-c++-for-hyprland
slurp
qtbase
pipewire
qtwayland
; hypr
hyprland hyprland
hyprland-protocols
hyprlang hyprlang
hyprutils))) hyprpicker
hyprutils
pipewire
slurp
sdbus-c++-for-hyprland
qtbase
qtwayland
wayland
wayland-protocols))
(home-page "https://github.com/hyprwm/xdg-desktop-portal-hyprland") (home-page "https://github.com/hyprwm/xdg-desktop-portal-hyprland")
(synopsis "XDG Desktop Portal backend for Hyprland") (synopsis "XDG Desktop Portal backend for Hyprland")
(description (description
@ -621,7 +536,6 @@ mo .")
extra portals specific to Hyprland, mostly for window sharing.") extra portals specific to Hyprland, mostly for window sharing.")
(license license:bsd-3))) (license license:bsd-3)))
(define-public hyprland-plugin-hy3 (define-public hyprland-plugin-hy3
(package (package
(name "hyprland-plugin-hy3") (name "hyprland-plugin-hy3")
@ -636,28 +550,31 @@ extra portals specific to Hyprland, mostly for window sharing.")
"03gxjkn43j85ff8d0hx9nhv5bfwv7vw7m8kacpmajmfnx43mldg9")))) "03gxjkn43j85ff8d0hx9nhv5bfwv7vw7m8kacpmajmfnx43mldg9"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
(list #:tests? #f (list #:cmake cmake-3.30
#:tests? #f
#:configure-flags #~(list "DCMAKE_BUILD_TYPE=Release"))) #:configure-flags #~(list "DCMAKE_BUILD_TYPE=Release")))
(native-inputs (native-inputs
(list gcc-13 (list pkg-config
pkg-config gcc-13))
hyprwayland-scanner))
(inputs (inputs
(append aquamarine-common (list aquamarine
(list ; lib cairo
gcc-13
libdrm
; hypr
aquamarine
hyprland hyprland
hyprlang hyprlang
hyprutils))) hyprutils
libinput-minimal
libxkbcommon
libdrm
mesa
pango
pixman
hyprland
wayland))
(license license:gpl3) (license license:gpl3)
(home-page "https://github.com/outfoxxed/hy3") (home-page "https://github.com/outfoxxed/hy3")
(synopsis "i3 / sway like layout for hyprland.") (synopsis "i3 / sway like layout for hyprland.")
(description "Hyprland plugin for an i3 / sway like manual tiling layout"))) (description "Hyprland plugin for an i3 / sway like manual tiling layout")))
(define-syntax hyprland-plugin-impl (define-syntax hyprland-plugin-impl
(syntax-rules () (syntax-rules ()
((_ plugin) ((_ plugin)
@ -676,56 +593,51 @@ extra portals specific to Hyprland, mostly for window sharing.")
(file-name (git-file-name name version)))) (file-name (git-file-name name version))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
(list #:tests? #f (list #:cmake cmake-3.30
#:cmake cmake-3.30 #:tests? #f
#:phases #:phases
#~(modify-phases %standard-phases #~(modify-phases %standard-phases
(add-after 'unpack 'chdir (add-after 'unpack 'chdir
(lambda _ (chdir (string-append "../source/" plugin "/"))))))) (lambda _ (chdir (string-append "../source/" plugin "/")))))))
(native-inputs (native-inputs
(list pkg-config (list pkg-config
gcc-13 gcc-13))
hyprwayland-scanner))
(inputs (inputs
(append aquamarine-common (list aquamarine
(list ; libs
gcc-13
libdrm
; hypr
aquamarine
hyprland hyprland
hyprlang hyprlang
hyprutils))) hyprutils
libdrm
libinput
libxkbcommon
mesa
pango
pixman
wayland
xcb-util-wm))
(license license:bsd-3) (license license:bsd-3)
(home-page "https://github.com/hyprwm/hyprland-plugins") (home-page "https://github.com/hyprwm/hyprland-plugins")
(synopsis (string-append "official " plugin " plugin for hyprland")) (synopsis (string-append "official " plugin " plugin for hyprland"))
(description (string-append "official " plugin " plugin for hyprland")))))) (description (string-append "official " plugin " plugin for hyprland"))))))
(define-public hyprland-plugin-borders-plus-plus (define-public hyprland-plugin-borders-plus-plus
(hyprland-plugin-impl "borders-plus-plus")) (hyprland-plugin-impl "borders-plus-plus"))
(define-public hyprland-plugin-csgo-vulkan-fix (define-public hyprland-plugin-csgo-vulkan-fix
(hyprland-plugin-impl "csgo-vulkan-fix")) (hyprland-plugin-impl "csgo-vulkan-fix"))
(define-public hyprland-plugin-hyprbars (define-public hyprland-plugin-hyprbars
(hyprland-plugin-impl "hyprbars")) (hyprland-plugin-impl "hyprbars"))
(define-public hyprland-plugin-hyprexpo (define-public hyprland-plugin-hyprexpo
(hyprland-plugin-impl "hyprexpo")) (hyprland-plugin-impl "hyprexpo"))
(define-public hyprland-plugin-hyprtrails (define-public hyprland-plugin-hyprtrails
(hyprland-plugin-impl "hyprtrails")) (hyprland-plugin-impl "hyprtrails"))
(define-public hyprland-plugin-hyprwinwrap (define-public hyprland-plugin-hyprwinwrap
(hyprland-plugin-impl "hyprwinwrap")) (hyprland-plugin-impl "hyprwinwrap"))
(define-public hyprland-plugins (define-public hyprland-plugins
(package (package
(name "hyprland-plugins") (name "hyprland-plugins")
@ -744,12 +656,11 @@ extra portals specific to Hyprland, mostly for window sharing.")
hyprland-plugin-hyprtrails hyprland-plugin-hyprtrails
hyprland-plugin-hyprwinwrap)))) hyprland-plugin-hyprwinwrap))))
(define-syntax hyprland-contrib-impl (define-syntax hyprland-contrib-impl
(syntax-rules () (syntax-rules ()
((_ contrib) ((_ contrib)
(package (package
(name (string-append "hyprland-conrib-" contrib)) (name (string-append "hyprland-contrib-" contrib))
(version "0.1") (version "0.1")
(source (source
(origin (origin
@ -776,30 +687,53 @@ extra portals specific to Hyprland, mostly for window sharing.")
(replace 'install (replace 'install
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(invoke "make" "install" (string-append "PREFIX=" (assoc-ref outputs "out"))))) (invoke "make" "install" (string-append "PREFIX=" (assoc-ref outputs "out")))))
(add-after 'install 'wrap-programs
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((binpath (lambda (name)
(string-append (assoc-ref inputs name)
"/bin"))))
(for-each
(lambda (binary)
(wrap-program binary
`("PATH" ":" prefix
(,(binpath "grim")
,(binpath "jq")
,(binpath "hyprland")
,(binpath "hyprpicker")
,(binpath "libnotify")
,(binpath "sed")
,(binpath "slurp")
,(binpath "wl-clipboard")))))
(find-files (string-append (assoc-ref outputs "out")
"/bin"))))))
))) )))
(native-inputs (list scdoc)) (native-inputs (list scdoc))
(inputs
(list grim
jq
hyprland
hyprpicker
libnotify
sed
slurp
wl-clipboard))
(license license:expat) (license license:expat)
(home-page "https://github.com/hyprwm/contrib") (home-page "https://github.com/hyprwm/contrib")
(synopsis (string-append "official " contrib " script for hyprland")) (synopsis (string-append "official " contrib " script for hyprland"))
(description (string-append "official " contrib " script for hyprland")))))) (description (string-append "official " contrib " script for hyprland"))))))
(define-public hyprland-contrib-grimblast (define-public hyprland-contrib-grimblast
(hyprland-contrib-impl "grimblast")) (hyprland-contrib-impl "grimblast"))
(define-public hyprland-contrib-hyprprop (define-public hyprland-contrib-hyprprop
(hyprland-contrib-impl "hyprprop")) (hyprland-contrib-impl "hyprprop"))
(define-public hyprland-contrib-scratchpad (define-public hyprland-contrib-scratchpad
(hyprland-contrib-impl "scratchpad")) (hyprland-contrib-impl "scratchpad"))
(define-public hyprland-contrib-shellevents (define-public hyprland-contrib-shellevents
(hyprland-contrib-impl "shellevents")) (hyprland-contrib-impl "shellevents"))
(define-public hyprland-contrib (define-public hyprland-contrib
(package (package
(name "hyprland-contrib") (name "hyprland-contrib")

View file

@ -1,25 +0,0 @@
From 7b6f11ed0708d8775f42107e19d9099835e2498e Mon Sep 17 00:00:00 2001
From: Freya Murphy <freya@freyacat.org>
Date: Mon, 5 Aug 2024 17:52:48 -0400
Subject: [PATCH] fix cmake
---
CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index bb7a4d6..7f7e7ff 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -19,7 +19,7 @@ set(INCLUDE ${CMAKE_INSTALL_FULL_INCLUDEDIR})
set(LIBDIR ${CMAKE_INSTALL_FULL_LIBDIR})
find_package(PkgConfig REQUIRED)
-find_package(OpenGL REQUIRED COMPONENTS "GLES2")
+find_package(OpenGL REQUIRED)
find_package(hyprwayland-scanner 0.4.0 REQUIRED)
pkg_check_modules(
deps
--
2.45.1

View file

@ -1,33 +0,0 @@
From 33fac66982422104cc1c2664f9a841fc96295c13 Mon Sep 17 00:00:00 2001
From: Freya Murphy <freya@freyacat.org>
Date: Mon, 5 Aug 2024 20:35:50 -0400
Subject: [PATCH] fix cmake
---
CMakeLists.txt | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index fa58b63d..51ea6cfa 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -85,7 +84,7 @@ if(LEGACY_RENDERER)
else()
set(GLES_VERSION "GLES3")
endif()
-find_package(OpenGL REQUIRED COMPONENTS ${GLES_VERSION})
+find_package(OpenGL REQUIRED)
pkg_check_modules(
deps
@@ -314,7 +313,6 @@ protocolwayland()
# tools
add_subdirectory(hyprctl)
-add_subdirectory(hyprpm)
# binary and symlink
install(TARGETS Hyprland)
--
2.45.1