From e629e727a0a0333c9727d2591e97b7dae89b60f4 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Wed, 6 Nov 2024 08:44:51 +0800 Subject: [PATCH] gnu: Add hyprland. * gnu/packages/wm.scm (hyprland): New variable. Change-Id: Idffb9309f61f30c5523e69bb6313162cff87b275 --- gnu/packages/wm.scm | 79 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index 35685877e8..0e8186e674 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -119,17 +119,21 @@ (define-module (gnu packages wm) #:use-module (gnu packages build-tools) #:use-module (gnu packages calendar) #:use-module (gnu packages check) + #:use-module (gnu packages cmake) #:use-module (gnu packages compression) + #:use-module (gnu packages cpp) #:use-module (gnu packages crates-io) #:use-module (gnu packages crates-graphics) #:use-module (gnu packages datastructures) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation) + #:use-module (gnu packages engineering) #:use-module (gnu packages flex) #:use-module (gnu packages fontutils) #:use-module (gnu packages freedesktop) #:use-module (gnu packages fribidi) #:use-module (gnu packages gawk) + #:use-module (gnu packages gcc) #:use-module (gnu packages gettext) #:use-module (gnu packages gl) #:use-module (gnu packages glib) @@ -315,6 +319,81 @@ (define-public herbstluftwm (home-page "https://herbstluftwm.org") (license license:bsd-2))) +(define-public hyprland + (package + (name "hyprland") + (version "0.44.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/hyprwm/Hyprland" + "/releases/download/v" version + "/source-v" version ".tar.gz")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Remove bundled sources and hyprpm utility. + (substitute* "CMakeLists.txt" + (("^add_subdirectory\\(hyprpm\\).*") "")) + (for-each delete-file-recursively + '("hyprpm" + "subprojects")))) + (sha256 + (base32 + "0qzwdlj0bwj267285l3gjklhafn3bln90z985yws4j5cbp7bj0d9")))) + (build-system cmake-build-system) + (arguments + (list #:cmake cmake-3.30 + #:tests? #f ;No tests. + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-path + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/xwayland/Server.cpp" + (("Xwayland( \\{\\})" _ suffix) + (string-append + (search-input-file inputs "bin/Xwayland") + suffix))) + (substitute* (find-files "src" "\\.cpp$") + (("/usr/local(/bin/Hyprland)" _ path) + (string-append #$output path)) + (("/usr") #$output) + (("\\<(addr2line|cat|lspci|nm)\\>" cmd) + (search-input-file + inputs (string-append "bin/" cmd))))))))) + (native-inputs + (list gcc-14 + hyprwayland-scanner + (module-ref (resolve-interface + '(gnu packages commencement)) + 'ld-wrapper) + pkg-config)) + (inputs + (list aquamarine + binutils + cairo + hyprcursor + hyprland-protocols + hyprlang + hyprutils + libinput-minimal + libxcursor + libxkbcommon + mesa + pango + pciutils + udis86 + wayland + wayland-protocols + xcb-util-errors + xcb-util-wm + xorg-server-xwayland)) + (home-page "https://hyprland.org/") + (synopsis "Dynamic tiling Wayland compositor") + (description + "Hyprland is a dynamic tiling Wayland compositor that doesn't sacrifice on +its looks.") + (license license:bsd-3))) + (define-public i3status (package (name "i3status")