gnu: igt-gpu-tools: Don't use NAME in source URI.
[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>
560c0795 8;;; Copyright © 2016 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>
189be331 11;;; Copyright © 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
4a78fd46 12;;; Copyright © 2016, 2017, 2018 Nils Gillmann <ng0@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>
3e7cb70a 16;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
6e864d00 17;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com>
d2ea8064 18;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
70024cfa 19;;; Copyright © 2018 Pierre-Antoine Rouby <contact@parouby.fr>
bc83b2e2 20;;; Copyright © 2018 Meiyo Peng <meiyo.peng@gmail.com>
bda2ded6
ED
21;;;
22;;; This file is part of GNU Guix.
23;;;
24;;; GNU Guix is free software; you can redistribute it and/or modify it
25;;; under the terms of the GNU General Public License as published by
26;;; the Free Software Foundation; either version 3 of the License, or (at
27;;; your option) any later version.
28;;;
29;;; GNU Guix is distributed in the hope that it will be useful, but
30;;; WITHOUT ANY WARRANTY; without even the implied warranty of
31;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
32;;; GNU General Public License for more details.
33;;;
34;;; You should have received a copy of the GNU General Public License
35;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
36
37(define-module (gnu packages wm)
0ede252b 38 #:use-module ((guix licenses) #:prefix license:)
bda2ded6 39 #:use-module (guix packages)
c595cd47 40 #:use-module (gnu packages)
bda2ded6 41 #:use-module (gnu packages linux)
3d1240aa 42 #:use-module (guix build-system cmake)
bda2ded6 43 #:use-module (guix build-system gnu)
6e38c4be 44 #:use-module (guix build-system haskell)
3e7cb70a 45 #:use-module (guix build-system perl)
c165591d 46 #:use-module (guix build-system python)
6e38c4be 47 #:use-module (gnu packages haskell)
a06b9b50 48 #:use-module (gnu packages haskell-check)
44b7374a 49 #:use-module (gnu packages haskell-web)
4b563b34 50 #:use-module (gnu packages autotools)
b4cb9308 51 #:use-module (gnu packages bison)
b0a2dc72 52 #:use-module (gnu packages gawk)
bda2ded6
ED
53 #:use-module (gnu packages base)
54 #:use-module (gnu packages pkg-config)
55 #:use-module (gnu packages perl)
766a22fb 56 #:use-module (gnu packages pulseaudio)
bda2ded6
ED
57 #:use-module (gnu packages xorg)
58 #:use-module (gnu packages xdisorg)
99828fa7 59 #:use-module (gnu packages documentation)
bda2ded6
ED
60 #:use-module (gnu packages xml)
61 #:use-module (gnu packages m4)
62 #:use-module (gnu packages docbook)
0ede252b 63 #:use-module (gnu packages image)
bda2ded6 64 #:use-module (gnu packages pcre)
395751c0 65 #:use-module (gnu packages python)
bda2ded6
ED
66 #:use-module (gnu packages gtk)
67 #:use-module (gnu packages libevent)
0ede252b 68 #:use-module (gnu packages fribidi)
bda2ded6
ED
69 #:use-module (gnu packages maths)
70 #:use-module (gnu packages web)
0ede252b 71 #:use-module (gnu packages fontutils)
3d1240aa
CZ
72 #:use-module (gnu packages freedesktop)
73 #:use-module (gnu packages glib)
74 #:use-module (gnu packages gperf)
75 #:use-module (gnu packages imagemagick)
76 #:use-module (gnu packages lua)
4b563b34 77 #:use-module (gnu packages linux)
37356e0b 78 #:use-module (gnu packages suckless)
d8dcbcc9 79 #:use-module (gnu packages mpd)
bda2ded6
ED
80 #:use-module (guix download)
81 #:use-module (guix git-download))
82
5c37126f
ED
83(define-public libconfuse
84 (package
85 (name "libconfuse")
146c3b21 86 (version "3.2.2")
5c37126f
ED
87 (source (origin
88 (method url-fetch)
631ced1b
TGR
89 (uri (string-append "https://github.com/martinh/libconfuse/"
90 "releases/download/v" version
91 "/confuse-" version ".tar.xz"))
5c37126f
ED
92 (sha256
93 (base32
146c3b21 94 "02r1mmzik2m0iigbc2da3y754vj24i18r3ml5p2wzs027mjhn959"))))
5c37126f 95 (build-system gnu-build-system)
631ced1b 96 (home-page "https://github.com/martinh/libconfuse")
5c37126f
ED
97 (synopsis "Configuration file parser library")
98 (description "libconfuse is a configuration file parser library. It
99supports sections and (lists of) values (strings, integers, floats, booleans
100or other sections), as well as some other features (such as
101single/double-quoted strings, environment variable expansion, functions and
102nested include statements).")
0ede252b 103 (license license:isc)))
5c37126f 104
1268e52d 105(define-public bspwm
106 (package
107 (name "bspwm")
aa0551c2 108 (version "0.9.5")
1268e52d 109 (source
110 (origin
111 (file-name (string-append name "-" version ".tar.gz"))
112 (method url-fetch)
113 (uri (string-append
114 "https://github.com/baskerville/bspwm/archive/"
115 version ".tar.gz"))
116 (sha256
117 (base32
aa0551c2 118 "10pph8wxqysgk7b2h0svs0nwacn1a4y44jnzzry32pd1ysx92d97"))))
1268e52d 119 (build-system gnu-build-system)
120 (inputs
121 `(("libxcb" ,libxcb)
122 ("libxinerama" ,libxinerama)
123 ("sxhkd" ,sxhkd)
124 ("xcb-util" ,xcb-util)
125 ("xcb-util-keysyms" ,xcb-util-keysyms)
126 ("xcb-util-wm" ,xcb-util-wm)))
127 (arguments
aa0551c2
TGR
128 '(#:phases
129 (modify-phases %standard-phases
130 (delete 'configure)) ; no configure script
131 #:tests? #f ; no check target
132 #:make-flags
133 (list "CC=gcc"
134 (string-append "PREFIX=" %output))))
1268e52d 135 (home-page "https://github.com/baskerville/bspwm")
136 (synopsis "Tiling window manager based on binary space partitioning")
137 (description "bspwm is a tiling window manager that represents windows as
138the leaves of a full binary tree.")
0ede252b 139 (license license:bsd-2)))
1268e52d 140
63b1bdbc
ED
141(define-public i3status
142 (package
143 (name "i3status")
8c2ab742 144 (version "2.12")
63b1bdbc
ED
145 (source (origin
146 (method url-fetch)
fdad1f3c 147 (uri (string-append "https://i3wm.org/i3status/i3status-"
63b1bdbc
ED
148 version ".tar.bz2"))
149 (sha256
150 (base32
8c2ab742 151 "06krpbijv4yi33nypg6qcn4hilcrdyarsdpd9fmr2cq46qaqiikg"))))
63b1bdbc
ED
152 (build-system gnu-build-system)
153 (arguments
154 `(#:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))
155 #:phases
156 (modify-phases %standard-phases
157 (delete 'configure))
158 #:tests? #f)) ; no test suite
159 (inputs
160 `(("openlibm" ,openlibm)
161 ("libconfuse" ,libconfuse)
162 ("libyajl" ,libyajl)
163 ("alsa-lib" ,alsa-lib)
766a22fb
AM
164 ("pulseaudio" ,pulseaudio)
165 ("libnl" ,libnl)
63b1bdbc
ED
166 ("libcap" ,libcap)
167 ("asciidoc" ,asciidoc)))
766a22fb
AM
168 (native-inputs
169 `(("pkg-config" ,pkg-config)))
fdad1f3c 170 (home-page "https://i3wm.org/i3status/")
63b1bdbc
ED
171 (synopsis "Status bar for i3bar, dzen2, xmobar or similar programs")
172 (description "i3status is a small program for generating a status bar for
173i3bar, dzen2, xmobar or similar programs. It is designed to be very efficient
174by issuing a very small number of system calls, as one generally wants to
175update such a status line every second. This ensures that even under high
176load, your status bar is updated correctly. Also, it saves a bit of energy by
177not hogging your CPU as much as spawning the corresponding amount of shell
178commands would.")
0ede252b 179 (license license:bsd-3)))
63b1bdbc 180
bda2ded6
ED
181(define-public i3-wm
182 (package
183 (name "i3-wm")
7c56237b 184 (version "4.16.1")
bda2ded6
ED
185 (source (origin
186 (method url-fetch)
8658d403 187 (uri (string-append "https://i3wm.org/downloads/i3-"
bda2ded6
ED
188 version ".tar.bz2"))
189 (sha256
190 (base32
7c56237b 191 "0xl56y196vxv001gvx35xwfr25zah8m3xwizp9ycdgdc0rfc4rdb"))))
bda2ded6
ED
192 (build-system gnu-build-system)
193 (arguments
4bd391f5 194 `(#:make-flags
4b0e6367
KK
195 (list "CC=gcc"
196 (string-append "PREFIX=" %output)
197 ;; This works around the following error:
198 ;; 'error: ‘for’ loop initial declarations are only allowed in C99
199 ;; or C11 mode'
200 "CFLAGS=-std=c11")
4bd391f5
LF
201 ;; The build system tries to build in a separate directory, but that
202 ;; seems to be unnecessary.
203 #:configure-flags '("--disable-builddir")
204 ;; The test suite appears to require the unpackaged Perl module AnyEvent.
205 #:tests? #f))
bda2ded6
ED
206 (inputs
207 `(("libxcb" ,libxcb)
208 ("xcb-util" ,xcb-util)
209 ("xcb-util-cursor" ,xcb-util-cursor)
210 ("xcb-util-keysyms" ,xcb-util-keysyms)
211 ("xcb-util-wm" ,xcb-util-wm)
4bd391f5 212 ("xcb-util-xrm" ,xcb-util-xrm)
bda2ded6
ED
213 ("libxkbcommon" ,libxkbcommon)
214 ("libev" ,libev)
215 ("libyajl" ,libyajl)
216 ("asciidoc" ,asciidoc)
217 ("xmlto" ,xmlto)
218 ("perl-pod-simple" ,perl-pod-simple)
bda2ded6
ED
219 ("libx11" ,libx11)
220 ("pcre" ,pcre)
221 ("startup-notification" ,startup-notification)
222 ("pango" ,pango)
223 ("cairo" ,cairo)))
224 (native-inputs
225 `(("which" ,which)
226 ("perl" ,perl)
4bd391f5
LF
227 ("pkg-config" ,pkg-config)
228 ;; For building the documentation.
4b0e6367 229 ("libxml2" ,libxml2)
4bd391f5 230 ("docbook-xsl" ,docbook-xsl)))
8658d403 231 (home-page "https://i3wm.org/")
bda2ded6 232 (synopsis "Improved tiling window manager")
a124bbd2 233 (description "A tiling window manager, completely written
bda2ded6
ED
234from scratch. i3 is primarily targeted at advanced users and
235developers.")
0ede252b 236 (license license:bsd-3)))
6e38c4be 237
bc83b2e2
MP
238(define-public i3blocks
239 (let ((commit "37f23805ff886639163fbef8aedba71c8071eff8")
240 (revision "1"))
241 (package
242 (name "i3blocks")
243 (version (string-append "1.4-" revision "."
244 (string-take commit 7)))
245 (source (origin
246 (method git-fetch)
247 (uri (git-reference
248 (url "https://github.com/vivien/i3blocks.git")
249 (commit commit)))
250 (sha256
251 (base32
252 "15rnrcajzyrmhlz1a21qqsjlj3dkib70806dlb386fliylc2kisb"))
d64e5147 253 (file-name (git-file-name name version))))
bc83b2e2
MP
254 (build-system gnu-build-system)
255 (arguments
256 `(#:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))
257 #:phases (modify-phases %standard-phases
258 (add-after 'unpack 'autogen
259 (lambda _ (invoke "sh" "autogen.sh")))
260 (add-after 'install 'install-doc
261 (lambda* (#:key outputs #:allow-other-keys)
262 (let* ((out (assoc-ref outputs "out"))
263 (man1 (string-append out "/share/man/man1")))
264 (install-file "docs/i3blocks.1" man1)
265 #t))))))
266 (native-inputs
267 `(("autoconf" ,autoconf)
268 ("automake" ,automake)
269 ("pkg-config" ,pkg-config)))
270 (home-page "https://github.com/vivien/i3blocks")
271 (synopsis "Minimalist scheduler for status bar scripts")
272 (description "i3blocks executes your command lines and generates a
273status line from their output. The generated line is meant to be displayed by
274the i3 window manager through its i3bar component, as an alternative to
275i3status.")
276 (license license:gpl3+))))
277
3e7cb70a
MB
278(define-public perl-anyevent-i3
279 (package
280 (name "perl-anyevent-i3")
ec5c986e 281 (version "0.17")
3e7cb70a
MB
282 (source (origin
283 (method url-fetch)
284 (uri (string-append "mirror://cpan/authors/id/M/MS/MSTPLBG/"
285 "AnyEvent-I3-" version ".tar.gz"))
286 (sha256
287 (base32
ec5c986e 288 "0qvd9bq16jyy7v3ma82qcnvz9j503bw0mh7h55gkjf7ir62ck0jk"))))
3e7cb70a
MB
289 (build-system perl-build-system)
290 (propagated-inputs
291 `(("perl-anyevent" ,perl-anyevent)
292 ("perl-json-xs" ,perl-json-xs)))
9aba9b12 293 (home-page "https://metacpan.org/release/AnyEvent-I3")
3e7cb70a
MB
294 (synopsis
295 "Communicate with the i3 window manager through perl")
296 (description
297 "This module connects to the i3 window manager using the UNIX socket
298based IPC interface it provides (if enabled in the configuration file).
299You can then subscribe to events or send messages and receive their replies.")
300 ;; Can be used with either license.
2f3108ad 301 (license (list license:gpl3+ license:perl-license))))
3e7cb70a 302
c165591d
IVB
303(define-public python-i3-py
304 (package
305 (name "python-i3-py")
306 (version "0.6.5")
307 (source
308 (origin
309 ;; The latest release is not tagged in Git nor has an entry in PyPi,
310 ;; but there is still a clear commit for it, and it's been the last one
311 ;; for years.
312 (method git-fetch)
313 (uri (git-reference
314 (url "https://github.com/ziberna/i3-py.git")
315 (commit "27f88a616e9ecc340e7d041d3d00782f8a1964c1")))
316 (sha256
317 (base32
318 "1nm719dc2xqlll7vj4c4m7mpjb27lpn3bg3c66gajvnrz2x1nmxs"))
319 (file-name (string-append name "-" version "-checkout"))))
320 (build-system python-build-system)
321 (arguments
322 `(#:tests? #f ; no tests yet
323 #:phases (modify-phases %standard-phases
324 (add-after 'install 'install-doc
325 ;; Copy readme file to documentation directory.
326 (lambda* (#:key outputs #:allow-other-keys)
327 (let ((doc (string-append (assoc-ref outputs "out")
328 "/share/doc/" ,name)))
329 (install-file "README.md" doc)
330 ;; Avoid unspecified return value.
331 #t))))))
332 (propagated-inputs
333 `(("i3-wm" ,i3-wm)))
334 (home-page "https://github.com/ziberna/i3-py")
335 (synopsis "Python interface to the i3 window manager")
336 (description "This package allows you to interact from a Python program
337with the i3 window manager via its IPC socket. It can send commands and other
338kinds of messages to i3, select the affected containers, filter results and
339subscribe to events.")
340 (license license:gpl3+)))
341
342(define-public python2-i3-py
343 (package-with-python2 python-i3-py))
344
37356e0b
IVB
345(define-public quickswitch-i3
346 (let ((commit "ed692b1e8f43b95bd907ced26238ce8ccb2ed28f")
347 (revision "1")) ; Guix package revision
348 (package
349 (name "quickswitch-i3")
350 (version (string-append "2.2-" revision "."
351 (string-take commit 7)))
352 (source
353 (origin
354 ;; The latest commit is a few years old and just a couple commits
355 ;; after the last tagged release, so we use that latest commit
356 ;; instead of the release.
357 (method git-fetch)
358 (uri (git-reference
359 (url "https://github.com/proxypoke/quickswitch-for-i3.git")
360 (commit commit)))
361 (sha256
362 (base32
363 "0447077sama80jcdg5p64zjsvafmz5rbdrirhm1adcdjhkh6iqc5"))
364 (patches (search-patches "quickswitch-fix-dmenu-check.patch"))
365 (file-name (string-append name "-" version "-checkout"))))
366 (build-system python-build-system)
367 (arguments
368 `(#:tests? #f ; no tests yet
369 #:phases (modify-phases %standard-phases
370 (add-after 'install 'install-doc
371 ;; Copy readme file to documentation directory.
372 (lambda* (#:key outputs #:allow-other-keys)
373 (let ((doc (string-append (assoc-ref outputs "out")
374 "/share/doc/" ,name)))
375 (install-file "README.rst" doc)
376 ;; Avoid unspecified return value.
377 #t))))))
378 (inputs
379 `(("python-i3-py" ,python-i3-py)
380 ("dmenu" ,dmenu)))
381 (home-page "https://github.com/proxypoke/quickswitch-for-i3")
382 (synopsis "Quickly change to and locate windows in the i3 window manager")
383 (description
384 "This utility for the i3 window manager allows you to quickly switch to
385and locate windows on all your workspaces, using an interactive dmenu
386prompt.")
387 (license (license:non-copyleft "http://www.wtfpl.net/txt/copying/")))))
388
4b563b34 389(define-public i3lock-color
390 (package
391 (name "i3lock-color")
3dc77d40 392 (version "2.11-c")
4b563b34 393 (source
394 (origin
395 (method url-fetch)
396 (uri (string-append "https://github.com/PandorasFox/i3lock-color/"
397 "archive/" version ".tar.gz"))
398 (file-name (string-append name "-" version ".tar.gz"))
399 (sha256
400 (base32
3dc77d40 401 "0zh7il2y6dmzym3w6r9xii5dma8pjjjlq4dm5iby7m3gvplj4q9p"))))
4b563b34 402 (build-system gnu-build-system)
403 (arguments
189be331 404 `(#:tests? #f)) ;no tests included
4b563b34 405 (inputs
fa2886b7
TGR
406 `(("cairo" ,cairo)
407 ("libev" ,libev)
3dc77d40 408 ("libjpeg" ,libjpeg-turbo)
4b563b34 409 ("libxcb" ,libxcb)
4b563b34 410 ("libxkbcommon" ,libxkbcommon)
fa2886b7
TGR
411 ("linux-pam" ,linux-pam)
412 ("xcb-util" ,xcb-util)
413 ("xcb-util-image" ,xcb-util-image)))
4b563b34 414 (native-inputs
fa2886b7
TGR
415 `(("autoconf" ,autoconf)
416 ("automake" ,automake)
417 ("pkg-config" ,pkg-config)))
4b563b34 418 (home-page "https://github.com/PandorasFox/i3lock-color")
419 (synopsis "Screen locker with color configuration support")
420 (description
421 "i3lock-color is a simpler X11 screen locker derived from i3lock.
422Features include:
423
424@enumerate
425@item forking process, the locked screen is preserved when you suspend to RAM;
426@item specify background color or image to be displayed in the lock screen;
427@item many additional color options.
428@end enumerate")
429 (license license:bsd-3)))
430
b0a2dc72 431(define-public i3lock-fancy
432 (package
433 (name "i3lock-fancy")
434 (version "0.2")
435 (source
436 (origin
437 (method url-fetch)
438 (uri (string-append "https://github.com/meskarune/i3lock-fancy/archive/"
439 version ".tar.gz"))
440 (file-name (string-append name "-" version ".tar.gz"))
441 (sha256
442 (base32
443 "020m7mnfq5cvir7p9v3hkb7cvb4cai33wppxl2zdwscwwjnchc5y"))))
444 (build-system gnu-build-system)
445 (arguments
446 `(#:tests? #f ;No tests included
447 #:phases
448 (modify-phases %standard-phases
449 (replace 'configure
450 (lambda* (#:key inputs outputs #:allow-other-keys)
451 (let* ((out (assoc-ref outputs "out"))
452 (icons (string-append out "/share/i3lock-fancy/icons/"))
453 (wmctrl (string-append (assoc-ref inputs "wmctrl")
454 "/bin/wmctrl"))
455 (mconvert (string-append (assoc-ref inputs "imagemagick")
456 "/bin/convert"))
457 (mimport (string-append (assoc-ref inputs "imagemagick")
458 "/bin/import"))
459 (awk (string-append (assoc-ref inputs "gawk")
460 "/bin/gawk")))
461
462 (substitute* "lock"
463 (("$(which wmctrl)") wmctrl)
464 (("convert") mconvert)
465 (("shot=\\(import") (string-append "shot=\(" mimport))
466 (("awk -F") (string-append awk " -F"))
467 ((" awk") awk)
468 (("\\$scriptpath/icons/") icons))
469 #t)))
470 (delete 'build)
471 (replace 'install
472 (lambda* (#:key inputs outputs #:allow-other-keys)
473 (let* ((out (assoc-ref outputs "out"))
474 (bin (string-append out "/bin"))
475 (icons (string-append out "/share/i3lock-fancy/icons/")))
476
477 (install-file "lock" bin)
478 (rename-file (string-append bin "/lock")
479 (string-append bin "/i3lock-fancy"))
480 (copy-recursively "icons" icons)
481 #t))))))
482 (native-inputs
483 `(("imagemagick" ,imagemagick)
484 ("wmctrl" ,wmctrl)
485 ("gawk" ,gawk)))
486 (home-page "https://github.com/meskarune/i3lock-fancy")
487 (synopsis "Screen locker with screenshot function")
488 (description
489 "@code{i3lock-fancy} is a Bash script that takes a screenshot of
490the desktop, blurs the background and adds a lock icon and text.
491It requires @code{i3lock-color} or @code{i3lock} and can optionally
492be passed any screenshot util like @code{scrot}.
493This screen locker can be used with any window manager or
494desktop environment.")
495 (license license:expat)))
496
6e38c4be
SB
497(define-public xmonad
498 (package
499 (name "xmonad")
c64e832f 500 (version "0.14.2")
6e38c4be
SB
501 (synopsis "Tiling window manager")
502 (source (origin
503 (method url-fetch)
966a543b 504 (uri (string-append "mirror://hackage/package/xmonad/"
ca80b8ba 505 name "-" version ".tar.gz"))
6e38c4be
SB
506 (sha256
507 (base32
c64e832f 508 "0gqyivpw8z1x73p1l1fpyq1wc013a1c07r6xn1a82liijs91b949"))))
6e38c4be
SB
509 (build-system haskell-build-system)
510 (inputs
174b091f 511 `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
174b091f 512 ("ghc-quickcheck" ,ghc-quickcheck)
dd821380 513 ("ghc-semigroups" ,ghc-semigroups)
174b091f
MM
514 ("ghc-setlocale" ,ghc-setlocale)
515 ("ghc-utf8-string" ,ghc-utf8-string)
516 ("ghc-x11" ,ghc-x11)))
6e38c4be
SB
517 (arguments
518 `(#:phases
519 (modify-phases %standard-phases
520 (add-after
521 'install 'install-xsession
522 (lambda _
523 (let* ((xsessions (string-append %output "/share/xsessions")))
524 (mkdir-p xsessions)
525 (call-with-output-file
526 (string-append xsessions "/xmonad.desktop")
527 (lambda (port)
528 (format port "~
529 [Desktop Entry]~@
530 Name=~a~@
531 Comment=~a~@
532 Exec=~a/bin/xmonad~@
533 Type=Application~%" ,name ,synopsis %output)))))))))
8c0be00a 534 (home-page "https://xmonad.org")
6e38c4be
SB
535 (description
536 "Xmonad is a tiling window manager for X. Windows are arranged
537automatically to tile the screen without gaps or overlap, maximising screen
538use. All features of the window manager are accessible from the keyboard: a
539mouse is strictly optional. Xmonad is written and extensible in Haskell.
540Custom layout algorithms, and other extensions, may be written by the user in
541config files. Layouts are applied dynamically, and different layouts may be
542used on each workspace. Xinerama is fully supported, allowing windows to be
543tiled on several screens.")
0ede252b 544 (license license:bsd-3)))
78edf44c 545
6e864d00
OP
546(define-public xmobar
547 (package
548 (name "xmobar")
ccd4fd3f 549 (version "0.28")
6e864d00
OP
550 (source (origin
551 (method url-fetch)
552 (uri (string-append "mirror://hackage/package/xmobar/"
553 name "-" version ".tar.gz"))
554 (sha256
555 (base32
ccd4fd3f 556 "1xh87asg8y35srvp7d3gyyy4bkxsw122liihxgzgm8pqv2z3h4zd"))))
6e864d00 557 (build-system haskell-build-system)
800e4fd8
TGR
558 (native-inputs
559 `(("ghc-hspec" ,ghc-hspec)
560 ("hspec-discover" ,hspec-discover)))
6e864d00 561 (inputs
d2ea8064
TGR
562 `(("ghc-hinotify" ,ghc-hinotify)
563 ("ghc-http" ,ghc-http)
564 ("ghc-iwlib" ,ghc-iwlib)
6e864d00 565 ("ghc-parsec" ,ghc-parsec)
d877e0d8 566 ("ghc-parsec-numbers" ,ghc-parsec-numbers)
6e864d00
OP
567 ("ghc-regex-compat" ,ghc-regex-compat)
568 ("ghc-stm" ,ghc-stm)
569 ("ghc-x11-xft" ,ghc-x11-xft)
d2ea8064 570 ("libxpm" ,libxpm)))
6e864d00
OP
571 (arguments
572 `(#:configure-flags
d2ea8064
TGR
573 (list (string-append "--flags="
574 (string-join (list "with_inotify"
575 "with_iwlib"
576 "with_utf8"
577 "with_weather"
578 "with_xft"
579 "with_xpm")
580 " ")))))
6e864d00
OP
581 (home-page "http://xmobar.org")
582 (synopsis "Minimalistic text based status bar")
583 (description
584 "@code{xmobar} is a lightweight, text-based, status bar written in
585Haskell. It was originally designed to be used together with Xmonad, but it
586is also usable with any other window manager. While xmobar is written in
587Haskell, no knowledge of the language is required to install and use it.")
588 (license license:bsd-3)))
589
78edf44c
SB
590(define-public ghc-xmonad-contrib
591 (package
592 (name "ghc-xmonad-contrib")
f780572d 593 (version "0.14")
78edf44c
SB
594 (source
595 (origin
596 (method url-fetch)
966a543b 597 (uri (string-append "mirror://hackage/package/xmonad-contrib/"
78edf44c
SB
598 "xmonad-contrib-" version ".tar.gz"))
599 (sha256
600 (base32
f780572d 601 "1660w3xhbfrlq8b8s1rviq2mcn1vyqpypli4023gqxwry52brk6y"))))
78edf44c
SB
602 (build-system haskell-build-system)
603 (propagated-inputs
f54f0475 604 `(("ghc-old-time" ,ghc-old-time)
78edf44c
SB
605 ("ghc-random" ,ghc-random)
606 ("ghc-utf8-string" ,ghc-utf8-string)
607 ("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
b42b5afd 608 ("ghc-semigroups" ,ghc-semigroups)
78edf44c
SB
609 ("ghc-x11" ,ghc-x11)
610 ("ghc-x11-xft" ,ghc-x11-xft)
611 ("xmonad" ,xmonad)))
8c0be00a 612 (home-page "https://xmonad.org")
78edf44c
SB
613 (synopsis "Third party extensions for xmonad")
614 (description
615 "Third party tiling algorithms, configurations, and scripts to Xmonad, a
616tiling window manager for X.")
0ede252b 617 (license license:bsd-3)))
45e10968
EB
618
619(define-public evilwm
620 (package
621 (name "evilwm")
622 (version "1.1.1")
623 (source
624 (origin
625 (method url-fetch)
626 (uri (string-append "http://www.6809.org.uk/evilwm/evilwm-"
627 version ".tar.gz"))
628 (sha256
629 (base32
c595cd47 630 "0ak0yajzk3v4dg5wmaghv6acf7v02a4iw8qxmq5yw5ard8lrqn3r"))
fc1adab1 631 (patches (search-patches "evilwm-lost-focus-bug.patch"))))
45e10968
EB
632 (build-system gnu-build-system)
633 (inputs
634 `(("libx11" ,libx11)
635 ("libxext" ,libxext)
636 ("libxrandr" ,libxrandr)))
637 (arguments
638 `(#:modules ((srfi srfi-26)
639 (guix build utils)
640 (guix build gnu-build-system))
641 #:make-flags (let ((inputs (map (cut assoc-ref %build-inputs <>)
642 '("libx11" "libxext" "libxrandr")))
643 (join (lambda (proc strs)
644 (string-join (map proc strs) " ")))
645 (dash-I (cut string-append "-I" <> "/include"))
646 (dash-L (cut string-append "-L" <> "/lib")))
647 `("desktopfilesdir=$(prefix)/share/xsessions"
648 ,(string-append "prefix=" (assoc-ref %outputs "out"))
649 ,(string-append "CPPFLAGS=" (join dash-I inputs))
650 ,(string-append "LDFLAGS=" (join dash-L inputs))))
651 #:tests? #f ;no tests
652 #:phases (modify-phases %standard-phases
653 (delete 'configure)))) ;no configure script
654 (home-page "http://www.6809.org.uk/evilwm/")
655 (synopsis "Minimalist window manager for the X Window System")
656 (description
657 "evilwm is a minimalist window manager based on aewm, extended to feature
658many keyboard controls with repositioning and maximize toggles, solid window
659drags, snap-to-border support, and virtual desktops.")
0ede252b
DM
660 (license (license:x11-style "file:///README"))))
661
662(define-public fluxbox
663 (package
664 (name "fluxbox")
665 (version "1.3.7")
666 (synopsis "Small and fast window manager")
667 (source (origin
668 (method url-fetch)
de67e922 669 (uri (string-append "mirror://sourceforge/fluxbox/fluxbox/"
0ede252b
DM
670 version "/fluxbox-" version ".tar.xz"))
671 (sha256
672 (base32
673 "1h1f70y40qd225dqx937vzb4k2cz219agm1zvnjxakn5jkz7b37w"))))
674 (build-system gnu-build-system)
675 (arguments
676 `(#:make-flags '("CPPFLAGS=-U__TIME__") ;ugly, but for reproducibility
677 #:phases
678 (modify-phases %standard-phases
679 (add-after
680 'install 'install-xsession
681 (lambda _
682 (let ((xsessions (string-append %output "/share/xsessions")))
683 (mkdir-p xsessions)
684 (call-with-output-file
685 (string-append xsessions "/fluxbox.desktop")
686 (lambda (port)
687 (format port "~
688 [Desktop Entry]~@
689 Name=~a~@
690 Comment=~a~@
691 Exec=~a/bin/startfluxbox~@
692 Type=Application~%" ,name ,synopsis %output)))))))))
693 (native-inputs
694 `(("pkg-config" ,pkg-config)))
695 (inputs
696 `(("freetype" ,freetype)
697 ("fribidi" ,fribidi)
698 ("imlib2" ,imlib2)
699 ("libx11" ,libx11)
700 ("libxext" ,libxext)
701 ("libxft" ,libxft)
702 ("libxinerama" ,libxinerama)
703 ("libxpm" ,libxpm)
704 ("libxrandr" ,libxrandr)
705 ("libxrender" ,libxrender)))
706 (description "Fluxbox is a window manager. It is light on resources
707and easy to handle yet full of features to make an easy and fast desktop
708experience.")
709 (home-page "http://fluxbox.org/")
710 (license license:expat)))
3d1240aa
CZ
711
712(define-public awesome
713 (package
714 (name "awesome")
db0164b2 715 (version "4.2")
3d1240aa
CZ
716 (source
717 (origin (method url-fetch)
718 (uri (string-append
91426243 719 "https://github.com/awesomeWM/awesome-releases/raw/"
720 "master/awesome-" version ".tar.xz"))
3d1240aa
CZ
721 (sha256
722 (base32
db0164b2 723 "0kwpbls9h1alxcmvxh5g9qb995fds5b2ngcr44w0ibazkyls2pdc"))
3d1240aa
CZ
724 (modules '((guix build utils)
725 (srfi srfi-19)))
6cbee49d
MW
726 (snippet '(begin
727 ;; Remove non-reproducible timestamp and use the date
728 ;; of the source file instead.
729 (substitute* "common/version.c"
730 (("__DATE__ \" \" __TIME__")
731 (date->string
732 (time-utc->date
733 (make-time time-utc 0
734 (stat:mtime (stat "awesome.c"))))
735 "\"~c\"")))
736 #t))
3d1240aa
CZ
737 (patches (search-patches "awesome-reproducible-png.patch"))))
738 (build-system cmake-build-system)
739 (native-inputs `(("asciidoc" ,asciidoc)
740 ("docbook-xsl" ,docbook-xsl)
741 ("doxygen" ,doxygen)
742 ("gperf" ,gperf)
743 ("imagemagick" ,imagemagick)
744 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
745 ("pkg-config" ,pkg-config)
746 ("xmlto" ,xmlto)))
747 (inputs `(("cairo" ,cairo)
748 ("dbus" ,dbus)
749 ("gdk-pixbuf" ,gdk-pixbuf)
750 ("glib" ,glib)
22037a32 751 ("gobject-introspection" ,gobject-introspection)
3d1240aa
CZ
752 ("imlib2" ,imlib2)
753 ("libev" ,libev)
754 ("libxcb" ,libxcb)
755 ("libxcursor" ,libxcursor)
756 ("libxdg-basedir" ,libxdg-basedir)
91426243 757 ("libxkbcommon" ,libxkbcommon)
22037a32 758 ("lua" ,lua)
c695fb76 759 ("lua-lgi" ,lua-lgi)
3d1240aa
CZ
760 ("pango" ,pango)
761 ("startup-notification" ,startup-notification)
762 ("xcb-util" ,xcb-util)
763 ("xcb-util-cursor" ,xcb-util-cursor)
764 ("xcb-util-image" ,xcb-util-image)
765 ("xcb-util-keysyms" ,xcb-util-keysyms)
766 ("xcb-util-renderutil" ,xcb-util-renderutil)
91426243 767 ("xcb-util-xrm" ,xcb-util-xrm)
3d1240aa
CZ
768 ("xcb-util-wm" ,xcb-util-wm)))
769 (arguments
770 `(;; Let compression happen in our 'compress-documentation' phase so that
771 ;; '--no-name' is used, which removes timestamps from gzip output.
772 #:configure-flags '("-DCOMPRESS_MANPAGES=off")
773
db0164b2 774 ;; Building awesome in its source dir is no longer supported.
775 #:out-of-source? #t
776
22037a32 777 #:phases
778 (modify-phases %standard-phases
779 (add-before 'build 'xmlto-skip-validation
780 (lambda _
781 ;; We can't download the necessary schema, so so skip
782 ;; validation and assume they're valid.
783 (substitute* "../build/CMakeFiles/man.dir/build.make"
784 (("/xmlto")
785 (string-append "/xmlto --skip-validation")))
786 #t))
787 (add-before 'configure 'set-lua-paths
788 (lambda* (#:key inputs #:allow-other-keys)
789 ;; The build process needs to load cairo dynamically.
790 (let* ((cairo (string-append
791 (assoc-ref inputs "cairo") "/lib" ))
792 (lua-lgi (assoc-ref inputs "lua-lgi") ))
793 (setenv "LD_LIBRARY_PATH" cairo )
794 (setenv "LUA_PATH" (string-append lua-lgi
795 "/share/lua/5.2/?.lua"))
796 (setenv "LUA_CPATH" (string-append lua-lgi
797 "/lib/lua/5.2/?.so"))
798 #t)))
799 (replace 'check
800 (lambda _
801 ;; There aren't any tests, so just make sure the binary
802 ;; gets built and can be run successfully.
b5e70d92 803 (invoke "../build/awesome" "-v")))
22037a32 804 (add-after 'install 'wrap
805 (lambda* (#:key inputs outputs #:allow-other-keys)
806 (let* ((awesome (assoc-ref outputs "out"))
807 (cairo (string-append
808 (assoc-ref inputs "cairo") "/lib" ))
809 (lua-lgi (assoc-ref inputs "lua-lgi") ))
810 (wrap-program (string-append awesome "/bin/awesome")
811 `("GI_TYPELIB_PATH" ":" prefix (,(getenv "GI_TYPELIB_PATH")))
812 `("LD_LIBRARY_PATH" suffix (, cairo))
813 `("LUA_PATH" suffix (,(string-append lua-lgi
814 "/share/lua/5.2/?.lua")))
815 `("LUA_CPATH" suffix (,(string-append
816 lua-lgi "/lib/lua/5.2/?.so"))))))))))
3d1240aa
CZ
817 (synopsis "Highly configurable window manager")
818 (description
c4dd0def 819 "Awesome has been designed as a framework window manager. It is fast, small,
820dynamic and extensible using the Lua programming language.")
3d1240aa
CZ
821 (license license:gpl2+)
822 (home-page "https://awesome.naquadah.org/")))
395751c0 823
824(define-public menumaker
825 (package
826 (name "menumaker")
827 (version "0.99.10")
828 (source
829 (origin
830 (method url-fetch)
831 (uri (string-append "mirror://sourceforge/menumaker/"
832 "menumaker-" version ".tar.gz"))
833 (sha256
834 (base32
835 "1mm4cvg3kphkkd8nwrhcg6d9nm5ar7mgc0wf6fxk6zck1l7xn8ky"))))
836 (build-system gnu-build-system)
837 (inputs
838 `(("python" ,python)))
839 (synopsis "Heuristics-driven menu generator")
840 (description
841 "MenuMaker is a menu generation utility for a number of X window
842managers and desktop environments. It is capable of finding lots of
843installed programs and generating a root menu consistent across all
844supported window managers, so one will get (almost) the same menu in
845all of them. Currently supported window managers include:
846
847@enumerate
848@item BlackBox
849@item Deskmenu
850@item FluxBox
851@item IceWM
852@item OpenBox
853@item PekWM
854@item WindowMaker
855@item XFCE
856@end enumerate\n")
857 (home-page "http://menumaker.sourceforge.net/")
858 (license license:bsd-2)))
dbf544f9 859
860(define-public keybinder
861 (package
862 (name "keybinder")
863 (version "0.3.1")
864 (source
865 (origin
866 (method url-fetch)
6d688b6e
TGR
867 (uri (string-append "https://github.com/kupferlauncher/keybinder"
868 "/releases/download/v" version "/keybinder-"
dbf544f9 869 version ".tar.gz"))
870 (file-name (string-append name "-" version ".tar.gz"))
871 (sha256
872 (base32
873 "0h52hj3ay8mfhwvmfxbxlfyq74hifdk8wxgxp7fr4iy6189hg7w7"))))
874 (build-system gnu-build-system)
875 (inputs
876 `(("python-2" ,python-2)
877 ("gtk+-2" ,gtk+-2)))
878 (native-inputs
879 `(("python2-pygtk" ,python2-pygtk)
880 ("gtk-doc" ,gtk-doc)
881 ("pkg-config" ,pkg-config)))
882 (synopsis "Library for registering global keyboard shortcuts")
883 (description
884 "Keybinder is a library for registering global keyboard shortcuts.
885Keybinder works with GTK-based applications using the X Window System.")
6d688b6e 886 (home-page "https://github.com/kupferlauncher/keybinder")
dbf544f9 887 (license license:gpl2+)))
78dfc9e2 888
889(define-public spectrwm
890 (package
891 (name "spectrwm")
f6c8a97a 892 (version "3.2.0")
78dfc9e2 893 (source
894 (origin
895 (method url-fetch)
896 (uri (let ((version-with-underscores
897 (string-join (string-split version #\.) "_")))
898 (string-append "https://github.com/conformal/spectrwm/archive/"
899 "SPECTRWM_" version-with-underscores ".tar.gz")))
900 (file-name (string-append name "-" version ".tar.gz"))
901 (sha256
902 (base32
f6c8a97a 903 "0z7gjmp1x6y8q3dnw6swvbv8x2wd4ykzjvi3ibk2sxhgc910907v"))))
78dfc9e2 904 (build-system gnu-build-system)
905 (arguments
906 `(#:make-flags (let ((pkg-config (lambda (flag)
907 (string-append
908 "$(shell pkg-config " flag " "
909 "xft fontconfig x11 libpng)"))))
910 (list
911 "CC=gcc"
912 (string-append "PREFIX=" %output)
913 (string-append "INCS=-I. " (pkg-config "--cflags"))
914 (string-append "LIBS=" (pkg-config "--libs") " -lm")))
f6c8a97a 915 #:tests? #f ;no test suite
78dfc9e2 916 #:phases
917 (modify-phases %standard-phases
918 (add-before 'build 'change-dir
919 (lambda _
920 (chdir "linux") #t))
921 (add-after 'change-dir 'patch-makefile
922 (lambda _
923 (substitute* "Makefile"
924 (("-g") ""))))
f6c8a97a 925 (delete 'configure)))) ;no 'configure' exists
78dfc9e2 926 (inputs
927 `(("freetype" ,freetype)
928 ("fontconfig" ,fontconfig)
929 ("libx11" ,libx11)
930 ("libxcursor" ,libxcursor)
931 ("libxrandr" ,libxrandr)
932 ("libxtst" ,libxtst)
933 ("libxft" ,libxft)
934 ("xcb-util" ,xcb-util)
935 ("xcb-util-wm" ,xcb-util-wm)
936 ("xcb-util-keysyms" ,xcb-util-keysyms)))
937 (native-inputs
938 `(("libxt" ,libxt)
939 ("pkg-config" ,pkg-config)))
940 (synopsis "Minimalistic automatic tiling window manager")
941 (description
942 "Spectrwm is a small dynamic tiling and reparenting window manager for X11.
943It is inspired by Xmonad and dwm. Its major features include:
944
945@itemize
946@item Navigation anywhere on all screens with either the keyboard or mouse
947@item Customizable status bar
948@item Restartable without losing state
949@item Quick launch menu
950@item Many screen layouts possible with a few simple key strokes
951@item Move/resize floating windows
32008a75
TGR
952@item Extended Window Manager Hints (@dfn{EWMH}) support
953@item Configurable tiling
78dfc9e2 954@item Adjustable tile gap allows for a true one pixel border
955@item Customizable colors and border width
956@end itemize\n")
957 (home-page "https://github.com/conformal/spectrwm")
958 (license license:isc)))
b4cb9308 959
960(define-public cwm
961 (package
962 (name "cwm")
e352a153 963 (version "6.3")
b4cb9308 964 (source
965 (origin
966 (method url-fetch)
967 (uri (string-append "http://chneukirchen.org/releases/cwm-"
968 version ".tar.gz"))
969 (sha256
970 (base32
e352a153 971 "17pdp9cfgh2n3n3905l4rl9qk7b722i8psnarhlc2h98qzx7zmac"))))
b4cb9308 972 (build-system gnu-build-system)
973 (arguments
974 `(#:make-flags (list "CC=gcc"
975 (string-append "PREFIX=" %output))
976 #:tests? #f
977 #:phases
978 (modify-phases %standard-phases
979 (delete 'configure)
980 (add-after 'build 'install-xsession
981 (lambda* (#:key outputs #:allow-other-keys)
982 ;; Add a .desktop file to xsessions.
983 (let* ((output (assoc-ref outputs "out"))
984 (xsessions (string-append output "/share/xsessions")))
985 (mkdir-p xsessions)
986 (with-output-to-file
987 (string-append xsessions "/cwm.desktop")
988 (lambda _
989 (format #t
990 "[Desktop Entry]~@
991 Name=cwm~@
992 Comment=OpenBSD Calm Window Manager fork~@
993 Exec=~a/bin/cwm~@
994 TryExec=~@*~a/bin/cwm~@
995 Icon=~@
996 Type=Application~%"
997 output)))
998 #t))))))
999 (inputs
1000 `(("libxft" ,libxft)
1001 ("libxrandr" ,libxrandr)
1002 ("libxinerama" ,libxinerama)))
1003 (native-inputs
1004 `(("pkg-config" ,pkg-config)
1005 ("bison" ,bison)))
1006 (home-page "https://github.com/chneukirchen/cwm")
1007 (synopsis "OpenBSD fork of the calmwm window manager")
1008 (description "Cwm is a stacking window manager for X11. It is an OpenBSD
1009project derived from the original Calm Window Manager.")
1010 (license license:isc)))
70024cfa
PAR
1011
1012(define-public nitrogen
1013 (package
1014 (name "nitrogen")
1015 (version "1.6.1")
1016 (source (origin
1017 (method url-fetch)
1018 (uri (string-append "http://github.com/l3ib/nitrogen/"
1019 "releases/download/" version "/"
1020 name "-" version ".tar.gz"))
1021 (sha256
1022 (base32
1023 "0zc3fl1mbhq0iyndy4ysmy8vv5c7xwf54rbgamzfhfvsgdq160pl"))))
1024 (build-system gnu-build-system)
1025 (inputs
1026 `(("gtk+" ,gtk+-2)
1027 ("gtkmm" ,gtkmm-2)
1028 ("glib" ,glib)
1029 ("glibmm" ,glibmm)))
1030 (native-inputs
de99ba7e 1031 `(("pkg-config" ,pkg-config)))
70024cfa
PAR
1032 (arguments
1033 `(#:configure-flags (list
1034 (string-append "--prefix=" %output)
1035 "CXXFLAGS=-std=c++11")))
1036 (home-page "http://projects.l3ib.org/nitrogen/")
1037 (synopsis "Background browser and setter for X windows")
1038 (description
1039 "This package is a background browser and setter for X windows. It's
1040features are:
1041
1042@itemize
1043@item Multihead and Xinerama aware
1044@item Recall mode to used via startup script
1045@item Uses freedesktop.org standard for thumbnails
1046@item Can set GNOME background
1047@item Command lie set modes for script use
1048@item Inotify monitoring of browse directory
1049@item Lazy loading of thumbnails - conserves memory
1050@item \"Automatic\" set mode - determines best mode to set an image based on
1051its size
1052@item Display preview images in a tiled icon layout
1053@end itemize")
1054 (license license:gpl2+)))
d8dcbcc9
MP
1055
1056(define-public polybar
1057 (package
1058 (name "polybar")
1059 (version "3.3.0")
1060 (source
1061 (origin
1062 (method url-fetch)
1063 (uri (string-append "https://github.com/jaagr/polybar/releases/"
1064 "download/" version "/polybar.tar"))
1065 (sha256
1066 (base32 "0sjh3xmf11g09spi88zj7xsc3a3vv78kixab6n5i7436py7xwzb4"))
1067 (file-name (string-append name "-" version ".tar"))))
1068 (build-system cmake-build-system)
1069 (arguments
1070 ;; Test is disabled because it requires downloading googletest from the
1071 ;; Internet.
1072 '(#:tests? #f))
1073 (inputs
1074 `(("alsa-lib" ,alsa-lib)
1075 ("cairo" ,cairo)
1076 ("i3-wm" ,i3-wm)
1077 ("libmpdclient" ,libmpdclient)
1078 ("libnl" ,libnl)
1079 ("libxcb" ,libxcb)
1080 ("pulseaudio" ,pulseaudio)
1081 ("xcb-proto" ,xcb-proto)
1082 ("xcb-util" ,xcb-util)
1083 ("xcb-util-cursor" ,xcb-util-cursor)
1084 ("xcb-util-image" ,xcb-util-image)
1085 ("xcb-util-wm" ,xcb-util-wm)
1086 ("xcb-util-xrm" ,xcb-util-xrm)))
1087 (native-inputs
1088 `(("pkg-config" ,pkg-config)
1089 ("python-2" ,python-2) ; lib/xpp depends on python 2
1090 ("python" ,python))) ; xcb-proto depends on python 3
1091 (home-page "https://polybar.github.io/")
1092 (synopsis "Fast and easy-to-use status bar")
1093 (description "Polybar aims to help users build beautiful and highly
1094customizable status bars for their desktop environment. It has built-in
1095functionality to display information about the most commonly used services.")
1096 (license license:expat)))