diff options
Diffstat (limited to 'gnu/packages/terminals.scm')
-rw-r--r-- | gnu/packages/terminals.scm | 206 |
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 |