Merge branch 'master' into core-updates
[jackhill/guix/guix.git] / gnu / packages / terminals.scm
CommitLineData
6a7e1a18
EF
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
89978a0a 3;;; Copyright © 2016 Mckinley Olsen <mck.olsen@gmail.com>
cb55f9c6 4;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
6a7e1a18
EF
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 terminals)
22 #:use-module ((guix licenses) #:prefix license:)
23 #:use-module (guix build utils)
24 #:use-module (guix build-system gnu)
cb55f9c6 25 #:use-module (guix build-system python)
6a7e1a18 26 #:use-module (guix download)
89978a0a 27 #:use-module (guix git-download)
6a7e1a18
EF
28 #:use-module (guix packages)
29 #:use-module (gnu packages autotools)
30 #:use-module (gnu packages gettext)
31 #:use-module (gnu packages glib)
32 #:use-module (gnu packages gnome)
33 #:use-module (gnu packages gtk)
34 #:use-module (gnu packages pkg-config)
cb55f9c6 35 #:use-module (gnu packages python)
89978a0a
MO
36 #:use-module (gnu packages wm)
37 #:use-module (gnu packages ncurses)
38 #:use-module (gnu packages gtk)
39 #:use-module (gnu packages gnome))
6a7e1a18
EF
40
41(define-public tilda
42 (package
43 (name "tilda")
ff80b963 44 (version "1.3.1")
6a7e1a18
EF
45 (source (origin
46 (method url-fetch)
47 (uri (string-append "https://github.com/lanoxx/tilda/archive/"
d2a52108 48 "tilda-" version ".tar.gz"))
6a7e1a18
EF
49 (sha256
50 (base32
ff80b963 51 "1nh0kw8f6srriglj55gmir1hvakcwrak1wcydz3vpnmwipgy6jib"))))
6a7e1a18
EF
52 (build-system gnu-build-system)
53 (arguments
54 `(#:phases (modify-phases %standard-phases
55 (add-before 'patch-source-shebangs 'autogen
56 (lambda _ ; Avoid running ./configure.
57 (substitute* "autogen.sh"
58 (("^.*\\$srcdir/configure.*") ""))
59 (zero? (system* "sh" "autogen.sh")))))))
60 (native-inputs
61 `(("autoconf" ,autoconf)
62 ("automake" ,automake)
63 ("gettext" ,gnu-gettext)
d2a52108 64 ("pkg-config" ,pkg-config)))
6a7e1a18
EF
65 (inputs
66 `(("glib" ,glib "bin")
67 ("gtk+" ,gtk+)
68 ("libconfuse" ,libconfuse)
d2a52108 69 ("vte" ,vte)))
6a7e1a18
EF
70 (synopsis "GTK+-based drop-down terminal")
71 (description "Tilda is a terminal emulator similar to normal terminals like
72gnome-terminal (GNOME) or Konsole (KDE), with the difference that it drops down
73from the edge of a screen when a certain configurable hotkey is pressed. This
74is similar to the built-in consoles in some applications. Tilda is highly
75configureable through a graphical wizard.")
76 (home-page "https://github.com/lanoxx/tilda")
77 (license license:gpl2+)))
89978a0a
MO
78
79(define-public termite
80 (package
81 (name "termite")
82 (version "11")
83 (source
84 (origin
85 (method git-fetch)
86 (uri (git-reference
87 (url (string-append "https://github.com/thestinger/"
88 name ".git"))
89 (commit (string-append "v" version))
90 (recursive? #t)))
91 (file-name (string-append name "-" version "-checkout"))
92 (sha256
93 (base32
94 "1cw4yw7n9m2si8b7zcfyz9pyihncabxm5g39v1mxslfajxgwzmd8"))))
95 (build-system gnu-build-system)
96 (arguments
97 `(#:phases (alist-delete 'configure %standard-phases)
98 #:tests? #f
99 ;; This sets the destination when installing the necessary terminal
100 ;; capability data, which are not provided by 'ncurses'. See
101 ;; <https://lists.gnu.org/archive/html/bug-ncurses/2009-10/msg00031.html>.
102 #:make-flags (list "PREFIX="
103 (string-append "VERSION=v" (version))
104 (string-append "DESTDIR="
105 (assoc-ref %outputs "out")))))
106 (inputs
107 `(("vte", vte-ng)
108 ("gtk+", gtk+)
109 ("ncurses", ncurses)))
110 (native-inputs
111 `(("pkg-config" ,pkg-config)))
112
113 ;; FIXME: This should only be located in 'ncurses'. Nonetheless it is
114 ;; provided for usability reasons. See <https://bugs.gnu.org/22138>.
115 (native-search-paths
116 (list (search-path-specification
117 (variable "TERMINFO_DIRS")
118 (files '("share/terminfo")))))
119 (home-page "https://github.com/thestinger/termite/")
120 (synopsis "Keyboard-centric, VTE-based terminal")
121 (description "Termite is a minimal terminal emulator designed for use with
122tiling window managers. It is a modal application, similar to Vim, with an
123insert mode and command mode where keybindings have different functions.")
124
125 ;; Files under util/ are under the Expat license; the rest is LGPLv2+.
126 (license license:lgpl2.0+)))
cb55f9c6
AG
127
128(define-public asciinema
129 (package
130 (name "asciinema")
131 (version "1.3.0")
132 (source
133 (origin
134 (method url-fetch)
135 (uri (string-append
136 "https://pypi.python.org/packages/06/96/93947d9be78aebb7985014fdf"
137 "4d84896dd0f62514d922ee03f5bb55a21fb/asciinema-" version
138 ".tar.gz"))
139 (sha256
140 (base32
141 "1crdm9zfdbjflvz1gsqvy5zsbgwdfkj34z69kg6h5by70rrs1hdc"))))
142 (build-system python-build-system)
143 (arguments
144 `(#:phases
145 (modify-phases %standard-phases
146 (add-before 'build 'patch-exec-paths
147 (lambda* (#:key inputs #:allow-other-keys)
148 (let ((ncurses (assoc-ref inputs "ncurses")))
149 (substitute* "asciinema/recorder.py"
150 (("'tput'")
151 (string-append "'" ncurses "/bin/tput'"))))
152 #t)))))
153 (inputs `(("ncurses" ,ncurses)
154 ("python-setuptools" ,python-setuptools)))
155 (home-page "https://asciinema.org")
156 (synopsis "Terminal session recorder")
157 (description
158 "Use asciinema to record and share your terminal sessions, the right way.
159Forget screen recording apps and blurry video. Enjoy a lightweight, purely
160text-based approach to terminal recording.")
161 (license license:gpl3)))