gnu: Add wificurse.
[jackhill/guix/guix.git] / gnu / packages / suckless.scm
CommitLineData
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>
4f5a0f32 5;;; Copyright © 2016, 2017 ng0 <ng0@libertad.pw>
f0f0a48b
DB
6;;; Copyright © 2015 Dmitry Bogatov <KAction@gnu.org>
7;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
8;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
f3a53f3c 9;;; Copyright © 2017 Alex Griffin <a@ajgrf.com>
1010e530
CR
10;;;
11;;; This file is part of GNU Guix.
12;;;
13;;; GNU Guix is free software; you can redistribute it and/or modify it
14;;; under the terms of the GNU General Public License as published by
15;;; the Free Software Foundation; either version 3 of the License, or (at
16;;; your option) any later version.
17;;;
18;;; GNU Guix is distributed in the hope that it will be useful, but
19;;; WITHOUT ANY WARRANTY; without even the implied warranty of
20;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21;;; GNU General Public License for more details.
22;;;
23;;; You should have received a copy of the GNU General Public License
24;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
25
975b8942 26(define-module (gnu packages suckless)
3a733420 27 #:use-module ((guix licenses) #:prefix license:)
1010e530
CR
28 #:use-module (guix packages)
29 #:use-module (guix download)
30 #:use-module (guix build-system gnu)
4acbd206 31 #:use-module (guix build-system glib-or-gtk)
1010e530 32 #:use-module (gnu packages)
4acbd206 33 #:use-module (gnu packages gnome)
f0f0a48b 34 #:use-module (gnu packages image)
3a733420
AB
35 #:use-module (gnu packages xorg)
36 #:use-module (gnu packages fonts)
37 #:use-module (gnu packages pkg-config)
4acbd206 38 #:use-module (gnu packages webkit)
3a733420 39 #:use-module (gnu packages fontutils))
1010e530
CR
40
41(define-public dwm
42 (package
43 (name "dwm")
648733dc 44 (version "6.1")
1010e530
CR
45 (source (origin
46 (method url-fetch)
47 (uri (string-append "http://dl.suckless.org/dwm/dwm-"
48 version ".tar.gz"))
49 (sha256
648733dc 50 (base32 "1zkmwb6df6m254shx06ly90c0q4jl70skk1pvkixpb7hcxhwbxn2"))))
1010e530
CR
51 (build-system gnu-build-system)
52 (arguments
53 `(#:tests? #f
648733dc
AG
54 #:make-flags (list (string-append "FREETYPEINC="
55 (assoc-ref %build-inputs "freetype")
56 "/include/freetype2"))
1010e530
CR
57 #:phases
58 (alist-replace
59 'configure
60 (lambda _
61 (substitute* "Makefile" (("\\$\\{CC\\}") "gcc"))
62 #t)
63 (alist-replace
64 'install
65 (lambda* (#:key outputs #:allow-other-keys)
66 (let ((out (assoc-ref outputs "out")))
67 (zero?
68 (system* "make" "install"
69 (string-append "DESTDIR=" out) "PREFIX="))))
70 %standard-phases))))
71 (inputs
648733dc
AG
72 `(("freetype" ,freetype)
73 ("libx11" ,libx11)
74 ("libxft" ,libxft)
1010e530
CR
75 ("libxinerama" ,libxinerama)))
76 (home-page "http://dwm.suckless.org/")
77 (synopsis "Dynamic window manager")
78 (description
35b9e423
EB
79 "dwm is a dynamic window manager for X. It manages windows in tiled,
80monocle and floating layouts. All of the layouts can be applied dynamically,
dfde065f 81optimising the environment for the application in use and the task performed.")
3a733420 82 (license license:x11)))
65a05690
SB
83
84(define-public dmenu
85 (package
86 (name "dmenu")
bc47382a 87 (version "4.6")
65a05690
SB
88 (source (origin
89 (method url-fetch)
90 (uri (string-append "http://dl.suckless.org/tools/dmenu-"
91 version ".tar.gz"))
92 (sha256
93 (base32
bc47382a 94 "1cwnvamqqlgczvd5dv5rsgqbhv8kp0ddjnhmavb3q732i8028yja"))))
65a05690
SB
95 (build-system gnu-build-system)
96 (arguments
97 '(#:tests? #f ; no tests
98 #:make-flags (list "CC=gcc"
bc47382a
AG
99 (string-append "PREFIX=" %output)
100 (string-append "FREETYPEINC="
101 (assoc-ref %build-inputs "freetype")
102 "/include/freetype2"))
65a05690
SB
103 #:phases
104 (alist-delete 'configure %standard-phases)))
105 (inputs
bc47382a
AG
106 `(("freetype" ,freetype)
107 ("libxft" ,libxft)
108 ("libx11" ,libx11)
65a05690
SB
109 ("libxinerama" ,libxinerama)))
110 (home-page "http://tools.suckless.org/dmenu/")
111 (synopsis "Dynamic menu")
112 (description
113 "A dynamic menu for X, originally designed for dwm. It manages large
114numbers of user-defined menu items efficiently.")
3a733420 115 (license license:x11)))
15f5f686
116
117(define-public slock
118 (package
119 (name "slock")
f3a53f3c 120 (version "1.4")
15f5f686
121 (source (origin
122 (method url-fetch)
123 (uri (string-append "http://dl.suckless.org/tools/slock-"
124 version ".tar.gz"))
125 (sha256
126 (base32
f3a53f3c 127 "0sif752303dg33f14k6pgwq2jp1hjyhqv6x4sy3sj281qvdljf5m"))))
15f5f686
128 (build-system gnu-build-system)
129 (arguments
130 '(#:tests? #f ; no tests
131 #:make-flags (list "CC=gcc"
132 (string-append "PREFIX=" %output))
133 #:phases (alist-delete 'configure %standard-phases)))
134 (inputs
135 `(("libx11" ,libx11)
136 ("libxext" ,libxext)
fea1422e
LF
137 ("libxinerama" ,libxinerama)
138 ("libxrandr" ,libxrandr)))
15f5f686
139 (home-page "http://tools.suckless.org/slock/")
140 (synopsis "Simple X session lock")
141 (description
142 "Simple X session lock with trivial feedback on password entry.")
3a733420
AB
143 (license license:x11)))
144
145(define-public st
146 (package
147 (name "st")
87520dfd 148 (version "0.7")
3a733420
AB
149 (source
150 (origin
151 (method url-fetch)
152 (uri (string-append "http://dl.suckless.org/st/st-"
153 version ".tar.gz"))
154 (sha256
155 (base32
87520dfd 156 "00309qiw20rc89696pk8bdr7ik4r1aarik7jxqk8k66cdj80v1zp"))))
3a733420
AB
157 (build-system gnu-build-system)
158 (arguments
159 '(#:tests? #f ; no tests
160 #:make-flags (list "CC=gcc"
161 (string-append "PREFIX=" %output))
162 #:phases
163 (modify-phases %standard-phases
164 (delete 'configure)
165 (add-after 'unpack 'inhibit-terminfo-install
166 (lambda _
167 (substitute* "Makefile"
168 (("\t@tic -s st.info") ""))
169 #t)))))
170 (inputs
171 `(("libx11" ,libx11)
172 ("libxft" ,libxft)
3a733420 173 ("fontconfig" ,fontconfig)
939111ca 174 ("freetype" ,freetype)))
3a733420
AB
175 (native-inputs `(("pkg-config" ,pkg-config)))
176 (home-page "http://st.suckless.org/")
177 (synopsis "Simple terminal emulator")
178 (description
179 "St implements a simple and lightweight terminal emulator. It
180implements 256 colors, most VT10X escape sequences, utf8, X11 copy/paste,
181antialiased fonts (using fontconfig), fallback fonts, resizing, and line
182drawing.")
183 (license license:x11)))
4acbd206
AM
184
185(define-public surf
186 (package
187 (name "surf")
188 (version "0.7")
189 (source
190 (origin
191 (method url-fetch)
192 (uri (string-append "http://dl.suckless.org/surf/surf-"
193 version ".tar.gz"))
194 (sha256
195 (base32
196 "0jj93izd8fizxfa6ln9w1h9bwki81sz5dhskh5x1rl34zd38aq4m"))))
197 (build-system glib-or-gtk-build-system)
198 (arguments
199 '(#:tests? #f ; no tests
200 #:make-flags (list "CC=gcc"
201 (string-append "PREFIX=" %output))
202 #:phases
203 (modify-phases %standard-phases
204 (delete 'configure))))
205 (inputs
206 `(("glib-networking" ,glib-networking)
207 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
208 ("webkitgtk" ,webkitgtk/gtk+-2)))
209 (native-inputs
210 `(("pkg-config" ,pkg-config)))
211 (home-page "http://surf.suckless.org/")
212 (synopsis "Simple web browser")
213 (description
214 "Surf is a simple web browser based on WebKit/GTK+. It is able to
215display websites and follow links. It supports the XEmbed protocol which
216makes it possible to embed it in another application. Furthermore, one can
217point surf to another URI by setting its XProperties.")
218 (license license:x11)))
f0f0a48b
DB
219
220(define-public sent
221 (package
222 (name "sent")
223 (version "0.2")
224 (source (origin
225 (method url-fetch)
226 (uri (string-append "http://dl.suckless.org/tools/sent-"
227 version ".tar.gz"))
228 (sha256
229 (base32
230 "0xhh752hwaa26k4q6wvrb9jnpbnylss2aw6z11j7l9rav7wn3fak"))))
231 (build-system gnu-build-system)
232 (arguments
233 `(#:phases (modify-phases %standard-phases
234 (delete 'configure)) ;no configuration
235 #:tests? #f ;no test suite
236 #:make-flags (let ((pkg-config (lambda (flag)
237 (string-append
238 "$(shell pkg-config " flag " "
239 "xft fontconfig x11 libpng)"))))
240 (list
241 "CC=gcc"
242 (string-append "PREFIX=" %output)
243 (string-append "INCS=-I. " (pkg-config "--cflags"))
244 (string-append "LIBS=" (pkg-config "--libs") " -lm")))))
245 (native-inputs
246 `(("pkg-config" ,pkg-config)))
247 (inputs
248 `(("libpng" ,libpng)
249 ("libx11" ,libx11)
250 ("libxft" ,libxft)
251 ("fontconfig" ,fontconfig)))
252 (synopsis "Plaintext presentation tool")
253 (description "Sent uses plaintext files and PNG images to create slideshow
254presentations. Each paragraph represents a slide in the presentation.
255Especially for presentations using the Takahashi method this is very nice and
256allows you to write down the presentation for a quick lightning talk within a
257few minutes.")
258 (home-page "http://tools.suckless.org/sent")
259 (license license:x11)))
4f5a0f32 260
261(define-public xbattmon
262 (package
263 (name "xbattmon")
264 (version "0.9")
265 (source
266 (origin
267 (method url-fetch)
268 (uri (string-append "http://dl.2f30.org/releases/"
269 name "-" version ".tar.gz"))
270 (sha256
271 (base32
272 "0n2rrjq03pgqrdkl7cz5snsfdanf4s58w9h6dbvnl7p8bbd3j2kn"))))
273 (build-system gnu-build-system)
274 (arguments
275 `(#:tests? #f ; No tests
276 #:make-flags (list "CC=gcc"
277 (string-append "PREFIX=" %output))))
278 (inputs
279 `(("libx11" ,libx11)))
280 (home-page "http://git.2f30.org/xbattmon/")
281 (synopsis "Simple battery monitor for X")
282 (description
283 "Xbattmon is a simple battery monitor for X.")
284 (license license:isc)))
f63abd0d 285
286(define-public wificurse
287 (package
288 (name "wificurse")
289 (version "0.3.9")
290 (source
291 (origin
292 (method url-fetch)
293 (uri (string-append "http://dl.2f30.org/releases/"
294 name "-" version ".tar.gz"))
295 (sha256
296 (base32
297 "067ghr1xly5ca41kc83xila1p5hpq0bxfcmc8jvxi2ggm6wrhavn"))))
298 (build-system gnu-build-system)
299 (arguments
300 `(#:tests? #f ; No tests
301 #:make-flags (list
302 (string-append "PREFIX=" %output))
303 #:phases
304 (modify-phases %standard-phases
305 (delete 'configure)))) ; No configure script
306 (home-page "http://git.2f30.org/wificurse/")
307 (synopsis "Wifi DoS attack tool")
308 (description
309 "Wificurses listens for beacons sent from wireless access points
310in the range of your wireless station. Once received the program
311extracts the BSSID of the AP and transmits deauthentication packets
312using the broadcast MAC address. This results to the disconnection
313of all clients connected to the AP at the time of the attack. This
314is essencially a WiFi DoS attack tool created for educational
315purposes only. It works only in Linux and requires wireless card
316drivers capable of injecting packets in wireless networks.")
317 (license license:gpl3+)))