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