Subject: bug#26454: [PATCH 2/2] gnu: add emacs-exwm

From: "Feng Shu" <[email-masked]>
Date: Fri, 14 Apr 2017 19:54:41 +0800

Arun Isaac <[email-masked]> writes:

> tumashu writes:
>
>> I can not find release tarball in https://github.com/ch11ng/exwm, so
>> I have issued https://github.com/ch11ng/exwm/issues/243<br/><br/>The> only thing is wait.......
>
> Let's not wait for upstream. If they do release a tarball, we can always
> update the source URI later. For now, could you please send another
> patch set with the upstream git checkout as source? Thanks!
>
> Please send the new patch set to this bug report. I'll close the other
> one opened for the emacs-xelb patch.

>From bffcbf8590d4d858ef0715524592c52d9f9b0c18 Mon Sep 17 00:00:00 2001
From: Feng Shu <[email-masked]>
Date: Fri, 14 Apr 2017 19:36:32 +0800
Subject: [PATCH 1/2] gnu: add emacs-xelb

* gnu/packages/emacs.scm (emacs-xelb): New variable
---
 gnu/packages/emacs.scm | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 71058136a..1c0a928ac 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -4348,3 +4348,32 @@ commands are also offered as part of the AUCTeX package, but it is not
 the same - CDLaTeX focuses on speediness for inserting LaTeX
 constructs.")
     (license license:gpl3+)))
+
+(define-public emacs-xelb
+  (package
+    (name "emacs-xelb")
+    (version "0.12.d1d6b6c")
+    (home-page "https://github.com/ch11ng/xelb")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url home-page)
+                    (commit "d1d6b6cb48a6a9562252be20ab49f24708b34335")))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32
+                "0sxx2n3mi90dz66yi4xya89jrznyixfbmnj8b84l6qbkdp9iwd91"))))
+    (build-system emacs-build-system)
+    ;; The following functions or variables is need by emacs-xelb,
+    ;; which is not included in 'emacs-minimal'.
+    ;; x-display-screens x-keysym-table x-alt-keysym x-meta-keysym
+    ;; x-hyper-keysym x-super-keysym libxml-parse-xml-region
+    ;; x-display-pixel-width x-display-pixel-height
+    (arguments `(#:emacs ,emacs))
+    (synopsis "X protocol Emacs Lisp Binding")
+    (description "XELB (X protocol Emacs Lisp Binding) is a pure Elisp
+implementation of X11 protocol based on the XML description files from
+XCB project.  It features an object-oriented API and permits a certain
+degree of concurrency.  It should enable you to implement some low-level
+X11 applications.")
+    (license license:gpl3+)))
-- 
2.12.2

>From 87ce8ab678d05c757bd359c22e5da63a3e127ae7 Mon Sep 17 00:00:00 2001
From: Feng Shu <[email-masked]>
Date: Fri, 14 Apr 2017 19:38:26 +0800
Subject: [PATCH 2/2] gnu: add emacs-exwm

* gnu/packages/emacs.scm (emacs-exwm): New variable.
---
 gnu/packages/emacs.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 1c0a928ac..7304d7452 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -4377,3 +4377,29 @@ XCB project.  It features an object-oriented API and permits a certain
 degree of concurrency.  It should enable you to implement some low-level
 X11 applications.")
     (license license:gpl3+)))
+
+(define-public emacs-exwm
+  (package
+    (name "emacs-exwm")
+    (home-page "https://github.com/ch11ng/exwm")
+    (version "0.13.7a5bb11")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url home-page)
+                    (commit "7a5bb1156d07848e465f55fd31f8ec755b52aa01")))
+              (file-name (string-append name "-" version))
+              (sha256
+               (base32
+                "0cbaq2ls8pivz4h8hwgn9ldvg16pwlisdf047civvilqiqczw31w"))))
+    (build-system emacs-build-system)
+    (propagated-inputs `(("emacs-xelb" ,emacs-xelb)))
+    ;; The following functions or variables is need by emacs-exwm,
+    ;; which is not included in 'emacs-minimal'.
+    ;; scroll-bar-mode, fringe-mode
+    ;; x-display-pixel-width x-display-pixel-height
+    (arguments `(#:emacs ,emacs))
+    (synopsis "Emacs X Window Manager")
+    (description "EXWM (Emacs X Window Manager) is a full-featured
+tiling X window manager for Emacs built on top of XELB.")
+    (license license:gpl3+)))
-- 
2.12.2

--