From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:38018) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gc7dV-0000fq-Nj for guix-patches@gnu.org; Wed, 26 Dec 2018 06:46:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gc7dS-0002sD-HZ for guix-patches@gnu.org; Wed, 26 Dec 2018 06:46:05 -0500 Received: from debbugs.gnu.org ([208.118.235.43]:38068) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gc7dS-0002s3-EY for guix-patches@gnu.org; Wed, 26 Dec 2018 06:46:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1gc7dS-0000k4-8i for guix-patches@gnu.org; Wed, 26 Dec 2018 06:46:02 -0500 Subject: [bug#33877] [PATCH] gnu: Add kitty. Resent-Message-ID: Received: from eggs.gnu.org ([208.118.235.92]:37854) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gc7cx-0000V4-23 for guix-patches@gnu.org; Wed, 26 Dec 2018 06:45:32 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gc7ct-0002RK-Sv for guix-patches@gnu.org; Wed, 26 Dec 2018 06:45:31 -0500 Received: from mail-wm1-x344.google.com ([2a00:1450:4864:20::344]:38486) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gc7ct-0002OV-3e for guix-patches@gnu.org; Wed, 26 Dec 2018 06:45:27 -0500 Received: by mail-wm1-x344.google.com with SMTP id m22so15131707wml.3 for ; Wed, 26 Dec 2018 03:45:24 -0800 (PST) Received: from glht-x240.gmail.com ([92.184.108.235]) by smtp.gmail.com with ESMTPSA id s66sm22130436wmf.34.2018.12.26.03.45.20 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 26 Dec 2018 03:45:21 -0800 (PST) From: Gabriel Hondet Date: Wed, 26 Dec 2018 12:41:58 +0100 Message-ID: <87tvj0wlyt.fsf@gmail.com> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: 33877@debbugs.gnu.org --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable * gnu/packages/terminals.scm (kitty): New variable. =2D-- gnu/packages/terminals.scm | 104 +++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index 369e79bf5..223bc3684 100644 =2D-- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -11,6 +11,7 @@ ;;; Copyright =C2=A9 2017 Petter ;;; Copyright =C2=A9 2018 Hartmut Goebel ;;; Copyright =C2=A9 2018 Arun Isaac +;;; Copyright =C2=A9 2018 Gabriel Hondet ;;; ;;; 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,103 @@ 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:]]+=3D (python3.*)$") + "SPHINXBUILD =3D sphinx-build\n")))))) + (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 determinis= tic + (lambda _ + (let ((pycaches (find-files "linux-package/" + "__pycache__" + #:directories? #t))) + (map delete-file-recursively pycaches)))) + (replace 'install + (lambda _ + (let* ((out (assoc-ref %outputs "out")) + (obin (string-append out "/bin")) + (olib (string-append out "/lib")) + (oshare (string-append out "/share"))) + (begin + (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, the fast, featureful, GPU based terminal emulator +@itemize @bullet +@item Offloads rendering to the GPU for lower system load and buttery smoo= th +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 use= d to +extend kitty's functionality. For example, they are used for Unicode inpu= t, +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 Cross-platform: kitty works on Linux and macOS, but because it uses = only +OpenGL for rendering, it should be trivial to port to other Unix-like +platforms. +@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+))) =2D-=20 2.20.1 --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEE5ercJXBcjd3P1FcAMbyBBfZZ1CUFAlwjacoACgkQMbyBBfZZ 1CX0UhAAkRzofo0lqOjp7/Gu+8q0LvQOGnWzLHFtzPIRQ7csFx/VPh4yxkY7ogSm tDmvmhQgXE0Q0qmtE0O0YnbvjAesK3xmJFST9XSJuDoivX20Ehnnc1z4ls7oq9Fq 9sxaXA3Awn35TzSquYEcYjwGVaF2r7o7HAVwGQckGbYwgynBsf87a8ZLC6AN6E+2 fyHVYOInwNnx8uwItfDxp67yTUcC38dJobP1as7xf7YycuejenfEtU6dpKbdsOgp ZU1bukdT+iMnxj6qt0Yr2v6ISwp2KKp9zM5YhbN3+PlFgW1ceGY2zvVj2Nsdk8Mu xC6YISDce/oVAbO8WjSV2wqQfeQ3+uwBDyXLwPkPgulFmkr+8oao7PM0KHzt5hdN hGMJWaYngqUQW2WmbBKgKGkZcGVmMAdFrZFD6TNJh6+eLq5A8tD+zDWDD2IgRsQm kdTHITm2ksr3TuN7vBzRJgNH50FufZ9lDpkz4Zw31447gQn5BoegCNSIjPVso2BA Rfo+rnrDBHg5QPxM34DdEy793shpX3iucLna2W8qciy2cS6ot+XAltU1nnCD7MQm jPCe2sB6MDNwZy7pMUSzRultUhHr0zHw6pOWH9TITFYopKLlUdeYY1BbANFSavUX lb1u6B5wVaa3s+x1p5KR6O4HuqSll9yVhLRg8b7odw1YuNpgBhM= =rj3A -----END PGP SIGNATURE----- --=-=-=--