services: xorg: Include font-alias in default FontPath.
[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
SB
3;;; Copyright © 2015 Siniša Biđin <sinisa@bidin.eu>
4;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
1268e52d 5;;; Copyright © 2015 xd1le <elisp.vim@gmail.com>
bda2ded6
ED
6;;;
7;;; This file is part of GNU Guix.
8;;;
9;;; GNU Guix is free software; you can redistribute it and/or modify it
10;;; under the terms of the GNU General Public License as published by
11;;; the Free Software Foundation; either version 3 of the License, or (at
12;;; your option) any later version.
13;;;
14;;; GNU Guix is distributed in the hope that it will be useful, but
15;;; WITHOUT ANY WARRANTY; without even the implied warranty of
16;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17;;; GNU General Public License for more details.
18;;;
19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21
22(define-module (gnu packages wm)
23 #:use-module (guix licenses)
24 #:use-module (guix packages)
25 #:use-module (gnu packages linux)
26 #:use-module (guix build-system gnu)
6e38c4be
SB
27 #:use-module (guix build-system haskell)
28 #:use-module (gnu packages haskell)
bda2ded6
ED
29 #:use-module (gnu packages base)
30 #:use-module (gnu packages pkg-config)
31 #:use-module (gnu packages perl)
32 #:use-module (gnu packages xorg)
33 #:use-module (gnu packages xdisorg)
34 #:use-module (gnu packages qt)
35 #:use-module (gnu packages asciidoc)
36 #:use-module (gnu packages xml)
37 #:use-module (gnu packages m4)
38 #:use-module (gnu packages docbook)
39 #:use-module (gnu packages pcre)
40 #:use-module (gnu packages gtk)
41 #:use-module (gnu packages libevent)
42 #:use-module (gnu packages maths)
43 #:use-module (gnu packages web)
44 #:use-module (guix download)
45 #:use-module (guix git-download))
46
5c37126f
ED
47(define-public libconfuse
48 (package
49 (name "libconfuse")
50 (version "2.7")
51 (source (origin
52 (method url-fetch)
53 (uri (string-append "http://savannah.nongnu.org/download/confuse/"
54 "confuse-" version ".tar.gz"))
55 (sha256
56 (base32
57 "0y47r2ashz44wvnxdb18ivpmj8nxhw3y9bf7v9w0g5byhgyp89g3"))))
58 (build-system gnu-build-system)
59 (home-page "http://www.nongnu.org/confuse/")
60 (synopsis "Configuration file parser library")
61 (description "libconfuse is a configuration file parser library. It
62supports sections and (lists of) values (strings, integers, floats, booleans
63or other sections), as well as some other features (such as
64single/double-quoted strings, environment variable expansion, functions and
65nested include statements).")
66 (license isc)))
67
1268e52d 68(define-public bspwm
69 (package
70 (name "bspwm")
71 (version "0.9")
72 (source
73 (origin
74 (file-name (string-append name "-" version ".tar.gz"))
75 (method url-fetch)
76 (uri (string-append
77 "https://github.com/baskerville/bspwm/archive/"
78 version ".tar.gz"))
79 (sha256
80 (base32
81 "1pig0h2jk8wipyz90j69c4bk37bfyq60asnn0v0bqld2p2vjvyqy"))))
82 (build-system gnu-build-system)
83 (inputs
84 `(("libxcb" ,libxcb)
85 ("libxinerama" ,libxinerama)
86 ("sxhkd" ,sxhkd)
87 ("xcb-util" ,xcb-util)
88 ("xcb-util-keysyms" ,xcb-util-keysyms)
89 ("xcb-util-wm" ,xcb-util-wm)))
90 (arguments
91 '(#:phases (alist-delete 'configure %standard-phases)
92 #:tests? #f ; no check target
93 #:make-flags (list "CC=gcc"
94 (string-append "PREFIX=" %output))))
95 (home-page "https://github.com/baskerville/bspwm")
96 (synopsis "Tiling window manager based on binary space partitioning")
97 (description "bspwm is a tiling window manager that represents windows as
98the leaves of a full binary tree.")
99 (license bsd-2)))
100
63b1bdbc
ED
101(define-public i3status
102 (package
103 (name "i3status")
104 (version "2.9")
105 (source (origin
106 (method url-fetch)
107 (uri (string-append "http://i3wm.org/i3status/i3status-"
108 version ".tar.bz2"))
109 (sha256
110 (base32
111 "1qwxbrga2fi5wf742hh9ajwa8b2kpzkjjnhjlz4wlpv21i80kss2"))))
112 (build-system gnu-build-system)
113 (arguments
114 `(#:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))
115 #:phases
116 (modify-phases %standard-phases
117 (delete 'configure))
118 #:tests? #f)) ; no test suite
119 (inputs
120 `(("openlibm" ,openlibm)
121 ("libconfuse" ,libconfuse)
122 ("libyajl" ,libyajl)
123 ("alsa-lib" ,alsa-lib)
124 ("wireless-tools" ,wireless-tools)
125 ("libcap" ,libcap)
126 ("asciidoc" ,asciidoc)))
127 (home-page "http://i3wm.org/i3status/")
128 (synopsis "Status bar for i3bar, dzen2, xmobar or similar programs")
129 (description "i3status is a small program for generating a status bar for
130i3bar, dzen2, xmobar or similar programs. It is designed to be very efficient
131by issuing a very small number of system calls, as one generally wants to
132update such a status line every second. This ensures that even under high
133load, your status bar is updated correctly. Also, it saves a bit of energy by
134not hogging your CPU as much as spawning the corresponding amount of shell
135commands would.")
136 (license bsd-3)))
137
bda2ded6
ED
138(define-public i3-wm
139 (package
140 (name "i3-wm")
141 (version "4.10.3")
142 (source (origin
143 (method url-fetch)
144 (uri (string-append "http://i3wm.org/downloads/i3-"
145 version ".tar.bz2"))
146 (sha256
147 (base32
148 "1lq7h4w7m0hi31iva8g7yf1sc11ispnknxjdaj9agld4smxqb44j"))))
149 (build-system gnu-build-system)
150 (arguments
151 `(#:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))
152 #:phases
153 (modify-phases %standard-phases
154 (delete 'configure))
155 #:tests? #f)) ; no test suite
156 (inputs
157 `(("libxcb" ,libxcb)
158 ("xcb-util" ,xcb-util)
159 ("xcb-util-cursor" ,xcb-util-cursor)
160 ("xcb-util-keysyms" ,xcb-util-keysyms)
161 ("xcb-util-wm" ,xcb-util-wm)
162 ("libxkbcommon" ,libxkbcommon)
163 ("libev" ,libev)
164 ("libyajl" ,libyajl)
165 ("asciidoc" ,asciidoc)
166 ("xmlto" ,xmlto)
167 ("perl-pod-simple" ,perl-pod-simple)
168 ("docbook-xml" ,docbook-xml)
169 ("libx11" ,libx11)
170 ("pcre" ,pcre)
171 ("startup-notification" ,startup-notification)
172 ("pango" ,pango)
173 ("cairo" ,cairo)))
174 (native-inputs
175 `(("which" ,which)
176 ("perl" ,perl)
177 ("pkg-config" ,pkg-config)))
178 (home-page "http://i3wm.org/")
179 (synopsis "Improved tiling window manager")
180 (description "i3 is a tiling window manager, completely written
181from scratch. i3 is primarily targeted at advanced users and
182developers.")
183 (license bsd-3)))
6e38c4be
SB
184
185(define-public xmonad
186 (package
187 (name "xmonad")
188 (version "0.11.1")
189 (synopsis "Tiling window manager")
190 (source (origin
191 (method url-fetch)
192 (uri (string-append "http://hackage.haskell.org/package/xmonad/"
193 "xmonad-" version ".tar.gz"))
194 (sha256
195 (base32
196 "1pfjssamiwpwjp1qqkm9m9p9s35pv381m0cwg6jxg0ppglibzq1r"))))
197 (build-system haskell-build-system)
198 (inputs
199 `(("ghc-mtl" ,ghc-mtl)
200 ("ghc-utf8-string" ,ghc-utf8-string)
201 ("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
202 ("ghc-x11" ,ghc-x11)))
203 (arguments
204 `(#:phases
205 (modify-phases %standard-phases
206 (add-after
207 'install 'install-xsession
208 (lambda _
209 (let* ((xsessions (string-append %output "/share/xsessions")))
210 (mkdir-p xsessions)
211 (call-with-output-file
212 (string-append xsessions "/xmonad.desktop")
213 (lambda (port)
214 (format port "~
215 [Desktop Entry]~@
216 Name=~a~@
217 Comment=~a~@
218 Exec=~a/bin/xmonad~@
219 Type=Application~%" ,name ,synopsis %output)))))))))
220 (home-page "http://xmonad.org")
221 (description
222 "Xmonad is a tiling window manager for X. Windows are arranged
223automatically to tile the screen without gaps or overlap, maximising screen
224use. All features of the window manager are accessible from the keyboard: a
225mouse is strictly optional. Xmonad is written and extensible in Haskell.
226Custom layout algorithms, and other extensions, may be written by the user in
227config files. Layouts are applied dynamically, and different layouts may be
228used on each workspace. Xinerama is fully supported, allowing windows to be
229tiled on several screens.")
230 (license bsd-3)))
78edf44c
SB
231
232(define-public ghc-xmonad-contrib
233 (package
234 (name "ghc-xmonad-contrib")
235 (version "0.11.3")
236 (source
237 (origin
238 (method url-fetch)
239 (uri (string-append "http://hackage.haskell.org/package/xmonad-contrib/"
240 "xmonad-contrib-" version ".tar.gz"))
241 (sha256
242 (base32
243 "14h9vr33yljymswj50wbimav263y9abdcgi07mvfis0zd08rxqxa"))))
244 (build-system haskell-build-system)
245 (propagated-inputs
246 `(("ghc-mtl" ,ghc-mtl)
247 ("ghc-random" ,ghc-random)
248 ("ghc-utf8-string" ,ghc-utf8-string)
249 ("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
250 ("ghc-x11" ,ghc-x11)
251 ("ghc-x11-xft" ,ghc-x11-xft)
252 ("xmonad" ,xmonad)))
253 (home-page "http://xmonad.org")
254 (synopsis "Third party extensions for xmonad")
255 (description
256 "Third party tiling algorithms, configurations, and scripts to Xmonad, a
257tiling window manager for X.")
258 (license bsd-3)))