Subject: [PATCH] gnu: Add tmux-plugin-resurrect
From: EuAndreh <[email-masked]>
To: [email-masked]
Cc: EuAndreh <[email-masked]>
Date: Tue, 29 Nov 2022 21:29:00 -0300
List-Id: <debbugs-submit.debbugs.gnu.org>

* gnu/packages/tmux.scm (tmux-plugin-resurrect): New variable.
---
 gnu/packages/tmux.scm | 48 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/gnu/packages/tmux.scm b/gnu/packages/tmux.scm
index 10b78cccf7..30082d22d6 100644
--- a/gnu/packages/tmux.scm
+++ b/gnu/packages/tmux.scm
@@ -267,3 +267,51 @@ (define-public tmux-xpanes
 @item Generate command lines from standard input (Pipe mode).
 @end itemize")
     (license license:expat)))
+
+(define-public tmux-plugin-resurrect
+  (package
+    (name "tmux-plugin-resurrect")
+    (version "a2ddfb96b94bb64a7a2e3f5fa2a7c57dce8ad579")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/tmux-plugins/tmux-resurrect/")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1gc8z99na1d4scn2kq4alwyn43h3r7ykz9bkhcypjh8iri6dsl0c"))))
+    (build-system trivial-build-system)
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder (begin
+                   (use-modules (guix build utils))
+                   (let ((out (string-append %output
+                                             "/share/tmux-plugins/resurrect/")))
+                     (mkdir-p out)
+                     (copy-recursively (assoc-ref %build-inputs "source") out)))))
+    (synopsis "Restore tmux environment after system restart")
+    (description
+     "This plugin goes to great lengths to save and restore all the details
+from your tmux environment.  Here's what's been taken care of:
+
+@itemize
+@item all sessions, windows, panes and their order
+@item current working directory for each pane
+@item exact pane layouts within windows (even when zoomed)
+@item active and alternative session
+@item active and alternative window for each session
+@item windows with focus
+@item active pane for each window
+@item \"grouped sessions\" (useful feature when using tmux with multiple monitors)
+@item programs running within a pane! More details in the restoring programs doc.
+@end itemize
+
+Optional:
+
+@itemize
+@item restoring vim and neovim sessions
+@item restoring pane contents
+@end itemize")
+    (home-page "https://github.com/tmux-plugins/tmux-resurrect/")
+    (license license:expat)))
-- 
2.38.1