Commit | Line | Data |
---|---|---|
1010e530 CR |
1 | ;;; GNU Guix --- Functional package management for GNU |
2 | ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com> | |
3a733420 | 3 | ;;; Copyright © 2015 Amirouche Boubekki <amirouche@hypermove.net> |
4acbd206 | 4 | ;;; Copyright © 2016 Al McElrath <hello@yrns.org> |
2eca2d62 | 5 | ;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is> |
1010e530 CR |
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 | ||
975b8942 | 22 | (define-module (gnu packages suckless) |
3a733420 | 23 | #:use-module ((guix licenses) #:prefix license:) |
1010e530 CR |
24 | #:use-module (guix packages) |
25 | #:use-module (guix download) | |
26 | #:use-module (guix build-system gnu) | |
4acbd206 | 27 | #:use-module (guix build-system glib-or-gtk) |
1010e530 | 28 | #:use-module (gnu packages) |
4acbd206 | 29 | #:use-module (gnu packages gnome) |
3a733420 AB |
30 | #:use-module (gnu packages xorg) |
31 | #:use-module (gnu packages fonts) | |
32 | #:use-module (gnu packages pkg-config) | |
4acbd206 | 33 | #:use-module (gnu packages webkit) |
3a733420 | 34 | #:use-module (gnu packages fontutils)) |
1010e530 CR |
35 | |
36 | (define-public dwm | |
37 | (package | |
38 | (name "dwm") | |
39 | (version "6.0") | |
40 | (source (origin | |
41 | (method url-fetch) | |
42 | (uri (string-append "http://dl.suckless.org/dwm/dwm-" | |
43 | version ".tar.gz")) | |
44 | (sha256 | |
45 | (base32 "0mpbivy9j80l1jqq4bd4g4z8s5c54fxrjj44avmfwncjwqylifdj")))) | |
46 | (build-system gnu-build-system) | |
47 | (arguments | |
48 | `(#:tests? #f | |
49 | #:phases | |
50 | (alist-replace | |
51 | 'configure | |
52 | (lambda _ | |
53 | (substitute* "Makefile" (("\\$\\{CC\\}") "gcc")) | |
54 | #t) | |
55 | (alist-replace | |
56 | 'install | |
57 | (lambda* (#:key outputs #:allow-other-keys) | |
58 | (let ((out (assoc-ref outputs "out"))) | |
59 | (zero? | |
60 | (system* "make" "install" | |
61 | (string-append "DESTDIR=" out) "PREFIX=")))) | |
62 | %standard-phases)))) | |
63 | (inputs | |
64 | `(("libx11" ,libx11) | |
65 | ("libxinerama" ,libxinerama))) | |
66 | (home-page "http://dwm.suckless.org/") | |
67 | (synopsis "Dynamic window manager") | |
68 | (description | |
35b9e423 EB |
69 | "dwm is a dynamic window manager for X. It manages windows in tiled, |
70 | monocle and floating layouts. All of the layouts can be applied dynamically, | |
1010e530 CR |
71 | optimising the environment for the application in use and the task performed. |
72 | ||
35b9e423 | 73 | In tiled layout windows are managed in a master and stacking area. The master |
1010e530 | 74 | area contains the window which currently needs most attention, whereas the |
35b9e423 EB |
75 | stacking area contains all other windows. In monocle layout all windows are |
76 | maximised to the screen size. In floating layout windows can be resized and | |
77 | moved freely. Dialog windows are always managed floating, regardless of the | |
1010e530 CR |
78 | layout applied. |
79 | ||
35b9e423 EB |
80 | Windows are grouped by tags. Each window can be tagged with one or multiple |
81 | tags. Selecting certain tags displays all windows with these tags. | |
1010e530 CR |
82 | |
83 | Each screen contains a small status bar which displays all available tags, the | |
84 | layout, the number of visible windows, the title of the focused window, and the | |
35b9e423 | 85 | text read from the root window name property, if the screen is focused. A |
1010e530 | 86 | floating window is indicated with an empty square and a maximised floating |
35b9e423 EB |
87 | window is indicated with a filled square before the windows title. The selected |
88 | tags are indicated with a different color. The tags of the focused window are | |
89 | indicated with a filled square in the top left corner. The tags which are | |
1010e530 CR |
90 | applied to one or more windows are indicated with an empty square in the top |
91 | left corner. | |
92 | ||
93 | dwm draws a small customizable border around windows to indicate the focus | |
94 | state.") | |
3a733420 | 95 | (license license:x11))) |
65a05690 SB |
96 | |
97 | (define-public dmenu | |
98 | (package | |
99 | (name "dmenu") | |
100 | (version "4.5") | |
101 | (source (origin | |
102 | (method url-fetch) | |
103 | (uri (string-append "http://dl.suckless.org/tools/dmenu-" | |
104 | version ".tar.gz")) | |
105 | (sha256 | |
106 | (base32 | |
107 | "0l58jpxrr80fmyw5pgw5alm5qry49aw6y049745wl991v2cdcb08")))) | |
108 | (build-system gnu-build-system) | |
109 | (arguments | |
110 | '(#:tests? #f ; no tests | |
111 | #:make-flags (list "CC=gcc" | |
112 | (string-append "PREFIX=" %output)) | |
113 | #:phases | |
114 | (alist-delete 'configure %standard-phases))) | |
115 | (inputs | |
116 | `(("libx11" ,libx11) | |
117 | ("libxinerama" ,libxinerama))) | |
118 | (home-page "http://tools.suckless.org/dmenu/") | |
119 | (synopsis "Dynamic menu") | |
120 | (description | |
121 | "A dynamic menu for X, originally designed for dwm. It manages large | |
122 | numbers of user-defined menu items efficiently.") | |
3a733420 | 123 | (license license:x11))) |
15f5f686 TČ |
124 | |
125 | (define-public slock | |
126 | (package | |
127 | (name "slock") | |
ac6c66ae | 128 | (version "1.2") |
15f5f686 TČ |
129 | (source (origin |
130 | (method url-fetch) | |
131 | (uri (string-append "http://dl.suckless.org/tools/slock-" | |
132 | version ".tar.gz")) | |
133 | (sha256 | |
134 | (base32 | |
ac6c66ae | 135 | "1crkyr4vblhciy6vnbjwwjnlkm9yg2hzq16v6hzxm20ai67na0il")))) |
15f5f686 TČ |
136 | (build-system gnu-build-system) |
137 | (arguments | |
138 | '(#:tests? #f ; no tests | |
139 | #:make-flags (list "CC=gcc" | |
140 | (string-append "PREFIX=" %output)) | |
141 | #:phases (alist-delete 'configure %standard-phases))) | |
142 | (inputs | |
143 | `(("libx11" ,libx11) | |
144 | ("libxext" ,libxext) | |
145 | ("libxinerama" ,libxinerama))) | |
146 | (home-page "http://tools.suckless.org/slock/") | |
147 | (synopsis "Simple X session lock") | |
148 | (description | |
149 | "Simple X session lock with trivial feedback on password entry.") | |
3a733420 AB |
150 | (license license:x11))) |
151 | ||
152 | (define-public st | |
153 | (package | |
154 | (name "st") | |
2eca2d62 | 155 | (version "0.6") |
3a733420 AB |
156 | (source |
157 | (origin | |
158 | (method url-fetch) | |
159 | (uri (string-append "http://dl.suckless.org/st/st-" | |
160 | version ".tar.gz")) | |
161 | (sha256 | |
162 | (base32 | |
2eca2d62 | 163 | "0avsfc1qp8zvshsfjwwrkvk411jlqy58z225bsdhjkl1qc40qcc5")))) |
3a733420 AB |
164 | (build-system gnu-build-system) |
165 | (arguments | |
166 | '(#:tests? #f ; no tests | |
167 | #:make-flags (list "CC=gcc" | |
168 | (string-append "PREFIX=" %output)) | |
169 | #:phases | |
170 | (modify-phases %standard-phases | |
171 | (delete 'configure) | |
172 | (add-after 'unpack 'inhibit-terminfo-install | |
173 | (lambda _ | |
174 | (substitute* "Makefile" | |
175 | (("\t@tic -s st.info") "")) | |
176 | #t))))) | |
177 | (inputs | |
178 | `(("libx11" ,libx11) | |
179 | ("libxft" ,libxft) | |
180 | ("libxcomposite" ,libxcomposite) | |
181 | ("compositeproto" ,compositeproto) | |
182 | ("libxext" ,libxext) | |
183 | ("xextproto" ,xextproto) | |
184 | ("libxrender" ,libxrender) | |
185 | ("fontconfig" ,fontconfig) | |
186 | ("freetype" ,freetype) | |
187 | ("font-liberation" ,font-liberation))) | |
188 | (native-inputs `(("pkg-config" ,pkg-config))) | |
189 | (home-page "http://st.suckless.org/") | |
190 | (synopsis "Simple terminal emulator") | |
191 | (description | |
192 | "St implements a simple and lightweight terminal emulator. It | |
193 | implements 256 colors, most VT10X escape sequences, utf8, X11 copy/paste, | |
194 | antialiased fonts (using fontconfig), fallback fonts, resizing, and line | |
195 | drawing.") | |
196 | (license license:x11))) | |
4acbd206 AM |
197 | |
198 | (define-public surf | |
199 | (package | |
200 | (name "surf") | |
201 | (version "0.7") | |
202 | (source | |
203 | (origin | |
204 | (method url-fetch) | |
205 | (uri (string-append "http://dl.suckless.org/surf/surf-" | |
206 | version ".tar.gz")) | |
207 | (sha256 | |
208 | (base32 | |
209 | "0jj93izd8fizxfa6ln9w1h9bwki81sz5dhskh5x1rl34zd38aq4m")))) | |
210 | (build-system glib-or-gtk-build-system) | |
211 | (arguments | |
212 | '(#:tests? #f ; no tests | |
213 | #:make-flags (list "CC=gcc" | |
214 | (string-append "PREFIX=" %output)) | |
215 | #:phases | |
216 | (modify-phases %standard-phases | |
217 | (delete 'configure)))) | |
218 | (inputs | |
219 | `(("glib-networking" ,glib-networking) | |
220 | ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) | |
221 | ("webkitgtk" ,webkitgtk/gtk+-2))) | |
222 | (native-inputs | |
223 | `(("pkg-config" ,pkg-config))) | |
224 | (home-page "http://surf.suckless.org/") | |
225 | (synopsis "Simple web browser") | |
226 | (description | |
227 | "Surf is a simple web browser based on WebKit/GTK+. It is able to | |
228 | display websites and follow links. It supports the XEmbed protocol which | |
229 | makes it possible to embed it in another application. Furthermore, one can | |
230 | point surf to another URI by setting its XProperties.") | |
231 | (license license:x11))) |