gnu: w3m: Update to 0.5.3+git20180125 [fixes CVE-2018-{6196,6197,6198}].
[jackhill/guix/guix.git] / gnu / packages / terminals.scm
CommitLineData
6a7e1a18 1;;; GNU Guix --- Functional package management for GNU
99e28bbf 2;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
89978a0a 3;;; Copyright © 2016 Mckinley Olsen <mck.olsen@gmail.com>
98b9732c 4;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
af39609b 5;;; Copyright © 2016 David Craven <david@craven.ch>
c2ffcc44 6;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org>
abe2ec73 7;;; Copyright © 2016, 2017 José Miguel Sánchez García <jmi2k@openmailbox.org>
ed3094ce 8;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
90bf2608 9;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
f2b7be09 10;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
f9ff014b 11;;; Copyright © 2017 Petter <petter@mykolab.ch>
6a7e1a18
EF
12;;;
13;;; This file is part of GNU Guix.
14;;;
15;;; GNU Guix is free software; you can redistribute it and/or modify it
16;;; under the terms of the GNU General Public License as published by
17;;; the Free Software Foundation; either version 3 of the License, or (at
18;;; your option) any later version.
19;;;
20;;; GNU Guix is distributed in the hope that it will be useful, but
21;;; WITHOUT ANY WARRANTY; without even the implied warranty of
22;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23;;; GNU General Public License for more details.
24;;;
25;;; You should have received a copy of the GNU General Public License
26;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
27
28(define-module (gnu packages terminals)
29 #:use-module ((guix licenses) #:prefix license:)
30 #:use-module (guix build utils)
90bf2608 31 #:use-module (guix build-system cmake)
6a7e1a18 32 #:use-module (guix build-system gnu)
99e28bbf 33 #:use-module (guix build-system glib-or-gtk)
d0c2f81c 34 #:use-module (guix build-system go)
cb55f9c6 35 #:use-module (guix build-system python)
6a7e1a18 36 #:use-module (guix download)
89978a0a 37 #:use-module (guix git-download)
6a7e1a18 38 #:use-module (guix packages)
f9ff014b 39 #:use-module (gnu packages)
6a7e1a18 40 #:use-module (gnu packages autotools)
78a81e37 41 #:use-module (gnu packages docbook)
e8bb4336 42 #:use-module (gnu packages freedesktop)
6a7e1a18 43 #:use-module (gnu packages gettext)
e8bb4336 44 #:use-module (gnu packages gl)
6a7e1a18
EF
45 #:use-module (gnu packages glib)
46 #:use-module (gnu packages gnome)
47 #:use-module (gnu packages gtk)
e8bb4336 48 #:use-module (gnu packages linux)
78a81e37 49 #:use-module (gnu packages ncurses)
db913ac4 50 #:use-module (gnu packages perl)
5ccde207 51 #:use-module (gnu packages perl-check)
6a7e1a18 52 #:use-module (gnu packages pkg-config)
cb55f9c6 53 #:use-module (gnu packages python)
589e3f4e 54 #:use-module (gnu packages python-web)
78a81e37 55 #:use-module (gnu packages qt)
cf71edee 56 #:use-module (gnu packages textutils)
89978a0a 57 #:use-module (gnu packages wm)
78325fa8 58 #:use-module (gnu packages xdisorg)
7326944b 59 #:use-module (gnu packages xml)
90bf2608 60 #:use-module (gnu packages xorg)
78325fa8 61 #:use-module (srfi srfi-26))
6a7e1a18
EF
62
63(define-public tilda
64 (package
65 (name "tilda")
37042a0f 66 (version "1.3.3")
6a7e1a18
EF
67 (source (origin
68 (method url-fetch)
69 (uri (string-append "https://github.com/lanoxx/tilda/archive/"
d2a52108 70 "tilda-" version ".tar.gz"))
6a7e1a18
EF
71 (sha256
72 (base32
37042a0f 73 "1cc4qbg1m3i04lj5p6i6xbd0zvy1320pxdgmjhz5p3j95ibsbfki"))))
99e28bbf 74 (build-system glib-or-gtk-build-system)
6a7e1a18
EF
75 (arguments
76 `(#:phases (modify-phases %standard-phases
77 (add-before 'patch-source-shebangs 'autogen
78 (lambda _ ; Avoid running ./configure.
79 (substitute* "autogen.sh"
80 (("^.*\\$srcdir/configure.*") ""))
81 (zero? (system* "sh" "autogen.sh")))))))
82 (native-inputs
83 `(("autoconf" ,autoconf)
84 ("automake" ,automake)
b94a6ca0 85 ("gettext" ,gettext-minimal)
d2a52108 86 ("pkg-config" ,pkg-config)))
6a7e1a18 87 (inputs
99e28bbf 88 `(("libconfuse" ,libconfuse)
d2a52108 89 ("vte" ,vte)))
6a7e1a18
EF
90 (synopsis "GTK+-based drop-down terminal")
91 (description "Tilda is a terminal emulator similar to normal terminals like
92gnome-terminal (GNOME) or Konsole (KDE), with the difference that it drops down
93from the edge of a screen when a certain configurable hotkey is pressed. This
94is similar to the built-in consoles in some applications. Tilda is highly
d1e4ad1b 95configurable through a graphical wizard.")
6a7e1a18
EF
96 (home-page "https://github.com/lanoxx/tilda")
97 (license license:gpl2+)))
89978a0a
MO
98
99(define-public termite
100 (package
101 (name "termite")
98bd11cf 102 (version "13")
89978a0a
MO
103 (source
104 (origin
105 (method git-fetch)
106 (uri (git-reference
107 (url (string-append "https://github.com/thestinger/"
108 name ".git"))
109 (commit (string-append "v" version))
110 (recursive? #t)))
111 (file-name (string-append name "-" version "-checkout"))
112 (sha256
ebe3515f 113 (base32
98bd11cf 114 "02cn70ygl93ghhkhs3xdxn5b1yadc255v3yp8cmhhyzsv5027hvj"))))
89978a0a
MO
115 (build-system gnu-build-system)
116 (arguments
66bb5db7
EF
117 `(#:phases
118 (modify-phases %standard-phases
119 (delete 'configure))
89978a0a
MO
120 #:tests? #f
121 ;; This sets the destination when installing the necessary terminal
122 ;; capability data, which are not provided by 'ncurses'. See
123 ;; <https://lists.gnu.org/archive/html/bug-ncurses/2009-10/msg00031.html>.
124 #:make-flags (list "PREFIX="
125 (string-append "VERSION=v" (version))
126 (string-append "DESTDIR="
127 (assoc-ref %outputs "out")))))
128 (inputs
129 `(("vte", vte-ng)
130 ("gtk+", gtk+)
131 ("ncurses", ncurses)))
132 (native-inputs
133 `(("pkg-config" ,pkg-config)))
134
135 ;; FIXME: This should only be located in 'ncurses'. Nonetheless it is
136 ;; provided for usability reasons. See <https://bugs.gnu.org/22138>.
137 (native-search-paths
138 (list (search-path-specification
139 (variable "TERMINFO_DIRS")
140 (files '("share/terminfo")))))
141 (home-page "https://github.com/thestinger/termite/")
142 (synopsis "Keyboard-centric, VTE-based terminal")
143 (description "Termite is a minimal terminal emulator designed for use with
144tiling window managers. It is a modal application, similar to Vim, with an
145insert mode and command mode where keybindings have different functions.")
146
147 ;; Files under util/ are under the Expat license; the rest is LGPLv2+.
148 (license license:lgpl2.0+)))
cb55f9c6
AG
149
150(define-public asciinema
151 (package
152 (name "asciinema")
98b9732c 153 (version "1.4.0")
cb55f9c6
AG
154 (source
155 (origin
156 (method url-fetch)
98b9732c 157 (uri (pypi-uri "asciinema" version))
cb55f9c6
AG
158 (sha256
159 (base32
98b9732c 160 "1jrf8c8711gkdilmvyv3d37kp8xfvdc5cqighw5k92a6g9z4acgv"))))
cb55f9c6
AG
161 (build-system python-build-system)
162 (arguments
163 `(#:phases
164 (modify-phases %standard-phases
165 (add-before 'build 'patch-exec-paths
166 (lambda* (#:key inputs #:allow-other-keys)
167 (let ((ncurses (assoc-ref inputs "ncurses")))
168 (substitute* "asciinema/recorder.py"
169 (("'tput'")
170 (string-append "'" ncurses "/bin/tput'"))))
171 #t)))))
f3b98f4f 172 (inputs `(("ncurses" ,ncurses)))
39d0de33
MB
173 (native-inputs
174 ;; For tests.
175 `(("python-requests" ,python-requests)))
cb55f9c6
AG
176 (home-page "https://asciinema.org")
177 (synopsis "Terminal session recorder")
178 (description
179 "Use asciinema to record and share your terminal sessions, the right way.
180Forget screen recording apps and blurry video. Enjoy a lightweight, purely
181text-based approach to terminal recording.")
182 (license license:gpl3)))
af39609b
DC
183
184(define-public libtsm
185 (package
186 (name "libtsm")
187 (version "3")
188 (source (origin
189 (method url-fetch)
190 (uri (string-append
191 "https://freedesktop.org/software/kmscon/releases/"
192 "libtsm-" version ".tar.xz"))
193 (sha256
194 (base32
195 "01ygwrsxfii0pngfikgqsb4fxp8n1bbs47l7hck81h9b9bc1ah8i"))))
196 (build-system gnu-build-system)
197 (native-inputs
198 `(("pkg-config" ,pkg-config)))
199 (inputs
200 `(("libxkbcommon" ,libxkbcommon)))
201 (synopsis "Xterm state machine library")
202 (description "TSM is a state machine for DEC VT100-VT520 compatible
203terminal emulators. It tries to support all common standards while keeping
204compatibility to existing emulators like xterm, gnome-terminal, konsole, etc.")
205 (home-page "https://www.freedesktop.org/wiki/Software/libtsm")
d7af202b
DC
206 ;; Hash table implementation is lgpl2.1+ licensed.
207 ;; The wcwidth implementation in external/wcwidth.{h,c} uses a license
208 ;; derived from ISC.
209 ;; UCS-4 to UTF-8 encoding is copied from "terminology" which is released
210 ;; under the bsd 2 license.
211 (license (list license:expat license:lgpl2.1+ license:isc license:bsd-2))))
e8bb4336
DC
212
213(define-public kmscon
214 (package
215 (name "kmscon")
216 (version "8")
217 (source (origin
218 (method url-fetch)
219 (uri (string-append
220 "https://freedesktop.org/software/kmscon/releases/"
221 "kmscon-" version ".tar.xz"))
222 (sha256
223 (base32
5acf00f9
LC
224 "0axfwrp3c8f4gb67ap2sqnkn75idpiw09s35wwn6kgagvhf1rc0a"))
225 (modules '((guix build utils)))
226 (snippet
227 ;; Use elogind instead of systemd.
228 '(begin
229 (substitute* "configure"
230 (("libsystemd-daemon libsystemd-login")
231 "libelogind"))
232 (substitute* "src/uterm_systemd.c"
233 (("#include <systemd/sd-login.h>")
234 "#include <elogind/sd-login.h>")
235 ;; We don't have this header.
236 (("#include <systemd/sd-daemon\\.h>")
237 "")
238 ;; Replace the call to 'sd_booted' by the truth value.
239 (("sd_booted\\(\\)")
240 "1"))))))
e8bb4336
DC
241 (build-system gnu-build-system)
242 (native-inputs
7326944b
LC
243 `(("pkg-config" ,pkg-config)
244 ("libxslt" ,libxslt) ;to build the man page
245 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
246 ("docbook-xsl" ,docbook-xsl)))
e8bb4336 247 (inputs
c2ffcc44 248 `(("libdrm" ,libdrm)
e8bb4336
DC
249 ("libtsm" ,libtsm)
250 ("libxkbcommon" ,libxkbcommon)
251 ("logind" ,elogind)
252 ("mesa" ,mesa)
253 ("pango" ,pango)
254 ("udev" ,eudev)))
78325fa8
LC
255 (synopsis "Linux KMS-based terminal emulator")
256 (description "Kmscon is a terminal emulator based on Linux's @dfn{kernel
257mode setting} (KMS). It can replace the in-kernel virtual terminal (VT)
258implementation with a user-space console. Compared to the Linux console,
259kmscon provides enhanced features including XKB-compatible internationalized
260keyboard support, UTF-8 input/font support, hardware-accelerated rendering,
261multi-seat support, a replacement for @command{mingetty}, and more.")
e8bb4336 262 (home-page "https://www.freedesktop.org/wiki/Software/kmscon")
3eb2fca6
DC
263 ;; Hash table implementation is lgpl2.1+ licensed.
264 ;; The wcwidth implementation in external/wcwidth.{h,c} uses a license
265 ;; derived from ISC.
266 ;; UCS-4 to UTF-8 encoding is copied from "terminology" which is released
267 ;; under the bsd 2 license.
268 ;; Unifont-Font is from http://unifoundry.com/unifont.html and licensed
269 ;; under the terms of the GNU GPL.
78325fa8
LC
270 (license (list license:expat license:lgpl2.1+ license:bsd-2
271 license:gpl2+))
272 (supported-systems (filter (cut string-suffix? "-linux" <>)
273 %supported-systems))))
a3af70ac 274
db913ac4
JMSG
275(define-public libtermkey
276 (package
277 (name "libtermkey")
b5b46f87 278 (version "0.20")
db913ac4
JMSG
279 (source (origin
280 (method url-fetch)
281 (uri (string-append "http://www.leonerd.org.uk/code/"
282 name "/" name "-" version ".tar.gz"))
283 (sha256
b5b46f87 284 (base32 "1xfj6lchhfljmbcl6dz8dpakppyy13nbl4ykxiv5x4dr9b4qf3bc"))))
db913ac4
JMSG
285 (build-system gnu-build-system)
286 (arguments
287 '(#:make-flags (list
288 "CC=gcc"
289 (string-append "PREFIX=" (assoc-ref %outputs "out")))
290 #:phases (modify-phases %standard-phases
291 (delete 'configure))
292 #:test-target "test"))
293 (inputs `(("ncurses", ncurses)))
294 (native-inputs `(("libtool", libtool)
295 ("perl-test-harness" ,perl-test-harness)
296 ("pkg-config", pkg-config)))
297 (synopsis "Keyboard entry processing library for terminal-based programs")
298 (description
299 "Libtermkey handles all the necessary logic to recognise special keys, UTF-8
300combining, and so on, with a simple interface.")
301 (home-page "http://www.leonerd.org.uk/code/libtermkey")
302 (license license:expat)))
303
a3af70ac
DC
304(define-public picocom
305 (package
306 (name "picocom")
d0cddec2 307 (version "2.2")
a3af70ac
DC
308 (source (origin
309 (method url-fetch)
310 (uri (string-append
311 "https://github.com/npat-efault/picocom"
312 "/archive/" version ".tar.gz"))
313 (file-name (string-append name "-" version ".tar.gz"))
314 (sha256
315 (base32
d0cddec2 316 "1knl6dglnrynx1fhy21nylw56i1q3dkizkgxzkq42mb7ilah8f9y"))))
a3af70ac
DC
317 (build-system gnu-build-system)
318 (arguments
319 `(#:make-flags '("CC=gcc")
320 #:tests? #f ; No tests
321 #:phases
322 (modify-phases %standard-phases
323 (delete 'configure)
324 (replace 'install
325 (lambda* (#:key outputs #:allow-other-keys)
326 (let* ((out (assoc-ref outputs "out"))
327 (bin (string-append out "/bin"))
328 (man (string-append out "/share/man/man1")))
329 (install-file "picocom" bin)
330 (install-file "picocom.1" man)))))))
331 (home-page "https://github.com/npat-efault/picocom")
332 (synopsis "Minimal dumb-terminal emulation program")
333 (description "It was designed to serve as a simple, manual, modem
334configuration, testing, and debugging tool. It has also serves well
335as a low-tech serial communications program to allow access to all
336types of devices that provide serial consoles.")
337 (license license:gpl2+)))
abe2ec73
JMSG
338
339(define-public beep
340 (package
341 (name "beep")
342 (version "1.3")
343 (source (origin
344 (method url-fetch)
345 (uri (string-append "http://www.johnath.com/" name "/"
346 name "-" version ".tar.gz"))
347 (sha256
348 (base32
349 "0bgch6jq5cahakk3kbr9549iysf2dik09afixxy5brbxk1xfzb2r"))))
350 (build-system gnu-build-system)
351 (arguments
352 `(#:tests? #f ; no tests.
353 #:phases
354 (modify-phases %standard-phases
355 (delete 'configure)
356 (add-after 'unpack 'patch-makefile
357 (lambda* (#:key outputs #:allow-other-keys)
12c15242
TGR
358 (substitute* "Makefile" (("/usr") (assoc-ref outputs "out")))
359 #t))
abe2ec73
JMSG
360 (add-before 'install 'create-output-directories
361 (lambda* (#:key outputs #:allow-other-keys)
362 (let ((out (assoc-ref %outputs "out")))
363 (mkdir-p (string-append out "/bin"))
364 (mkdir-p (string-append out "/man/man1"))))))))
365 (synopsis "Linux command-line utility to control the PC speaker")
366 (description "beep allows the user to control the PC speaker with precision,
367allowing different sounds to indicate different events. While it can be run
368quite happily on the command line, its intended place of residence is within
369scripts, notifying the user when something interesting occurs. Of course, it
370has no notion of what's interesing, but it's very good at that notifying part.")
371 (home-page "http://www.johnath.com/beep")
372 (license license:gpl2+)))
f2b7be09
RW
373
374(define-public unibilium
375 (package
376 (name "unibilium")
ed3094ce 377 (version "1.2.1")
f2b7be09
RW
378 (source
379 (origin
380 (method url-fetch)
381 (uri (string-append "https://github.com/mauke/unibilium/"
382 "archive/v" version ".tar.gz"))
383 (file-name (string-append name "-" version ".tar.gz"))
384 (sha256
385 (base32
ed3094ce 386 "1hbf011d8nzsp7c96fidjiq8yw8zlxf6f1s050ii2yyampvb8ib0"))))
f2b7be09
RW
387 (build-system gnu-build-system)
388 (arguments
389 `(#:make-flags
390 (list "CC=gcc"
391 (string-append "PREFIX=" (assoc-ref %outputs "out")))
392 #:test-target "test"
393 ;; FIXME: tests require "prove"
394 #:tests? #f
395 #:phases
396 (modify-phases %standard-phases
397 (delete 'configure))))
398 (native-inputs
399 `(("libtool" ,libtool)))
400 (home-page "https://github.com/mauke/unibilium")
401 (synopsis "Terminfo parsing library")
402 (description "Unibilium is a basic C terminfo library. It doesn't depend
403on curses or any other library. It also doesn't use global variables, so it
404should be thread-safe.")
405 (license license:lgpl3+)))
ee869cd6
RW
406
407(define-public libvterm
408 (package
409 (name "libvterm")
410 (version "0+bzr681")
411 (source
412 (origin
413 (method url-fetch)
414 (uri (string-append "http://www.leonerd.org.uk/code/libvterm/"
415 "libvterm-" version ".tar.gz"))
416 (sha256
417 (base32
418 "1s56c8p1qz6frkcri0hg4qyydv2wcccj6n2xmz1dwcdqn38ldsmb"))))
419 (build-system gnu-build-system)
420 (arguments
421 `(#:make-flags
422 (list "CC=gcc"
423 (string-append "PREFIX=" (assoc-ref %outputs "out")))
424 #:test-target "test"
425 #:phases
426 (modify-phases %standard-phases
427 (delete 'configure))))
428 (native-inputs
429 `(("libtool" ,libtool)
430 ("perl" ,perl)))
431 (home-page "http://www.leonerd.org.uk/code/libvterm/")
432 (synopsis "VT220/xterm/ECMA-48 terminal emulator library")
433 (description "Libvterm is an abstract C99 library which implements a VT220
434or xterm-like terminal emulator. It doesn't use any particular graphics
435toolkit or output system, instead it invokes callback function pointers that
436its embedding program should provide it to draw on its behalf. It avoids
437calling @code{malloc} during normal running state, allowing it to be used in
438embedded kernel situations.")
439 (license license:expat)))
f9ff014b
P
440
441(define-public cool-retro-term
442 (let ((commit "e48719fa44e5307df71dbd0fad234f8a6a53f863")
443 (revision "1"))
444 (package
445 (name "cool-retro-term")
446 (version (string-append "1.0.0-" revision "." (string-take commit 7)))
447 (source (origin
448 (method git-fetch)
449 (file-name (string-append name "-" version "-checkout"))
450 (uri (git-reference
451 (url (string-append "https://github.com/Swordfish90/" name))
452 (commit commit)
453 (recursive? #t)))
454 (sha256
455 (base32 "1sgqbirninkvgwchr35zgn5vzqvsmrf3cp7lqady1xgrawb8lsz3"))
456 (patches
457 (search-patches "cool-retro-term-remove-non-free-fonts.patch"
458 "cool-retro-term-fix-array-size.patch"
459 "cool-retro-term-dont-check-uninit-member.patch"
460 "cool-retro-term-memory-leak-1.patch"))
461 (modules '((guix build utils)))
462 (snippet
463 '(for-each (lambda (font)
464 (delete-file-recursively
465 (string-append "app/qml/fonts/" font))
466 (substitute* '("app/qml/resources.qrc")
467 (((string-append "<file>fonts/" font ".*"))
468 "")))
469 '(;"1971-ibm-3278" ; BSD 3-clause
470 "1977-apple2" ; Non-Free
471 "1977-commodore-pet" ; Non-Free
472 "1979-atari-400-800" ; Non-Free
473 "1982-commodore64" ; Non-Free
474 "1985-atari-st" ; ?
475 "1985-ibm-pc-vga" ; Unclear
476 ;"modern-fixedsys-excelsior" ; Redistributable
477 ;"modern-hermit" ; SIL
478 ;"modern-inconsolata"; SIL
479 ;"modern-pro-font-win-tweaked" ; X11
480 ;"modern-proggy-tiny"; X11
481 ;"modern-terminus" ; SIL
482 "modern-monaco"))))) ; Apple non-free
483 (build-system gnu-build-system)
484 (inputs
485 `(("qtbase" ,qtbase)
486 ("qtdeclarative" ,qtdeclarative)
487 ("qtgraphicaleffects" ,qtgraphicaleffects)
488 ("qtquickcontrols" ,qtquickcontrols)))
489 (arguments
490 `(#:phases
491 (modify-phases %standard-phases
492 (replace 'configure
493 (lambda* (#:key outputs #:allow-other-keys)
494 (let* ((out (assoc-ref outputs "out"))
495 (share (string-append out "/share")))
496 (substitute* '("qmltermwidget/qmltermwidget.pro")
497 (("INSTALL_DIR = \\$\\$\\[QT_INSTALL_QML\\]")
669be6ac 498 (string-append "INSTALL_DIR = " out "/lib/qt5/qml")))
f9ff014b
P
499 (substitute* '("app/app.pro")
500 (("target.path \\+= /usr")
501 (string-append "target.path += " out))
502 (("icon32.path = /usr/share")
503 (string-append "icon32.path = " share))
504 (("icon64.path = /usr/share")
505 (string-append "icon64.path = " share))
506 (("icon128.path = /usr/share")
507 (string-append "icon128.path = " share))
508 (("icon256.path = /usr/share")
509 (string-append "icon256.path = " share)))
510 (zero? (system* "qmake")))))
511 (add-before 'install 'fix-Makefiles
512 (lambda* (#:key outputs #:allow-other-keys)
513 (let* ((out (assoc-ref outputs "out")))
514 (substitute* '("Makefile")
515 (("\\$\\(INSTALL_ROOT\\)/usr") out)))))
516 (add-after 'install 'wrap-executable
517 (lambda* (#:key inputs outputs #:allow-other-keys)
518 (let* ((out (assoc-ref outputs "out"))
669be6ac 519 (qml "/lib/qt5/qml"))
f9ff014b
P
520 (wrap-program (string-append out "/bin/cool-retro-term")
521 `("QML2_IMPORT_PATH" ":" prefix
522 (,(string-append out qml)
523 ,(string-append
524 (assoc-ref inputs "qtdeclarative") qml)
525 ,(string-append
526 (assoc-ref inputs "qtgraphicaleffects") qml)
527 ,(string-append
528 (assoc-ref inputs "qtquickcontrols") qml)))))))
529 (add-after 'install 'add-alternate-name
530 (lambda* (#:key outputs #:allow-other-keys)
531 (let* ((bin (string-append (assoc-ref outputs "out") "/bin")))
532 (symlink (string-append bin "/cool-retro-term")
533 (string-append bin "/crt"))))))))
534 (synopsis "Terminal emulator")
535 (description
536 "Cool-retro-term (crt) is a terminal emulator which mimics the look and
537feel of the old cathode ray tube (CRT) screens. It has been designed to be
538eye-candy, customizable, and reasonably lightweight.")
539 (home-page "https://github.com/Swordfish90/cool-retro-term")
540 (license (list
541 license:gpl2+ ; qmltermwidget
542 license:gpl3+ ; cool-retro-term
543 ;; Fonts
544 license:silofl1.1
545 license:x11
546 license:bsd-3)))))
90bf2608
KK
547
548(define-public sakura
549 (package
550 (name "sakura")
551 (version "3.5.0")
552 (source (origin
553 (method url-fetch)
554 (uri (string-append "https://launchpad.net/" name "/trunk/"
555 version "/+download/" name "-" version
556 ".tar.bz2"))
557 (sha256
558 (base32
559 "0fhcn3540iw22l5zg3njh5z8cj0g2n9p6fvagjqa5zc323jfsc7b"))))
560 (build-system cmake-build-system)
561 (arguments
562 ;; no check phase
563 '(#:tests? #f))
564 (native-inputs
565 `(("gettext" ,gettext-minimal)
566 ("perl" ,perl) ; for pod2man
567 ("pkg-config" ,pkg-config)))
568 (inputs
569 `(("libxft" ,libxft)
570 ("vte" ,vte)))
571 (home-page "https://launchpad.net/sakura")
572 (synopsis "A simple but powerful libvte-based terminal emulator")
573 (description "@code{Sakura} is a terminal emulator based on GTK+ and VTE.
574It's a terminal emulator with few dependencies, so you don't need a full GNOME
575desktop installed to have a decent terminal emulator.")
576 (license license:gpl2)))
d0c2f81c 577
cf71edee
CB
578(define-public go-github.com-nsf-termbox-go
579 (let ((commit "4ed959e0540971545eddb8c75514973d670cf739")
580 (revision "0"))
581 (package
582 (name "go-github.com-nsf-termbox-go")
583 (version (git-version "0.0.0" revision commit))
584 (source (origin
585 (method git-fetch)
586 (uri (git-reference
587 (url "https://github.com/nsf/termbox-go.git")
588 (commit commit)))
589 (file-name (git-file-name name version))
590 (sha256
591 (base32
592 "1vx64i1mg660if3wwm81p4b7lzxfb3qbr39i7misdyld3fc486p9"))))
593 (build-system go-build-system)
594 (arguments
595 '(#:import-path "github.com/nsf/termbox-go"))
596 (propagated-inputs
597 `(("go-github.com-mattn-go-runewidth"
598 ,go-github.com-mattn-go-runewidth)))
599 (synopsis "@code{termbox} provides a minimal API for text-based user
600interfaces")
601 (description
602 "Termbox is a library that provides a minimalistic API which allows the
603programmer to write text-based user interfaces.")
604 (home-page "https://github.com/nsf/termbox-go")
605 (license license:expat))))
606
d0c2f81c
CB
607(define-public go-golang.org-x-crypto-ssh-terminal
608 (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd")
609 (revision "0"))
610 (package
611 (name "go-golang.org-x-crypto-ssh-terminal")
612 (version (git-version "0.0.0" revision commit))
613 (source (origin
614 (method git-fetch)
615 (uri (git-reference
616 (url "https://go.googlesource.com/crypto")
617 (commit commit)))
618 (file-name (git-file-name name version))
619 (sha256
620 (base32
621 "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4"))))
622 (build-system go-build-system)
623 (arguments
624 '(#:import-path "golang.org/x/crypto/ssh/terminal"
625 #:unpack-path "golang.org/x/crypto"
626 #:phases
627 (modify-phases %standard-phases
628 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
629 (lambda* (#:key outputs #:allow-other-keys)
630 (map (lambda (file)
631 (make-file-writable file))
632 (find-files
633 (string-append (assoc-ref outputs "out")
634 "/src/golang.org/x/crypto/ed25519/testdata")
635 ".*\\.gz$"))
636 #t)))))
637 (synopsis "Support functions for dealing with terminals in Go")
638 (description "@code{terminal} provides support functions for dealing
639with terminals in Go.")
640 (home-page "https://go.googlesource.com/crypto/")
641 (license license:bsd-3))))
f8ce6eb6
CB
642
643(define-public go-github.com-howeyc-gopass
644 (let ((commit "bf9dde6d0d2c004a008c27aaee91170c786f6db8")
645 (revision "0"))
646 (package
647 (name "go-github.com-howeyc-gopass")
648 (version (git-version "0.0.0" revision commit))
649 (source (origin
650 (method git-fetch)
651 (uri (git-reference
652 (url "https://github.com/howeyc/gopass.git")
653 (commit commit)))
654 (file-name (git-file-name name version))
655 (sha256
656 (base32
657 "1jxzyfnqi0h1fzlsvlkn10bncic803bfhslyijcxk55mgh297g45"))))
658 (build-system go-build-system)
659 (arguments
660 '(#:import-path "github.com/howeyc/gopass"))
661 (propagated-inputs
662 `(("go-golang.org-x-crypto-ssh-terminal"
663 ,go-golang.org-x-crypto-ssh-terminal)))
664 (synopsis "Retrieve password from a terminal or piped input in Go")
665 (description
666 "@code{gopass} is a Go package for retrieving a password from user
667terminal or piped input.")
668 (home-page "https://github.com/howeyc/gopass")
669 (license license:isc))))