gnu: Add kitty.
* gnu/packages/terminals.scm (kitty): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
parent
b5f8c2c885
commit
b7ec276e57
|
@ -11,6 +11,7 @@
|
|||
;;; Copyright © 2017 Petter <petter@mykolab.ch>
|
||||
;;; Copyright © 2018 Hartmut Goebel <h.goebel@crazy-compilers.com>
|
||||
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
|
||||
;;; Copyright © 2018 Gabriel Hondet <gabrielhondet@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -41,13 +42,16 @@
|
|||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages docbook)
|
||||
#:use-module (gnu packages fontutils)
|
||||
#:use-module (gnu packages freedesktop)
|
||||
#:use-module (gnu packages gettext)
|
||||
#:use-module (gnu packages gl)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gnome)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages image)
|
||||
#:use-module (gnu packages libevent)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages ncurses)
|
||||
|
@ -900,3 +904,101 @@ per-line fullscreen terminal rendering, and keyboard input event reporting.")
|
|||
share your terminal with other users over the Internet. tmate is a fork of
|
||||
tmux.")
|
||||
(license license:isc)))
|
||||
|
||||
(define-public kitty
|
||||
(package
|
||||
(name "kitty")
|
||||
(version "0.13.1")
|
||||
(home-page "https://sw.kovidgoyal.net/kitty/")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/kovidgoyal/kitty.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1j24zjasdh48z7majfpqr71n1wn5a9688wsmmqn26v8kfb68pqs4"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
;; patch needed as sphinx-build is used as a python script
|
||||
;; whereas the guix package uses a bash script launching the
|
||||
;; python script
|
||||
(substitute* "docs/conf.py"
|
||||
(("(from kitty.constants import str_version)" kitty-imp)
|
||||
(string-append "sys.path.append(\"..\")\n" kitty-imp)))
|
||||
(substitute* "docs/Makefile"
|
||||
(("^SPHINXBUILD[[:space:]]+= (python3.*)$")
|
||||
"SPHINXBUILD = sphinx-build\n"))
|
||||
#t))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("python" ,python)
|
||||
("harfbuzz" ,harfbuzz)
|
||||
("zlib" ,zlib)
|
||||
("libpng" ,libpng)
|
||||
("freetype" ,freetype)
|
||||
("fontconfig" ,fontconfig)
|
||||
("pygments" ,python2-pygments)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("libxrandr" ,libxrandr)
|
||||
("libdbus" ,dbus)
|
||||
("libxcursor" ,libxcursor)
|
||||
("libxi" ,libxi)
|
||||
("libxinerama" ,libxinerama)
|
||||
("libgl1-mesa" ,mesa)
|
||||
("libxkbcommon" ,libxkbcommon)
|
||||
("sphinx" ,python-sphinx)
|
||||
("ncurses" ,ncurses) ;; for tic command
|
||||
("wayland-protocols" ,wayland-protocols)))
|
||||
(arguments
|
||||
'(#:phases (modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(replace 'build
|
||||
(lambda _
|
||||
(invoke "python3" "setup.py" "linux-package")))
|
||||
(replace 'check
|
||||
(lambda _
|
||||
(invoke "python3" "setup.py" "test")))
|
||||
(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))))))
|
||||
(synopsis "Fast, featureful, GPU based terminal emulator")
|
||||
(description "Kitty is a fast and featureful GPU-based terminal emulator:
|
||||
@itemize
|
||||
@item Offloads rendering to the GPU for lower system load and buttery smooth
|
||||
scrolling. Uses threaded rendering to minimize input latency.
|
||||
@item Supports all modern terminal features: graphics (images), unicode,
|
||||
true-color, OpenType ligatures, mouse protocol, focus tracking, bracketed
|
||||
paste and several new terminal protocol extensions.
|
||||
@item Supports tiling multiple terminal windows side by side in different
|
||||
layouts without needing to use an extra program like tmux.
|
||||
@item Can be controlled from scripts or the shell prompt, even over SSH.
|
||||
@item Has a framework for Kittens, small terminal programs that can be used to
|
||||
extend kitty's functionality. For example, they are used for Unicode input,
|
||||
hints, and side-by-side diff.
|
||||
@item Supports startup sessions which allow you to specify the window/tab
|
||||
layout, working directories and programs to run on startup.
|
||||
@item Allows you to open the scrollback buffer in a separate window using
|
||||
arbitrary programs of your choice. This is useful for browsing the history
|
||||
comfortably in a pager or editor.
|
||||
@end itemize")
|
||||
(license license:gpl3+)))
|
||||
|
|
Loading…
Reference in New Issue