[PATCH 00/11] gnu: Add hyprland.

  • Done
  • quality assurance status badge
Details
3 participants
  • Hilton Chain
  • John Kehayias
  • Noé Lopez
Owner
unassigned
Submitted by
Hilton Chain
Severity
normal
H
H
Hilton Chain wrote on 6 Nov 08:30 +0100
(address . guix-patches@gnu.org)(name . Hilton Chain)(address . hako@ultrarare.space)
cover.1730877074.git.hako@ultrarare.space
Hello Guix,

This series (finally!) adds Hyprland and all its dependencies. Since these
packages are moving from my channel, two other packages, hyprpicker and
grimblast are also added here.

Thanks

Hilton Chain (8):
gnu: Add udis86.
gnu: Add hyprwayland-scanner.
gnu: Add hyprland-protocols.
gnu: Add hyprlang.
gnu: Add hyprcursor.
gnu: Add hyprland.
gnu: Add hyprpicker.
gnu: Add grimblast.

John Kehayias (2):
gnu: Add hyprutils.
gnu: Add aquamarine.

Ryan Schanzenbacher (1):
gnu: Add xdg-desktop-portal-hyprland.

gnu/packages/cpp.scm | 47 ++++++++++++
gnu/packages/engineering.scm | 28 +++++++
gnu/packages/freedesktop.scm | 97 ++++++++++++++++++++++++
gnu/packages/wm.scm | 139 +++++++++++++++++++++++++++++++++++
gnu/packages/xdisorg.scm | 107 +++++++++++++++++++++++++++
5 files changed, 418 insertions(+)


base-commit: f5ca62fcadf7a1a61cb13dc89edcfd3e9884e9e0
--
2.46.0
H
H
Hilton Chain wrote on 6 Nov 08:36 +0100
[PATCH 01/11] gnu: Add udis86.
(address . 74223@debbugs.gnu.org)(name . Hilton Chain)(address . hako@ultrarare.space)
207cca13b8755ca8c5d8d0c91b36e8736d5b1d1b.1730877074.git.hako@ultrarare.space
* gnu/packages/engineering.scm (udis86): New variable.

