gnu: Add hyprland.

* gnu/packages/wm.scm (hyprland): New variable.

Change-Id: Idffb9309f61f30c5523e69bb6313162cff87b275
This commit is contained in:
Hilton Chain 2024-11-06 08:44:51 +08:00
parent 1425466bf6
commit e629e727a0
No known key found for this signature in database
GPG key ID: ACC66D09CA528292

View file

@ -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")