summary refs log tree commit diff
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