Change-Id: I95d6e1dc6dbd07812377633a3290eea9b8102456
---
gnu/packages/engineering.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Toggle diff (41 lines)
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 6f449f0c39..0b3431e69c 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -4248,6 +4248,34 @@ (define-public cura-binary-data
compiled translations. Prebuilt Firmware files are removed.")
(license license:agpl3)))
+(define-public udis86
+ (let ((commit "5336633af70f3917760a6d441ff02d93477b0c86")
+ (revision "0"))
+ (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))
+ ;; Fork of https://github.com/vmt/udis86
+ (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} which
+provides a clean and simple interface to decode and inspect a stream of raw
+binary data as disassembled instructions in a structured manner, and a command
+line tool called @command{udcli} that incorporates the library.")
+ (license license:bsd-2))))
+
(define-public uranium
(package
(name "uranium")
--
2.46.0
H
H
Hilton Chain wrote on 6 Nov 08:36 +0100
[PATCH 02/11] gnu: Add hyprutils.
(address . 74223@debbugs.gnu.org)
386dfd7d68ac833567d81236e3177c51852e3e28.1730877074.git.hako@ultrarare.space
From: John Kehayias <john.kehayias@protonmail.com>

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

Modified-by: Hilton Chain <hako@ultrarare.space>
Change-Id: Ife120a7c2d66b7189a3116f8dbcb53be8dafd58e
---
gnu/packages/cpp.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (44 lines)
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index f8e8557ef1..ddc9d7c136 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -113,6 +113,7 @@ (define-module (gnu packages cpp)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages tls)
#:use-module (gnu packages web)
+ #:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
;; Using autoload to avoid a cycle.
@@ -663,6 +664,29 @@ (define-public google-highway
library for SIMD (Single Instruction, Multiple Data) with runtime dispatch.")
(license license:asl2.0)))
+(define-public hyprutils
+ (package
+ (name "hyprutils")
+ (version "0.2.3")
+ (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
+ "01dh24rf62gb6xm32f7mfv6wx0dxprr1q9y73hvv7xanrjyia2zn"))))
+ (build-system cmake-build-system)
+ (native-inputs (list gcc-13 pkg-config))
+ (inputs (list pixman))
+ (home-page "https://github.com/hyprwm/hyprutils")
+ (synopsis "C++ library for utilities used across Hyprland ecosystem")
+ (description
+ "This package provides a C++ library for utilities used across Hyprland
+ecosystem.")
+ (license license:bsd-3)))
+
(define-public xsimd-benchmark
(package
(inherit xsimd)
--
2.46.0
H
H
Hilton Chain wrote on 6 Nov 08:36 +0100
[PATCH 03/11] gnu: Add hyprwayland-scanner.
(address . 74223@debbugs.gnu.org)(name . Hilton Chain)(address . hako@ultrarare.space)
d4286d4d738beab49cb5e0b43b47d50e1a8f9ae2.1730877074.git.hako@ultrarare.space
* gnu/packages/wm.scm (hyprwayland-scanner): New variable.

Change-Id: I492006356e3abc68609d6c73738a0dfd3b15681c
---
gnu/packages/freedesktop.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (45 lines)
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index bd34615e68..57d3322139 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -95,6 +95,7 @@ (define-module (gnu packages freedesktop)
#:use-module (gnu packages file)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gawk)
+ #:use-module (gnu packages gcc)
#:use-module (gnu packages gettext)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages gl)
@@ -1339,6 +1340,30 @@ (define-public python-pyxdg
Python.")
(license license:lgpl2.0)))
+(define-public hyprwayland-scanner
+ (package
+ (name "hyprwayland-scanner")
+ (version "0.4.2")
+ (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
+ "0r7ay4zjkfyr0xd73wz99qhnqjq7nma98gm51wm9lmai4igw90qw"))))
+ (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 @code{wayland-scanner}")
+ (description
+ "This package provides a Hyprland implementation of @code{wayland-scanner},
+in and for C++.")
+ (license license:bsd-3)))
+
(define-public wayland
(package
(name "wayland")
--
2.46.0
H
H
Hilton Chain wrote on 6 Nov 08:36 +0100
[PATCH 04/11] gnu: Add hyprland-protocols.
(address . 74223@debbugs.gnu.org)(name . Hilton Chain)(address . hako@ultrarare.space)
f7d75c407e28175a9d28cb2c37f501bcda254291.1730877074.git.hako@ultrarare.space
* gnu/packages/wm.scm (hyprland-protocols): New variable.

Change-Id: If986f2b5f8c0070807484e60431bb4c47f901edc
---
gnu/packages/freedesktop.scm | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)

Toggle diff (33 lines)
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 57d3322139..7969603613 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -1340,6 +1340,26 @@ (define-public python-pyxdg
Python.")
(license license:lgpl2.0)))
+(define-public hyprland-protocols
+ (package
+ (name "hyprland-protocols")
+ (version "0.4.0")
+ (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
+ "0x86w7z3415qvixfhk9a8v5fnbnxdydzx366qz0mpmfg5h86qyha"))))
+ (build-system meson-build-system)
+ (home-page "https://github.com/hyprwm/hyprland-protocols")
+ (synopsis "Wayland protocol extensions for Hyprland")
+ (description
+ "This package provides Wayland protocol extensions for Hyprland.")
+ (license license:bsd-3)))
+
(define-public hyprwayland-scanner
(package
(name "hyprwayland-scanner")
--
2.46.0
H
H
Hilton Chain wrote on 6 Nov 08:36 +0100
[PATCH 06/11] gnu: Add hyprcursor.
(address . 74223@debbugs.gnu.org)(name . Hilton Chain)(address . hako@ultrarare.space)
6d7200cd418861aff6d5c86b9a3bb1afa34e4365.1730877074.git.hako@ultrarare.space
* gnu/packages/wm.scm (hyprcursor): New variable.

Change-Id: I3e753cbaf75244adca65f0478cabd10c89af4286
---
gnu/packages/xdisorg.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (44 lines)
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index a75e9cd6ba..033b86231e 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -115,6 +115,7 @@ (define-module (gnu packages xdisorg)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gawk)
+ #:use-module (gnu packages gcc)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gl)
#:use-module (gnu packages gl)
@@ -3638,6 +3639,29 @@ (define-public hsetroot
This package is the fork of hsetroot by Hyriand.")
(license license:gpl2+)))
+(define-public hyprcursor
+ (package
+ (name "hyprcursor")
+ (version "0.1.10")
+ (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
+ "1rdn03ln7pqcwp8h4nmi7nc489q8y25dd3v4paq8ykvwzhvs3a1n"))))
+ (build-system cmake-build-system)
+ (arguments (list #:tests? #f)) ;TODO: No themes currently packaged.
+ (native-inputs (list gcc-13 pkg-config))
+ (inputs (list cairo hyprlang (librsvg-for-system) libzip tomlplusplus))
+ (home-page "https://standards.hyprland.org/hyprcursor/")
+ (synopsis "Cursor theme format")
+ (description
+ "This package provides Hyprland cursor format, library and utilities.")
+ (license license:bsd-3)))
+
(define-public jumpapp
(package
(name "jumpapp")
--
2.46.0
H
H
Hilton Chain wrote on 6 Nov 08:36 +0100
[PATCH 05/11] gnu: Add hyprlang.
(address . 74223@debbugs.gnu.org)(name . Hilton Chain)(address . hako@ultrarare.space)
424ba09ef7f9e55308df79b7569c707587e8ffe5.1730877074.git.hako@ultrarare.space
* gnu/packages/wm.scm (hyprlang): New variable.

Change-Id: Ie585412bd26bff2c5949ed3aef15c37f6958dc0b
---
gnu/packages/cpp.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index ddc9d7c136..5d01c8afb6 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -664,6 +664,29 @@ (define-public google-highway
library for SIMD (Single Instruction, Multiple Data) with runtime dispatch.")
(license license:asl2.0)))
+(define-public hyprlang
+ (package
+ (name "hyprlang")
+ (version "0.5.3")
+ (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
+ "0yvfrz3hdyxzhngzhr0bgc5279ra5fv01hbfi6pdj84pz0lpaw02"))))
+ (build-system cmake-build-system)
+ (native-inputs (list gcc-13 pkg-config))
+ (inputs (list hyprutils))
+ (home-page "https://wiki.hyprland.org/Hypr-Ecosystem/hyprlang/")
+ (synopsis "Official implementation library for hypr config language")
+ (description
+ "This package provides the official implementation for hypr configuration
+language used in Hyprland.")
+ (license license:lgpl3)))
+
(define-public hyprutils
(package
(name "hyprutils")
--
2.46.0
H
H
Hilton Chain wrote on 6 Nov 08:36 +0100
[PATCH 09/11] gnu: Add xdg-desktop-portal-hyprland.
(address . 74223@debbugs.gnu.org)
3fd8afbd7d61de3707161cefc1e770882ed09b98.1730877074.git.hako@ultrarare.space
From: Ryan Schanzenbacher <ryan@rschanz.org>

* gnu/packages/freedesktop.scm (xdg-desktop-portal-hyprland): New variable.

Co-authored-by: Hilton Chain <hako@ultrarare.space>
Change-Id: If8c413319b089ed5d8d75aa0503f886a81697278
---
gnu/packages/freedesktop.scm | 52 ++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)

Toggle diff (79 lines)
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 7969603613..43ebecabbb 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -83,6 +83,7 @@ (define-module (gnu packages freedesktop)
#:use-module (gnu packages check)
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages cpp)
#:use-module (gnu packages crypto)
#:use-module (gnu packages cryptsetup)
#:use-module (gnu packages cups)
@@ -141,6 +142,7 @@ (define-module (gnu packages freedesktop)
#:use-module (gnu packages virtualization)
#:use-module (gnu packages w3m)
#:use-module (gnu packages web)
+ #:use-module (gnu packages wm)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
@@ -3193,6 +3195,56 @@ (define-public xdg-desktop-portal-gtk
interfaces.")
(license license:lgpl2.1+)))
+(define-public xdg-desktop-portal-hyprland
+ (package
+ (name "xdg-desktop-portal-hyprland")
+ (version "1.3.6")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/hyprwm/xdg-desktop-portal-hyprland")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "17ba9jkccyp8gv79ds70khgm5wm6x8zs5m9nkilq4n2j7fsa8cfl"))))
+ (build-system qt-build-system)
+ (arguments
+ (list #:tests? #f ;No tests
+ #:qtbase qtbase
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* (find-files "." "\\.cp?*$")
+ (("/bin/sh") "sh")
+ (("\\<(sh|grim|hyprctl|slurp)\\>" _ cmd)
+ (search-input-file inputs (string-append "bin/" cmd))))
+ (substitute* "src/shared/ScreencopyShared.cpp"
+ (("\\<(hyprland-share-picker)\\>" _ cmd)
+ (string-append #$output "/bin/" cmd))))))))
+ (native-inputs
+ (list gcc-13 hyprwayland-scanner pkg-config))
+ (inputs
+ (list bash-minimal
+ grim
+ hyprland
+ hyprland-protocols
+ hyprlang
+ hyprutils
+ mesa
+ pipewire
+ qtwayland
+ sdbus-c++
+ slurp
+ wayland
+ wayland-protocols))
+ (home-page "https://github.com/hyprwm/xdg-desktop-portal-hyprland")
+ (synopsis "Hyprland implementation of @code{xdg-desktop-portal} backend")
+ (description
+ "This package provides an @code{xdg-desktop-portal} backend for Hyprland.")
+ (license license:bsd-3)))
+
(define-public xdg-desktop-portal-kde
(package
(name "xdg-desktop-portal-kde")
--
2.46.0
H
H
Hilton Chain wrote on 6 Nov 08:36 +0100
[PATCH 07/11] gnu: Add aquamarine.
(address . 74223@debbugs.gnu.org)
6e5cb1686455c6aa58636e8c5fd5d943d05134e3.1730877074.git.hako@ultrarare.space
From: John Kehayias <john.kehayias@protonmail.com>

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

Modified-by: Hilton Chain <hako@ultrarare.space>
Change-Id: Ibf62dd86d8dd336a4552d767dc0c235db5e57106
---
gnu/packages/xdisorg.scm | 43 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 43 insertions(+)

Toggle diff (70 lines)
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 033b86231e..34ddad9123 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -105,6 +105,7 @@ (define-module (gnu packages xdisorg)
#:use-module (gnu packages bison)
#:use-module (gnu packages build-tools)
#:use-module (gnu packages check)
+ #:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
#:use-module (gnu packages crypto)
@@ -138,6 +139,7 @@ (define-module (gnu packages xdisorg)
#:use-module (gnu packages man)
#:use-module (gnu packages maths)
#:use-module (gnu packages ncurses)
+ #:use-module (gnu packages pciutils)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages polkit)
@@ -232,6 +234,47 @@ (define-public xvkbd
command line, without displaying a keyboard at all.")
(license license:gpl2+)))
+(define-public aquamarine
+ (package
+ (name "aquamarine")
+ (version "0.4.3")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/hyprwm/aquamarine")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0x1zz1ywchs0awkjkvdgskgqnp6pz5lqwmgr8g0zc0i7inhyg1p3"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list #:cmake cmake-3.30
+ ;; TODO: Figure out what's expected in the test environment.
+ #:tests? #f))
+ (native-inputs
+ (list gcc-13 hyprwayland-scanner pkg-config))
+ (inputs
+ (list eudev
+ hwdata
+ hyprutils
+ libdisplay-info
+ libglvnd
+ libinput-minimal
+ libseat
+ mesa
+ pixman
+ wayland
+ wayland-protocols))
+ (home-page "https://github.com/hyprwm/aquamarine")
+ (synopsis "Linux rendering backend library")
+ (description
+ "Aquamarine is a C++-only Linux rendering backend library. It provides
+basic abstractions for an application to render on a Wayland session (in a
+window) or a native DRM session. It is agnostic of the rendering API (Vulkan
+/ OpenGL).")
+ (license license:bsd-3)))
+
(define-public arandr
(package
(name "arandr")
--
2.46.0
H
H
Hilton Chain wrote on 6 Nov 08:36 +0100
[PATCH 10/11] gnu: Add hyprpicker.
(address . 74223@debbugs.gnu.org)(name . Hilton Chain)(address . hako@ultrarare.space)
551eeff0a335652f9c232a32d111dd3fff47a844.1730877074.git.hako@ultrarare.space
* gnu/packages/wm.scm (hyprpicker): New variable.

Change-Id: I09cfc8b465ca0ac5d4dcbae34f680e80c74fd56f
---
gnu/packages/xdisorg.scm | 40 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)

Toggle diff (53 lines)
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 34ddad9123..9a9a416def 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -3705,6 +3705,46 @@ (define-public hyprcursor
"This package provides Hyprland cursor format, library and utilities.")
(license license:bsd-3)))
+(define-public hyprpicker
+ (package
+ (name "hyprpicker")
+ (version "0.4.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/hyprwm/hyprpicker")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "11r06c62dqj81r27qhf36f3smnjyk3vz8naa655m8khv4qqvmvc2"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list #:tests? #f ;No tests.
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/clipboard/Clipboard.cpp"
+ (("wl-copy" cmd)
+ (search-input-file
+ inputs (string-append "bin/" cmd)))))))))
+ (native-inputs (list gcc-13 hyprwayland-scanner pkg-config))
+ (inputs
+ (list cairo
+ hyprutils
+ libjpeg-turbo
+ libxkbcommon
+ pango
+ wayland
+ wayland-protocols
+ wl-clipboard))
+ (home-page "https://github.com/hyprwm/hyprpicker")
+ (synopsis "Wayland color picker compatible with @code{wlroots}")
+ (description
+ "This package provides a @code{wlroots}-compatible Wayland color picker.")
+ (license license:bsd-3)))
+
(define-public jumpapp
(package
(name "jumpapp")
--
2.46.0
H
H
Hilton Chain wrote on 6 Nov 08:36 +0100
[PATCH 08/11] gnu: Add hyprland.
(address . 74223@debbugs.gnu.org)(name . Hilton Chain)(address . hako@ultrarare.space)
a89e2254435d725f8b372ed4a57d622563d08069.1730877074.git.hako@ultrarare.space
* gnu/packages/wm.scm (hyprland): New variable.

Change-Id: Idffb9309f61f30c5523e69bb6313162cff87b275
---
gnu/packages/wm.scm | 79 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 79 insertions(+)

Toggle diff (110 lines)
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 836d4b6c04..01a6677e9a 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -118,17 +118,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)
@@ -314,6 +318,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")
--
2.46.0
H
H
Hilton Chain wrote on 6 Nov 08:36 +0100
[PATCH 11/11] gnu: Add grimblast.
(address . 74223@debbugs.gnu.org)(name . Hilton Chain)(address . hako@ultrarare.space)
53d47bb281db1f13db3b41105edde2b3788801af.1730877074.git.hako@ultrarare.space
* gnu/packages/wm.scm (grimblast): New variable.

Change-Id: I38d8e0ff92e8724cec64d37d036ff307c96a2cc0
---
gnu/packages/wm.scm | 60 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 60 insertions(+)

Toggle diff (73 lines)
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 01a6677e9a..bbecbf47e2 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -3766,6 +3766,66 @@ (define-public avizo
used for multimedia keys.")
(license license:gpl3+)))
+(define-public grimblast
+ (let ((commit "9d67858b437d4a1299be496d371b66fc0d3e01f6")
+ (revision "1"))
+ (package
+ (name "grimblast")
+ (version (git-version "0.1" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/hyprwm/contrib")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1v0v5j7ingx80b5zpyz8ilfhz0kh9dcssnx6iwwl45zzgp915cpv"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:tests? #f ;No tests.
+ #:make-flags
+ #~(list (string-append "PREFIX=" #$output))
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)
+ (add-after 'unpack 'chdir
+ (lambda _
+ (chdir "grimblast")))
+ (add-after 'chdir 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "grimblast"
+ (((string-append "\\<(" (string-join
+ '("date"
+ "grim"
+ "slurp"
+ "hyprctl"
+ "hyprpicker"
+ "wl-copy"
+ "jq"
+ "notify-send")
+ "|")
+ ")\\>")
+ cmd)
+ (search-input-file
+ inputs (string-append "bin/" cmd)))))))))
+ (native-inputs (list scdoc))
+ (inputs
+ (list coreutils-minimal
+ grim
+ jq
+ libnotify
+ slurp
+ hyprland
+ hyprpicker
+ wl-clipboard))
+ (home-page "https://github.com/hyprwm/contrib")
+ (synopsis "Screenshot utility for Hyprland")
+ (description
+ "This package provides a Hyprland version of @code{grimshot} for
+screenshoting.")
+ (license license:expat))))
+
(define-public grimshot
(package
(name "grimshot")
--
2.46.0
N
N
Noé Lopez wrote on 6 Nov 19:07 +0100
Re: [PATCH 00/11] gnu: Add hyprland.
(name . Hilton Chain)(address . hako@ultrarare.space)
87o72snsmz.fsf@xn--no-cja.eu
Hi,

Thanks for this patch, hyprland works great as far as I tested it :)

grimblast and hyprpicker didn’t work for me, and then gnome crashed
losing my mail progress. Maybe I’m not supposed to run two wayland
sessions at once ?

Anyways, here are a few suggestions, I don’t have commit access so
don’t take them too seriously :P

Toggle quote (4 lines)
>+ (native-inputs (list autoconf automake libtool python-minimal-wrapper))
>+ ;; Fork of https://github.com/vmt/udis86
>+ (home-page "https://github.com/canihavesomecoffee/udis86")

Comments should end with a dot.

Toggle quote (7 lines)
>+ (inputs (list pixman))
>+ (home-page "https://github.com/hyprwm/hyprutils")
>+ (synopsis "C++ library for utilities used across Hyprland ecosystem")
>+ (description
>+ "This package provides a C++ library for utilities used across Hyprland
>+ecosystem.")

A « the » is missing before « Hyprland ».

Good evening,
Noé
N
N
Noé Lopez wrote on 6 Nov 21:24 +0100
(name . Hilton Chain)(address . hako@ultrarare.space)(address . 74223@debbugs.gnu.org)
87zfmcyut8.fsf@xn--no-cja.eu
My cursor is completely broken now in GNOME, even after reconfiguring my
system :/ Is this an expected issue ?

Good evening,
Noé
H
H
Hilton Chain wrote on 8 Nov 09:55 +0100
(name . Noé Lopez)(address . noe@xn--no-cja.eu)(address . 74223@debbugs.gnu.org)
877c9e14wr.wl-hako@ultrarare.space
Hi Noé,

On Thu, 07 Nov 2024 02:07:00 +0800,
Noé Lopez wrote:
Toggle quote (9 lines)
>
> Hi,
>
> Thanks for this patch, hyprland works great as far as I tested it :)
>
> grimblast and hyprpicker didn’t work for me, and then gnome crashed
> losing my mail progress. Maybe I’m not supposed to run two wayland
> sessions at once ?

hyprpicker is for wlroots-based compositors, and grimblast depends on Hyprland
at runtime, I guess you were running them on GNOME?

Toggle quote (3 lines)
> Anyways, here are a few suggestions, I don’t have commit access so
> don’t take them too seriously :P

Don't worry! Any review counts and helps :)

Toggle quote (7 lines)
>
> >+ (native-inputs (list autoconf automake libtool python-minimal-wrapper))
> >+ ;; Fork of https://github.com/vmt/udis86
> >+ (home-page "https://github.com/canihavesomecoffee/udis86")
>
> Comments should end with a dot.

Ahh, forgot about this URL :(

Toggle quote (9 lines)
> >+ (inputs (list pixman))
> >+ (home-page "https://github.com/hyprwm/hyprutils")
> >+ (synopsis "C++ library for utilities used across Hyprland ecosystem")
> >+ (description
> >+ "This package provides a C++ library for utilities used across Hyprland
> >+ecosystem.")
>
> A « the » is missing before « Hyprland ».

I stripped it by intention, does it break the sentence?


Thanks
H
H
Hilton Chain wrote on 8 Nov 10:16 +0100
(name . Noé Lopez)(address . noe@xn--no-cja.eu)(address . 74223@debbugs.gnu.org)
875xoy13xg.wl-hako@ultrarare.space
Hi Noé,

On Thu, 07 Nov 2024 04:24:35 +0800,
Noé Lopez wrote:
Toggle quote (4 lines)
>
> My cursor is completely broken now in GNOME, even after reconfiguring my
> system :/ Is this an expected issue ?

Cursor issue sounds to be related to hyprcursor. But how does it interfere with
GNOME? Have you fixed it now?


Thanks
N
N
Noé Lopez wrote on 23 Nov 14:51 +0100
(name . Hilton Chain)(address . hako@ultrarare.space)(address . 74223@debbugs.gnu.org)
87y11ajbxw.fsf@xn--no-cja.eu
Hilton Chain <hako@ultrarare.space> writes:

Toggle quote (17 lines)
> Hi Noé,
>
> On Thu, 07 Nov 2024 02:07:00 +0800,
> Noé Lopez wrote:
>>
>> Hi,
>>
>> Thanks for this patch, hyprland works great as far as I tested it :)
>>
>> grimblast and hyprpicker didn’t work for me, and then gnome crashed
>> losing my mail progress. Maybe I’m not supposed to run two wayland
>> sessions at once ?
>
> hyprpicker is for wlroots-based compositors, and grimblast depends on Hyprland
> at runtime, I guess you were running them on GNOME?
>

They were not working in a guix shell in kitty in hyprland in a tty.

Toggle quote (7 lines)
>> My cursor is completely broken now in GNOME, even after reconfiguring my
>> system :/ Is this an expected issue ?
>
>Cursor issue sounds to be related to hyprcursor. But how does it interfere with
>GNOME? Have you fixed it now?
>

I found the culprit, a theme unsupported by gnome was selected as cursor
theme in dconf, I suppose hyprland set it to an hyprcursor theme?

Here’s a mention of that in the wiki:

Also, this applied to me:
Toggle quote (4 lines)
>My cursor is a hyprland icon?
>
>This means you have no hyprcursor theme installed, and hyprland failed to find an XCursor theme as well. Install a cursor theme.

Is it possible that providing an hyprcursor theme with hyprland would
avoid this issue?

Good evening,
Noé
H
H
Hilton Chain wrote on 30 Nov 17:53 +0100
(name . Noé Lopez)(address . noe@xn--no-cja.eu)(address . 74223@debbugs.gnu.org)
877c8kk6i6.wl-hako@ultrarare.space
On Sat, 23 Nov 2024 21:51:07 +0800,
Noé Lopez wrote:
Toggle quote (15 lines)
>
> Hilton Chain <hako@ultrarare.space> writes:
>
> > On Thu, 07 Nov 2024 02:07:00 +0800,
> > Noé Lopez wrote:
> >>
> >> grimblast and hyprpicker didn’t work for me, and then gnome crashed losing
> >> my mail progress. Maybe I’m not supposed to run two wayland sessions at
> >> once ?
> >
> > hyprpicker is for wlroots-based compositors, and grimblast depends on
> > Hyprland at runtime, I guess you were running them on GNOME?
>
> They were not working in a guix shell in kitty in hyprland in a tty.

Just tried Hyprland and they worked fine for me. Not sure if this is a setup
issue, since I'm using sway and its environment is similar to what Hyprland
expects.

Toggle quote (21 lines)
> >> My cursor is completely broken now in GNOME, even after reconfiguring my
> >> system :/ Is this an expected issue ?
> >
> >Cursor issue sounds to be related to hyprcursor. But how does it interfere
> >with GNOME? Have you fixed it now?
>
> I found the culprit, a theme unsupported by gnome was selected as cursor theme
> in dconf, I suppose hyprland set it to an hyprcursor theme?
>
> Here’s a mention of that in the wiki:
> https://wiki.hyprland.org/Hypr-Ecosystem/hyprcursor/#important-notes
>
> Also, this applied to me:
> >My cursor is a hyprland icon?
> >
> >This means you have no hyprcursor theme installed, and hyprland failed to
> >find an XCursor theme as well. Install a cursor theme.
>
> Is it possible that providing an hyprcursor theme with hyprland would avoid
> this issue?

Since there's no official theme, I don't think propagating one is suitable. And
Hyprland falls back to the "default" theme, which is the standard way[1].

XCursor themes are looked up in $XCURSOR_PATH, in Guix it's "icons" directory
under $XDG_DATA_DIRS, plus "$HOME/.icons". In my case I added a "default" theme
in "$HOME/.icons".

---
H
H
Hilton Chain wrote 36 hours ago
Re: bug#74223: Acknowledgement ([PATCH 00/11] gnu: Add hyprland.)
(address . 74223-done@debbugs.gnu.org)
87seqyvcoo.wl-hako@ultrarare.space
Applied as 28e2e185aeec...f1263f41ed74 with adjustments on comments, closing.
Closed
J
J
John Kehayias wrote 17 hours ago
(name . Hilton Chain)(address . hako@ultrarare.space)
875xntr4bg.fsf@protonmail.com
On Sun, Dec 08, 2024 at 03:47 PM, Hilton Chain wrote:

Toggle quote (2 lines)
> Applied as 28e2e185aeec...f1263f41ed74 with adjustments on comments, closing.

Thanks for your work on getting Hyprland to Guix! I just updated it to
the latest version as well.
Closed
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 74223@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 74223
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch