(define-module (packages hyprland) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix gexp) #:use-module (guix build-system meson) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix git-download) #:use-module (gnu packages) #:use-module (gnu packages admin) #:use-module (gnu packages autotools) #:use-module (gnu packages base) #:use-module (gnu packages build-tools) #:use-module (gnu packages compression) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gcc) #:use-module (gnu packages gl) #:use-module (gnu packages gtk) #:use-module (gnu packages image) #:use-module (gnu packages linux) #:use-module (gnu packages ninja) #:use-module (gnu packages pciutils) #:use-module (gnu packages python) #:use-module (gnu packages pkg-config) #:use-module (gnu packages version-control) #:use-module (gnu packages xdisorg) #:use-module (gnu packages rust) #:use-module (gnu packages web) #:use-module (gnu packages wm) #:use-module (gnu packages xorg)) (define-public pixman (package (name "pixman") (version "0.42.2") (source (origin (method url-fetch) (uri (string-append "https://www.cairographics.org/releases/pixman-" version ".tar.gz")) (sha256 (base32 "0pk298iqxqr64vk3z6nhjwr6vjg1971zfrjkqy5r9zd2mppq057a")) (patches (search-patches "pixman-CVE-2016-5296.patch")))) (build-system gnu-build-system) (arguments `(#:configure-flags (list "--disable-static" "--enable-timers" "--enable-gnuplot"))) (native-inputs (list pkg-config)) (inputs (list libpng zlib)) (synopsis "Low-level pixel manipulation library") (description "Pixman is a low-level software library for pixel manipulation, providing features such as image compositing and trapezoid rasterisation.") (home-page "http://www.pixman.org/") (license license:expat))) (define-public wlroots (package (name "wlroots") (version "0.17.0") (source (origin (method git-fetch) (uri (git-reference (url "https://gitlab.freedesktop.org/wlroots/wlroots") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "11vb6xjvsjz7j2jkx00ygjp5xi63ni8ydd8wf3s0200ldr4ffjjm")))) (build-system meson-build-system) (arguments `(#:phases (modify-phases %standard-phases (add-before 'configure 'hardcode-paths (lambda* (#:key inputs #:allow-other-keys) (substitute* "xwayland/server.c" (("Xwayland") (string-append (assoc-ref inputs "xorg-server-xwayland") "/bin/Xwayland"))) #t)) (add-before 'configure 'fix-meson-file (lambda* (#:key native-inputs inputs #:allow-other-keys) (substitute* "backend/drm/meson.build" (("/usr/share/hwdata/pnp.ids") (string-append (assoc-ref (or native-inputs inputs) "hwdata") "/share/hwdata/pnp.ids")))))))) (propagated-inputs (list ;; As required by wlroots.pc. eudev libinput-minimal libxkbcommon mesa pixman libseat wayland wayland-protocols xcb-util-errors xcb-util-wm xorg-server-xwayland)) (native-inputs (cons* `(,hwdata "pnp") pkg-config wayland (if (%current-target-system) (list pkg-config-for-build) '()))) (home-page "https://gitlab.freedesktop.org/wlroots/wlroots/") (synopsis "Pluggable, composable, unopinionated modules for building a Wayland compositor") (description "wlroots is a set of pluggable, composable, unopinionated modules for building a Wayland compositor.") (license license:expat))) ; MIT license (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://www.hyprland.org") (synopsis "Dynamic tiling Wayland compositor based on wlroots") (description "Hyprland.") (license license:bsd-3) )) (define-public udis86 (package (name "udis86") (version "unstable-2022-10-13") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/canihavesomecoffee/udis86") (commit "5336633af70f3917760a6d441ff02d93477b0c86"))) (sha256 (base32 "0y5z1169wff578jylpafsww4px4y6gickhcs885a9c660d8xs9qy")))) (build-system gnu-build-system) (native-inputs (list autoconf automake libtool python-wrapper)) (inputs (list python-wrapper)) (home-page "blah") (synopsis "blub") (description "Disassembler") (license license:bsd-2))) (define-public hyprland (package (name "hyprland") (version "0.32.3") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/hyprwm/Hyprland") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "17h8gy7wvsxg1ypq70b0cldz6h599xi7fibawlm2g6cvxkmzdwzh")) (modules '((guix build utils))) (snippet #~(begin (substitute* "src/render/OpenGL.cpp" (("/usr") "$out")))))) (build-system meson-build-system) (arguments '(#:phases (modify-phases %standard-phases (add-before 'configure 'pre-configure (lambda* (#:key outputs #:allow-other-keys) (system "pkg-config --list-all") (system "pkg-config --libs wlroots") (system "pkg-config --mobversion wlroots") (system "patch -p1 -i nix/patches/meson-build.patch")))))) (native-inputs (list gcc-13 cmake jq git ninja mesa-headers meson pkg-config)) (inputs (list cairo egl-wayland glu glfw hyprland-protocols libglvnd libinput libxkbcommon libdrm mesa wayland wayland-protocols pango pciutils udis86 wlroots xcb-util)) (home-page "https://www.hyprland.org") (synopsis "Dynamic tiling Wayland compositor based on wlroots") (description "Hyprland.") (license license:bsd-3)))