From 6cc18a0d63f5494aee56f17d3b422d53993f8ab3 Mon Sep 17 00:00:00 2001 From: Ryan Schanzenbacher Date: Tue, 3 Sep 2024 14:09:35 -0400 Subject: added tridactyl stuffs --- modules/ryan-config/base-system.scm | 2 +- modules/ryan-packages/hyprland.bak | 495 +++++++++++++++++++++++++++++++++++ modules/ryan-packages/hyprland.scm | 497 ------------------------------------ 3 files changed, 496 insertions(+), 498 deletions(-) create mode 100644 modules/ryan-packages/hyprland.bak delete mode 100644 modules/ryan-packages/hyprland.scm (limited to 'modules') diff --git a/modules/ryan-config/base-system.scm b/modules/ryan-config/base-system.scm index ac1ac79..5034f4e 100644 --- a/modules/ryan-config/base-system.scm +++ b/modules/ryan-config/base-system.scm @@ -159,7 +159,7 @@ "wireplumber" "wireshark" "zsh")) - (list my-ca-certs swaylock-effects-new xdg-desktop-portal-hyprland-ryan virt-manager-ovmf bluez-ryan blueman-ryan swayidle-new waybar-new hyprlock) + (list my-ca-certs swaylock-effects-new xdg-desktop-portal-hyprland-ryan virt-manager-ovmf bluez-ryan blueman-ryan swayidle-new waybar-new) %my-base-packages )) ;; Below is the list of system services. To search for available diff --git a/modules/ryan-packages/hyprland.bak b/modules/ryan-packages/hyprland.bak new file mode 100644 index 0000000..b96aa4e --- /dev/null +++ b/modules/ryan-packages/hyprland.bak @@ -0,0 +1,495 @@ +(define-module (ryan-packages hyprland) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix build-system cmake) + #:use-module (guix build-system gnu) + #:use-module (guix build-system meson) + #:use-module (guix download) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module (guix packages) + #:use-module (gnu packages autotools) + #:use-module (gnu packages admin) + #:use-module (gnu packages base) + #:use-module (gnu packages compression) + #:use-module (gnu packages cpp) + #:use-module (gnu packages cmake) + #:use-module (gnu packages check) + #:use-module (gnu packages gcc) + #:use-module (gnu packages gtk) + #:use-module (gnu packages gnome) + #:use-module (gnu packages freedesktop) + #:use-module (gnu packages pciutils) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) + #:use-module (gnu packages xdisorg) + #:use-module (gnu packages xml) + #:use-module (gnu packages xorg) + #:use-module (gnu packages web) + #:use-module (gnu packages wm) + #:use-module (gnu packages gl) + #:use-module (ryan-packages gl) + #:use-module (guix utils)) + +; hyprland deps +(define-public libseat-0.8.0 + (package + (inherit libseat) + (name "libseat") + (version "0.8.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~kennylevinsen/seatd") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "02wzrgp8di6hqmicnm2fim6jnvbn62wy248ikvdvrhiywrb7i931")))))) + +(define-public libinput-minimal-1.26.1 + (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 cmake-minimal-3.27.0 + (package + (inherit cmake-minimal) + (name "cmake-minimal") + (version "3.27.0") + (source (origin + (inherit (package-source cmake-minimal)) + (method url-fetch) + (uri (string-append "https://cmake.org/files/v" + (version-major+minor version) + "/cmake-" version ".tar.gz")) + (sha256 + (base32 + "1f1w9mb868q38nzy145b6q9mc5waf8yi521cwfkd14xr51mxpvda")))) + (arguments + (substitute-keyword-arguments (package-arguments cmake-minimal) + ((#:configure-flags flags ''()) + #~(append (list "-DCMake_ENABLE_DEBUGGER=false") #$flags)) + ((#:phases phases) + #~(modify-phases #$phases + (delete 'delete-help-documentation) + (delete 'check))))))) + +; hypr suite + +(define hyprutils + (package + (name "hyprutils") + (version "0.2.1") + (source (origin + (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 pkg-config gcc-13)) + (inputs (list pixman)) + (home-page "https://hyprland.org/") + (synopsis "Small C++ library for utilities used across the Hypr* ecosystem") + (description "C++ library for utilities in the Hypr ecosystem") + (license license:bsd-3))) + +(define-public libliftoff + (package + (name "libliftoff") + (version "0.1.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/emersion/libliftoff" + "/archive/refs/tags/v" version ".tar.gz")) + (sha256 + (base32 + "17ssbjbv8njgvfha8zsx4nixpi5xxl1rwvk0lcacgqk0nmjyb23s")))) + (build-system meson-build-system) + (native-inputs (list gcc-13 + pkg-config + cmake-minimal + libdrm)) + (home-page "https://github.com/emersion/libliftoff") + (synopsis "Lightweight KMS plane library") + (description "") + (license license:expat))) + +(define udis86 + (let ((revision "186") + (commit "5336633af70f3917760a6d441ff02d93477b0c86")) + (package + (name "udis86") + (version (git-version "1.7.2" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/canihavesomecoffee/udis86") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0y5z1169wff578jylpafsww4px4y6gickhcs885a9c660d8xs9qy")))) + (build-system gnu-build-system) + (native-inputs (list autoconf automake libtool python-minimal-wrapper)) + (home-page "https://github.com/canihavesomecoffee/udis86") + (synopsis "Disassembler Library for x86 and x86-64") + (description + "Udis86 is a disassembler for the x86 and x86-64 class of instruction +set architectures. It consists of a C library called @code{libudis86} and a +command line tool called @code{udcli} that incorporates the library.") + (license license:bsd-2)))) + +(define hyprlang + (package + (name "hyprlang") + (version "0.5.2") + (source (origin + (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 + "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-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)) ;FIXME + (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-public hyprland-protocols + (package + (name "hyprland-protocols") + (version "0.2") + (source (origin + (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 + "1drjznj7fn6m5m6skhzh0p031cb5x0bb4i56jxnxwpwaa71g1z20")))) + (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-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)) ;No tests. + (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 hwdata-for-hyprland + (package + (inherit hwdata) + (arguments + (substitute-keyword-arguments (package-arguments hwdata) + ((#:phases _) #~%standard-phases))) + (outputs '("out")))) + +(define-public wayland-protocols-1.36 + (package + (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-public aquamarine + (package + (name "aquamarine") + (version "0.3.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 + "114fspibmrwvzdmzv4xdy000vg7mn9r5vas3pr1ndb9xyl15ja1s")))) + (build-system cmake-build-system) + (arguments + (list #:tests? #f)) + (native-inputs + (list gcc-13 + pkg-config + mesa-headers + hyprwayland-scanner + 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 + wayland-protocols-1.36)) + (inputs + (list hyprutils pixman)) + (home-page "https://hyprland.org") + (synopsis "Aquamarine is a very light linux rendering backend library ") + (description "") ;; TODO: this + (license license:bsd-3))) + + +(define xorg-server-xwayland-for-hyprland + (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 hyprland-ryan + (package + (name "hyprland") + (version "0.42.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hyprwm/Hyprland") + (commit (string-append "v" version)))) + (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 "1hp2xafvlymikxsi6pr8iik35g46683bg376n9hkjxgh9y6njzqv")))) + (build-system cmake-build-system) + (arguments + (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)))) + (("\\") (search-input-file inputs "bin/gcc")) + ;; NOTE: Add binutils to inputs will override ld-wrapper. + (("(execAndGet\\(\\(\")\\" _ 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 + hyprwayland-scanner + hwdata-for-hyprland)) + (inputs + (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 +effects, has a very flexible IPC model allowing for a lot of customization, and +more.") + (license license:bsd-3))) + + +(define-public hyprpaper + (package + (name "hyprpaper") + (version "0.7.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/hyprwm/hyprpaper" + "/archive/refs/tags/v" version ".tar.gz")) + (sha256 + (base32 + "1d23nsj5hzyxwvhkg9a7x1b8jgyqwzad91zb1894jnxr2d844h28")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f)) + (native-inputs + (list gcc-13 + pkg-config)) + (inputs + (list hyprlang + wayland-protocols-1.36 + wayland + cairo + libjpeg-turbo + libwebp + mesa + pango + libglvnd)) + (home-page "https://github.com/hyprwm/hyprpaper") + (license license:bsd-3) + (synopsis "Hyprpaper is a blazing fast wayland wallpaper utility with IPC controls.") + (description "Hyprpaper is a blazing fast wayland wallpaper utility with IPC controls."))) + + +(define-public hypridle + (package + (name "hypridle") + (version "0.1.2") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/hyprwm/hypridle" + "/archive/refs/tags/v" version ".tar.gz")) + (sha256 + (base32 + "0ybwip7yq9q569naz5bnrvcdz99648c4pln2zi30z21y333hpas0")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f)) + (native-inputs + (list gcc-13 + pkg-config)) + (inputs + (list hyprlang + wayland-protocols-1.36 + wayland + sdbus-c++)) + (home-page "https://github.com/hyprwm/hypridle") + (license license:bsd-3) + (synopsis "Hyprland's idle daemon ") + (description "Hyprland's idle daemon "))) diff --git a/modules/ryan-packages/hyprland.scm b/modules/ryan-packages/hyprland.scm deleted file mode 100644 index 04a9292..0000000 --- a/modules/ryan-packages/hyprland.scm +++ /dev/null @@ -1,497 +0,0 @@ -(define-module (ryan-packages hyprland) - #:use-module ((guix licenses) #:prefix license:) - #:use-module (guix build-system cmake) - #:use-module (guix build-system gnu) - #:use-module (guix build-system meson) - #:use-module (guix download) - #:use-module (guix gexp) - #:use-module (guix git-download) - #:use-module (guix packages) - #:use-module (gnu packages autotools) - #:use-module (gnu packages admin) - #:use-module (gnu packages base) - #:use-module (gnu packages compression) - #:use-module (gnu packages cpp) - #:use-module (gnu packages cmake) - #:use-module (gnu packages check) - #:use-module (gnu packages gcc) - #:use-module (gnu packages gtk) - #:use-module (gnu packages gnome) - #:use-module (gnu packages freedesktop) - #:use-module (gnu packages pciutils) - #:use-module (gnu packages pkg-config) - #:use-module (gnu packages python) - #:use-module (gnu packages xdisorg) - #:use-module (gnu packages xml) - #:use-module (gnu packages xorg) - #:use-module (gnu packages web) - #:use-module (gnu packages wm) - #:use-module (gnu packages gl) - #:use-module (ryan-packages gl) - #:use-module (guix utils)) - -; hyprland deps -(define-public libseat-0.8.0 - (package - (inherit libseat) - (name "libseat") - (version "0.8.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://git.sr.ht/~kennylevinsen/seatd") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "02wzrgp8di6hqmicnm2fim6jnvbn62wy248ikvdvrhiywrb7i931")))))) - -(define-public libinput-minimal-1.26.1 - (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 cmake-minimal-3.27.0 - (package - (inherit cmake-minimal) - (name "cmake-minimal") - (version "3.27.0") - (source (origin - (inherit (package-source cmake-minimal)) - (method url-fetch) - (uri (string-append "https://cmake.org/files/v" - (version-major+minor version) - "/cmake-" version ".tar.gz")) - (sha256 - (base32 - "1f1w9mb868q38nzy145b6q9mc5waf8yi521cwfkd14xr51mxpvda")))) - (arguments - (substitute-keyword-arguments (package-arguments cmake-minimal) - ((#:configure-flags flags ''()) - #~(append (list "-DCMake_ENABLE_DEBUGGER=false") #$flags)) - ((#:phases phases) - #~(modify-phases #$phases - (delete 'delete-help-documentation) - (delete 'check))))))) - -; hypr suite - -(define hyprutils - (package - (name "hyprutils") - (version "0.2.1") - (source (origin - (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 pkg-config gcc-13)) - (inputs (list pixman)) - (home-page "https://hyprland.org/") - (synopsis "Small C++ library for utilities used across the Hypr* ecosystem") - (description "C++ library for utilities in the Hypr ecosystem") - (license license:bsd-3))) - -(define-public libliftoff - (package - (name "libliftoff") - (version "0.1.0") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/emersion/libliftoff" - "/archive/refs/tags/v" version ".tar.gz")) - (sha256 - (base32 - "17ssbjbv8njgvfha8zsx4nixpi5xxl1rwvk0lcacgqk0nmjyb23s")))) - (build-system meson-build-system) - (native-inputs (list gcc-13 - pkg-config - cmake-minimal - libdrm)) - (home-page "https://github.com/emersion/libliftoff") - (synopsis "Lightweight KMS plane library") - (description "") - (license license:expat))) - -(define udis86 - (let ((revision "186") - (commit "5336633af70f3917760a6d441ff02d93477b0c86")) - (package - (name "udis86") - (version (git-version "1.7.2" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/canihavesomecoffee/udis86") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0y5z1169wff578jylpafsww4px4y6gickhcs885a9c660d8xs9qy")))) - (build-system gnu-build-system) - (native-inputs (list autoconf automake libtool python-minimal-wrapper)) - (home-page "https://github.com/canihavesomecoffee/udis86") - (synopsis "Disassembler Library for x86 and x86-64") - (description - "Udis86 is a disassembler for the x86 and x86-64 class of instruction -set architectures. It consists of a C library called @code{libudis86} and a -command line tool called @code{udcli} that incorporates the library.") - (license license:bsd-2)))) - -(define hyprlang - (package - (name "hyprlang") - (version "0.5.2") - (source (origin - (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 - "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-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)) ;FIXME - (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-public hyprland-protocols - (package - (name "hyprland-protocols") - (version "0.2") - (source (origin - (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 - "1drjznj7fn6m5m6skhzh0p031cb5x0bb4i56jxnxwpwaa71g1z20")))) - (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-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)) ;No tests. - (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 hwdata-for-hyprland - (package - (inherit hwdata) - (arguments - (substitute-keyword-arguments (package-arguments hwdata) - ((#:phases _) #~%standard-phases))) - (outputs '("out")))) - -(define-public wayland-protocols-1.36 - (package - (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-public aquamarine - (package - (name "aquamarine") - (version "0.3.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 - "114fspibmrwvzdmzv4xdy000vg7mn9r5vas3pr1ndb9xyl15ja1s")))) - (build-system cmake-build-system) - (arguments - (list #:tests? #f)) - (native-inputs - (list gcc-13 - pkg-config - mesa-headers - hyprwayland-scanner - 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 - wayland-protocols-1.36)) - (inputs - (list hyprutils pixman)) - (home-page "https://hyprland.org") - (synopsis "Aquamarine is a very light linux rendering backend library ") - (description "") ;; TODO: this - (license license:bsd-3))) - - -(define xorg-server-xwayland-for-hyprland - (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 hyprland - (package - (name "hyprland") - (version "0.42.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/hyprwm/Hyprland") - (commit (string-append "v" version)))) - (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 "1hp2xafvlymikxsi6pr8iik35g46683bg376n9hkjxgh9y6njzqv")))) - (build-system cmake-build-system) - (arguments - (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)))) - (("\\") (search-input-file inputs "bin/gcc")) - ;; NOTE: Add binutils to inputs will override ld-wrapper. - (("(execAndGet\\(\\(\")\\" _ 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 - hyprwayland-scanner - hwdata-for-hyprland)) - (inputs - (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 -effects, has a very flexible IPC model allowing for a lot of customization, and -more.") - (license license:bsd-3))) - - -(define-public hyprpaper - (package - (name "hyprpaper") - (version "0.7.0") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/hyprwm/hyprpaper" - "/archive/refs/tags/v" version ".tar.gz")) - (sha256 - (base32 - "1d23nsj5hzyxwvhkg9a7x1b8jgyqwzad91zb1894jnxr2d844h28")))) - (build-system cmake-build-system) - (arguments - `(#:tests? #f)) - (native-inputs - (list gcc-13 - pkg-config)) - (inputs - (list hyprlang - wayland-protocols-1.36 - wayland - cairo - libjpeg-turbo - libwebp - mesa - pango - libglvnd)) - (home-page "https://github.com/hyprwm/hyprpaper") - (license license:bsd-3) - (synopsis "Hyprpaper is a blazing fast wayland wallpaper utility with IPC controls.") - (description "Hyprpaper is a blazing fast wayland wallpaper utility with IPC controls."))) - - -(define-public hypridle - (package - (name "hypridle") - (version "0.1.2") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/hyprwm/hypridle" - "/archive/refs/tags/v" version ".tar.gz")) - (sha256 - (base32 - "0ybwip7yq9q569naz5bnrvcdz99648c4pln2zi30z21y333hpas0")))) - (build-system cmake-build-system) - (arguments - `(#:tests? #f)) - (native-inputs - (list gcc-13 - pkg-config)) - (inputs - (list hyprlang - wayland-protocols-1.36 - wayland - sdbus-c++)) - (home-page "https://github.com/hyprwm/hypridle") - (license license:bsd-3) - (synopsis "Hyprland's idle daemon ") - (description "Hyprland's idle daemon "))) - -hyprland -- cgit v1.2.3