* [bug#33877] [PATCH] gnu: Add kitty.
@ 2018-12-26 11:41 Gabriel Hondet
2019-01-06 20:12 ` bug#33877: " Ludovic Courtès
0 siblings, 1 reply; 2+ messages in thread
From: Gabriel Hondet @ 2018-12-26 11:41 UTC (permalink / raw)
To: 33877
[-- Attachment #1: Type: text/plain, Size: 6222 bytes --]
* 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 <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,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
+@itemize @bullet
+@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 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+)))
--
2.20.1
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]
^ permalink raw reply related [flat|nested] 2+ messages in thread
* bug#33877: [PATCH] gnu: Add kitty.
2018-12-26 11:41 [bug#33877] [PATCH] gnu: Add kitty Gabriel Hondet
@ 2019-01-06 20:12 ` Ludovic Courtès
0 siblings, 0 replies; 2+ messages in thread
From: Ludovic Courtès @ 2019-01-06 20:12 UTC (permalink / raw)
To: Gabriel Hondet; +Cc: 33877-done
[-- Attachment #1: Type: text/plain, Size: 243 bytes --]
Hello,
Gabriel Hondet <gabrielhondet@gmail.com> 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’.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 3390 bytes --]
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
-@itemize @bullet
+ (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
+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.
-@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.
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2019-01-06 20:13 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-26 11:41 [bug#33877] [PATCH] gnu: Add kitty Gabriel Hondet
2019-01-06 20:12 ` bug#33877: " Ludovic Courtès
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.