guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


From: Feng Shu
Subject: bug#26454: [PATCH 2/2] gnu: add emacs-exwm
Date: Fri, 14 Apr 2017 23:13:01 +0800
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux)

Sadly, I have found that I can not let exwm work well in guixsd, maybe
it is exwm's bug, but it surely beyond my ability, the below is my
lastest patch, which may be useful for future ...


>From b815a6adb8e8b08bb856e2b9e22ddf31324af101 Mon Sep 17 00:00:00 2001
From: Feng Shu <address@hidden>
Date: Fri, 14 Apr 2017 23:06:15 +0800
Subject: [PATCH] gnu: add emacs-exwm and emacs-xelb

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

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 71058136a..87dcdc8f2 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -4348,3 +4348,76 @@ 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")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/ch11ng/xelb";)
+                    (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
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'regenerate-el-files
+           (lambda _
+             (let ((xcb-proto-xml-path (string-append (assoc-ref %build-inputs
+                                                                 "xcb-proto")
+                                                      "/share/xcb"))
+                   (emacs-path         (string-append (assoc-ref %build-inputs
+                                                                 "emacs")
+                                                      "/bin/emacs")))
+               (substitute* "Makefile"
+                 (("PROTO_PATH := ../xcb-proto/src")
+                  (string-append "PROTO_PATH := " xcb-proto-xml-path))
+                 (("EMACS_BIN := emacs -Q")
+                  (string-append "EMACS_BIN := " emacs-path "  -Q")))
+               (system* "make" "all"))
+             #t)))))
+    (inputs `(("xcb-proto" ,xcb-proto)))
+    (home-page "https://github.com/ch11ng/xelb";)
+    (synopsis "X protocol Emacs Lisp Binding")
+    (description "@code{emacs-xelb} is a pure Emacs Lisp implementation
+of the X11 protocol based on the XML description files from the XCB
+project. It features an object-oriented API and permits a certain degree
+of concurrency. It should enable you to implement low-level X11 applications.")
+    (license license:gpl3+)))
+
+(define-public emacs-exwm
+  (package
+    (name "emacs-exwm")
+    (version "0.13.7a5bb11")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/ch11ng/exwm";)
+                    (commit "7a5bb1156d07848e465f55fd31f8ec755b52aa01")))
+              (file-name (string-append name "-" version "-checkout"))
+              (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))
+    (home-page "https://github.com/ch11ng/exwm";)
+    (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





-- 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]