summaryrefslogtreecommitdiff
path: root/gnu/packages/terminals.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/terminals.scm')
-rw-r--r--gnu/packages/terminals.scm206
1 files changed, 93 insertions, 113 deletions
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index 21649f78af..e96bc7a7ce 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -92,6 +92,7 @@
#:use-module (gnu packages linux)
#:use-module (gnu packages man)
#:use-module (gnu packages ncurses)
+ #:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
#:use-module (gnu packages perl-check)
#:use-module (gnu packages pkg-config)
@@ -105,6 +106,7 @@
#:use-module (gnu packages sphinx)
#:use-module (gnu packages ssh)
#:use-module (gnu packages textutils)
+ #:use-module (gnu packages tls)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
@@ -184,61 +186,40 @@ configurable through a graphical wizard.")
(define-public termite
(package
(name "termite")
- (version "15")
+ (version "16.6")
(source
(origin
- (method git-fetch)
- (uri (git-reference
- (url (string-append "https://github.com/thestinger/"
- name ".git"))
- (commit (string-append "v" version))
- (recursive? #t)))
- (file-name (string-append name "-" version "-checkout"))
+ (method url-fetch)
+ ;; XXX: The release includes a modified version of VTE.
+ (uri (string-append
+ "https://github.com/aperezdc/termite/releases/download/v"
+ version "/termite-" version ".tar.xz"))
(sha256
(base32
- "0hp1x6lj098m3jgna274wv5dv60lnzg22297di68g4hw9djjyd2k"))))
- (build-system gnu-build-system)
+ "1n8x84pkp7l9xl0sd07jbj5gjb574qm3w7656qlnzw8hf9kr69il"))))
+ (build-system meson-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-xdg-open
- (lambda _
- (substitute* "termite.cc"
- (("xdg-open") (which "xdg-open")))
- #t))
- (delete 'configure))
- #:tests? #f
- ;; This sets the destination when installing the necessary terminal
- ;; capability data, which are not provided by 'ncurses'. See
- ;; <https://lists.gnu.org/archive/html/bug-ncurses/2009-10/msg00031.html>.
- #:make-flags (list "PREFIX="
- (string-append "VERSION=v" (version))
- (string-append "DESTDIR="
- (assoc-ref %outputs "out")))))
+ (list #:configure-flags
+ #~(list "-Dvte:_systemd=false")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-xdg-open
+ (lambda _
+ (substitute* "termite.cc"
+ (("xdg-open") (which "xdg-open")))))
+ (replace 'install
+ (lambda _
+ (invoke "meson" "install" "--skip-subprojects" "vte"))))))
(inputs
- `(("vte" ,vte-ng)
- ("gtk+" ,gtk+)
- ("xdg-utils" ,xdg-utils)
- ("ncurses" ,ncurses)))
+ (list gnutls gtk+ pcre2 xdg-utils))
(native-inputs
- (list pkg-config))
-
- ;; FIXME: This should only be located in 'ncurses'. Nonetheless it is
- ;; provided for usability reasons. See <https://bugs.gnu.org/22138>.
- (native-search-paths
- (list (search-path-specification
- (variable "TERMINFO_DIRS")
- (files '("share/terminfo")))))
- (home-page "https://github.com/thestinger/termite/")
+ (list (list glib "bin") pkg-config))
+ (home-page "https://github.com/aperezdc/termite/")
(synopsis "Keyboard-centric, VTE-based terminal")
- (description "Termite is a minimal terminal emulator. It is no longer
-maintained as the author considers it obsoleted by Alacritty.
-
-It was designed for use with tiling window managers. It is a modal
-application, similar to Vim, with an insert mode and command mode where
-keybindings have different functions.")
-
- ;; Files under util/ are under the Expat license; the rest is LGPLv2+.
+ (description "Termite is a minimal terminal emulator, with a slightly
+modified version of VTE exposing the necessary functions for keyboard text
+selection and URL hints. It was designed for use with tiling window
+managers.")
(license license:lgpl2.0+)))
(define-public asciinema
@@ -842,7 +823,7 @@ eye-candy, customizable, and reasonably lightweight.")
(define-public foot
(package
(name "foot")
- (version "1.14.0")
+ (version "1.15.1")
(home-page "https://codeberg.org/dnkl/foot")
(source (origin
(method git-fetch)
@@ -850,7 +831,7 @@ eye-candy, customizable, and reasonably lightweight.")
(file-name (git-file-name name version))
(sha256
(base32
- "1187805pxygyl547w75i4cl37kaw8y8ng11r5qqldv6fm74k31mk"))))
+ "1h2gbnfikqpgr9ylwl5wpyzgcgzfxnbi83j33rxx2ppy54yjcb30"))))
(build-system meson-build-system)
(arguments
`(;; Using a "release" build is recommended both for performance, and
@@ -1205,7 +1186,7 @@ tmux.")
(define-public kitty
(package
(name "kitty")
- (version "0.20.3")
+ (version "0.21.2")
(home-page "https://sw.kovidgoyal.net/kitty/")
(source
(origin
@@ -1215,7 +1196,8 @@ tmux.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "13qv4469q9q2xdrb77lbyw4dz491zf1qvqx4adp0dd9annnlir5c"))
+ (base32 "0y0mg8rr18mn0wzym7v48x6kl0ixd5q387kr5jhbdln55ph2jk9d"))
+ (patches (search-patches "kitty-fix-wayland-protocols.patch"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -1231,70 +1213,68 @@ tmux.")
#t))))
(build-system gnu-build-system)
(native-inputs
- `(("libdbus" ,dbus)
- ("libgl1-mesa" ,mesa)
- ("libxcursor" ,libxcursor)
- ("libxi" ,libxi)
- ("libxinerama" ,libxinerama)
- ("libxkbcommon" ,libxkbcommon)
- ("libxrandr" ,libxrandr)
- ("ncurses" ,ncurses) ;; for tic command
- ("pkg-config" ,pkg-config)
- ("sphinx" ,python-sphinx)
- ("wayland-protocols" ,wayland-protocols)))
+ (list dbus
+ mesa
+ libxcursor
+ libxi
+ libxinerama
+ libxkbcommon
+ libxrandr
+ ncurses ;; for tic command
+ pkg-config
+ python-sphinx
+ wayland-protocols))
(inputs
- `(("fontconfig" ,fontconfig)
- ("freetype" ,freetype)
- ("harfbuzz" ,harfbuzz)
- ("lcms" ,lcms)
- ("libcanberra" ,libcanberra)
- ("libpng" ,libpng)
- ("pygments" ,python-pygments)
- ("python" ,python-wrapper)
- ("wayland" ,wayland)
- ("zlib" ,zlib)))
+ (list fontconfig
+ freetype
+ harfbuzz
+ lcms
+ libcanberra
+ libpng
+ python-pygments
+ python-wrapper
+ wayland
+ zlib))
(arguments
- '(#:phases (modify-phases %standard-phases
- (delete 'configure) ;no configure script
- (replace 'build
- (lambda* (#:key inputs #:allow-other-keys)
- ;; The "kitty" sub-directory must be writable prior to
- ;; configuration (e.g., un-setting updates).
- (for-each make-file-writable (find-files "kitty"))
-
- (invoke "python3" "setup.py" "linux-package"
- ;; Do not phone home.
- "--update-check-interval=0"
- ;; Wayland backend requires EGL, which isn't
- ;; found out-of-the-box for some reason.
- (string-append "--egl-library="
- (assoc-ref inputs "libgl1-mesa")
- "/lib/libEGL.so.1"))))
- (replace 'check
- (lambda _
- ;; Fix "cannot find kitty executable" error when running
- ;; tests.
- (setenv "PATH" (string-append "linux-package/bin:"
- (getenv "PATH")))
- (invoke "python3" "test.py")))
- (add-before 'install 'rm-pycache
- ;; created python cache __pycache__ are non deterministic
- (lambda _
- (let ((pycaches (find-files "linux-package/"
- "__pycache__"
- #:directories? #t)))
- (for-each delete-file-recursively pycaches)
- #t)))
- (replace 'install
- (lambda _
- (let* ((out (assoc-ref %outputs "out"))
- (obin (string-append out "/bin"))
- (olib (string-append out "/lib"))
- (oshare (string-append out "/share")))
- (copy-recursively "linux-package/bin" obin)
- (copy-recursively "linux-package/share" oshare)
- (copy-recursively "linux-package/lib" olib)
- #t))))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure) ;no configure script
+ (replace 'build
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; The "kitty" sub-directory must be writable prior to
+ ;; configuration (e.g., un-setting updates).
+ (for-each make-file-writable (find-files "kitty"))
+ (invoke "python3" "setup.py" "linux-package"
+ ;; Do not phone home.
+ "--update-check-interval=0"
+ ;; Wayland backend requires EGL, which isn't
+ ;; found out-of-the-box for some reason.
+ (string-append "--egl-library="
+ (search-input-file inputs "/lib/libEGL.so.1")))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ ;; Fix "cannot find kitty executable" error when running
+ ;; tests.
+ (setenv "PATH" (string-append "linux-package/bin:"
+ (getenv "PATH")))
+ (invoke "python3" "test.py"))))
+ (add-before 'install 'rm-pycache
+ ;; created python cache __pycache__ are non deterministic
+ (lambda _
+ (let ((pycaches (find-files "linux-package/"
+ "__pycache__"
+ #:directories? #t)))
+ (for-each delete-file-recursively pycaches))))
+ (replace 'install
+ (lambda _
+ (let* ((obin (string-append #$output "/bin"))
+ (olib (string-append #$output "/lib"))
+ (oshare (string-append #$output "/share")))
+ (copy-recursively "linux-package/bin" obin)
+ (copy-recursively "linux-package/share" oshare)
+ (copy-recursively "linux-package/lib" olib)))))))
(synopsis "Fast, featureful, GPU based terminal emulator")
(description "Kitty is a fast and featureful GPU-based terminal emulator:
@itemize