Subject: [PATCH] Add emacs-multi-term

From: Baptiste Strazzulla <[email-masked]>
Date: Sat, 15 Jun 2019 20:34:30 +0000

From 3118853b54988c68828c5e7e266d4959151b64cf Mon Sep 17 00:00:00 2001
From: Zzull <[email-masked]>
Date: Sat, 15 Jun 2019 22:32:19 +0200
Subject: [PATCH] gnu: Add emacs-multi-term

* gnu/packages/emacs-xyz.scm (emacs-multi-term): New variable
---
 gnu/packages/emacs-xyz.scm | 46 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 37bf9a06b9..39df468220 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -48,6 +48,7 @@
 ;;; Copyright © 2019 Gabriel Hondet <[email-masked]>
 ;;; Copyright © 2019 LaFreniere, Joseph <[email-masked]>
 ;;; Copyright © 2019 Amar Singh <[email-masked]>
+;;; Copyright © 2019 Baptiste Strazzulla <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -16014,3 +16015,48 @@ themselves live in an Org-mode file.  As such, this leverages the power of
 Org-mode (the notes may have outlines, latex fragments, babel, etc...) while
 acting like notes that are made @emph{in} the document.")
     (license license:gpl3+)))
+
+(define-public emacs-multi-term
+  (package
+    (name "emacs-multi-term")
+    (version "1.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/emacsorphanage/multi-term.git")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1bn6zx931vz2fa72ab999r33bxv8brn3cqmalvq25x7s4z3q1lyi"))))
+    (build-system emacs-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; FIXME: `patch-el-files' crashes with the following error:
+         ;; unable to locate "zsh".
+         (delete 'patch-el-files))))
+    (home-page "https://github.com/emacsorphanage/multi-term")
+    (synopsis "Manage multiple terminal buffers in Emacs")
+    (description
+     "By default, term.el provides a great terminal emulator in Emacs.  But it
+lacks the following:
+
+ 1) term.el just provides commands @{term} or @{ansi-term} for creating a
+terminal buffer.  And there is no special command to create or switch between
+multiple terminal buffers quickly.
+
+ 2) By default, the keystrokes of term.el conflict with global-mode
+keystrokes, which makes it difficult for the user to integrate term.el with
+Emacs.
+
+ 3) By default, executing *NIX command @{exit} from term-mode, it will leave
+an unused buffer.
+
+ 4) term.el won’t quit running sub-process when you kill terminal buffer
+forcibly.
+
+ 5) Lacks a dedicated window for debugging program.
+
+ And multi-term.el is enhanced with those features.")
+    (license license:gpl3+)))
-- 
2.22.0