summaryrefslogtreecommitdiff
path: root/gnu/packages/terminals.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/terminals.scm')
-rw-r--r--gnu/packages/terminals.scm211
1 files changed, 208 insertions, 3 deletions
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index 68507cf645..eeae8bea41 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -5,10 +5,11 @@
;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017 José Miguel Sánchez García <jmi2k@openmailbox.org>
-;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Petter <petter@mykolab.ch>
+;;; Copyright © 2018 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -31,12 +32,14 @@
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system glib-or-gtk)
+ #:use-module (guix build-system go)
#:use-module (guix build-system python)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix packages)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
+ #:use-module (gnu packages check)
#:use-module (gnu packages docbook)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gettext)
@@ -52,6 +55,7 @@
#:use-module (gnu packages python)
#:use-module (gnu packages python-web)
#:use-module (gnu packages qt)
+ #:use-module (gnu packages textutils)
#:use-module (gnu packages wm)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml)
@@ -372,7 +376,7 @@ has no notion of what's interesing, but it's very good at that notifying part.")
(define-public unibilium
(package
(name "unibilium")
- (version "1.2.0")
+ (version "1.2.1")
(source
(origin
(method url-fetch)
@@ -381,7 +385,7 @@ has no notion of what's interesing, but it's very good at that notifying part.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1n7a0jrlwhn9nnkna76sbnjrr808m0pmzbiwznmp7rhmjl4z2fk2"))))
+ "1hbf011d8nzsp7c96fidjiq8yw8zlxf6f1s050ii2yyampvb8ib0"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags
@@ -572,3 +576,204 @@ eye-candy, customizable, and reasonably lightweight.")
It's a terminal emulator with few dependencies, so you don't need a full GNOME
desktop installed to have a decent terminal emulator.")
(license license:gpl2)))
+
+(define-public go-github.com-nsf-termbox-go
+ (let ((commit "4ed959e0540971545eddb8c75514973d670cf739")
+ (revision "0"))
+ (package
+ (name "go-github.com-nsf-termbox-go")
+ (version (git-version "0.0.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/nsf/termbox-go.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1vx64i1mg660if3wwm81p4b7lzxfb3qbr39i7misdyld3fc486p9"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/nsf/termbox-go"))
+ (propagated-inputs
+ `(("go-github.com-mattn-go-runewidth"
+ ,go-github.com-mattn-go-runewidth)))
+ (synopsis "@code{termbox} provides a minimal API for text-based user
+interfaces")
+ (description
+ "Termbox is a library that provides a minimalistic API which allows the
+programmer to write text-based user interfaces.")
+ (home-page "https://github.com/nsf/termbox-go")
+ (license license:expat))))
+
+(define-public go-golang.org-x-crypto-ssh-terminal
+ (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd")
+ (revision "0"))
+ (package
+ (name "go-golang.org-x-crypto-ssh-terminal")
+ (version (git-version "0.0.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://go.googlesource.com/crypto")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "golang.org/x/crypto/ssh/terminal"
+ #:unpack-path "golang.org/x/crypto"
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
+ (lambda* (#:key outputs #:allow-other-keys)
+ (map (lambda (file)
+ (make-file-writable file))
+ (find-files
+ (string-append (assoc-ref outputs "out")
+ "/src/golang.org/x/crypto/ed25519/testdata")
+ ".*\\.gz$"))
+ #t)))))
+ (synopsis "Support functions for dealing with terminals in Go")
+ (description "@code{terminal} provides support functions for dealing
+with terminals in Go.")
+ (home-page "https://go.googlesource.com/crypto/")
+ (license license:bsd-3))))
+
+(define-public go-github.com-howeyc-gopass
+ (let ((commit "bf9dde6d0d2c004a008c27aaee91170c786f6db8")
+ (revision "0"))
+ (package
+ (name "go-github.com-howeyc-gopass")
+ (version (git-version "0.0.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/howeyc/gopass.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1jxzyfnqi0h1fzlsvlkn10bncic803bfhslyijcxk55mgh297g45"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/howeyc/gopass"))
+ (propagated-inputs
+ `(("go-golang.org-x-crypto-ssh-terminal"
+ ,go-golang.org-x-crypto-ssh-terminal)))
+ (synopsis "Retrieve password from a terminal or piped input in Go")
+ (description
+ "@code{gopass} is a Go package for retrieving a password from user
+terminal or piped input.")
+ (home-page "https://github.com/howeyc/gopass")
+ (license license:isc))))
+
+(define-public python-pyte
+ (package
+ (name "python-pyte")
+ (version "0.7.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pyte" version))
+ (sha256
+ (base32
+ "1an54hvyjm8gncx8cgabz9mkpgjkdb0bkyjlkh7g7f94nr3wnfl7"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'remove-failing-test
+ ;; TODO: Reenable when the `captured` files required by this test
+ ;; are included in the archive.
+ (lambda _
+ (delete-file "tests/test_input_output.py")
+ #t)))))
+ (propagated-inputs
+ `(("python-wcwidth", python-wcwidth)))
+ (native-inputs
+ `(("python-pytest-runner" ,python-pytest-runner)
+ ("python-pytest" ,python-pytest)))
+ (home-page "https://pyte.readthedocs.io/")
+ (synopsis "Simple VTXXX-compatible terminal emulator")
+ (description "@code{pyte} is an in-memory VTxxx-compatible terminal
+emulator. @var{VTxxx} stands for a series of video terminals, developed by
+DEC between 1970 and 1995. The first and probably most famous one was the
+VT100 terminal, which is now a de-facto standard for all virtual terminal
+emulators.
+
+pyte is a fork of vt102, which was an incomplete pure Python implementation
+of VT100 terminal.")
+ (license license:lgpl3+)))
+
+(define-public python2-pyte
+ (package-with-python2 python-pyte))
+
+(define-public python-blessings
+ (package
+ (name "python-blessings")
+ (version "1.6.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "blessings" version))
+ (sha256
+ (base32
+ "1smngy65p8mi62lgm04icasx22v976szhs2aq95y2ljmi1srb4bl"))))
+ (build-system python-build-system)
+ (arguments
+ ;; TODO: For py3, 2to2 is used to convert the code, but test-suite fails
+ `(#:tests? #f))
+ (native-inputs
+ `(("python-nose" ,python-nose)))
+ (home-page "https://github.com/erikrose/blessings")
+ (synopsis "Python module to manage terminal color, styling, and
+positioning")
+ (description "Blessings is a pythonic API to manipulate terminal color,
+styling, and positioning. It provides similar features to curses but avoids
+some of curses’s limitations: it does not require clearing the whole screen
+for little changes, provides a scroll-back buffer after the program exits, and
+avoids styling altogether when the output is redirected to something other
+than a terminal.")
+ (license license:expat)))
+
+(define-public python2-blessings
+ (package-with-python2 python-blessings))
+
+(define-public python-curtsies
+ (package
+ (name "python-curtsies")
+ (version "0.2.11")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "curtsies" version))
+ (sha256
+ (base32
+ "1vljmw3sy6lrqahhpyg4gk13mzcx3mwhvg8s41698ms3cpgkjipc"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (invoke "nosetests" "-v"))))))
+ (propagated-inputs
+ `(("python-blessings" ,python-blessings)
+ ("python-wcwidth", python-wcwidth)))
+ (native-inputs
+ `(("python-mock" ,python-mock)
+ ("python-pyte" ,python-pyte)
+ ("python-nose" ,python-nose)))
+ (home-page "https://github.com/thomasballinger/curtsies")
+ (synopsis "Library for curses-like terminal interaction with colored
+strings")
+ (description "Curtsies is a Python library for interacting with the
+terminal. It features string-like objects which carry formatting information,
+per-line fullscreen terminal rendering, and keyboard input event reporting.")
+ (license license:expat)))
+
+(define-public python2-curtsies
+ (package-with-python2 python-curtsies))