Commit | Line | Data |
---|---|---|
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 | |
62 | supports sections and (lists of) values (strings, integers, floats, booleans | |
63 | or other sections), as well as some other features (such as | |
64 | single/double-quoted strings, environment variable expansion, functions and | |
65 | nested 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 | |
98 | the 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 | |
130 | i3bar, dzen2, xmobar or similar programs. It is designed to be very efficient | |
131 | by issuing a very small number of system calls, as one generally wants to | |
132 | update such a status line every second. This ensures that even under high | |
133 | load, your status bar is updated correctly. Also, it saves a bit of energy by | |
134 | not hogging your CPU as much as spawning the corresponding amount of shell | |
135 | commands 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 | |
181 | from scratch. i3 is primarily targeted at advanced users and | |
182 | developers.") | |
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 | |
223 | automatically to tile the screen without gaps or overlap, maximising screen | |
224 | use. All features of the window manager are accessible from the keyboard: a | |
225 | mouse is strictly optional. Xmonad is written and extensible in Haskell. | |
226 | Custom layout algorithms, and other extensions, may be written by the user in | |
227 | config files. Layouts are applied dynamically, and different layouts may be | |
228 | used on each workspace. Xinerama is fully supported, allowing windows to be | |
229 | tiled 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 | |
257 | tiling window manager for X.") | |
258 | (license bsd-3))) |