gnu: Add sbcl-stumpwm-numpad-layouts.
[jackhill/guix/guix.git] / gnu / packages / wm.scm
CommitLineData
bda2ded6
ED
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
6e38c4be 3;;; Copyright © 2015 Siniša Biđin <sinisa@bidin.eu>
0ede252b 4;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org>
1268e52d 5;;; Copyright © 2015 xd1le <elisp.vim@gmail.com>
ca80b8ba 6;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
0ede252b 7;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
a8360892 8;;; Copyright © 2016, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
766a22fb 9;;; Copyright © 2016 Al McElrath <hello@yrns.org>
3d1240aa 10;;; Copyright © 2016 Carlo Zancanaro <carlo@zancanaro.id.au>
a0158c26 11;;; Copyright © 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
9593caff 12;;; Copyright © 2016, 2017, 2018, 2020 Nikita <nikita@n0.is>
22037a32 13;;; Copyright © 2016 doncatnip <gnopap@gmail.com>
37356e0b 14;;; Copyright © 2016 Ivan Vilata i Balaguer <ivan@selidor.net>
174b091f 15;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
f5fb52f1 16;;; Copyright © 2017, 2019, 2020 Marius Bakke <marius@gnu.org>
65051fdc 17;;; Copyright © 2017, 2020 Oleg Pykhalov <go.wigust@gmail.com>
553199c5 18;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
70024cfa 19;;; Copyright © 2018 Pierre-Antoine Rouby <contact@parouby.fr>
e23b6a68 20;;; Copyright © 2018, 2019 Meiyo Peng <meiyo@riseup.net>
eea969cf 21;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
4ec42524 22;;; Copyright © 2019 Timothy Sample <samplet@ngyro.com>
7a1d6a77 23;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com>
1d25447e 24;;; Copyright © 2019 Kyle Andrews <kyle.c.andrews@gmail.com>
8c765a3b 25;;; Copyright © 2019 Ingo Ruhnke <grumbel@gmail.com>
d5329de9 26;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org>
b066ad89 27;;; Copyright © 2019 John Soo <jsoo1@asu.edu>
88f06fd0
PN
28;;; Copyright © 2018, 2019 Pierre Langlois <pierre.langlois@gmx.com>
29;;; Copyright © 2016, 2017 Andy Patterson <ajpatter@uwaterloo.ca>
59198ba1 30;;; Copyright © 2019 Evan Straw <evan.straw99@gmail.com>
4b3ff362 31;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
d4145638 32;;; Copyright © 2019 Noodles! <nnoodle@chiru.no>
d4842a7c 33;;; Copyright © 2019, 2020 Alexandru-Sergiu Marton <brown121407@member.fsf.org>
c0c1811f 34;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
47560aa2 35;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
138896e1 36;;; Copyright © 2020 Boris A. Dekshteyn <harlequin78@gmail.com>
fd65311c 37;;; Copyright © 2020 Marcin Karpezo <sirmacik@wioo.waw.pl>
9c814c33 38;;; Copyright © 2020 EuAndreh <eu@euandre.org>
48b00a4c 39;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
dfb85d1e 40;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
bda2ded6
ED
41;;;
42;;; This file is part of GNU Guix.
43;;;
44;;; GNU Guix is free software; you can redistribute it and/or modify it
45;;; under the terms of the GNU General Public License as published by
46;;; the Free Software Foundation; either version 3 of the License, or (at
47;;; your option) any later version.
48;;;
49;;; GNU Guix is distributed in the hope that it will be useful, but
50;;; WITHOUT ANY WARRANTY; without even the implied warranty of
51;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
52;;; GNU General Public License for more details.
53;;;
54;;; You should have received a copy of the GNU General Public License
55;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
56
57(define-module (gnu packages wm)
0ede252b 58 #:use-module ((guix licenses) #:prefix license:)
bda2ded6 59 #:use-module (guix packages)
40cad6b9
EF
60 #:use-module (guix download)
61 #:use-module (guix git-download)
88f06fd0 62 #:use-module (guix build-system asdf)
3d1240aa 63 #:use-module (guix build-system cmake)
bda2ded6 64 #:use-module (guix build-system gnu)
6e38c4be 65 #:use-module (guix build-system haskell)
eea969cf 66 #:use-module (guix build-system meson)
3e7cb70a 67 #:use-module (guix build-system perl)
c165591d 68 #:use-module (guix build-system python)
9a12243c 69 #:use-module (guix build-system trivial)
88f06fd0 70 #:use-module (guix utils)
40cad6b9 71 #:use-module (gnu packages)
9a12243c 72 #:use-module (gnu packages bash)
4b563b34 73 #:use-module (gnu packages autotools)
bda2ded6 74 #:use-module (gnu packages base)
40cad6b9 75 #:use-module (gnu packages bison)
f5fb52f1 76 #:use-module (gnu packages build-tools) ;for meson-0.55
5e78a87b 77 #:use-module (gnu packages calendar)
bda2ded6 78 #:use-module (gnu packages docbook)
40cad6b9 79 #:use-module (gnu packages documentation)
0ede252b 80 #:use-module (gnu packages fontutils)
3d1240aa 81 #:use-module (gnu packages freedesktop)
40cad6b9
EF
82 #:use-module (gnu packages fribidi)
83 #:use-module (gnu packages gawk)
80817888 84 #:use-module (gnu packages gcc)
40cad6b9 85 #:use-module (gnu packages gl)
3d1240aa
CZ
86 #:use-module (gnu packages glib)
87 #:use-module (gnu packages gperf)
40cad6b9
EF
88 #:use-module (gnu packages gtk)
89 #:use-module (gnu packages haskell-check)
90 #:use-module (gnu packages haskell-web)
91 #:use-module (gnu packages haskell-xyz)
92 #:use-module (gnu packages image)
3d1240aa 93 #:use-module (gnu packages imagemagick)
40cad6b9 94 #:use-module (gnu packages libevent)
4b563b34 95 #:use-module (gnu packages linux)
88f06fd0 96 #:use-module (gnu packages lisp-xyz)
40cad6b9
EF
97 #:use-module (gnu packages logging)
98 #:use-module (gnu packages lua)
99 #:use-module (gnu packages m4)
2ff844f0 100 #:use-module (gnu packages man)
40cad6b9
EF
101 #:use-module (gnu packages maths)
102 #:use-module (gnu packages mpd)
103 #:use-module (gnu packages pcre)
104 #:use-module (gnu packages perl)
105 #:use-module (gnu packages pkg-config)
7a1d6a77 106 #:use-module (gnu packages pretty-print)
40cad6b9
EF
107 #:use-module (gnu packages pulseaudio)
108 #:use-module (gnu packages python)
9a12243c 109 #:use-module (gnu packages readline)
7a1d6a77 110 #:use-module (gnu packages serialization)
47560aa2 111 #:use-module (gnu packages sphinx)
40cad6b9 112 #:use-module (gnu packages suckless)
88f06fd0 113 #:use-module (gnu packages texinfo)
40cad6b9 114 #:use-module (gnu packages textutils)
40cad6b9
EF
115 #:use-module (gnu packages video)
116 #:use-module (gnu packages web)
117 #:use-module (gnu packages xdisorg)
118 #:use-module (gnu packages xml)
119 #:use-module (gnu packages xorg))
bda2ded6 120
1268e52d 121(define-public bspwm
122 (package
123 (name "bspwm")
336b6d3c 124 (version "0.9.10")
1268e52d 125 (source
126 (origin
782b1224
TGR
127 (method git-fetch)
128 (uri (git-reference
b0e7b699 129 (url "https://github.com/baskerville/bspwm")
782b1224
TGR
130 (commit version)))
131 (file-name (git-file-name name version))
1268e52d 132 (sha256
336b6d3c 133 (base32 "0qlv7b4c2mmjfd65y100d11x8iqyg5f6lfiws3cgmpjidhdygnxc"))))
1268e52d 134 (build-system gnu-build-system)
135 (inputs
136 `(("libxcb" ,libxcb)
137 ("libxinerama" ,libxinerama)
138 ("sxhkd" ,sxhkd)
139 ("xcb-util" ,xcb-util)
140 ("xcb-util-keysyms" ,xcb-util-keysyms)
141 ("xcb-util-wm" ,xcb-util-wm)))
142 (arguments
aa0551c2
TGR
143 '(#:phases
144 (modify-phases %standard-phases
145 (delete 'configure)) ; no configure script
146 #:tests? #f ; no check target
147 #:make-flags
148 (list "CC=gcc"
149 (string-append "PREFIX=" %output))))
1268e52d 150 (home-page "https://github.com/baskerville/bspwm")
151 (synopsis "Tiling window manager based on binary space partitioning")
152 (description "bspwm is a tiling window manager that represents windows as
153the leaves of a full binary tree.")
0ede252b 154 (license license:bsd-2)))
1268e52d 155
1d25447e
KA
156(define-public herbstluftwm
157 (package
158 (name "herbstluftwm")
d87c9fc5 159 (version "0.8.3")
1d25447e
KA
160 (source
161 (origin
162 (method url-fetch)
163 (uri (string-append "https://herbstluftwm.org/tarballs/herbstluftwm-"
164 version ".tar.gz"))
165 (sha256
d87c9fc5 166 (base32 "1qmb4pjf2f6g0dvcg11cw9njwmxblhqzd70ai8qnlgqw1iz3nkm1"))
1d25447e 167 (file-name (string-append "herbstluftwm-" version ".tar.gz"))))
138896e1 168 (build-system cmake-build-system)
1d25447e
KA
169 (inputs
170 `(("dzen" ,dzen)
171 ("dmenu" ,dmenu)
172 ("glib" ,glib)
173 ("glibmm" ,glibmm)
174 ("xterm" ,xterm)
175 ("xsetroot" ,xsetroot)
176 ("libx11" ,libx11)
177 ("libxext" ,libxext)
138896e1
BD
178 ("libxinerama" ,libxinerama)
179 ("libxrandr" ,libxrandr)))
1d25447e 180 (native-inputs
138896e1
BD
181 `(("asciidoc" ,asciidoc)
182 ("pkg-config" ,pkg-config)))
1d25447e 183 (arguments
138896e1
BD
184 '(#:tests? #f
185 #:configure-flags
186 (let ((out (assoc-ref %outputs "out")))
187 (list "-DCC=gcc"
188 (string-append "-DCMAKE_INSTALL_SYSCONF_PREFIX=" out "/etc")
189 (string-append "-DBASHCOMPLETIONDIR=" out "/etc/bash_completion.d")))
190 #:phases
1d25447e 191 (modify-phases %standard-phases
1d25447e
KA
192 (add-after 'install 'install-xsession
193 (lambda* (#:key outputs #:allow-other-keys)
194 (let* ((out (assoc-ref outputs "out"))
195 (xsessions (string-append out "/share/xsessions")))
196 (mkdir-p xsessions)
197 (call-with-output-file
198 (string-append xsessions "/herbstluftwm.desktop")
199 (lambda (port)
200 (format port "~
201 [Desktop Entry]~@
202 Name=herbstluftwm~@
203 Comment=Manual tiling window manager~@
204 Exec=~a/bin/herbstluftwm~@
205 Type=XSession~%" out)))
138896e1 206 #t))))))
1d25447e
KA
207 (synopsis "Tiling window manager for X11")
208 (description "herbstluftwm is a manual tiling window manager for X11 using
209Xlib and GLib. Its main features are:
210
211@itemize
212@item
213The layout is based on splitting frames into subframes which can be split
214again or can be filled with windows (similar to i3 or musca).
215
216@item
217Tags (or workspaces or virtual desktops or …) can be added/removed at runtime.
218Each tag contains an own layout.
219
220@item
221Exactly one tag is viewed on each monitor. The tags are monitor independent
222(similar to Xmonad).
223
224@item
225It is configured at runtime via IPC calls from @command{herbstclient}. So the
226configuration file is just a script which is run on startup (similar to wmii
227or musca).
228
229@end itemize")
230 (home-page "https://herbstluftwm.org")
231 (license license:bsd-2)))
232
63b1bdbc
ED
233(define-public i3status
234 (package
235 (name "i3status")
cb96d239 236 (version "2.13")
63b1bdbc
ED
237 (source (origin
238 (method url-fetch)
fdad1f3c 239 (uri (string-append "https://i3wm.org/i3status/i3status-"
63b1bdbc
ED
240 version ".tar.bz2"))
241 (sha256
242 (base32
cb96d239 243 "0rhlzb96mw64z2jnhwz9nibc7pxg549626lz5642xxk5hpzwk2ff"))))
63b1bdbc
ED
244 (build-system gnu-build-system)
245 (arguments
cb96d239
MB
246 `(;; XXX: Do an "out of source" build to work around
247 ;; <https://github.com/i3/i3status/issues/339>.
248 #:out-of-source? #t
63b1bdbc
ED
249 #:tests? #f)) ; no test suite
250 (inputs
251 `(("openlibm" ,openlibm)
252 ("libconfuse" ,libconfuse)
253 ("libyajl" ,libyajl)
254 ("alsa-lib" ,alsa-lib)
766a22fb
AM
255 ("pulseaudio" ,pulseaudio)
256 ("libnl" ,libnl)
63b1bdbc
ED
257 ("libcap" ,libcap)
258 ("asciidoc" ,asciidoc)))
766a22fb 259 (native-inputs
cb96d239
MB
260 `(("pkg-config" ,pkg-config)
261 ("docbook-xsl" ,docbook-xsl)
262 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
263 ("xmlto" ,xmlto)))
fdad1f3c 264 (home-page "https://i3wm.org/i3status/")
63b1bdbc
ED
265 (synopsis "Status bar for i3bar, dzen2, xmobar or similar programs")
266 (description "i3status is a small program for generating a status bar for
267i3bar, dzen2, xmobar or similar programs. It is designed to be very efficient
268by issuing a very small number of system calls, as one generally wants to
269update such a status line every second. This ensures that even under high
270load, your status bar is updated correctly. Also, it saves a bit of energy by
271not hogging your CPU as much as spawning the corresponding amount of shell
272commands would.")
0ede252b 273 (license license:bsd-3)))
63b1bdbc 274
bda2ded6
ED
275(define-public i3-wm
276 (package
277 (name "i3-wm")
1434f2b0 278 (version "4.18.3")
bda2ded6
ED
279 (source (origin
280 (method url-fetch)
8658d403 281 (uri (string-append "https://i3wm.org/downloads/i3-"
bda2ded6
ED
282 version ".tar.bz2"))
283 (sha256
284 (base32
1434f2b0 285 "03dijnwv2n8ak9jq59fhq0rc80m5wjc9d54fslqaivnnz81pkbjk"))))
bda2ded6
ED
286 (build-system gnu-build-system)
287 (arguments
ebd2ae18 288 `(#:configure-flags
4bd391f5
LF
289 ;; The build system tries to build in a separate directory, but that
290 ;; seems to be unnecessary.
ebd2ae18
TGR
291 (list "--disable-builddir")
292
293 ;; The test suite requires the unpackaged Xephyr X server.
aa7cdc57
TS
294 #:tests? #f
295 #:phases
296 (modify-phases %standard-phases
297 (add-after 'install 'patch-session-file
298 (lambda* (#:key outputs #:allow-other-keys)
299 (let* ((out (assoc-ref outputs "out"))
300 (i3 (string-append out "/bin/i3"))
301 (i3-with-shmlog (string-append out "/bin/i3-with-shmlog")))
302 (substitute* (string-append out "/share/xsessions/i3.desktop")
303 (("Exec=i3") (string-append "Exec=" i3)))
304 (substitute* (string-append out "/share/xsessions/i3-with-shmlog.desktop")
305 (("Exec=i3-with-shmlog") (string-append "Exec=" i3-with-shmlog)))
306 #t))))))
bda2ded6
ED
307 (inputs
308 `(("libxcb" ,libxcb)
309 ("xcb-util" ,xcb-util)
310 ("xcb-util-cursor" ,xcb-util-cursor)
311 ("xcb-util-keysyms" ,xcb-util-keysyms)
312 ("xcb-util-wm" ,xcb-util-wm)
4bd391f5 313 ("xcb-util-xrm" ,xcb-util-xrm)
bda2ded6
ED
314 ("libxkbcommon" ,libxkbcommon)
315 ("libev" ,libev)
316 ("libyajl" ,libyajl)
317 ("asciidoc" ,asciidoc)
318 ("xmlto" ,xmlto)
319 ("perl-pod-simple" ,perl-pod-simple)
bda2ded6
ED
320 ("libx11" ,libx11)
321 ("pcre" ,pcre)
322 ("startup-notification" ,startup-notification)
323 ("pango" ,pango)
324 ("cairo" ,cairo)))
325 (native-inputs
326 `(("which" ,which)
327 ("perl" ,perl)
4bd391f5
LF
328 ("pkg-config" ,pkg-config)
329 ;; For building the documentation.
4b0e6367 330 ("libxml2" ,libxml2)
4bd391f5 331 ("docbook-xsl" ,docbook-xsl)))
8658d403 332 (home-page "https://i3wm.org/")
71a5da8e
TGR
333 (synopsis "Tiling window manager")
334 (description "i3 is a tiling X11 window manager that dynamically manages
335tiled, stacked, and tabbed window layouts.
336
337i3 primarily targets advanced users. Windows are managed manually and organised
338inside containers, which can be split vertically or horizontally, and optionally
339resized.
340
341i3 uses a plain-text configuration file, and can be extended and controlled from
342many programming languages.")
0ede252b 343 (license license:bsd-3)))
6e38c4be 344
88c94080
ASM
345(define-public i3-gaps
346 (package (inherit i3-wm)
347 (name "i3-gaps")
831365c6 348 (version "4.18.3")
88c94080
ASM
349 (source (origin
350 (method url-fetch)
351 (uri (string-append
352 "https://github.com/Airblader/i3/releases/download/"
353 version "/i3-" version ".tar.bz2"))
354 (sha256
355 (base32
831365c6 356 "1hcakwyz78lgp8mhqv7pw86jlb3m415pfql1q19rkijnhm3fn3ci"))))
88c94080
ASM
357 (home-page "https://github.com/Airblader/i3")
358 (synopsis "Tiling window manager with gaps")
359 (description "i3-gaps is a fork of i3wm, a tiling window manager
360for X11. It is kept up to date with upstream, adding a few additional
361features such as gaps between windows.
362
363i3 is a tiling X11 window manager that dynamically manages tiled, stacked,
364and tabbed window layouts.
365
366i3 primarily targets advanced users. Windows are managed manually and
367organised inside containers, which can be split vertically or horizontally,
368and optionally resized.
369
370i3 uses a plain-text configuration file, and can be extended and controlled
371from many programming languages.")
372 (license license:bsd-3)))
373
b6afc350
MB
374(define-public i3lock
375 (package
376 (name "i3lock")
377 (version "2.11.1")
378 (source (origin
379 (method url-fetch)
380 (uri (string-append "https://i3wm.org/i3lock/i3lock-"
381 version ".tar.bz2"))
382 (sha256
383 (base32
384 "015dn534m7cxjvqdncpvaq9p8b2r4w5hp1yanbdy2abmhbcc7a7j"))))
385 (build-system gnu-build-system)
386 (native-inputs
387 `(("pkg-config" ,pkg-config)))
388 (inputs
389 `(("cairo" ,cairo)
390 ("libev" ,libev)
391 ("linux-pam" ,linux-pam)
392 ("libxcb" ,libxcb)
393 ("libxkbcommon" ,libxkbcommon)
394 ("xcb-util" ,xcb-util)
395 ("xcb-util-image" ,xcb-util-image)
396 ("xcb-util-xrm" ,xcb-util-xrm)))
397 (home-page "https://i3wm.org/i3lock/")
398 (synopsis "Lightweight screen locker")
399 (description
400 "i3lock is a simple X11 screen locker developed alongside the i3 project.
401Despite the name it should work with any X11 window manager.")
402 (license license:bsd-3)))
403
bc83b2e2 404(define-public i3blocks
97e036ca
TGR
405 (package
406 (name "i3blocks")
407 (version "1.5")
408 (source (origin
409 (method git-fetch)
410 (uri (git-reference
b0e7b699 411 (url "https://github.com/vivien/i3blocks")
97e036ca
TGR
412 (commit version)))
413 (sha256
414 (base32
415 "0v8mwnm8qzpv6xnqvrk43s4b9iyld4naqzbaxk4ldq1qkhai0wsv"))
416 (file-name (git-file-name name version))))
417 (build-system gnu-build-system)
418 (native-inputs
419 `(("autoconf" ,autoconf)
420 ("automake" ,automake)
421 ("pkg-config" ,pkg-config)))
422 (home-page "https://github.com/vivien/i3blocks")
423 (synopsis "Minimalist scheduler for status bar scripts")
424 (description "i3blocks executes your command lines and generates a
bc83b2e2
MP
425status line from their output. The generated line is meant to be displayed by
426the i3 window manager through its i3bar component, as an alternative to
427i3status.")
97e036ca 428 (license license:gpl3+)))
bc83b2e2 429
3e7cb70a
MB
430(define-public perl-anyevent-i3
431 (package
432 (name "perl-anyevent-i3")
ec5c986e 433 (version "0.17")
3e7cb70a
MB
434 (source (origin
435 (method url-fetch)
436 (uri (string-append "mirror://cpan/authors/id/M/MS/MSTPLBG/"
437 "AnyEvent-I3-" version ".tar.gz"))
438 (sha256
439 (base32
ec5c986e 440 "0qvd9bq16jyy7v3ma82qcnvz9j503bw0mh7h55gkjf7ir62ck0jk"))))
3e7cb70a
MB
441 (build-system perl-build-system)
442 (propagated-inputs
443 `(("perl-anyevent" ,perl-anyevent)
444 ("perl-json-xs" ,perl-json-xs)))
9aba9b12 445 (home-page "https://metacpan.org/release/AnyEvent-I3")
3e7cb70a
MB
446 (synopsis
447 "Communicate with the i3 window manager through perl")
448 (description
449 "This module connects to the i3 window manager using the UNIX socket
450based IPC interface it provides (if enabled in the configuration file).
451You can then subscribe to events or send messages and receive their replies.")
452 ;; Can be used with either license.
2f3108ad 453 (license (list license:gpl3+ license:perl-license))))
3e7cb70a 454
c165591d
IVB
455(define-public python-i3-py
456 (package
457 (name "python-i3-py")
458 (version "0.6.5")
459 (source
460 (origin
461 ;; The latest release is not tagged in Git nor has an entry in PyPi,
462 ;; but there is still a clear commit for it, and it's been the last one
463 ;; for years.
464 (method git-fetch)
465 (uri (git-reference
b0e7b699 466 (url "https://github.com/ziberna/i3-py")
c165591d
IVB
467 (commit "27f88a616e9ecc340e7d041d3d00782f8a1964c1")))
468 (sha256
469 (base32
470 "1nm719dc2xqlll7vj4c4m7mpjb27lpn3bg3c66gajvnrz2x1nmxs"))
471 (file-name (string-append name "-" version "-checkout"))))
472 (build-system python-build-system)
473 (arguments
474 `(#:tests? #f ; no tests yet
475 #:phases (modify-phases %standard-phases
476 (add-after 'install 'install-doc
477 ;; Copy readme file to documentation directory.
478 (lambda* (#:key outputs #:allow-other-keys)
479 (let ((doc (string-append (assoc-ref outputs "out")
480 "/share/doc/" ,name)))
481 (install-file "README.md" doc)
482 ;; Avoid unspecified return value.
483 #t))))))
484 (propagated-inputs
485 `(("i3-wm" ,i3-wm)))
486 (home-page "https://github.com/ziberna/i3-py")
487 (synopsis "Python interface to the i3 window manager")
488 (description "This package allows you to interact from a Python program
489with the i3 window manager via its IPC socket. It can send commands and other
490kinds of messages to i3, select the affected containers, filter results and
491subscribe to events.")
492 (license license:gpl3+)))
493
494(define-public python2-i3-py
495 (package-with-python2 python-i3-py))
496
37356e0b
IVB
497(define-public quickswitch-i3
498 (let ((commit "ed692b1e8f43b95bd907ced26238ce8ccb2ed28f")
499 (revision "1")) ; Guix package revision
500 (package
501 (name "quickswitch-i3")
502 (version (string-append "2.2-" revision "."
503 (string-take commit 7)))
504 (source
505 (origin
506 ;; The latest commit is a few years old and just a couple commits
507 ;; after the last tagged release, so we use that latest commit
508 ;; instead of the release.
509 (method git-fetch)
510 (uri (git-reference
b0e7b699 511 (url "https://github.com/proxypoke/quickswitch-for-i3")
37356e0b
IVB
512 (commit commit)))
513 (sha256
514 (base32
515 "0447077sama80jcdg5p64zjsvafmz5rbdrirhm1adcdjhkh6iqc5"))
516 (patches (search-patches "quickswitch-fix-dmenu-check.patch"))
517 (file-name (string-append name "-" version "-checkout"))))
518 (build-system python-build-system)
519 (arguments
520 `(#:tests? #f ; no tests yet
521 #:phases (modify-phases %standard-phases
522 (add-after 'install 'install-doc
523 ;; Copy readme file to documentation directory.
524 (lambda* (#:key outputs #:allow-other-keys)
525 (let ((doc (string-append (assoc-ref outputs "out")
526 "/share/doc/" ,name)))
527 (install-file "README.rst" doc)
528 ;; Avoid unspecified return value.
529 #t))))))
530 (inputs
531 `(("python-i3-py" ,python-i3-py)
532 ("dmenu" ,dmenu)))
533 (home-page "https://github.com/proxypoke/quickswitch-for-i3")
534 (synopsis "Quickly change to and locate windows in the i3 window manager")
535 (description
536 "This utility for the i3 window manager allows you to quickly switch to
537and locate windows on all your workspaces, using an interactive dmenu
538prompt.")
5d6bab9e 539 (license license:wtfpl2))))
37356e0b 540
4b563b34 541(define-public i3lock-color
542 (package
543 (name "i3lock-color")
7969751f 544 (version "2.12.c")
4b563b34 545 (source
546 (origin
f45cc966
TGR
547 (method git-fetch)
548 (uri (git-reference
b0e7b699 549 (url "https://github.com/PandorasFox/i3lock-color")
f45cc966
TGR
550 (commit version)))
551 (file-name (git-file-name name version))
4b563b34 552 (sha256
7969751f 553 (base32 "08fhnchf187b73h52xgzb86g6byzxz085zs9galsvl687g5zxk34"))))
4b563b34 554 (build-system gnu-build-system)
555 (arguments
f45cc966 556 `(#:tests? #f)) ; no tests included
4b563b34 557 (inputs
fa2886b7
TGR
558 `(("cairo" ,cairo)
559 ("libev" ,libev)
3dc77d40 560 ("libjpeg" ,libjpeg-turbo)
4b563b34 561 ("libxcb" ,libxcb)
4b563b34 562 ("libxkbcommon" ,libxkbcommon)
fa2886b7
TGR
563 ("linux-pam" ,linux-pam)
564 ("xcb-util" ,xcb-util)
7969751f
TGR
565 ("xcb-util-image" ,xcb-util-image)
566 ("xcb-util-xrm" ,xcb-util-xrm)))
4b563b34 567 (native-inputs
fa2886b7
TGR
568 `(("autoconf" ,autoconf)
569 ("automake" ,automake)
570 ("pkg-config" ,pkg-config)))
4b563b34 571 (home-page "https://github.com/PandorasFox/i3lock-color")
572 (synopsis "Screen locker with color configuration support")
573 (description
574 "i3lock-color is a simpler X11 screen locker derived from i3lock.
575Features include:
576
577@enumerate
578@item forking process, the locked screen is preserved when you suspend to RAM;
579@item specify background color or image to be displayed in the lock screen;
580@item many additional color options.
581@end enumerate")
582 (license license:bsd-3)))
583
b0a2dc72 584(define-public i3lock-fancy
585 (package
586 (name "i3lock-fancy")
587 (version "0.2")
588 (source
589 (origin
a48db08a
TGR
590 (method git-fetch)
591 (uri (git-reference
b0e7b699 592 (url "https://github.com/meskarune/i3lock-fancy")
a48db08a
TGR
593 (commit version)))
594 (file-name (git-file-name name version))
b0a2dc72 595 (sha256
a48db08a 596 (base32 "11g2kkim33ra38d1m897sq1ifajw17iyw9mr7sg1q8i2ibl4lfsi"))))
b0a2dc72 597 (build-system gnu-build-system)
598 (arguments
a48db08a 599 `(#:tests? #f ; no tests included
b0a2dc72 600 #:phases
601 (modify-phases %standard-phases
602 (replace 'configure
603 (lambda* (#:key inputs outputs #:allow-other-keys)
604 (let* ((out (assoc-ref outputs "out"))
605 (icons (string-append out "/share/i3lock-fancy/icons/"))
606 (wmctrl (string-append (assoc-ref inputs "wmctrl")
607 "/bin/wmctrl"))
608 (mconvert (string-append (assoc-ref inputs "imagemagick")
609 "/bin/convert"))
610 (mimport (string-append (assoc-ref inputs "imagemagick")
611 "/bin/import"))
612 (awk (string-append (assoc-ref inputs "gawk")
613 "/bin/gawk")))
614
615 (substitute* "lock"
184598a4 616 (("\\$\\(command -V wmctrl\\)") wmctrl)
b0a2dc72 617 (("convert") mconvert)
618 (("shot=\\(import") (string-append "shot=\(" mimport))
619 (("awk -F") (string-append awk " -F"))
620 ((" awk") awk)
621 (("\\$scriptpath/icons/") icons))
622 #t)))
623 (delete 'build)
624 (replace 'install
625 (lambda* (#:key inputs outputs #:allow-other-keys)
626 (let* ((out (assoc-ref outputs "out"))
627 (bin (string-append out "/bin"))
628 (icons (string-append out "/share/i3lock-fancy/icons/")))
629
630 (install-file "lock" bin)
631 (rename-file (string-append bin "/lock")
632 (string-append bin "/i3lock-fancy"))
633 (copy-recursively "icons" icons)
634 #t))))))
1aa765fd 635 (inputs
b0a2dc72 636 `(("imagemagick" ,imagemagick)
637 ("wmctrl" ,wmctrl)
638 ("gawk" ,gawk)))
639 (home-page "https://github.com/meskarune/i3lock-fancy")
640 (synopsis "Screen locker with screenshot function")
641 (description
642 "@code{i3lock-fancy} is a Bash script that takes a screenshot of
643the desktop, blurs the background and adds a lock icon and text.
644It requires @code{i3lock-color} or @code{i3lock} and can optionally
645be passed any screenshot util like @code{scrot}.
646This screen locker can be used with any window manager or
647desktop environment.")
648 (license license:expat)))
649
6e38c4be
SB
650(define-public xmonad
651 (package
652 (name "xmonad")
de98b915 653 (version "0.15")
6e38c4be
SB
654 (synopsis "Tiling window manager")
655 (source (origin
656 (method url-fetch)
966a543b 657 (uri (string-append "mirror://hackage/package/xmonad/"
ec9299d0 658 "xmonad-" version ".tar.gz"))
6e38c4be
SB
659 (sha256
660 (base32
57983029
TS
661 "0a7rh21k9y6g8fwkggxdxjns2grvvsd5hi2ls4klmqz5xvk4hyaa"))
662 (patches (search-patches "xmonad-dynamic-linking.patch"))))
6e38c4be
SB
663 (build-system haskell-build-system)
664 (inputs
174b091f 665 `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
174b091f 666 ("ghc-quickcheck" ,ghc-quickcheck)
dd821380 667 ("ghc-semigroups" ,ghc-semigroups)
174b091f
MM
668 ("ghc-setlocale" ,ghc-setlocale)
669 ("ghc-utf8-string" ,ghc-utf8-string)
670 ("ghc-x11" ,ghc-x11)))
6e38c4be
SB
671 (arguments
672 `(#:phases
673 (modify-phases %standard-phases
674 (add-after
675 'install 'install-xsession
676 (lambda _
677 (let* ((xsessions (string-append %output "/share/xsessions")))
678 (mkdir-p xsessions)
679 (call-with-output-file
680 (string-append xsessions "/xmonad.desktop")
681 (lambda (port)
682 (format port "~
683 [Desktop Entry]~@
684 Name=~a~@
685 Comment=~a~@
686 Exec=~a/bin/xmonad~@
687 Type=Application~%" ,name ,synopsis %output)))))))))
8c0be00a 688 (home-page "https://xmonad.org")
6e38c4be
SB
689 (description
690 "Xmonad is a tiling window manager for X. Windows are arranged
691automatically to tile the screen without gaps or overlap, maximising screen
692use. All features of the window manager are accessible from the keyboard: a
693mouse is strictly optional. Xmonad is written and extensible in Haskell.
694Custom layout algorithms, and other extensions, may be written by the user in
695config files. Layouts are applied dynamically, and different layouts may be
696used on each workspace. Xinerama is fully supported, allowing windows to be
697tiled on several screens.")
0ede252b 698 (license license:bsd-3)))
78edf44c 699
6e864d00
OP
700(define-public xmobar
701 (package
702 (name "xmobar")
ccc960bb 703 (version "0.34")
6e864d00
OP
704 (source (origin
705 (method url-fetch)
706 (uri (string-append "mirror://hackage/package/xmobar/"
079db056 707 "xmobar-" version ".tar.gz"))
6e864d00
OP
708 (sha256
709 (base32
ccc960bb 710 "0x09xbz7y9ay0046j1xpr9jjk5jqivqi06vm3q6mhcrgc4y922rx"))))
6e864d00 711 (build-system haskell-build-system)
800e4fd8
TGR
712 (native-inputs
713 `(("ghc-hspec" ,ghc-hspec)
714 ("hspec-discover" ,hspec-discover)))
6e864d00 715 (inputs
b066ad89
JS
716 `(("ghc-alsa-core" ,ghc-alsa-core)
717 ("ghc-alsa-mixer" ,ghc-alsa-mixer)
718 ("ghc-dbus" ,ghc-dbus)
719 ("ghc-hinotify" ,ghc-hinotify)
d2ea8064 720 ("ghc-http" ,ghc-http)
b066ad89
JS
721 ("ghc-http-conduit" ,ghc-http-conduit)
722 ("ghc-http-types" ,ghc-http-types)
d2ea8064 723 ("ghc-iwlib" ,ghc-iwlib)
b066ad89
JS
724 ("ghc-libmpd" ,ghc-libmpd)
725 ("ghc-old-locale" ,ghc-old-locale)
d877e0d8 726 ("ghc-parsec-numbers" ,ghc-parsec-numbers)
6e864d00 727 ("ghc-regex-compat" ,ghc-regex-compat)
b066ad89
JS
728 ("ghc-temporary" ,ghc-temporary)
729 ("ghc-timezone-olson" ,ghc-timezone-olson)
730 ("ghc-x11" ,ghc-x11)
6e864d00 731 ("ghc-x11-xft" ,ghc-x11-xft)
d2ea8064 732 ("libxpm" ,libxpm)))
6e864d00 733 (arguments
b066ad89
JS
734 `(#:configure-flags (list "--flags=all_extensions")
735 #:phases
736 (modify-phases %standard-phases
737 (add-before 'build 'patch-test-shebang
738 (lambda* (#:key inputs #:allow-other-keys)
739 (substitute* "test/Xmobar/Plugins/Monitors/AlsaSpec.hs"
740 (("/bin/bash") (which "bash")))
741 #t)))))
680e803d 742 (home-page "https://xmobar.org")
6e864d00
OP
743 (synopsis "Minimalistic text based status bar")
744 (description
745 "@code{xmobar} is a lightweight, text-based, status bar written in
746Haskell. It was originally designed to be used together with Xmonad, but it
747is also usable with any other window manager. While xmobar is written in
748Haskell, no knowledge of the language is required to install and use it.")
749 (license license:bsd-3)))
750
9c814c33
EG
751(define-public yeganesh
752 (package
753 (name "yeganesh")
754 (version "2.4")
755 (source
756 (origin
757
758 (method url-fetch)
759 (uri (string-append "http://dmwit.com/yeganesh/yeganesh-" version ".tar.gz"))
760 (sha256
761 (base32 "04djfyjab3c5y9z9x8zd0xcx0jyy35zq7cl9ddr4ppf6k5ky6iky"))))
762 (build-system haskell-build-system)
763 (inputs
764 `(("ghc-strict" ,ghc-strict)
765 ("ghc-xdg-basedir" ,ghc-xdg-basedir)))
766 (home-page "http://dmwit.com/yeganesh/")
767 (synopsis "Small wrapper around dmenu")
768 (description "@code{yeganesh} is a small wrapper around demnu. Like
769dmenu, it accepts input on stdin and writes the chosen result on stdout.
770Unlike dmenu, it mangles the input before it presents its choices. In
771particular, it displays commonly-chosen options before uncommon ones.")
772 (license license:bsd-3)))
773
78edf44c
SB
774(define-public ghc-xmonad-contrib
775 (package
776 (name "ghc-xmonad-contrib")
3cbf3f74 777 (version "0.16")
78edf44c
SB
778 (source
779 (origin
780 (method url-fetch)
966a543b 781 (uri (string-append "mirror://hackage/package/xmonad-contrib/"
78edf44c
SB
782 "xmonad-contrib-" version ".tar.gz"))
783 (sha256
3cbf3f74 784 (base32 "1pddgkvnbww28wykncc7j0yb0lv15bk7xnnhdcbrwkxzw66w6wmd"))))
78edf44c
SB
785 (build-system haskell-build-system)
786 (propagated-inputs
f54f0475 787 `(("ghc-old-time" ,ghc-old-time)
78edf44c
SB
788 ("ghc-random" ,ghc-random)
789 ("ghc-utf8-string" ,ghc-utf8-string)
790 ("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
b42b5afd 791 ("ghc-semigroups" ,ghc-semigroups)
78edf44c
SB
792 ("ghc-x11" ,ghc-x11)
793 ("ghc-x11-xft" ,ghc-x11-xft)
794 ("xmonad" ,xmonad)))
8c0be00a 795 (home-page "https://xmonad.org")
78edf44c
SB
796 (synopsis "Third party extensions for xmonad")
797 (description
798 "Third party tiling algorithms, configurations, and scripts to Xmonad, a
799tiling window manager for X.")
0ede252b 800 (license license:bsd-3)))
45e10968
EB
801
802(define-public evilwm
803 (package
804 (name "evilwm")
805 (version "1.1.1")
806 (source
807 (origin
808 (method url-fetch)
809 (uri (string-append "http://www.6809.org.uk/evilwm/evilwm-"
810 version ".tar.gz"))
811 (sha256
812 (base32
c595cd47 813 "0ak0yajzk3v4dg5wmaghv6acf7v02a4iw8qxmq5yw5ard8lrqn3r"))
fc1adab1 814 (patches (search-patches "evilwm-lost-focus-bug.patch"))))
45e10968
EB
815 (build-system gnu-build-system)
816 (inputs
817 `(("libx11" ,libx11)
818 ("libxext" ,libxext)
819 ("libxrandr" ,libxrandr)))
820 (arguments
821 `(#:modules ((srfi srfi-26)
822 (guix build utils)
823 (guix build gnu-build-system))
824 #:make-flags (let ((inputs (map (cut assoc-ref %build-inputs <>)
825 '("libx11" "libxext" "libxrandr")))
826 (join (lambda (proc strs)
827 (string-join (map proc strs) " ")))
828 (dash-I (cut string-append "-I" <> "/include"))
829 (dash-L (cut string-append "-L" <> "/lib")))
830 `("desktopfilesdir=$(prefix)/share/xsessions"
831 ,(string-append "prefix=" (assoc-ref %outputs "out"))
832 ,(string-append "CPPFLAGS=" (join dash-I inputs))
833 ,(string-append "LDFLAGS=" (join dash-L inputs))))
834 #:tests? #f ;no tests
835 #:phases (modify-phases %standard-phases
836 (delete 'configure)))) ;no configure script
837 (home-page "http://www.6809.org.uk/evilwm/")
838 (synopsis "Minimalist window manager for the X Window System")
839 (description
840 "evilwm is a minimalist window manager based on aewm, extended to feature
841many keyboard controls with repositioning and maximize toggles, solid window
842drags, snap-to-border support, and virtual desktops.")
0ede252b
DM
843 (license (license:x11-style "file:///README"))))
844
845(define-public fluxbox
846 (package
847 (name "fluxbox")
848 (version "1.3.7")
849 (synopsis "Small and fast window manager")
850 (source (origin
851 (method url-fetch)
de67e922 852 (uri (string-append "mirror://sourceforge/fluxbox/fluxbox/"
0ede252b
DM
853 version "/fluxbox-" version ".tar.xz"))
854 (sha256
855 (base32
856 "1h1f70y40qd225dqx937vzb4k2cz219agm1zvnjxakn5jkz7b37w"))))
857 (build-system gnu-build-system)
858 (arguments
859 `(#:make-flags '("CPPFLAGS=-U__TIME__") ;ugly, but for reproducibility
860 #:phases
861 (modify-phases %standard-phases
37f7853e
EF
862 (add-after 'install 'install-vim-files
863 (lambda* (#:key outputs #:allow-other-keys)
864 (let* ((out (assoc-ref outputs "out"))
865 (syntax (string-append out "/share/vim/vimfiles/syntax")))
866 (copy-recursively "3rd/vim/vim/syntax" syntax)
867 #t)))
4ee3b309
EF
868 (add-after 'install 'install-xsession
869 (lambda* (#:key outputs #:allow-other-keys)
870 (let* ((out (assoc-ref outputs "out"))
871 (xsessions (string-append out "/share/xsessions")))
872 (mkdir-p xsessions)
873 (call-with-output-file
874 (string-append xsessions "/fluxbox.desktop")
875 (lambda (port)
876 (format port "~
877 [Desktop Entry]~@
878 Name=~a~@
879 Comment=~a~@
880 Exec=~a/bin/startfluxbox~@
881 Type=Application~%" ,name ,synopsis out)))
882 #t))))))
0ede252b
DM
883 (native-inputs
884 `(("pkg-config" ,pkg-config)))
885 (inputs
886 `(("freetype" ,freetype)
887 ("fribidi" ,fribidi)
888 ("imlib2" ,imlib2)
889 ("libx11" ,libx11)
890 ("libxext" ,libxext)
891 ("libxft" ,libxft)
892 ("libxinerama" ,libxinerama)
893 ("libxpm" ,libxpm)
894 ("libxrandr" ,libxrandr)
895 ("libxrender" ,libxrender)))
896 (description "Fluxbox is a window manager. It is light on resources
897and easy to handle yet full of features to make an easy and fast desktop
898experience.")
899 (home-page "http://fluxbox.org/")
900 (license license:expat)))
3d1240aa
CZ
901
902(define-public awesome
903 (package
904 (name "awesome")
c0c1811f 905 (version "4.3")
3d1240aa 906 (source
c0c1811f
NG
907 (origin
908 (method url-fetch)
909 (uri (string-append
910 "https://github.com/awesomeWM/awesome-releases/raw/master/"
911 "awesome-" version ".tar.xz"))
912 (sha256
913 (base32 "0lqpw401mkkmp9wgbvrmm45bqq2j9357l4irwdqv6l1305pls9kq"))
914 (modules '((guix build utils)
915 (srfi srfi-19)))
916 (snippet
917 '(begin
918 ;; Remove non-reproducible timestamp and use the date of
919 ;; the source file instead.
920 (substitute* "common/version.c"
921 (("__DATE__ \" \" __TIME__")
922 (date->string
923 (time-utc->date
924 (make-time time-utc 0 (stat:mtime (stat "awesome.c"))))
925 "\"~c\"")))
926 #t))
927 (patches
928 (search-patches "awesome-reproducible-png.patch"))))
3d1240aa 929 (build-system cmake-build-system)
c0c1811f
NG
930 (native-inputs
931 `(("asciidoc" ,asciidoc)
932 ("docbook-xsl" ,docbook-xsl)
933 ("doxygen" ,doxygen)
934 ("gperf" ,gperf)
935 ("imagemagick" ,imagemagick)
936 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
937 ("lua-ldoc" ,lua-ldoc)
938 ("pkg-config" ,pkg-config)
939 ("xmlto" ,xmlto)))
940 (inputs
941 `(("cairo" ,cairo)
942 ("dbus" ,dbus)
943 ("gdk-pixbuf" ,gdk-pixbuf)
944 ("glib" ,glib)
945 ("gobject-introspection" ,gobject-introspection)
946 ("imlib2" ,imlib2)
947 ("libev" ,libev)
948 ("libxcb" ,libxcb)
949 ("libxcursor" ,libxcursor)
950 ("libxdg-basedir" ,libxdg-basedir)
951 ("libxkbcommon" ,libxkbcommon)
952 ("lua" ,lua)
953 ("lua-lgi" ,lua-lgi)
954 ("pango" ,pango)
955 ("startup-notification" ,startup-notification)
956 ("xcb-util" ,xcb-util)
957 ("xcb-util-cursor" ,xcb-util-cursor)
958 ("xcb-util-image" ,xcb-util-image)
959 ("xcb-util-keysyms" ,xcb-util-keysyms)
960 ("xcb-util-renderutil" ,xcb-util-renderutil)
961 ("xcb-util-xrm" ,xcb-util-xrm)
962 ("xcb-util-wm" ,xcb-util-wm)))
3d1240aa 963 (arguments
c0c1811f
NG
964 `(#:modules ((guix build cmake-build-system)
965 (guix build utils)
966 (ice-9 match))
967 ;; Let compression happen in our 'compress-documentation' phase
968 ;; so that '--no-name' is used, which removes timestamps from
969 ;; gzip output.
970 #:configure-flags
971 '("-DCOMPRESS_MANPAGES=off")
972 ;; Building awesome in its source directory is no longer
973 ;; supported.
db0164b2 974 #:out-of-source? #t
22037a32 975 #:phases
976 (modify-phases %standard-phases
c0c1811f 977 (add-before 'configure 'set-paths
22037a32 978 (lambda* (#:key inputs #:allow-other-keys)
1af5e57d
IK
979 (substitute* "lib/awful/completion.lua"
980 (("/usr/bin/env")
981 ""))
c0c1811f
NG
982 ;; The build process needs to load Cairo dynamically.
983 (let* ((cairo (string-append (assoc-ref inputs "cairo") "/lib"))
984 (lua-version ,(version-major+minor (package-version lua)))
985 (lua-dependencies
986 (filter (match-lambda
987 ((label . _) (string-prefix? "lua-" label)))
988 inputs))
989 (lua-path
990 (string-join
991 (map (match-lambda
992 ((_ . dir)
993 (string-append
994 dir "/share/lua/" lua-version "/?.lua;"
995 dir "/share/lua/" lua-version "/?/?.lua")))
996 lua-dependencies)
997 ";"))
998 (lua-cpath
999 (string-join
1000 (map (match-lambda
1001 ((_ . dir)
1002 (string-append
1003 dir "/lib/lua/" lua-version "/?.so;"
1004 dir "/lib/lua/" lua-version "/?/?.so")))
1005 lua-dependencies)
1006 ";")))
1007 (setenv "LD_LIBRARY_PATH" cairo)
1008 (setenv "LUA_PATH" (string-append "?.lua;" lua-path))
1009 (setenv "LUA_CPATH" lua-cpath)
22037a32 1010 #t)))
1011 (replace 'check
1012 (lambda _
1013 ;; There aren't any tests, so just make sure the binary
1014 ;; gets built and can be run successfully.
b5e70d92 1015 (invoke "../build/awesome" "-v")))
4ec42524
TS
1016 (add-after 'install 'patch-session-file
1017 (lambda* (#:key outputs #:allow-other-keys)
1018 (let* ((out (assoc-ref outputs "out"))
1019 (awesome (string-append out "/bin/awesome")))
1020 (substitute* (string-append out "/share/xsessions/awesome.desktop")
1021 (("Exec=awesome") (string-append "Exec=" awesome)))
1022 #t)))
22037a32 1023 (add-after 'install 'wrap
1024 (lambda* (#:key inputs outputs #:allow-other-keys)
1025 (let* ((awesome (assoc-ref outputs "out"))
c0c1811f
NG
1026 (cairo (string-append (assoc-ref inputs "cairo") "/lib"))
1027 (lua-version ,(version-major+minor (package-version lua)))
1028 (lua-lgi (assoc-ref inputs "lua-lgi")))
22037a32 1029 (wrap-program (string-append awesome "/bin/awesome")
1af5e57d 1030 `("LUA_PATH" ";" suffix
c0c1811f 1031 (,(format #f "~a/share/lua/~a/?.lua" lua-lgi lua-version)))
1af5e57d 1032 `("LUA_CPATH" ";" suffix
c0c1811f 1033 (,(format #f "~a/lib/lua/~a/?.so" lua-lgi lua-version)))
22037a32 1034 `("GI_TYPELIB_PATH" ":" prefix (,(getenv "GI_TYPELIB_PATH")))
c0c1811f
NG
1035 `("LD_LIBRARY_PATH" suffix (,cairo)))
1036 #t))))))
1037 (home-page "https://awesomewm.org/")
3d1240aa
CZ
1038 (synopsis "Highly configurable window manager")
1039 (description
c4dd0def 1040 "Awesome has been designed as a framework window manager. It is fast, small,
1041dynamic and extensible using the Lua programming language.")
c0c1811f 1042 (license license:gpl2+)))
395751c0 1043
1044(define-public menumaker
1045 (package
1046 (name "menumaker")
1c217fc3 1047 (version "0.99.12")
395751c0 1048 (source
1049 (origin
1050 (method url-fetch)
1051 (uri (string-append "mirror://sourceforge/menumaker/"
1052 "menumaker-" version ".tar.gz"))
1053 (sha256
1c217fc3 1054 (base32 "034v5204bsgkzzk6zfa5ia63q95gln47f7hwf96yvad5hrhmd8z3"))))
395751c0 1055 (build-system gnu-build-system)
1056 (inputs
1057 `(("python" ,python)))
1058 (synopsis "Heuristics-driven menu generator")
1059 (description
1060 "MenuMaker is a menu generation utility for a number of X window
1061managers and desktop environments. It is capable of finding lots of
1062installed programs and generating a root menu consistent across all
1063supported window managers, so one will get (almost) the same menu in
1064all of them. Currently supported window managers include:
1065
1066@enumerate
1067@item BlackBox
1068@item Deskmenu
1069@item FluxBox
1070@item IceWM
1071@item OpenBox
1072@item PekWM
1073@item WindowMaker
1074@item XFCE
1075@end enumerate\n")
1076 (home-page "http://menumaker.sourceforge.net/")
1077 (license license:bsd-2)))
dbf544f9 1078
1079(define-public keybinder
1080 (package
1081 (name "keybinder")
1082 (version "0.3.1")
1083 (source
1084 (origin
1085 (method url-fetch)
6d688b6e
TGR
1086 (uri (string-append "https://github.com/kupferlauncher/keybinder"
1087 "/releases/download/v" version "/keybinder-"
dbf544f9 1088 version ".tar.gz"))
1089 (file-name (string-append name "-" version ".tar.gz"))
1090 (sha256
1091 (base32
1092 "0h52hj3ay8mfhwvmfxbxlfyq74hifdk8wxgxp7fr4iy6189hg7w7"))))
1093 (build-system gnu-build-system)
1094 (inputs
1095 `(("python-2" ,python-2)
1096 ("gtk+-2" ,gtk+-2)))
1097 (native-inputs
1098 `(("python2-pygtk" ,python2-pygtk)
1099 ("gtk-doc" ,gtk-doc)
1100 ("pkg-config" ,pkg-config)))
1101 (synopsis "Library for registering global keyboard shortcuts")
1102 (description
1103 "Keybinder is a library for registering global keyboard shortcuts.
1104Keybinder works with GTK-based applications using the X Window System.")
6d688b6e 1105 (home-page "https://github.com/kupferlauncher/keybinder")
dbf544f9 1106 (license license:gpl2+)))
78dfc9e2 1107
8c765a3b
IR
1108(define-public keybinder-3.0
1109 (package
1110 (name "keybinder-3.0")
1111 (version "0.3.2")
1112 (source
1113 (origin
1114 (method url-fetch)
1115 (uri (string-append "https://github.com/kupferlauncher/keybinder"
1116 "/releases/download/" name "-v" version "/" name "-"
1117 version ".tar.gz"))
1118 (file-name (string-append name "-" version ".tar.gz"))
1119 (sha256
1120 (base32
1121 "0830ihwnalw59pp1xzrp37dn58n8vwb8zasnm4a1h81v3x7dxqz6"))))
1122 (build-system gnu-build-system)
1123 (inputs
1124 `(("gtk+" ,gtk+)
1125 ("gobject-introspection" ,gobject-introspection)))
1126 (native-inputs
1127 `(("gtk-doc" ,gtk-doc)
1128 ("pkg-config" ,pkg-config)))
1129 (synopsis "Library for registering global keyboard shortcuts, Gtk3 version")
1130 (description
1131 "Keybinder is a library for registering global keyboard shortcuts.
1132Keybinder works with GTK-based applications using the X Window System.")
1133 (home-page "https://github.com/kupferlauncher/keybinder")
1134 (license license:x11)))
1135
78dfc9e2 1136(define-public spectrwm
1137 (package
1138 (name "spectrwm")
f6c8a97a 1139 (version "3.2.0")
78dfc9e2 1140 (source
1141 (origin
b82bd90c
TGR
1142 (method git-fetch)
1143 (uri (git-reference
b0e7b699 1144 (url "https://github.com/conformal/spectrwm")
b82bd90c
TGR
1145 (commit
1146 (string-append "SPECTRWM_"
1147 (string-join (string-split version #\.) "_")))))
1148 (file-name (git-file-name name version))
78dfc9e2 1149 (sha256
b82bd90c 1150 (base32 "1dfqy5f0s1nv6rqkz9lj006vypmp4rwxd5vczfk3ndzqgnh19kw6"))))
78dfc9e2 1151 (build-system gnu-build-system)
1152 (arguments
1153 `(#:make-flags (let ((pkg-config (lambda (flag)
1154 (string-append
1155 "$(shell pkg-config " flag " "
1156 "xft fontconfig x11 libpng)"))))
1157 (list
1158 "CC=gcc"
1159 (string-append "PREFIX=" %output)
1160 (string-append "INCS=-I. " (pkg-config "--cflags"))
1161 (string-append "LIBS=" (pkg-config "--libs") " -lm")))
f6c8a97a 1162 #:tests? #f ;no test suite
78dfc9e2 1163 #:phases
1164 (modify-phases %standard-phases
1165 (add-before 'build 'change-dir
1166 (lambda _
1167 (chdir "linux") #t))
1168 (add-after 'change-dir 'patch-makefile
1169 (lambda _
1170 (substitute* "Makefile"
1171 (("-g") ""))))
f6c8a97a 1172 (delete 'configure)))) ;no 'configure' exists
78dfc9e2 1173 (inputs
1174 `(("freetype" ,freetype)
1175 ("fontconfig" ,fontconfig)
1176 ("libx11" ,libx11)
1177 ("libxcursor" ,libxcursor)
1178 ("libxrandr" ,libxrandr)
1179 ("libxtst" ,libxtst)
1180 ("libxft" ,libxft)
1181 ("xcb-util" ,xcb-util)
1182 ("xcb-util-wm" ,xcb-util-wm)
1183 ("xcb-util-keysyms" ,xcb-util-keysyms)))
1184 (native-inputs
1185 `(("libxt" ,libxt)
1186 ("pkg-config" ,pkg-config)))
1187 (synopsis "Minimalistic automatic tiling window manager")
1188 (description
1189 "Spectrwm is a small dynamic tiling and reparenting window manager for X11.
1190It is inspired by Xmonad and dwm. Its major features include:
1191
1192@itemize
1193@item Navigation anywhere on all screens with either the keyboard or mouse
1194@item Customizable status bar
1195@item Restartable without losing state
1196@item Quick launch menu
1197@item Many screen layouts possible with a few simple key strokes
1198@item Move/resize floating windows
32008a75
TGR
1199@item Extended Window Manager Hints (@dfn{EWMH}) support
1200@item Configurable tiling
78dfc9e2 1201@item Adjustable tile gap allows for a true one pixel border
1202@item Customizable colors and border width
1203@end itemize\n")
1204 (home-page "https://github.com/conformal/spectrwm")
1205 (license license:isc)))
b4cb9308 1206
1207(define-public cwm
1208 (package
1209 (name "cwm")
16634798 1210 (version "6.7")
b4cb9308 1211 (source
1212 (origin
1213 (method url-fetch)
9593caff 1214 (uri (string-append "https://leahneukirchen.org/releases/cwm-"
b4cb9308 1215 version ".tar.gz"))
1216 (sha256
16634798 1217 (base32 "022zld29qawd8gl700g4m24qa89il3aks397zkhh66wvzssdblzx"))))
b4cb9308 1218 (build-system gnu-build-system)
1219 (arguments
fa50a8bc 1220 `(#:make-flags (list (string-append "CC=" ,(cc-for-target))
b4cb9308 1221 (string-append "PREFIX=" %output))
1222 #:tests? #f
1223 #:phases
1224 (modify-phases %standard-phases
1225 (delete 'configure)
1226 (add-after 'build 'install-xsession
1227 (lambda* (#:key outputs #:allow-other-keys)
1228 ;; Add a .desktop file to xsessions.
1229 (let* ((output (assoc-ref outputs "out"))
1230 (xsessions (string-append output "/share/xsessions")))
1231 (mkdir-p xsessions)
1232 (with-output-to-file
1233 (string-append xsessions "/cwm.desktop")
1234 (lambda _
1235 (format #t
1236 "[Desktop Entry]~@
1237 Name=cwm~@
1238 Comment=OpenBSD Calm Window Manager fork~@
1239 Exec=~a/bin/cwm~@
1240 TryExec=~@*~a/bin/cwm~@
1241 Icon=~@
1242 Type=Application~%"
1243 output)))
1244 #t))))))
1245 (inputs
1246 `(("libxft" ,libxft)
1247 ("libxrandr" ,libxrandr)
1248 ("libxinerama" ,libxinerama)))
1249 (native-inputs
1250 `(("pkg-config" ,pkg-config)
1251 ("bison" ,bison)))
9593caff 1252 (home-page "https://github.com/leahneukirchen/cwm")
b4cb9308 1253 (synopsis "OpenBSD fork of the calmwm window manager")
1254 (description "Cwm is a stacking window manager for X11. It is an OpenBSD
1255project derived from the original Calm Window Manager.")
1256 (license license:isc)))
70024cfa
PAR
1257
1258(define-public nitrogen
1259 (package
1260 (name "nitrogen")
1261 (version "1.6.1")
1262 (source (origin
1263 (method url-fetch)
1264 (uri (string-append "http://github.com/l3ib/nitrogen/"
1265 "releases/download/" version "/"
1266 name "-" version ".tar.gz"))
1267 (sha256
1268 (base32
1269 "0zc3fl1mbhq0iyndy4ysmy8vv5c7xwf54rbgamzfhfvsgdq160pl"))))
1270 (build-system gnu-build-system)
1271 (inputs
1272 `(("gtk+" ,gtk+-2)
1273 ("gtkmm" ,gtkmm-2)
1274 ("glib" ,glib)
1275 ("glibmm" ,glibmm)))
1276 (native-inputs
de99ba7e 1277 `(("pkg-config" ,pkg-config)))
70024cfa
PAR
1278 (home-page "http://projects.l3ib.org/nitrogen/")
1279 (synopsis "Background browser and setter for X windows")
1280 (description
1281 "This package is a background browser and setter for X windows. It's
1282features are:
1283
1284@itemize
1285@item Multihead and Xinerama aware
1286@item Recall mode to used via startup script
1287@item Uses freedesktop.org standard for thumbnails
1288@item Can set GNOME background
1289@item Command lie set modes for script use
1290@item Inotify monitoring of browse directory
1291@item Lazy loading of thumbnails - conserves memory
1292@item \"Automatic\" set mode - determines best mode to set an image based on
1293its size
1294@item Display preview images in a tiled icon layout
1295@end itemize")
1296 (license license:gpl2+)))
d8dcbcc9
MP
1297
1298(define-public polybar
1299 (package
1300 (name "polybar")
99f80e5c 1301 (version "3.4.3")
d8dcbcc9
MP
1302 (source
1303 (origin
1304 (method url-fetch)
44b73520 1305 (uri (string-append "https://github.com/polybar/polybar/releases/"
4b9e4ac7 1306 "download/" version "/polybar-" version ".tar"))
d8dcbcc9 1307 (sha256
99f80e5c 1308 (base32 "0bw22qvbcdvyd0qv3ax48r34rnclbbb6dyb8h8zljq1r3lf15vfl"))))
d8dcbcc9
MP
1309 (build-system cmake-build-system)
1310 (arguments
1311 ;; Test is disabled because it requires downloading googletest from the
1312 ;; Internet.
1313 '(#:tests? #f))
1314 (inputs
1315 `(("alsa-lib" ,alsa-lib)
1316 ("cairo" ,cairo)
1317 ("i3-wm" ,i3-wm)
005c2ccf 1318 ("jsoncpp" ,jsoncpp)
d8dcbcc9
MP
1319 ("libmpdclient" ,libmpdclient)
1320 ("libnl" ,libnl)
1321 ("libxcb" ,libxcb)
1322 ("pulseaudio" ,pulseaudio)
1323 ("xcb-proto" ,xcb-proto)
1324 ("xcb-util" ,xcb-util)
1325 ("xcb-util-cursor" ,xcb-util-cursor)
1326 ("xcb-util-image" ,xcb-util-image)
1327 ("xcb-util-wm" ,xcb-util-wm)
1328 ("xcb-util-xrm" ,xcb-util-xrm)))
1329 (native-inputs
1330 `(("pkg-config" ,pkg-config)
47560aa2 1331 ("python-sphinx" ,python-sphinx) ; for the manual
e2684594
NG
1332 ;; XXX: "python" input must be located after "python-2", or the package
1333 ;; fails to build with "missing required python module: xcbgen".
d8dcbcc9
MP
1334 ("python-2" ,python-2) ; lib/xpp depends on python 2
1335 ("python" ,python))) ; xcb-proto depends on python 3
1336 (home-page "https://polybar.github.io/")
1337 (synopsis "Fast and easy-to-use status bar")
1338 (description "Polybar aims to help users build beautiful and highly
1339customizable status bars for their desktop environment. It has built-in
1340functionality to display information about the most commonly used services.")
1341 (license license:expat)))
eea969cf
RH
1342
1343(define-public wlroots
1344 (package
1345 (name "wlroots")
f5fb52f1 1346 (version "0.12.0")
eea969cf
RH
1347 (source
1348 (origin
1349 (method git-fetch)
1350 (uri (git-reference
b0e7b699 1351 (url "https://github.com/swaywm/wlroots")
eea969cf
RH
1352 (commit version)))
1353 (file-name (git-file-name name version))
1354 (sha256
f5fb52f1 1355 (base32 "01j38lmgs2c6fq68v8b75pkilia2wsgzgp46ivfbi9hhx47kgcfn"))))
eea969cf
RH
1356 (build-system meson-build-system)
1357 (arguments
1358 `(#:configure-flags '("-Dlogind-provider=elogind")
f5fb52f1 1359 #:meson ,meson-0.55
eea969cf
RH
1360 #:phases
1361 (modify-phases %standard-phases
1362 (add-before 'configure 'hardcode-paths
1363 (lambda* (#:key inputs #:allow-other-keys)
f5fb52f1 1364 (substitute* "xwayland/server.c"
eea969cf
RH
1365 (("Xwayland") (string-append (assoc-ref inputs
1366 "xorg-server-xwayland")
1367 "/bin/Xwayland")))
1368 #t)))))
f5fb52f1
MB
1369 (propagated-inputs
1370 `(;; As required by wlroots.pc.
1371 ("elogind" ,elogind)
1372 ("eudev" ,eudev)
1373 ("libinput" ,libinput)
1374 ("libxkbcommon" ,libxkbcommon)
1375 ("mesa" ,mesa)
1376 ("pixman" ,pixman)
1377 ("wayland" ,wayland)
1378 ("xcb-util-errors" ,xcb-util-errors)
1379 ("xcb-util-wm" ,xcb-util-wm)
1380 ("xorg-server-xwayland" ,xorg-server-xwayland)))
1381 (native-inputs
1382 `(("pkg-config" ,pkg-config)
1383 ("wayland-protocols" ,wayland-protocols)))
eea969cf
RH
1384 (home-page "https://github.com/swaywm/wlroots")
1385 (synopsis "Pluggable, composable, unopinionated modules for building a
1386Wayland compositor")
1387 (description "wlroots is a set of pluggable, composable, unopinionated
1388modules for building a Wayland compositor.")
1389 (license license:expat))) ; MIT license
2ff844f0
RH
1390
1391(define-public sway
1392 (package
1393 (name "sway")
7fc378aa 1394 (version "1.5.1")
2ff844f0
RH
1395 (source
1396 (origin
1397 (method git-fetch)
1398 (uri (git-reference
b0e7b699 1399 (url "https://github.com/swaywm/sway")
2ff844f0
RH
1400 (commit version)))
1401 (file-name (git-file-name name version))
1402 (sha256
7fc378aa 1403 (base32 "1xsa3h8zhf29p0mi90baxpr76jkd9pd1gr97ky8cnjbcs4isj9j0"))))
2ff844f0
RH
1404 (build-system meson-build-system)
1405 (arguments
1406 `(#:phases
1407 (modify-phases %standard-phases
1408 (add-before 'configure 'hardcode-paths
1409 (lambda* (#:key inputs #:allow-other-keys)
e23b6a68
MP
1410 ;; Hardcode path to swaybg.
1411 (substitute* "sway/config.c"
1412 (("strdup..swaybg..")
1413 (string-append "strdup(\"" (assoc-ref inputs "swaybg")
1414 "/bin/swaybg\")")))
1415 ;; Hardcode path to scdoc.
2ff844f0
RH
1416 (substitute* "meson.build"
1417 (("scdoc.get_pkgconfig_variable..scdoc..")
1418 (string-append "'" (assoc-ref inputs "scdoc")
1419 "/bin/scdoc'")))
1420 #t)))))
1421 (inputs `(("cairo" ,cairo)
1422 ("elogind" ,elogind)
1423 ("gdk-pixbuf" ,gdk-pixbuf)
1424 ("json-c" ,json-c)
aa07299f 1425 ("libevdev" ,libevdev)
2ff844f0
RH
1426 ("libinput" ,libinput)
1427 ("libxkbcommon" ,libxkbcommon)
1428 ("pango" ,pango)
e23b6a68 1429 ("swaybg" ,swaybg)
2ff844f0
RH
1430 ("wayland" ,wayland)
1431 ("wlroots" ,wlroots)))
7fc378aa
MB
1432 (native-inputs
1433 `(("linux-pam" ,linux-pam)
1434 ("mesa" ,mesa)
1435 ("pkg-config" ,pkg-config)
1436 ("scdoc" ,scdoc)
1437 ("wayland-protocols" ,wayland-protocols)))
2ff844f0
RH
1438 (home-page "https://github.com/swaywm/sway")
1439 (synopsis "Wayland compositor compatible with i3")
1440 (description "Sway is a i3-compatible Wayland compositor.")
7fc378aa 1441 (license license:expat)))
06ae5efc
RH
1442
1443(define-public swayidle
1444 (package
1445 (name "swayidle")
53d8e2c6 1446 (version "1.6")
06ae5efc
RH
1447 (source
1448 (origin
1449 (method git-fetch)
1450 (uri (git-reference
b0e7b699 1451 (url "https://github.com/swaywm/swayidle")
06ae5efc
RH
1452 (commit version)))
1453 (file-name (git-file-name name version))
1454 (sha256
53d8e2c6 1455 (base32 "1nd3v8r9549lykdwh4krldfl59lzaspmmai5k1icy7dvi6kkr18r"))))
06ae5efc 1456 (build-system meson-build-system)
ddd401d2
MP
1457 (arguments
1458 `(#:configure-flags '("-Dlogind-provider=elogind")))
1459 (inputs `(("elogind" ,elogind)
1460 ("wayland" ,wayland)))
06ae5efc
RH
1461 (native-inputs `(("pkg-config" ,pkg-config)
1462 ("scdoc" ,scdoc)
1463 ("wayland-protocols" ,wayland-protocols)))
1464 (home-page "https://github.com/swaywm/sway")
1465 (synopsis "Idle management daemon for Wayland compositors")
1466 (description "Swayidle is a idle management daemon for Wayland compositors.")
1467 (license license:expat))) ; MIT license
b0805973
RH
1468
1469(define-public swaylock
1470 (package
1471 (name "swaylock")
75d31a4c 1472 (version "1.5")
b0805973
RH
1473 (source
1474 (origin
1475 (method git-fetch)
1476 (uri (git-reference
b0e7b699 1477 (url "https://github.com/swaywm/swaylock")
b0805973
RH
1478 (commit version)))
1479 (file-name (git-file-name name version))
1480 (sha256
75d31a4c 1481 (base32 "0r95p4w11dwm5ra614vddz83r8j7z6gd120z2vcchy7m9b0f15kf"))))
b0805973
RH
1482 (build-system meson-build-system)
1483 (inputs `(("cairo" ,cairo)
1484 ("gdk-pixbuf" ,gdk-pixbuf)
1485 ("libxkbcommon" ,libxkbcommon)
1486 ;("linux-pam" ,linux-pam) ; FIXME: Doesn't work.
1487 ("wayland" ,wayland)))
bc552a0c 1488 (native-inputs `(("pango" ,pango)
b0805973
RH
1489 ("pkg-config" ,pkg-config)
1490 ("scdoc" ,scdoc)
1491 ("wayland-protocols" ,wayland-protocols)))
1492 (home-page "https://github.com/swaywm/sway")
1493 (synopsis "Screen locking utility for Wayland compositors")
1494 (description "Swaylock is a screen locking utility for Wayland compositors.")
1495 (license license:expat))) ; MIT license
bedb3457
SS
1496
1497(define-public swaybg
1498 (package
1499 (name "swaybg")
1500 (version "1.0")
1501 (source
1502 (origin
1503 (method git-fetch)
1504 (uri (git-reference
b0e7b699 1505 (url "https://github.com/swaywm/swaybg")
bedb3457
SS
1506 (commit version)))
1507 (file-name (git-file-name name version))
1508 (sha256
1509 (base32 "1lmqz5bmig90gq2m7lwf02d2g7z4hzf8fhqz78c8vk92c6p4xwbc"))))
1510 (build-system meson-build-system)
1511 (inputs `(("cairo" ,cairo)
1512 ("gdk-pixbuf" ,gdk-pixbuf)
1513 ("wayland" ,wayland)))
3e295e8d 1514 (native-inputs `(("pkg-config" ,pkg-config)
bedb3457
SS
1515 ("scdoc" ,scdoc)
1516 ("wayland-protocols" ,wayland-protocols)))
1517 (home-page "https://github.com/swaywm/sway")
1518 (synopsis "Screen wallpaper utility for Wayland compositors")
1519 (description "Swaybg is a wallpaper utility for Wayland compositors.")
1520 (license license:expat))) ; MIT license
7a1d6a77
GB
1521
1522(define-public waybar
1523 (package
1524 (name "waybar")
08014aed 1525 (version "0.9.4")
7a1d6a77
GB
1526 (source
1527 (origin
1528 (method git-fetch)
1529 (uri (git-reference
b0e7b699 1530 (url "https://github.com/Alexays/Waybar")
7a1d6a77
GB
1531 (commit version)))
1532 (file-name (git-file-name name version))
1533 (sha256
08014aed 1534 (base32 "038vnma7y7z81caywp45yr364bc1aq8d01j5vycyiyfv33nm76fy"))))
7a1d6a77 1535 (build-system meson-build-system)
5e78a87b 1536 (inputs `(("date" ,date)
a8360892 1537 ("fmt" ,fmt-6)
5e78a87b 1538 ("gtk-layer-shell" ,gtk-layer-shell)
7a1d6a77
GB
1539 ("gtkmm" ,gtkmm)
1540 ("jsoncpp" ,jsoncpp)
de2d14f2 1541 ("libdbusmenu" ,libdbusmenu)
7a1d6a77 1542 ("libinput" ,libinput)
de2d14f2
GB
1543 ("libmpdclent" ,libmpdclient)
1544 ("libnl" ,libnl)
1545 ("pulseaudio" ,pulseaudio)
7a1d6a77
GB
1546 ("spdlog" ,spdlog)
1547 ("wayland" ,wayland)))
80817888
TGR
1548 (native-inputs
1549 `(("gcc" ,gcc-8) ; for #include <filesystem>
1550 ("glib:bin" ,glib "bin")
1551 ("pkg-config" ,pkg-config)
56c39a07 1552 ("scdoc" ,scdoc)
80817888 1553 ("wayland-protocols" ,wayland-protocols)))
7a1d6a77 1554 (home-page "https://github.com/Alexays/Waybar")
5e78a87b 1555 (synopsis "Wayland bar for Sway and Wlroots based compositors")
7a1d6a77
GB
1556 (description "Waybar is a highly customisable Wayland bar for Sway and
1557Wlroots based compositors.")
1558 (license license:expat))) ; MIT license
46dc940c
GB
1559
1560(define-public mako
1561 (package
1562 (name "mako")
9ca38df7 1563 (version "1.4.1")
46dc940c
GB
1564 (source
1565 (origin
1566 (method git-fetch)
1567 (uri (git-reference
b0e7b699 1568 (url "https://github.com/emersion/mako")
46dc940c
GB
1569 (commit (string-append "v" version))))
1570 (file-name (git-file-name name version))
1571 (sha256
9ca38df7 1572 (base32 "0hwvibpnrximb628w9dsfjpi30b5jy7nfkm4d94z5vhp78p43vxh"))))
46dc940c
GB
1573 (build-system meson-build-system)
1574 (inputs `(("cairo" ,cairo)
1575 ("elogind" ,elogind)
1576 ("gdk-pixbuf" ,gdk-pixbuf)
1577 ("pango" ,pango)
1578 ("wayland" ,wayland)))
1579 (native-inputs `(("pkg-config" ,pkg-config)
1580 ("scdoc" ,scdoc)
1581 ("wayland-protocols" ,wayland-protocols)))
1582 (home-page "https://wayland.emersion.fr/mako")
1583 (synopsis "Lightweight Wayland notification daemon")
1584 (description "Mako is a lightweight notification daemon for Wayland
1585compositors that support the layer-shell protocol.")
1586 (license license:expat))) ; MIT license
88f06fd0
PN
1587
1588(define-public stumpwm
1589 (package
1590 (name "stumpwm")
dfb85d1e 1591 (version "20.11")
88f06fd0
PN
1592 (source
1593 (origin
1594 (method git-fetch)
1595 (uri (git-reference
b0e7b699 1596 (url "https://github.com/stumpwm/stumpwm")
88f06fd0
PN
1597 (commit version)))
1598 (file-name (git-file-name "stumpwm" version))
1599 (sha256
dfb85d1e 1600 (base32 "1ghs6ihvmb3bz4q4ys1d3h6rdi96xyiw7l2ip7jh54c25049aymf"))))
88f06fd0
PN
1601 (build-system asdf-build-system/sbcl)
1602 (native-inputs `(("fiasco" ,sbcl-fiasco)
afed1b94
TGR
1603 ("texinfo" ,texinfo)
1604
1605 ;; To build the manual.
1606 ("autoconf" ,autoconf)
1607 ("automake" ,automake)))
88f06fd0
PN
1608 (inputs `(("cl-ppcre" ,sbcl-cl-ppcre)
1609 ("clx" ,sbcl-clx)
1610 ("alexandria" ,sbcl-alexandria)))
1611 (outputs '("out" "lib"))
1612 (arguments
2ff8b5ba 1613 '(#:asd-systems '("stumpwm")
88f06fd0
PN
1614 #:phases
1615 (modify-phases %standard-phases
2ff8b5ba 1616 (add-after 'create-asdf-configuration 'build-program
88f06fd0
PN
1617 (lambda* (#:key outputs #:allow-other-keys)
1618 (build-program
1619 (string-append (assoc-ref outputs "out") "/bin/stumpwm")
1620 outputs
1621 #:entry-program '((stumpwm:stumpwm) 0))))
1622 (add-after 'build-program 'create-desktop-file
1623 (lambda* (#:key outputs #:allow-other-keys)
1624 (let* ((out (assoc-ref outputs "out"))
1625 (xsessions (string-append out "/share/xsessions")))
1626 (mkdir-p xsessions)
1627 (call-with-output-file
1628 (string-append xsessions "/stumpwm.desktop")
1629 (lambda (file)
1630 (format file
1631 "[Desktop Entry]~@
1632 Name=stumpwm~@
1633 Comment=The Stump Window Manager~@
1634 Exec=~a/bin/stumpwm~@
1635 TryExec=~@*~a/bin/stumpwm~@
1636 Icon=~@
1637 Type=Application~%"
1638 out)))
1639 #t)))
1640 (add-after 'install 'install-manual
afed1b94 1641 (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
88f06fd0
PN
1642 (let* ((out (assoc-ref outputs "out"))
1643 (info (string-append out "/share/info")))
afed1b94
TGR
1644 (invoke "./autogen.sh")
1645 (invoke "sh" "./configure" "SHELL=sh")
1646 (apply invoke "make" "stumpwm.info" make-flags)
88f06fd0
PN
1647 (install-file "stumpwm.info" info)
1648 #t))))))
1649 (synopsis "Window manager written in Common Lisp")
1650 (description "Stumpwm is a window manager written entirely in Common Lisp.
1651It attempts to be highly customizable while relying entirely on the keyboard
1652for input. These design decisions reflect the growing popularity of
1653productive, customizable lisp based systems.")
1654 (home-page "https://github.com/stumpwm/stumpwm")
1655 (license license:gpl2+)
1656 (properties `((cl-source-variant . ,(delay cl-stumpwm))))))
1657
1658(define-public sbcl-stumpwm
1659 (deprecated-package "sbcl-stumpwm" stumpwm))
1660
1661(define-public cl-stumpwm
1662 (package
1663 (inherit (sbcl-package->cl-source-package stumpwm))
1664 (name "cl-stumpwm")))
1665
1666(define-public stumpwm+slynk
1667 (package
1668 (inherit stumpwm)
1669 (name "stumpwm-with-slynk")
1670 (outputs '("out"))
1671 (inputs
1672 `(("stumpwm" ,stumpwm "lib")
1673 ("slynk" ,sbcl-slynk)))
1674 (arguments
1675 (substitute-keyword-arguments (package-arguments stumpwm)
1676 ((#:phases phases)
1677 `(modify-phases ,phases
1678 (replace 'build-program
1679 (lambda* (#:key inputs outputs #:allow-other-keys)
1680 (let* ((out (assoc-ref outputs "out"))
1681 (program (string-append out "/bin/stumpwm")))
1682 (build-program program outputs
1683 #:entry-program '((stumpwm:stumpwm) 0)
2ff8b5ba 1684 #:dependencies '("stumpwm" "slynk")
88f06fd0
PN
1685 #:dependency-prefixes
1686 (map (lambda (input) (assoc-ref inputs input))
1687 '("stumpwm" "slynk")))
88f06fd0
PN
1688 #t)))
1689 (delete 'copy-source)
1690 (delete 'build)
1691 (delete 'check)
2ff8b5ba 1692 (delete 'cleanup)))))))
88f06fd0 1693
81b045e1
KCB
1694(define stumpwm-contrib
1695 (let ((commit "920f8fc1488f7953f205e1dda4c2ecbbbda56d63")
8b2a637d 1696 (revision "2"))
9a12243c 1697 (package
81b045e1 1698 (name "stumpwm-contrib")
9a12243c
OP
1699 (version (git-version "0.0.1" revision commit)) ;no upstream release
1700 (source
1701 (origin
1702 (method git-fetch)
1703 (uri (git-reference
b0e7b699 1704 (url "https://github.com/stumpwm/stumpwm-contrib")
9a12243c 1705 (commit commit)))
b9e1fc2f 1706 (file-name (git-file-name name version))
9a12243c 1707 (sha256
8b2a637d 1708 (base32 "0giac390bq95ag41xkxqp8jjrhfx1wpgglz7jg5rkm0wjhcwmyml"))))
81b045e1 1709 (build-system asdf-build-system/sbcl)
9a12243c 1710 (inputs
81b045e1 1711 `(("stumpwm" ,stumpwm "lib")))
9a12243c
OP
1712 (home-page "https://github.com/stumpwm/stumpwm-contrib")
1713 (synopsis "StumpWM interactive shell")
1714 (description "This package provides a StumpWM interactive shell.")
1715 (license (list license:gpl2+ license:gpl3+ license:bsd-2)))))
1716
81b045e1
KCB
1717(define-public stumpish
1718 (package
1719 (inherit stumpwm-contrib)
1720 (name "stumpish")
1721 (inputs
1722 `(("bash" ,bash)
48b00a4c
MR
1723 ("rlwrap" ,rlwrap)
1724 ("xprop" ,xprop)))
81b045e1
KCB
1725 (build-system trivial-build-system)
1726 (arguments
1727 '(#:modules ((guix build utils))
81b045e1
KCB
1728 #:builder
1729 (begin
1730 (use-modules (guix build utils))
1731 (copy-recursively (assoc-ref %build-inputs "source") ".")
1732 (chdir "util/stumpish")
1733 (substitute* "stumpish"
1734 (("rlwrap") (string-append (assoc-ref %build-inputs "rlwrap")
1735 "/bin/rlwrap"))
48b00a4c
MR
1736 (("xprop") (string-append (assoc-ref %build-inputs "xprop")
1737 "/bin/xprop"))
81b045e1
KCB
1738 (("/bin/sh") (string-append (assoc-ref %build-inputs "bash")
1739 "/bin/bash")))
1740 (install-file "stumpish" (string-append %output "/bin")))))
1741 (home-page "https://github.com/stumpwm/stumpwm-contrib")
1742 (synopsis "StumpWM interactive shell")
1743 (description "This package provides a StumpWM interactive shell.")
1744 (license (list license:gpl2+ license:gpl3+ license:bsd-2))))
1745
88f06fd0
PN
1746(define-public sbcl-stumpwm+slynk
1747 (deprecated-package "sbcl-stumpwm-with-slynk" stumpwm+slynk))
d4145638 1748
65051fdc 1749(define-public sbcl-stumpwm-ttf-fonts
81b045e1
KCB
1750 (package
1751 (inherit stumpwm-contrib)
1752 (name "sbcl-stumpwm-ttf-fonts")
1753 (inputs
1754 `(("stumpwm" ,stumpwm "lib")
1755 ("clx-truetype" ,sbcl-clx-truetype)))
1756 (arguments
2ff8b5ba 1757 '(#:asd-systems '("ttf-fonts")
81b045e1
KCB
1758 #:tests? #f
1759 #:phases
1760 (modify-phases %standard-phases
1761 (add-after 'unpack 'chdir
1762 (lambda _ (chdir "util/ttf-fonts") #t)))))
1763 (home-page "https://github.com/stumpwm/stumpwm-contrib")
1764 (synopsis "Implementation of TTF font rendering for Lisp")
1765 (description "This package provides a Lisp implementation of TTF font
65051fdc 1766rendering.")
81b045e1 1767 (license (list license:gpl2+ license:gpl3+ license:bsd-2))))
65051fdc 1768
fd65311c 1769(define-public sbcl-stumpwm-pass
81b045e1
KCB
1770 (package
1771 (inherit stumpwm-contrib)
1772 (name "sbcl-stumpwm-pass")
1773 (arguments
2ff8b5ba 1774 '(#:asd-systems '("pass")
81b045e1
KCB
1775 #:tests? #f
1776 #:phases
1777 (modify-phases %standard-phases
1778 (add-after 'unpack 'chdir
1779 (lambda _ (chdir "util/pass") #t)))))
1780 (home-page "https://github.com/stumpwm/stumpwm-contrib")
4a1e3610 1781 (synopsis "Integrate @code{pass} with StumpWM")
81b045e1 1782 (description "This package provides an interface which integrates
fd65311c 1783password-store into StumpWM.")
81b045e1 1784 (license (list license:gpl2+ license:gpl3+ license:bsd-2))))
fd65311c 1785
396eb9e1 1786(define-public sbcl-stumpwm-globalwindows
81b045e1
KCB
1787 (package
1788 (inherit stumpwm-contrib)
1789 (name "sbcl-stumpwm-globalwindows")
1790 (arguments
2ff8b5ba 1791 '(#:asd-systems '("globalwindows")
81b045e1
KCB
1792 #:tests? #f
1793 #:phases
1794 (modify-phases %standard-phases
1795 (add-after 'unpack 'chdir
1796 (lambda _ (chdir "util/globalwindows") #t)))))
1797 (home-page "https://github.com/stumpwm/stumpwm-contrib")
1798 (synopsis "Manipulate all windows in the current X session")
1799 (description "This package provides a StumpWM module to manipulate all
396eb9e1 1800windows in the current X session.")
81b045e1 1801 (license (list license:gpl2+ license:gpl3+ license:bsd-2))))
396eb9e1 1802
693d0fff 1803(define-public sbcl-stumpwm-swm-gaps
81b045e1
KCB
1804 (package
1805 (inherit stumpwm-contrib)
1806 (name "sbcl-stumpwm-swm-gaps")
1807 (arguments
2ff8b5ba 1808 '(#:asd-systems '("swm-gaps")
81b045e1
KCB
1809 #:tests? #f
1810 #:phases
1811 (modify-phases %standard-phases
1812 (add-after 'unpack 'chdir
1813 (lambda _ (chdir "util/swm-gaps") #t)))))
1814 (home-page "https://github.com/stumpwm/stumpwm-contrib")
1815 (synopsis "Gaps between windows for StumpWM")
1816 (description "This package provides a StumpWM module which adds gaps
693d0fff 1817between windows.")
81b045e1 1818 (license (list license:gpl2+ license:gpl3+ license:bsd-2))))
693d0fff 1819
ea94e4d3
KCB
1820(define-public sbcl-stumpwm-net
1821 (package
1822 (inherit stumpwm-contrib)
1823 (name "sbcl-stumpwm-net")
1824 (arguments
2ff8b5ba 1825 '(#:asd-systems '("net")
ea94e4d3
KCB
1826 #:tests? #f
1827 #:phases
1828 (modify-phases %standard-phases
1829 (add-after 'unpack 'chdir (lambda _ (chdir "modeline/net") #t)))))
1830 (home-page
1831 "https://github.com/stumpwm/stumpwm-contrib/tree/master/modeline/net")
1832 (synopsis "Modeline support for network connectivity")
1833 (description "Modeline support for network connectivity.")
1834 (supported-systems
1835 (filter (lambda (a) (string-contains a "linux")) %supported-systems))
1836 (license license:gpl3+)))
1837
86ee8d15
KCB
1838(define-public sbcl-stumpwm-wifi
1839 (package
1840 (inherit stumpwm-contrib)
1841 (name "sbcl-stumpwm-wifi")
1842 (arguments
2ff8b5ba 1843 '(#:asd-systems '("wifi")
86ee8d15
KCB
1844 #:tests? #f
1845 #:phases
1846 (modify-phases %standard-phases
1847 (add-after 'unpack 'chdir (lambda _ (chdir "modeline/wifi") #t)))))
1848 (home-page
1849 "https://github.com/stumpwm/stumpwm-contrib/tree/master/modeline/wifi")
1850 (synopsis "Modeline support for wifi connectivity")
1851 (description "Modeline support for wifi connectivity.")
1852 (supported-systems
1853 (filter (lambda (a) (string-contains a "linux")) %supported-systems))
1854 (license license:gpl3+)))
1855
1afe58e4
KCB
1856(define-public sbcl-stumpwm-stumptray
1857 (package
1858 (inherit stumpwm-contrib)
1859 (name "sbcl-stumpwm-stumptray")
1860 (arguments
2ff8b5ba 1861 '(#:asd-systems '("stumptray")
1afe58e4
KCB
1862 #:tests? #f
1863 #:phases
1864 (modify-phases %standard-phases
1865 (add-after 'unpack 'chdir (lambda _ (chdir "modeline/stumptray") #t)))))
1866 (inputs
1867 `(("stumpwm" ,stumpwm "lib")
1868 ("xembed" ,sbcl-clx-xembed)
1869 ("alexandria" ,sbcl-alexandria)))
1870 (home-page
1871 "https://github.com/stumpwm/stumpwm-contrib/tree/master/modeline/stumptray")
1872 (synopsis "Modeline support for stumptray connectivity")
1873 (description "Modeline support for stumptray connectivity.")
1874 (supported-systems
1875 (filter (lambda (a) (string-contains a "linux")) %supported-systems))
1876 (license license:gpl3+)))
1877
b70e612b
KCB
1878(define-public sbcl-stumpwm-kbd-layouts
1879 (package
1880 (inherit stumpwm-contrib)
1881 (name "sbcl-stumpwm-kbd-layouts")
1882 (arguments
2ff8b5ba 1883 '(#:asd-systems '("kbd-layouts")
b70e612b
KCB
1884 #:tests? #f
1885 #:phases
1886 (modify-phases %standard-phases
1887 (add-after 'unpack 'chdir (lambda _ (chdir "util/kbd-layouts") #t)))))
1888 (home-page
1889 "https://github.com/stumpwm/stumpwm-contrib/tree/master/util/kbd-layouts")
1890 (synopsis "Keyboard layout switcher for StumpWM")
1891 (description "Keyboard layout switcher for StumpWM")
1892 (license license:gpl3+)))
1893
680102aa
GLV
1894(define-public sbcl-stumpwm-numpad-layouts
1895 (package
1896 (inherit stumpwm-contrib)
1897 (name "sbcl-stumpwm-numpad-layouts")
1898 (arguments
1899 '(#:asd-systems '("numpad-layouts")
1900 #:tests? #f
1901 #:phases
1902 (modify-phases %standard-phases
1903 (add-after 'unpack 'chdir
1904 (lambda _
1905 (chdir "util/numpad-layouts"))))))
1906 (home-page
1907 "https://github.com/stumpwm/stumpwm-contrib/tree/master/util/numpad-layouts")
1908 (synopsis "Keyboard numpad layouts for StumpWM")
1909 (description "This is a module for handling different keyboards numpad
1910layouts in StumpWM.")
1911 (license license:gpl3+)))
1912
d4145638
N
1913(define-public lemonbar
1914 (let ((commit "35183ab81d2128dbb7b6d8e119cc57846bcefdb4")
1915 (revision "1"))
1916 (package
1917 (name "lemonbar")
1918 (version (git-version "1.3" revision commit))
1919 (source (origin
1920 (method git-fetch)
1921 (uri (git-reference
1922 (url "https://github.com/LemonBoy/bar")
1923 (commit commit)))
1924 (file-name (git-file-name name version))
1925 (sha256
1926 (base32
1927 "1wwqbph392iwz8skaqxb0xpklb1l6yganqz80g4x1fhrnz7idmlh"))))
1928 (build-system gnu-build-system)
1929 (arguments
6978cb28
TGR
1930 `(#:tests? #f ; no test suite
1931 #:make-flags
1932 (list ,(string-append "CC=" (cc-for-target))
1933 (string-append "PREFIX=" %output))
d4145638
N
1934 #:phases
1935 (modify-phases %standard-phases
1936 (delete 'configure))))
1937 (inputs
1938 `(("libxcb" ,libxcb)))
1939 (native-inputs
1940 `(("perl" ,perl)))
1941 (home-page "https://github.com/LemonBoy/bar")
1942 (synopsis "Featherweight status bar")
1943 (description
1944 "@code{lemonbar} (formerly known as @code{bar}) is a lightweight
1945bar entirely based on XCB. Provides full UTF-8 support, basic
1946formatting, RandR and Xinerama support and EWMH compliance without
1947wasting your precious memory.")
1948 (license license:x11))))
ab751d53
OP
1949
1950(define-public xclickroot
8ff16233
OP
1951 (package
1952 (name "xclickroot")
1953 (version "1.2")
1954 (source (origin
1955 (method git-fetch)
1956 (uri (git-reference
1957 (url "https://github.com/phillbush/xclickroot")
1958 (commit (string-append "v" version))))
1959 (file-name (git-file-name name version))
1960 (sha256
1961 (base32
1962 "1nd5qz0qz5j7gx2jsbcp234giwaa0xmg42vrcjrcf587q9ivakfl"))))
1963 (build-system gnu-build-system)
1964 (inputs
1965 `(("libx11" ,libx11)))
1966 (arguments
1967 `(#:tests? #f ;no test suite
1968 #:make-flags
1969 (list ,(string-append "CC=" (cc-for-target))
1970 (string-append "PREFIX=" %output))
1971 #:phases
1972 (modify-phases %standard-phases
1973 (delete 'configure))))
1974 (home-page "https://github.com/phillbush/xclickroot")
1975 (synopsis "Run a command when a mouse button is pressed on the root window")
1976 (description "@code{xclickroot} runs a command every time a given mouse
ab751d53 1977button is pressed on the root window.")
8ff16233 1978 (license license:public-domain)))
6bd6b123
OP
1979
1980(define-public xmenu
1981 (package
1982 (name "xmenu")
bf822521 1983 (version "4.4.1")
6bd6b123
OP
1984 (source (origin
1985 (method git-fetch)
1986 (uri (git-reference
1987 (url "https://github.com/phillbush/xmenu")
1988 (commit (string-append "v" version))))
1989 (file-name (git-file-name name version))
1990 (sha256
1991 (base32
bf822521 1992 "1s70zvsaqnsjqs298vw3py0vcvia68xlks1wcz37pb88bwligz1x"))))
6bd6b123
OP
1993 (build-system gnu-build-system)
1994 (inputs
1995 `(("libx11" ,libx11)
bf822521 1996 ("libxinerama" ,libxinerama)
6bd6b123
OP
1997 ("libxft" ,libxft)
1998 ("freetype" ,freetype)
1999 ("imlib2" ,imlib2)))
2000 (arguments
2001 `(#:tests? #f ;no test suite
2002 #:make-flags
2003 (list (string-append "CC=" ,(cc-for-target))
2004 (string-append "PREFIX=" %output)
2005 (string-append "CFLAGS="
2006 "-I" (assoc-ref %build-inputs "freetype")
2007 "/include/freetype2"))
2008 #:phases
2009 (modify-phases %standard-phases
2010 (delete 'configure))))
2011 (home-page "https://github.com/phillbush/xmenu")
2012 (synopsis "Menu utility for X")
2013 (description "@code{xmenu} receives a menu specification in stdin, shows
2014a menu for the user to select one of the options, and outputs the option
2015selected to stdout. It can be controlled both via mouse and via keyboard.")
2016 (license license:public-domain)))
1db15d00
OP
2017
2018(define-public idesk
2019 (package
2020 (name "idesk")
2021 (version "0.7.5")
2022 (source
2023 (origin
2024 (method url-fetch)
2025 (uri (string-append
2026 "mirror://sourceforge/idesk/idesk/idesk-" version
2027 "/idesk-" version ".tar.bz2"))
2028 (sha256
2029 (base32
2030 "1lxk2yvgysxwl514zc82lwr1dwc8cd62slgr5lzdhjbdrxfymdyl"))
2031 (modules '((guix build utils)
2032 (ice-9 format)))
2033 (snippet
2034 '(let* ((file "src/DesktopConfig.cpp")
2035 (template (string-append file ".XXXXXX"))
2036 (out (mkstemp! template))
2037 (st (stat file))
2038 (mode (stat:mode st)))
2039 (call-with-ascii-input-file file
2040 (lambda (p)
2041 (format out "~{~a~%~}" '("#include <unistd.h>"
2042 "#include <sys/stat.h>"
2043 "#include <sys/types.h>"))
2044 (dump-port p out)
2045 (close out)
2046 (chmod template mode)
2047 (rename-file template file)
2048 #t))))))
2049 (build-system gnu-build-system)
2050 (inputs
2051 `(("libx11" ,libx11)
2052 ("libxft" ,libxft)
2053 ("libxpm" ,libxpm)
2054 ("libpng" ,libpng)
2055 ("freetype" ,freetype)
2056 ("imlib2" ,imlib2)
2057 ("sed" ,sed)))
2058 (native-inputs
2059 `(("pkg-config" ,pkg-config)))
2060 (arguments
2061 `(#:tests? #f)) ;no test suite
2062 (home-page "https://sourceforge.net/projects/idesk/")
2063 (synopsis "Add icons on X desktop and set background image for wallpaper")
2064 (description "Idesk is program that draws desktop icons. Each icon will
2065execute a shell command on a configurable action. The icons can be moved on
2066the desktop by dragging them, and the icons will remember their positions on
2067start-up.")
2068 (license license:bsd-3)))
2aa39332
OP
2069
2070(define-public xnotify
2071 (package
2072 (name "xnotify")
2a72cb7b 2073 (version "0.7.3")
2aa39332
OP
2074 (source (origin
2075 (method git-fetch)
2076 (uri (git-reference
2077 (url "https://github.com/phillbush/xnotify")
2a72cb7b 2078 (commit version)))
2aa39332
OP
2079 (file-name (git-file-name name version))
2080 (sha256
2081 (base32
2a72cb7b 2082 "09s29m8z4x3mc3wja2587ik3f6zg16b40adr3nllnpyy1mqnprq5"))))
2aa39332
OP
2083 (build-system gnu-build-system)
2084 (inputs
2085 `(("libx11" ,libx11)
2086 ("libxft" ,libxft)
2087 ("libxinerama" ,libxinerama)
2088 ("imlib2" ,imlib2)))
2089 (arguments
2090 `(#:make-flags
2091 (list (string-append "CC=" ,(cc-for-target))
2092 (string-append "PREFIX=" %output)
2093 (string-append "CFLAGS="
2094 "-I" (assoc-ref %build-inputs "freetype")
2095 "/include/freetype2"))
2096 #:tests? #f ;no test suite
2097 #:phases
2098 (modify-phases %standard-phases
2099 (delete 'configure))))
2100 (home-page "https://github.com/phillbush/xnotify")
2101 (synopsis "Displays a notification on the screen")
2102 (description "XNotify receives a notification specification in stdin and
2103shows a notification for the user on the screen.")
2104 (license license:expat)))