blob: 54889691c3a03257b831e2e5d47baee415960f1a (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
|
(define-module (sigils packages hyprland)
#:use-module (guix packages)
#:use-module (guix git-download)
#:use-module (guix download)
#:use-module (guix utils)
#:use-module (guix gexp)
#:use-module ((guix licenses)
#:prefix license:)
#:use-module (guix build-system meson)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages autotools)
#:use-module (gnu packages assembly)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages cmake)
#:use-module (gnu packages build-tools)
#:use-module (gnu packages xml)
#:use-module (gnu packages gcc)
#:use-module (gnu packages wm)
#:use-module (gnu packages pciutils)
#:use-module (gnu packages admin)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xorg)
#:use-module (gnu packages gtk)
#:use-module (gnu packages compression)
#:use-module (gnu packages gnome)
#:use-module (gnu packages cpp)
;; #:use-module (gnu packages bash)
;; #:use-module (gnu packages base)
#:use-module (gnu packages python))
;;; To upstream before the heat death of the universe
(define-public wayland-next
(package
(inherit wayland)
(name "wayland")
(version "1.23.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.freedesktop.org/wayland/wayland.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0jcjx1r25cyzdckm05wb3n1047ifgrwxh49vdwz4dvygfnvjvll8"))))))
(define-public libinput-next
(package
(inherit libinput)
(name "libinput")
(version "1.26.0")
(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
"010bqvic471prhja1j5xqni9dhqc36ikqpxi8ih0fs13wph70p4s"))))))
(define-public udis86
(let ((commit "5336633af70f3917760a6d441ff02d93477b0c86")
(revision "1"))
(package
(name "udis86")
(version (git-version "1.7.2" revision commit))
(home-page "http://udis86.sourceforge.net/")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/canihavesomecoffee/udis86.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0y5z1169wff578jylpafsww4px4y6gickhcs885a9c660d8xs9qy"))))
(build-system gnu-build-system)
(native-inputs (list pkg-config
autoconf
automake
libtool
python))
(arguments
(list #:configure-flags
#~(list "--enable-shared"
(string-append "--with-python="
#$(file-append python "/bin/python3")))))
(synopsis "Disassembler Library for x86 and x86-64")
(description "Udis86 is a disassembler for the x86 and x86-64 class of
instruction set architectures.")
(license license:bsd-2))))
;;; Hyprland
(define-public hyprutils
(package
(name "hyprutils")
(version "0.2.3")
(home-page "https://hyprland.org/")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://code.hyprland.org/hyprwm/hyprutils")
(commit (string-append "v" version))))
(sha256
(base32 "01dh24rf62gb6xm32f7mfv6wx0dxprr1q9y73hvv7xanrjyia2zn"))))
(build-system cmake-build-system)
(native-inputs (list gcc-13 ;; TODO: remove this when GCC 13 is the default
pkg-config))
(inputs (list pixman))
(synopsis "Hyprland utilities library used across the ecosystem")
(description "Hyprutils is a small C++ library for utilities used across
the Hypr* ecosystem.")
(license license:bsd-3)))
(define-public hyprwayland-scanner
(package
(name "hyprwayland-scanner")
(version "0.4.2")
(home-page "https://hyprland.org/")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://code.hyprland.org/hyprwm/hyprwayland-scanner")
(commit (string-append "v" version))))
(sha256
(base32 "0r7ay4zjkfyr0xd73wz99qhnqjq7nma98gm51wm9lmai4igw90qw"))))
(build-system cmake-build-system)
(native-inputs (list gcc-13 ;; TODO: remove this when GCC 13 is the default
pkg-config))
(inputs (list pugixml))
(arguments (list #:tests? #f)) ;; No tests
(synopsis "A Hyprland implementation of wayland-scanner")
(description "Hyprwayland-scanner automatically generates properly
RAII-ready C++ bindings for Wayland protocols, for either servers or
clients.")
(license license:bsd-3)))
(define-public aquamarine
(package
(name "aquamarine")
(version "0.4.3")
(home-page "https://hyprland.org/")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://code.hyprland.org/hyprwm/aquamarine")
(commit (string-append "v" version))))
(sha256
(base32 "0x1zz1ywchs0awkjkvdgskgqnp6pz5lqwmgr8g0zc0i7inhyg1p3"))))
(build-system cmake-build-system)
(native-inputs (list gcc-13 ;; TODO: remove this when GCC 13 is the default
pkg-config
hyprwayland-scanner))
(inputs (list wayland-next
libglvnd
mesa
wayland-protocols-next
hyprutils
libdisplay-info
libinput-next
libdrm
pixman
hwdata
libseat))
(arguments (list #:cmake cmake-3.30
#:tests? #f)) ;; TODO: tests use wayland yada yada
(synopsis "Lightweight rendering library")
(description "Aquamarine is a very light 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.")
(license license:bsd-3)))
(define-public hyprland-protocols
(package
(name "hyprland-protocols")
(version "0.4.0")
(home-page "https://hyprland.org/")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://code.hyprland.org/hyprwm/hyprland-protocols")
(commit (string-append "v" version))))
(sha256
(base32 "0x86w7z3415qvixfhk9a8v5fnbnxdydzx366qz0mpmfg5h86qyha"))))
(build-system meson-build-system)
(native-inputs (list gcc-13 ;; TODO: remove this when GCC 13 is the default
pkg-config))
(synopsis "Wayland protocol extensions for Hyprland")
(description "This repository exists in an effort to bridge the gap
between Hyprland and KDE/Gnome's functionality.
Since wayland-protocols is slow to change (on top of Hyprland not being
allowed to contribute), we have to maintain a set of protocols Hyprland uses
to plumb some things / add a few minor features. Most of the protocols here
are small, hyprland-exclusive plumbing protocols anyways.")
(license license:bsd-3)))
(define-public hyprlang
(package
(name "hyprlang")
(version "0.4.2")
(home-page "https://hyprland.org/")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://code.hyprland.org/hyprwm/hyprlang")
(commit (string-append "v" version))))
(sha256
(base32 "0s9lzp6s28j6liskdxf0xjawnjmcgsdsjf07n5yikbd7x61rd332"))))
(build-system cmake-build-system)
(native-inputs (list gcc-13 ;; TODO: remove this when GCC 13 is the default
pkg-config))
(synopsis "Hyprland configuration language")
(description "The hypr configuration language is a configuration language
for linux applications.")
(license license:bsd-3)))
(define-public hyprcursor
(package
(name "hyprcursor")
(version "0.1.10")
(home-page "https://hyprland.org/")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://code.hyprland.org/hyprwm/hyprcursor")
(commit (string-append "v" version))))
(sha256
(base32 "1rdn03ln7pqcwp8h4nmi7nc489q8y25dd3v4paq8ykvwzhvs3a1n"))))
(build-system cmake-build-system)
(native-inputs (list gcc-13 ;; TODO: remove this when GCC 13 is the default
pkg-config))
(inputs (list hyprlang
libzip
cairo
librsvg
tomlplusplus))
(arguments '(#:tests? #f)) ;; Tests need a loaded cursor theme. TODO: fix
(synopsis "The hyprland cursor format, library and utilities")
(description "Hyprcursor is a new cursor theme format made as a
replacement for XCursor.")
(license license:bsd-3)))
(define-public hyprland
(package
(name "hyprland")
(version "0.44.1")
(home-page "https://hyprland.org/")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://code.hyprland.org/hyprwm/Hyprland")
(commit (string-append "v" version))))
(sha256
(base32 "11vw1h9al4jvqprwbrmxvcpxwhvsjj398wbz4flqbnmxa8idvdq1"))))
(build-system meson-build-system)
(arguments (list #:meson meson-1.5
#:configure-flags '(list "-Dxwayland=enabled"
"-Dsystemd=disabled")))
;; #:phases #~(modify-phases %standard-phases
;; (add-after 'unpack 'patch-xwayland
;; (lambda* (#:key inputs #:allow-other-keys)
;; (substitute* "src/xwayland/Server.cpp"
;; (("Xwayland \\{\\}") #$(file-append xorg-server-xwayland "/bin/Xwayland"))))))))
(native-inputs (list gcc-14 ;; TODO: remove this when GCC 14 is the default
pkg-config
cmake-minimal
hyprwayland-scanner))
(propagated-inputs (list xorg-server-xwayland))
(inputs (list wayland-next
aquamarine
wayland-protocols-next
hyprland-protocols
hyprcursor
hyprlang
hyprutils
libglvnd
glib
mesa
cairo
pango
libxkbcommon
libinput-next
udis86
tomlplusplus
xorg-server-xwayland
;; X support
libxcb
xcb-util-errors
xcb-util-wm
libxcursor))
(synopsis "Independent, dynamic tiling Wayland compositor")
(description "Hyprland is a 100% independent, dynamic tiling Wayland compositor that doesn't sacrifice on its looks.")
(license license:bsd-3)))
|