emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debbugs-tracker] bug#33877: closed ([PATCH] gnu: Add kitty.)


From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#33877: closed ([PATCH] gnu: Add kitty.)
Date: Sun, 06 Jan 2019 20:13:02 +0000

Your message dated Sun, 06 Jan 2019 21:12:21 +0100
with message-id <address@hidden>
and subject line Re: [bug#33877] [PATCH] gnu: Add kitty.
has caused the debbugs.gnu.org bug report #33877,
regarding [PATCH] gnu: Add kitty.
to be marked as done.

(If you believe you have received this mail in error, please contact
address@hidden)


-- 
33877: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=33877
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: [PATCH] gnu: Add kitty. Date: Wed, 26 Dec 2018 12:41:58 +0100 User-agent: mu4e 1.0; emacs 26.1
* gnu/packages/terminals.scm (kitty): New variable.
---
 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
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -11,6 +11,7 @@
 ;;; Copyright © 2017 Petter <address@hidden>
 ;;; Copyright © 2018 Hartmut Goebel <address@hidden>
 ;;; Copyright © 2018 Arun Isaac <address@hidden>
+;;; Copyright © 2018 Gabriel Hondet <address@hidden>
 ;;;
 ;;; 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:]]+= (python3.*)$")
+              "SPHINXBUILD = 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 deterministic
+                    (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
address@hidden @bullet
address@hidden Offloads rendering to the GPU for lower system load and buttery 
smooth
+scrolling.  Uses threaded rendering to minimize input latency.
address@hidden Supports all modern terminal features: graphics (images), 
unicode,
+true-color, OpenType ligatures, mouse protocol, focus tracking, bracketed
+paste and several new terminal protocol extensions.
address@hidden Supports tiling multiple terminal windows side by side in 
different
+layouts without needing to use an extra program like tmux
address@hidden Can be controlled from scripts or the shell prompt, even over 
SSH.
address@hidden 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.
address@hidden Supports startup sessions which allow you to specify the 
window/tab
+layout, working directories and programs to run on startup.
address@hidden 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.
address@hidden 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.
address@hidden itemize")
+    (license license:gpl3+)))
-- 
2.20.1

Attachment: signature.asc
Description: PGP signature


--- End Message ---
--- Begin Message --- Subject: Re: [bug#33877] [PATCH] gnu: Add kitty. Date: Sun, 06 Jan 2019 21:12:21 +0100 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux)
Hello,

Gabriel Hondet <address@hidden> skribis:

> * gnu/packages/terminals.scm (kitty): New variable.

Applied!  I took the liberty to make the small changes below; let me
know if anything is unclear.

Thanks,
Ludo’.

diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index 223bc3684c..f6f3845070 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -931,7 +931,8 @@ tmux.")
               (string-append "sys.path.append(\"..\")\n" kitty-imp)))
            (substitute* "docs/Makefile"
              (("^SPHINXBUILD[[:space:]]+= (python3.*)$")
-              "SPHINXBUILD = sphinx-build\n"))))))
+              "SPHINXBUILD = sphinx-build\n"))
+           #t))))
     (build-system gnu-build-system)
     (inputs
      `(("python" ,python)
@@ -968,37 +969,34 @@ tmux.")
                       (let ((pycaches (find-files "linux-package/"
                                                   "__pycache__"
                                                   #:directories? #t)))
-                        (map delete-file-recursively pycaches))))
+                        (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")))
-                        (begin
-                          (copy-recursively "linux-package/bin" obin)
-                          (copy-recursively "linux-package/share" oshare)
-                          (copy-recursively "linux-package/lib" olib)
-                          #t)))))))
+                        (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
address@hidden @bullet
+    (description "Kitty is a fast and featureful GPU-based terminal emulator:
address@hidden
 @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
+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.
+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.
address@hidden 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 Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]