Subject: emacs-beframe
From: [email-masked]
To: [email-masked]
Date: Tue, 28 Mar 2023 13:44:26 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello wonderful maintainer(s) of Guix,

Jamie Cullen here. This is my first ever patch, first ever commit, first 
ever packaged package, first ever time doing anything mildly useful with 
Git, etc etc. Excitement is tantamount here.

Please don't hesitate to tell me about even the smallest modification on 
my side, and any length of an explanation here via mail. I'm ready to 
put the work in to get this lovely package right. At all times during 
the packaging process, I was vascillating between understanding 20-80% 
of what I was doing.

We got there though, and everything seems to be passing the tests.

I couldn't check "guix edit", I think because my EDITOR environment 
variable wasn't set up properly. I messed with it for ten minutes, it 
wouldn't work, but I'm pretty sure it was just a thing on my side and 
that the package is fine, because all other tests looked good -- after 
loads of faffing around of course, and carefully developing a loving 
relationship with the generous error messages being thrown at me :)

Thanks so much for all your work, you people are legends. I love Guix, 
and can see worlds opening up to me. Keep up the good fight.

Jamie

From 379b0ae24c900d3bb129039921e5e5425db57692 Mon Sep 17 00:00:00 2001
From: Jamie Cullen <[email-masked]>
Date: Tue, 28 Mar 2023 15:36:48 +0200
Subject: [PATCH 1/1] gnu: Add emacs-beframe.

---
 gnu/packages/emacs-xyz.scm | 41 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index da2856abc8..8c4f2dc78d 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -15931,6 +15931,47 @@ (define-public emacs-tmr
     (license (list license:gpl3+
                    license:fdl1.3+)))) ;GFDLv1.3+ for the manual
 
+(define-public emacs-beframe
+  (package
+    (name "emacs-beframe")
+    (version "0.2.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://git.sr.ht/~protesilaos/beframe")
+                    (commit "edfab6eefe4ac35cd8d1ed87fc7f670496d25e40")))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0sd8r3icaj2gl7f62fyzlwkkb05mc3cwsqgicw0n1x07s5ir3129"))))
+    (build-system emacs-build-system)
+    (native-inputs (list texinfo))
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases
+            %standard-phases
+          (add-after 'install 'makeinfo
+            (lambda* (#:key outputs #:allow-other-keys)
+              (invoke "emacs"
+                      "--batch"
+                      "--eval=(require 'ox-texinfo)"
+                      "--eval=(find-file \"README.org\")"
+                      "--eval=(org-texinfo-export-to-info)")
+              (install-file
+               "beframe.info"
+               (string-append #$output "/share/info")))))))
+    (home-page "https://protesilaos.com/emacs/beframe")
+    (synopsis "Isolate Emacs buffers per frame")
+    (description
+     "Beframe enables a frame-oriented Emacs workflow where each frame has
+access to the list of buffers visited therein.  In the interest of brevity, we
+call buffers that belong to frames \"beframed\".  Producing multiple frames does
+not generate multiple buffer lists.  There still is only one global list of
+buffers.  Beframing them simply filters the list.")
+    (license (list license:gpl3+
+                   license:fdl1.3+)))) ; GFDLv1.3+ for the manual
+
 (define-public emacs-gn-mode
   (package
     (name "emacs-gn-mode")
-- 
2.39.2