gnu: git-annex: Update to 8.20200330.
[jackhill/guix/guix.git] / gnu / packages / tmux.scm
index e09e6c1..6d53613 100644 (file)
@@ -5,6 +5,7 @@
 ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
 ;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
 ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019 Oleg Pykhalov <go.wigust@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages tmux)
-  #:use-module (guix licenses)
+  #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages ncurses))
 
@@ -35,7 +38,7 @@
 (define-public tmux
   (package
     (name "tmux")
-    (version "2.8")
+    (version "3.0a")
     (source (origin
              (method url-fetch)
              (uri (string-append
                     version "/tmux-" version ".tar.gz"))
              (sha256
               (base32
-               "1fm22wva2znkcs5jczrnlxrpzsk2jlwdwy4dhzzyrbsgccsz6svz"))))
+               "1fcdbw77nz918f7gqc1ga7zlkp1g112in1h8kkjnkadgnhldzlaa"))))
     (build-system gnu-build-system)
     (inputs
      `(("libevent" ,libevent)
        ("ncurses" ,ncurses)))
-    (home-page "http://tmux.github.io/")
+    (home-page "https://tmux.github.io/")
     (synopsis "Terminal multiplexer")
     (description
      "tmux is a terminal multiplexer: it enables a number of terminals (or
 windows), each running a separate program, to be created, accessed, and
 controlled from a single screen.  tmux may be detached from a screen and
 continue running in the background, then later reattached.")
-    (license isc)))
+    (license license:isc)))
 
 (define-public tmux-themepack
   (let ((commit "03a372866f7677f7fe63bcee140b48b9fd372c48")
@@ -87,8 +90,7 @@ continue running in the background, then later reattached.")
       (home-page "https://github.com/jimeh/tmux-themepack")
       (synopsis "Collection of themes for Tmux")
       (description "A collection of various themes for Tmux.")
-      (license
-       (non-copyleft "http://www.wtfpl.net/txt/copying/")))))
+      (license license:wtfpl2))))
 
 (define-public tmuxifier
   (package
@@ -133,4 +135,51 @@ continue running in the background, then later reattached.")
 @code{layout} files, which are simple shell scripts where you use the tmux
 command and helper commands provided by tmuxifier to manage Tmux sessions and
 windows.")
-    (license expat)))
+    (license license:expat)))
+
+(define-public tmux-xpanes
+  (package
+    (name "tmux-xpanes")
+    (version "4.1.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/greymd/tmux-xpanes.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "13q02vdk229chgbn547wwv29cj4njvz02lmw840g8qmwh73qb2pi"))))
+    (build-system trivial-build-system)
+    (inputs
+     `(("bash" ,bash)))
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules (guix build utils))
+         (setenv "PATH" (string-append (assoc-ref %build-inputs "bash") "/bin"))
+         (copy-recursively (assoc-ref %build-inputs "source") ".")
+         (substitute* "bin/xpanes"
+           (("/bin/bash") (which "bash")))
+         (install-file "bin/xpanes" (string-append %output "/bin"))
+         (install-file "man/xpanes.1" (string-append %output "/man/man1"))
+         #t)))
+    (home-page "https://github.com/greymd/tmux-xpanes")
+    (synopsis "Tmux based terminal divider")
+    (description "This package provides tmux-based terminal divider.
+
+@code{xpanes} or @code{tmux-xpanes} (alias of @code{xpanes}) commands have
+following features:
+
+@itemize
+@item Split tmux window into multiple panes.
+@item Build command lines & execute them on the panes.
+@item Runnable from outside of tmux session.
+@item Runnable from inside of tmux session.
+@item Record operation log.
+@item Flexible layout arrangement for panes.
+@item Display pane title on each pane.
+@item Generate command lines from standard input (Pipe mode).
+@end itemize")
+    (license license:expat)))