* bug#26453: [PATCH 1/2] gnu: add emacs-xelb @ 2017-04-11 22:58 Feng Shu 2017-04-11 22:58 ` bug#26454: [PATCH 2/2] gnu: add emacs-exwm Feng Shu ` (3 more replies) 0 siblings, 4 replies; 39+ messages in thread From: Feng Shu @ 2017-04-11 22:58 UTC (permalink / raw) To: 26453 * gnu/packages/emacs.scm (emacs-xelb): New variable --- gnu/packages/emacs.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index ff33daf71..9b907a212 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -4137,3 +4137,38 @@ abbreviation of the mode line displays (lighters) of minor modes.") configuration in your @file{.emacs} file in a way that is both performance-oriented and tidy.") (license license:gpl2+))) + +(define-public emacs-xelb + (package + (name "emacs-xelb") + (version "0.12") + (source + (origin + (method url-fetch) + (uri (string-append "https://elpa.gnu.org/packages/xelb-" + version ".tar")) + (file-name (string-append name "-" version ".tar")) + (sha256 + (base32 + "0i9n0f3ibj4a5pwcsvwrah9m0fz32m0x6a9wsmjn3li20v8pcb81")))) + (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 'delete-pkg-file + (lambda _ + (delete-file "xelb-pkg.el") #t))))) + (home-page "https://github.com/ch11ng/xelb") + (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 ^ permalink raw reply related [flat|nested] 39+ messages in thread
* bug#26454: [PATCH 2/2] gnu: add emacs-exwm 2017-04-11 22:58 bug#26453: [PATCH 1/2] gnu: add emacs-xelb Feng Shu @ 2017-04-11 22:58 ` Feng Shu 2017-04-12 9:35 ` Arun Isaac 2017-04-17 13:27 ` bug#26454: [PATCH 1/2] gnu: Add emacs-xelb Arun Isaac 2017-04-12 9:34 ` bug#26453: [PATCH 1/2] gnu: add emacs-xelb Arun Isaac ` (2 subsequent siblings) 3 siblings, 2 replies; 39+ messages in thread From: Feng Shu @ 2017-04-11 22:58 UTC (permalink / raw) To: 26454 * gnu/packages/emacs.scm (emacs-exwm): New variable --- gnu/packages/emacs.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 9b907a212..ae7fcc8b3 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -4172,3 +4172,35 @@ 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") + (version "0.13") + (source + (origin + (method url-fetch) + (uri (string-append "https://elpa.gnu.org/packages/exwm-" + version ".tar")) + (file-name (string-append name "-" version ".tar")) + (sha256 + (base32 + "0n1wzy6chh024r0yaywjbf7mdsrxs6hrfycv5v0ps0drf6q3zldc")))) + (build-system emacs-build-system) + (home-page "https://github.com/ch11ng/exwm") + (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 + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'delete-pkg-file + (lambda _ + (delete-file "exwm-pkg.el") #t))))) + (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 ^ permalink raw reply related [flat|nested] 39+ messages in thread
* bug#26454: [PATCH 2/2] gnu: add emacs-exwm 2017-04-11 22:58 ` bug#26454: [PATCH 2/2] gnu: add emacs-exwm Feng Shu @ 2017-04-12 9:35 ` Arun Isaac 2017-04-12 18:13 ` Alex Kost 2017-04-17 13:27 ` bug#26454: [PATCH 1/2] gnu: Add emacs-xelb Arun Isaac 1 sibling, 1 reply; 39+ messages in thread From: Arun Isaac @ 2017-04-12 9:35 UTC (permalink / raw) To: 26454 Thanks for the patch! > + (source > + (origin > + (method url-fetch) > + (uri (string-append "https://elpa.gnu.org/packages/exwm-" > + version ".tar")) Could you open an issue with the upstream maintainer asking them to tag a release so that we could use the upstream release tarball directly instead of relying on ELPA's tarball? ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#26454: [PATCH 2/2] gnu: add emacs-exwm 2017-04-12 9:35 ` Arun Isaac @ 2017-04-12 18:13 ` Alex Kost 2017-04-12 20:05 ` Arun Isaac 0 siblings, 1 reply; 39+ messages in thread From: Alex Kost @ 2017-04-12 18:13 UTC (permalink / raw) To: Arun Isaac; +Cc: 26454 Arun Isaac (2017-04-12 15:05 +0530) wrote: > Thanks for the patch! > >> + (source >> + (origin >> + (method url-fetch) >> + (uri (string-append "https://elpa.gnu.org/packages/exwm-" >> + version ".tar")) > > Could you open an issue with the upstream maintainer asking them to tag a > release so that we could use the upstream release tarball directly > instead of relying on ELPA's tarball? Hm, but this ELPA tarball is the release itself, no? -- Alex ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#26454: [PATCH 2/2] gnu: add emacs-exwm 2017-04-12 18:13 ` Alex Kost @ 2017-04-12 20:05 ` Arun Isaac 2017-04-13 1:14 ` tumashu 2017-04-16 9:03 ` Alex Kost 0 siblings, 2 replies; 39+ messages in thread From: Arun Isaac @ 2017-04-12 20:05 UTC (permalink / raw) To: 26454 >>> + (source >>> + (origin >>> + (method url-fetch) >>> + (uri (string-append "https://elpa.gnu.org/packages/exwm-" >>> + version ".tar")) >> >> Could you open an issue with the upstream maintainer asking them to tag a >> release so that we could use the upstream release tarball directly >> instead of relying on ELPA's tarball? > > Hm, but this ELPA tarball is the release itself, no? I thought it would be better if we could get the release tarball directly from upstream (https://github.com/ch11ng/exwm). ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#26454: [PATCH 2/2] gnu: add emacs-exwm 2017-04-12 20:05 ` Arun Isaac @ 2017-04-13 1:14 ` tumashu 2017-04-13 5:21 ` Arun Isaac 2017-04-13 5:25 ` Arun Isaac 2017-04-16 9:03 ` Alex Kost 1 sibling, 2 replies; 39+ messages in thread From: tumashu @ 2017-04-13 1:14 UTC (permalink / raw) To: Arun Isaac; +Cc: 26454 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....... At 2017-04-13 04:05:00, "Arun Isaac" <arunisaac@systemreboot.net> wrote: > >>>> + (source >>>> + (origin >>>> + (method url-fetch) >>>> + (uri (string-append "https://elpa.gnu.org/packages/exwm-" >>>> + version ".tar")) >>> >>> Could you open an issue with the upstream maintainer asking them to tag a >>> release so that we could use the upstream release tarball directly >>> instead of relying on ELPA's tarball? >> >> Hm, but this ELPA tarball is the release itself, no? > >I thought it would be better if we could get the release tarball >directly from upstream (https://github.com/ch11ng/exwm). > > > ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#26454: [PATCH 2/2] gnu: add emacs-exwm 2017-04-13 1:14 ` tumashu @ 2017-04-13 5:21 ` Arun Isaac 2017-04-14 11:54 ` Feng Shu 2017-04-13 5:25 ` Arun Isaac 1 sibling, 1 reply; 39+ messages in thread From: Arun Isaac @ 2017-04-13 5:21 UTC (permalink / raw) To: 26454 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. ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#26454: [PATCH 2/2] gnu: add emacs-exwm 2017-04-13 5:21 ` Arun Isaac @ 2017-04-14 11:54 ` Feng Shu 2017-04-14 13:27 ` Arun Isaac 0 siblings, 1 reply; 39+ messages in thread From: Feng Shu @ 2017-04-14 11:54 UTC (permalink / raw) To: 26454 [-- Attachment #1: Type: text/plain, Size: 564 bytes --] Arun Isaac <arunisaac@systemreboot.net> 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. [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-gnu-add-emacs-xelb.patch --] [-- Type: text/x-patch, Size: 2009 bytes --] From bffcbf8590d4d858ef0715524592c52d9f9b0c18 Mon Sep 17 00:00:00 2001 From: Feng Shu <tumashu@163.com> 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 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #3: 0002-gnu-add-emacs-exwm.patch --] [-- Type: text/x-patch, Size: 1784 bytes --] From 87ce8ab678d05c757bd359c22e5da63a3e127ae7 Mon Sep 17 00:00:00 2001 From: Feng Shu <tumashu@163.com> 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 [-- Attachment #4: Type: text/plain, Size: 6 bytes --] -- ^ permalink raw reply related [flat|nested] 39+ messages in thread
* bug#26454: [PATCH 2/2] gnu: add emacs-exwm 2017-04-14 11:54 ` Feng Shu @ 2017-04-14 13:27 ` Arun Isaac 2017-04-14 15:13 ` Feng Shu 2017-04-16 9:32 ` Ludovic Courtès 0 siblings, 2 replies; 39+ messages in thread From: Arun Isaac @ 2017-04-14 13:27 UTC (permalink / raw) To: 26454 Thanks for the patches. > +(define-public emacs-xelb > + (package > + (name "emacs-xelb") > + (version "0.12.d1d6b6c") > + (home-page "https://github.com/ch11ng/xelb") Could you put the home-page just before the synopsis as commonly done in other package definitions? > + (synopsis "X protocol Emacs Lisp Binding") > + (description "XELB (X protocol Emacs Lisp Binding) is a pure Elisp Please make this "@code{emacs-xelb} is a pure Emacs Lisp implementation of ...". No need to repeat "X protocol Emacs Lisp Binding" as it is already mentioned in the synopsis. Expand Elisp -> Emacs Lisp. > +implementation of X11 protocol based on the XML description files from *the* X11 protocol > +XCB project. It features an object-oriented API and permits a certain *the* XCB project > +degree of concurrency. It should enable you to implement some low-level Remove "some". It makes the whole sentence sound vague. > +X11 applications.") > +(define-public emacs-exwm > + (package > + (name "emacs-exwm") > + (home-page "https://github.com/ch11ng/exwm") Same about home-page. > + (source (origin > + (method git-fetch) > + (uri (git-reference > + (url home-page) > + (commit "7a5bb1156d07848e465f55fd31f8ec755b52aa01"))) > + (file-name (string-append name "-" version)) Append "-checkout" at the end of file-name just like you did for emacs-xelb. LGTM, otherwise! >> In your new patch, could you add a phase for generating this code from >> the xcb-proto xml files as well? Thanks! > I don't think it it a good idea, xcb-xproto.el provided by repo is > tested by developer. if we regenerate it, i don't know whether it > work or not. @Ludo: Could you please comment on this? ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#26454: [PATCH 2/2] gnu: add emacs-exwm 2017-04-14 13:27 ` Arun Isaac @ 2017-04-14 15:13 ` Feng Shu 2017-04-14 17:24 ` Arun Isaac 2017-04-14 21:47 ` Ludovic Courtès 2017-04-16 9:32 ` Ludovic Courtès 1 sibling, 2 replies; 39+ messages in thread From: Feng Shu @ 2017-04-14 15:13 UTC (permalink / raw) To: 26454 [-- Attachment #1: Type: text/plain, Size: 191 bytes --] 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 ... [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-gnu-add-emacs-exwm-and-emacs-xelb.patch --] [-- Type: text/x-patch, Size: 4140 bytes --] From b815a6adb8e8b08bb856e2b9e22ddf31324af101 Mon Sep 17 00:00:00 2001 From: Feng Shu <tumashu@163.com> 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 [-- Attachment #3: Type: text/plain, Size: 9 bytes --] -- ^ permalink raw reply related [flat|nested] 39+ messages in thread
* bug#26454: [PATCH 2/2] gnu: add emacs-exwm 2017-04-14 15:13 ` Feng Shu @ 2017-04-14 17:24 ` Arun Isaac 2017-04-15 2:37 ` tumashu 2017-04-14 21:47 ` Ludovic Courtès 1 sibling, 1 reply; 39+ messages in thread From: Arun Isaac @ 2017-04-14 17:24 UTC (permalink / raw) To: 26454 Feng Shu writes: > 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 ... Sorry to hear that. If you need any help, please feel free to ask here or at help-guix@gnu.org. Your patches look good. I'll push them with a few minor modifications once Ludo gives the green flag. Thanks! ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#26454: [PATCH 2/2] gnu: add emacs-exwm 2017-04-14 17:24 ` Arun Isaac @ 2017-04-15 2:37 ` tumashu 2017-04-15 12:29 ` Feng Shu 0 siblings, 1 reply; 39+ messages in thread From: tumashu @ 2017-04-15 2:37 UTC (permalink / raw) To: Arun Isaac; +Cc: 26454 -- 发自我的网易邮箱手机智能版 在 2017-04-15 01:24:59,"Arun Isaac" <arunisaac@systemreboot.net> 写道: > >Feng Shu writes: > >> 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 ... > >Sorry to hear that. If you need any help, please feel free to ask here >or at help-guix@gnu.org. Your patches look good. I'll push them with a >few minor modifications once Ludo gives the green flag. > I need to debug and contact with exwm's developer, exwm is a powerful wm, maybe it is more powful and easy use than stumpwm with other emacs packages help, in my personal opinion, guile-wm just a toy project. > > > ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#26454: [PATCH 2/2] gnu: add emacs-exwm 2017-04-15 2:37 ` tumashu @ 2017-04-15 12:29 ` Feng Shu 2017-04-15 21:13 ` Arun Isaac [not found] ` <e0ed6d82.AEAAJGDHDFkAAAAAAAAAAAO1LyIAAAACwQwAAAAAAAW9WABY8o0b@mailjet.com> 0 siblings, 2 replies; 39+ messages in thread From: Feng Shu @ 2017-04-15 12:29 UTC (permalink / raw) To: 26454 [-- Attachment #1: Type: text/plain, Size: 466 bytes --] tumashu <tumashu@163.com> writes: > I need to debug and contact with exwm's developer, exwm is a powerful wm, maybe it is more powful and easy use than stumpwm with other emacs packages help, in my personal opinion, guile-wm just a toy project. I have found the reason: https://github.com/ch11ng/exwm/issues/213 exwm need DISPLAY is ":0" instead of ":0.0", I don't know the reason. The below is my updated patch, which changes a lot, so review is need again: [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-gnu-add-emacs-xelb.patch --] [-- Type: text/x-patch, Size: 3210 bytes --] From 56c84ac96c30529ced5ca66a26c70ebf52e59902 Mon Sep 17 00:00:00 2001 From: Feng Shu <tumashu@163.com> Date: Fri, 14 Apr 2017 23:06:15 +0800 Subject: [PATCH 1/2] gnu: add emacs-xelb * gnu/packages/emacs.scm (emacs-xelb): New variable. --- gnu/packages/emacs.scm | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 71058136a..0320d66c7 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -4348,3 +4348,52 @@ 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-3.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 + ;; Generate .el files from the XML description of the XCB bindings. + ;; This will be adjusted when xelb developer comment in issue page: + ;; https://github.com/ch11ng/xelb/issues/16 + (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"))) + (zero? (system* "make" "all")))))))) + (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+))) -- 2.12.2 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #3: 0002-gnu-add-emacs-exwm.patch --] [-- Type: text/x-patch, Size: 4814 bytes --] From 1fd5bc3bb55923f65057a2b9922ebad458a2ed8b Mon Sep 17 00:00:00 2001 From: Feng Shu <tumashu@163.com> Date: Sat, 15 Apr 2017 20:23:10 +0800 Subject: [PATCH 2/2] gnu: add emacs-exwm * gnu/packages/emacs.scm (emacs-exwm): New variable --- gnu/packages/emacs.scm | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 0320d66c7..b7e2b83a2 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -4397,3 +4397,84 @@ 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-3.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) + ("xhost" ,xhost) + ("dbus" ,dbus))) + ;; 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 + #:phases + ;; Generate .el files from the XML description of the XCB bindings. + ;; This will be adjusted when xelb developer comment in issue page: + ;; https://github.com/ch11ng/xelb/issues/16 + (modify-phases %standard-phases + (add-after 'build 'install-xsession + (lambda* (#:key outputs #:allow-other-keys) + (let* ((emacs-path (string-append (assoc-ref %build-inputs + "emacs") + "/bin/emacs")) + (sh-path (string-append (assoc-ref %build-inputs + "bash") + "/bin/sh")) + (xhost-path (string-append (assoc-ref %build-inputs + "xhost") + "/bin/xhost")) + (dbus-launch-path (string-append (assoc-ref %build-inputs + "dbus") + "/bin/dbus-launch")) + (output (assoc-ref outputs "out")) + (xsessions-dir (string-append output "/share/xsessions")) + (desktop-file (string-append xsessions-dir "/exwm-demo.desktop")) + (bin-dir (string-append output "/bin")) + (exwm-demo-file (string-append bin-dir "/exwm-demo-session"))) + ;; Add a .desktop file to xsessions. + (mkdir-p xsessions-dir) + (mkdir-p bin-dir) + (with-output-to-file desktop-file + (lambda _ + (format #t + "[Desktop Entry]~@ + Name=Exwm-Demo~@ + Comment=Demo of Emacs X Window Manager ~@ + Exec=~a/bin/exwm-demo-session~@ + TryExec=~@*~a/bin/exwm-demo-session~@ + Icon=~@ + Type=Application~%" + output))) + ;; Add a shell wrap file to bin directory. + ;; Fixup: Set DISPLAY variable for the reason: + ;; https://github.com/ch11ng/exwm/issues/213 + (with-output-to-file exwm-demo-file + (lambda _ + (format #t + "#!~a ~@ + export DISPLAY=:0 ~@ + ~a +SI:localuser:$USER ~@ + exec ~a --exit-with-session ~a -q --eval \"(progn (require 'exwm)(require 'exwm-config)(exwm-config-default))\" ~%" + sh-path xhost-path dbus-launch-path emacs-path))) + (chmod exwm-demo-file #o555) + #t)))))) + (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 ^ permalink raw reply related [flat|nested] 39+ messages in thread
* bug#26454: [PATCH 2/2] gnu: add emacs-exwm 2017-04-15 12:29 ` Feng Shu @ 2017-04-15 21:13 ` Arun Isaac [not found] ` <e0ed6d82.AEAAJGDHDFkAAAAAAAAAAAO1LyIAAAACwQwAAAAAAAW9WABY8o0b@mailjet.com> 1 sibling, 0 replies; 39+ messages in thread From: Arun Isaac @ 2017-04-15 21:13 UTC (permalink / raw) To: Feng Shu; +Cc: 26454 Thanks for the updated patches! Could you please add a copyright header for you at the top of the emacs.scm source file? > + ;; The following functions or variables is need by emacs-xelb, > + ;; which is not included in 'emacs-minimal'. Make this comment as follows. The following functions and variables needed by emacs-xelb are 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 > + ;; Generate .el files from the XML description of the XCB bindings. > + ;; This will be adjusted when xelb developer comment in issue page: > + ;; https://github.com/ch11ng/xelb/issues/16 > + (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"))) You should be able to do this just using #:make-flags. See https://www.gnu.org/software/make/manual/html_node/Overriding.html > + (inputs `(("xcb-proto" ,xcb-proto))) xcb-proto is only required during build time, right? Therefore, it is a native input. > + (propagated-inputs > + `(("emacs-xelb" ,emacs-xelb) > + ("xhost" ,xhost) > + ("dbus" ,dbus))) Instead of making xhost and dbus propagated inputs, we should just reference the required executables with their absolute paths. That way, xhost and dbus would become normal inputs. > + ;; The following functions or variables is need by emacs-exwm, > + ;; which is not included in 'emacs-minimal'. Same as mentioned earlier. > + ;; scroll-bar-mode, fringe-mode > + ;; x-display-pixel-width x-display-pixel-height > + (modify-phases %standard-phases > + (add-after 'build 'install-xsession > + (lambda* (#:key outputs #:allow-other-keys) > + (let* ((emacs-path (string-append (assoc-ref %build-inputs > + "emacs") > + "/bin/emacs")) > + (sh-path (string-append (assoc-ref %build-inputs > + "bash") > + "/bin/sh")) > + (xhost-path (string-append (assoc-ref %build-inputs > + "xhost") > + "/bin/xhost")) > + (dbus-launch-path (string-append (assoc-ref %build-inputs > + "dbus") > + "/bin/dbus-launch")) Use the keyword argument `inputs' here, instead of directly using `%build-inputs'. > + (output (assoc-ref outputs "out")) > + (xsessions-dir (string-append output "/share/xsessions")) > + (desktop-file (string-append xsessions-dir "/exwm-demo.desktop")) > + (bin-dir (string-append output "/bin")) > + (exwm-demo-file (string-append bin-dir "/exwm-demo-session"))) > + ;; Add a .desktop file to xsessions. > + (mkdir-p xsessions-dir) > + (mkdir-p bin-dir) > + (with-output-to-file desktop-file > + (lambda _ > + (format #t > + "[Desktop Entry]~@ > + Name=Exwm-Demo~@ > + Comment=Demo of Emacs X Window Manager ~@ > + Exec=~a/bin/exwm-demo-session~@ > + TryExec=~@*~a/bin/exwm-demo-session~@ > + Icon=~@ > + Type=Application~%" > + output))) Let's not call this a "Demo". Better to just use name, synopsis, etc. as done for the xmonad package. > + ;; Add a shell wrap file to bin directory. > + ;; Fixup: Set DISPLAY variable for the reason: > + ;; https://github.com/ch11ng/exwm/issues/213 > + (with-output-to-file exwm-demo-file > + (lambda _ > + (format #t > + "#!~a ~@ > + export DISPLAY=:0 ~@ > + ~a +SI:localuser:$USER ~@ > + exec ~a --exit-with-session ~a -q --eval \"(progn (require 'exwm)(require 'exwm-config)(exwm-config-default))\" ~%" > + sh-path xhost-path dbus-launch-path emacs-path))) > + (chmod exwm-demo-file #o555) > + #t)))))) Similarly, remove any mention of the word "demo". ^ permalink raw reply [flat|nested] 39+ messages in thread
[parent not found: <e0ed6d82.AEAAJGDHDFkAAAAAAAAAAAO1LyIAAAACwQwAAAAAAAW9WABY8o0b@mailjet.com>]
* bug#26454: [PATCH 2/2] gnu: add emacs-exwm [not found] ` <e0ed6d82.AEAAJGDHDFkAAAAAAAAAAAO1LyIAAAACwQwAAAAAAAW9WABY8o0b@mailjet.com> @ 2017-04-15 23:41 ` Feng Shu 2017-04-16 7:09 ` Arun Isaac 0 siblings, 1 reply; 39+ messages in thread From: Feng Shu @ 2017-04-15 23:41 UTC (permalink / raw) To: 26454 [-- Attachment #1: Type: text/plain, Size: 331 bytes --] Arun Isaac <arunisaac@systemreboot.net> writes: > You should be able to do this just using #:make-flags. See > https://www.gnu.org/software/make/manual/html_node/Overriding.html emacs-build-system seem to have no #:make-flags, I just use "make var1=var1 all" instead. the rest have been fixed, thanks! the below is new patch: [-- Attachment #2: 0001-gnu-add-emacs-xelb.patch --] [-- Type: text/x-patch, Size: 3265 bytes --] From 8d5157658cee4419c4b81fda1185637c5cd5b5c4 Mon Sep 17 00:00:00 2001 From: Feng Shu <tumashu@163.com> Date: Fri, 14 Apr 2017 23:06:15 +0800 Subject: [PATCH 1/2] gnu: add emacs-xelb * gnu/packages/emacs.scm (emacs-xelb): New variable. --- gnu/packages/emacs.scm | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 71058136a..658e4ee00 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -24,6 +24,7 @@ ;;; Copyright © 2017 Kyle Meyer <kyle@kyleam.com> ;;; Copyright © 2017 Kei Kebreau <kei@openmailbox.org> ;;; Copyright © 2017 George Clemmer <myglc2@gmail.com> +;;; Copyright © 2017 Feng Shu <tumashu@163.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -4348,3 +4349,48 @@ 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-3.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 and variables needed by emacs-xelb are + ;; 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 + ;; Generate .el files from the XML description of the XCB bindings. + ;; This will be adjusted when xelb developer comment in issue page: + ;; https://github.com/ch11ng/xelb/issues/16 + (modify-phases %standard-phases + (add-after 'unpack 'regenerate-el-files + (lambda* (#:key inputs #:allow-other-keys) + (zero? (system* "make" + (string-append "PROTO_PATH=" + (assoc-ref inputs "xcb-proto") + "/share/xcb") + (string-append "EMACS_BIN=" + (assoc-ref inputs "emacs") + "/bin/emacs -Q") + "all"))))))) + (native-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+))) -- 2.12.2 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #3: 0002-gnu-add-emacs-exwm.patch --] [-- Type: text/x-patch, Size: 4884 bytes --] From 8c8cc9684a672f85e07a4cefd665abe43ee3fa6c Mon Sep 17 00:00:00 2001 From: Feng Shu <tumashu@163.com> Date: Sat, 15 Apr 2017 20:23:10 +0800 Subject: [PATCH 2/2] gnu: add emacs-exwm * gnu/packages/emacs.scm (emacs-exwm): New variable --- gnu/packages/emacs.scm | 85 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 658e4ee00..75d24fb1f 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -4394,3 +4394,88 @@ 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-3.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))) + (inputs + `(("xhost" ,xhost) + ("dbus" ,dbus))) + ;; The following functions and variables needed by emacs-exwm are + ;; not included in emacs-minimal: + ;; scroll-bar-mode, fringe-mode + ;; x-display-pixel-width x-display-pixel-height + (arguments + `(#:emacs ,emacs + #:phases + ;; Generate .el files from the XML description of the XCB bindings. + ;; This will be adjusted when xelb developer comment in issue page: + ;; https://github.com/ch11ng/xelb/issues/16 + (modify-phases %standard-phases + (add-after 'build 'install-xsession + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((emacs-path (string-append (assoc-ref inputs "emacs") + "/bin/emacs")) + (sh-path (string-append (assoc-ref inputs "bash") + "/bin/sh")) + (xhost-path (string-append (assoc-ref inputs "xhost") + "/bin/xhost")) + (dbus-launch-path (string-append (assoc-ref inputs "dbus") + "/bin/dbus-launch")) + (output (assoc-ref outputs "out")) + (xsessions-dir (string-append output "/share/xsessions")) + (desktop-file (string-append xsessions-dir "/exwm.desktop")) + (bin-dir (string-append output "/bin")) + (exwm-default-session (string-append bin-dir "/exwm-default-session"))) + ;; Add a .desktop file to xsessions. + (mkdir-p xsessions-dir) + (mkdir-p bin-dir) + (with-output-to-file desktop-file + (lambda _ + (format #t + "[Desktop Entry]~@ + Name=Exwm~@ + Comment=Emacs X Window Manager ~@ + Exec=~a/bin/exwm-default-session~@ + TryExec=~@*~a/bin/exwm-default-session~@ + Type=Application~%" + output))) + ;; Add a shell wrap file to bin directory. + ;; Fixup: Set DISPLAY variable for the reason: + ;; https://github.com/ch11ng/exwm/issues/213 + (with-output-to-file exwm-default-session + (lambda _ + (format #t + "#!~a ~@ + export DISPLAY=:0 ~@ + ~a +SI:localuser:$USER ~@ + exec ~a --exit-with-session ~a -q --eval \"~a\" ~%" + sh-path xhost-path dbus-launch-path emacs-path + (string-append + "(if (file-exists-p \\\"~/.exwm.el\\\")" + "(load \\\"~/.exwm.el\\\")" + "(require 'exwm)" + "(require 'exwm-config)" + "(exwm-config-default)" + "(message \\\"EXWM: ~/.exwm.el is not exist. use exwm fallback configure.\\\")" + ")")))) + (chmod exwm-default-session #o555) + #t)))))) + (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 [-- Attachment #4: Type: text/plain, Size: 5 bytes --] -- ^ permalink raw reply related [flat|nested] 39+ messages in thread
* bug#26454: [PATCH 2/2] gnu: add emacs-exwm 2017-04-15 23:41 ` Feng Shu @ 2017-04-16 7:09 ` Arun Isaac 2017-04-16 8:04 ` Feng Shu, Arun Isaac 0 siblings, 1 reply; 39+ messages in thread From: Arun Isaac @ 2017-04-16 7:09 UTC (permalink / raw) To: 26454 Feng Shu writes: > Arun Isaac <arunisaac@systemreboot.net> writes: > >> You should be able to do this just using #:make-flags. See >> https://www.gnu.org/software/make/manual/html_node/Overriding.html > > emacs-build-system seem to have no #:make-flags, I just use > "make var1=var1 all" instead. Ah, yes. I forgot! > the rest have been fixed, thanks! > > the below is new patch: I'm not able to apply your patch. Could you send the patches made against the latest master? Thanks! > + (arguments > + `(#:emacs ,emacs > + #:phases > + ;; Generate .el files from the XML description of the XCB bindings. > + ;; This will be adjusted when xelb developer comment in issue page: > + ;; https://github.com/ch11ng/xelb/issues/16 > + (modify-phases %standard-phases > + (add-after 'unpack 'regenerate-el-files > + (lambda* (#:key inputs #:allow-other-keys) > + (zero? (system* "make" > + (string-append "PROTO_PATH=" > + (assoc-ref inputs "xcb-proto") > + "/share/xcb") > + (string-append "EMACS_BIN=" > + (assoc-ref inputs "emacs") > + "/bin/emacs -Q") > + "all"))))))) "all" is the default target, isn't it? In the interest of brevity, you can drop it. > + (native-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.") There should be two spaces after the full stop '.' at the end of a sentence. Do run through 'guix lint'. It will warn you about this. > +(define-public emacs-exwm > + (package > + (name "emacs-exwm") > + (version "0.13-3.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))) > + (inputs > + `(("xhost" ,xhost) > + ("dbus" ,dbus))) > + ;; The following functions and variables needed by emacs-exwm are > + ;; not included in emacs-minimal: > + ;; scroll-bar-mode, fringe-mode > + ;; x-display-pixel-width x-display-pixel-height > + (arguments > + `(#:emacs ,emacs > + #:phases > + ;; Generate .el files from the XML description of the XCB bindings. > + ;; This will be adjusted when xelb developer comment in issue page: > + ;; https://github.com/ch11ng/xelb/issues/16 This comment is only for emacs-xelb, and shouldn't be here, right? Everything else LGTM. Please send one last patch set. There may be a few more minor corrections. I'll make them and push. I'm eager to try out exwm. I didn't know about it before your patch. Thank you! :-) ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#26454: [PATCH 2/2] gnu: add emacs-exwm 2017-04-16 7:09 ` Arun Isaac @ 2017-04-16 8:04 ` Feng Shu, Arun Isaac 2017-04-16 20:53 ` Arun Isaac 0 siblings, 1 reply; 39+ messages in thread From: Feng Shu, Arun Isaac @ 2017-04-16 8:04 UTC (permalink / raw) To: 26454 [-- Attachment #1: Type: text/plain, Size: 57 bytes --] Arun Isaac <arunisaac@systemreboot.net> writes: Fixed: [-- Attachment #2: 0001-gnu-add-emacs-xelb.patch --] [-- Type: text/x-patch, Size: 3229 bytes --] From 7b0b3661de614a8d39ee904d08df5eefde5a14ac Mon Sep 17 00:00:00 2001 From: Feng Shu <tumashu@163.com> Date: Fri, 14 Apr 2017 23:06:15 +0800 Subject: [PATCH 1/2] gnu: add emacs-xelb * gnu/packages/emacs.scm (emacs-xelb): New variable. --- gnu/packages/emacs.scm | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 976ea31e0..53a9bec0b 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -24,6 +24,7 @@ ;;; Copyright © 2017 Kyle Meyer <kyle@kyleam.com> ;;; Copyright © 2017 Kei Kebreau <kei@openmailbox.org> ;;; Copyright © 2017 George Clemmer <myglc2@gmail.com> +;;; Copyright © 2017 Feng Shu <tumashu@163.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -4360,3 +4361,47 @@ 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-3.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 and variables needed by emacs-xelb are + ;; 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 + ;; Generate .el files from the XML description of the XCB bindings. + ;; This will be adjusted when xelb developer comment in issue page: + ;; https://github.com/ch11ng/xelb/issues/16 + (modify-phases %standard-phases + (add-after 'unpack 'regenerate-el-files + (lambda* (#:key inputs #:allow-other-keys) + (zero? (system* "make" + (string-append "PROTO_PATH=" + (assoc-ref inputs "xcb-proto") + "/share/xcb") + (string-append "EMACS_BIN=" + (assoc-ref inputs "emacs") + "/bin/emacs -Q")))))))) + (native-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+))) -- 2.12.2 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #3: 0002-gnu-add-emacs-exwm.patch --] [-- Type: text/x-patch, Size: 4729 bytes --] From fc6bdfdd8ca210f556d1f86ed354593902659e72 Mon Sep 17 00:00:00 2001 From: Feng Shu <tumashu@163.com> Date: Sat, 15 Apr 2017 20:23:10 +0800 Subject: [PATCH 2/2] gnu: add emacs-exwm * gnu/packages/emacs.scm (emacs-exwm): New variable --- gnu/packages/emacs.scm | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 53a9bec0b..a9dcd2af6 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -4405,3 +4405,87 @@ 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-3.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))) + (inputs + `(("xhost" ,xhost) + ("dbus" ,dbus))) + ;; The following functions and variables needed by emacs-exwm are + ;; not included in emacs-minimal: + ;; scroll-bar-mode, fringe-mode + ;; x-display-pixel-width x-display-pixel-height + (arguments + `(#:emacs ,emacs + #:phases + (modify-phases %standard-phases + (add-after 'build 'install-xsession + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((emacs-path (string-append (assoc-ref inputs "emacs") + "/bin/emacs")) + (sh-path (string-append (assoc-ref inputs "bash") + "/bin/sh")) + (xhost-path (string-append (assoc-ref inputs "xhost") + "/bin/xhost")) + (dbus-launch-path (string-append (assoc-ref inputs "dbus") + "/bin/dbus-launch")) + (output (assoc-ref outputs "out")) + (xsessions-dir (string-append output "/share/xsessions")) + (desktop-file (string-append xsessions-dir "/exwm.desktop")) + (bin-dir (string-append output "/bin")) + (exwm-default-session + (string-append bin-dir "/exwm-default-session"))) + ;; Add a .desktop file to xsessions. + (mkdir-p xsessions-dir) + (mkdir-p bin-dir) + (with-output-to-file desktop-file + (lambda _ + (format #t + "[Desktop Entry]~@ + Name=Exwm~@ + Comment=Emacs X Window Manager ~@ + Exec=~a/bin/exwm-default-session~@ + TryExec=~@*~a/bin/exwm-default-session~@ + Type=Application~%" + output))) + ;; Add a shell wrap file to bin directory. + ;; Fixup: Set DISPLAY variable for the reason: + ;; https://github.com/ch11ng/exwm/issues/213 + (with-output-to-file exwm-default-session + (lambda _ + (format #t + "#!~a ~@ + export DISPLAY=:0 ~@ + ~a +SI:localuser:$USER ~@ + exec ~a --exit-with-session ~a -q --eval \"~a\" ~%" + sh-path xhost-path dbus-launch-path emacs-path + (string-append + "(if (file-exists-p \\\"~/.exwm.el\\\")" + "(load \\\"~/.exwm.el\\\")" + "(require 'exwm)" + "(require 'exwm-config)" + "(exwm-config-default)" + "(message \\\"EXWM: ~/.exwm.el is not exist. " + "use exwm fallback configure.\\\")" + ")")))) + (chmod exwm-default-session #o555) + #t)))))) + (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 [-- Attachment #4: Type: text/plain, Size: 3641 bytes --] > Feng Shu writes: > >> Arun Isaac <arunisaac@systemreboot.net> writes: >> >>> You should be able to do this just using #:make-flags. See >>> https://www.gnu.org/software/make/manual/html_node/Overriding.html> >> emacs-build-system seem to have no #:make-flags, I just use >> "make var1=var1 all" instead. > > Ah, yes. I forgot! > >> the rest have been fixed, thanks! >> >> the below is new patch: > > I'm not able to apply your patch. Could you send the patches made > against the latest master? Thanks! > >> + (arguments >> + `(#:emacs ,emacs >> + #:phases >> + ;; Generate .el files from the XML description of the XCB bindings. >> + ;; This will be adjusted when xelb developer comment in issue page: >> + ;; https://github.com/ch11ng/xelb/issues/16> + (modify-phases %standard-phases >> + (add-after 'unpack 'regenerate-el-files >> + (lambda* (#:key inputs #:allow-other-keys) >> + (zero? (system* "make" >> + (string-append "PROTO_PATH=" >> + (assoc-ref inputs "xcb-proto") >> + "/share/xcb") >> + (string-append "EMACS_BIN=" >> + (assoc-ref inputs "emacs") >> + "/bin/emacs -Q") >> + "all"))))))) > > "all" is the default target, isn't it? In the interest of brevity, you > can drop it. > >> + (native-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.") > > There should be two spaces after the full stop '.' at the end of a > sentence. Do run through 'guix lint'. It will warn you about this. > >> +(define-public emacs-exwm >> + (package >> + (name "emacs-exwm") >> + (version "0.13-3.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))) >> + (inputs >> + `(("xhost" ,xhost) >> + ("dbus" ,dbus))) >> + ;; The following functions and variables needed by emacs-exwm are >> + ;; not included in emacs-minimal: >> + ;; scroll-bar-mode, fringe-mode >> + ;; x-display-pixel-width x-display-pixel-height >> + (arguments >> + `(#:emacs ,emacs >> + #:phases >> + ;; Generate .el files from the XML description of the XCB bindings. >> + ;; This will be adjusted when xelb developer comment in issue page: >> + ;; https://github.com/ch11ng/xelb/issues/16 > > This comment is only for emacs-xelb, and shouldn't be here, right? > > Everything else LGTM. Please send one last patch set. There may be a few > more minor corrections. I'll make them and push. I'm eager to try out > exwm. I didn't know about it before your patch. Thank you! :-) -- ^ permalink raw reply related [flat|nested] 39+ messages in thread
* bug#26454: [PATCH 2/2] gnu: add emacs-exwm 2017-04-16 8:04 ` Feng Shu, Arun Isaac @ 2017-04-16 20:53 ` Arun Isaac 2017-04-16 21:22 ` tumashu 0 siblings, 1 reply; 39+ messages in thread From: Arun Isaac @ 2017-04-16 20:53 UTC (permalink / raw) To: 26454 > + (with-output-to-file exwm-default-session > + (lambda _ > + (format #t > + "#!~a ~@ > + export DISPLAY=:0 ~@ > + ~a +SI:localuser:$USER ~@ > + exec ~a --exit-with-session ~a -q --eval \"~a\" ~%" Can we drop the -q flag? If we use the -q flag, the user's ~/.emacs is not loaded. That means to use their editor, they'll have to start another emacs process leaving the first emacs process just for exwm. This need for two emacs processes is not nice. > + sh-path xhost-path dbus-launch-path emacs-path > + (string-append > + "(if (file-exists-p \\\"~/.exwm.el\\\")" > + "(load \\\"~/.exwm.el\\\")" > + "(require 'exwm)" > + "(require 'exwm-config)" > + "(exwm-config-default)" > + "(message \\\"EXWM: ~/.exwm.el is not exist. " > + "use exwm fallback configure.\\\")" > + ")")))) This eval forces the user to put all exwm specific configuration in ~/.exwm.el. Is it possible to work out some way to let the user keep all their configuration in the usual ~/.emacs, but still have some way for the default configuration to work out of the box without the user having to modify their ~/.emacs ? ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#26454: [PATCH 2/2] gnu: add emacs-exwm 2017-04-16 20:53 ` Arun Isaac @ 2017-04-16 21:22 ` tumashu 2017-04-17 2:14 ` tumashu 0 siblings, 1 reply; 39+ messages in thread From: tumashu @ 2017-04-16 21:22 UTC (permalink / raw) To: Arun Isaac; +Cc: 26454 -- 发自我的网易邮箱手机智能版 在 2017-04-17 04:53:46,"Arun Isaac" <arunisaac@systemreboot.net> 写道: > >> + (with-output-to-file exwm-default-session >> + (lambda _ >> + (format #t >> + "#!~a ~@ >> + export DISPLAY=:0 ~@ >> + ~a +SI:localuser:$USER ~@ >> + exec ~a --exit-with-session ~a -q --eval \"~a\" ~%" > >Can we drop the -q flag? If we use the -q flag, the user's ~/.emacs is >not loaded. That means to use their editor, they'll have to start >another emacs process leaving the first emacs process just for >exwm. This need for two emacs processes is not nice. exwm config can not enable when user use another wm, so in my opinion, putting exwm config in. emacs need emacs user do many work to avoid confilt maybe adding (load ".emacs") to .exwm.el is a more simple exwm-default-session is for exwm beginner or tester, in my opinion > >> + sh-path xhost-path dbus-launch-path emacs-path >> + (string-append >> + "(if (file-exists-p \\\"~/.exwm.el\\\")" >> + "(load \\\"~/.exwm.el\\\")" >> + "(require 'exwm)" >> + "(require 'exwm-config)" >> + "(exwm-config-default)" >> + "(message \\\"EXWM: ~/.exwm.el is not exist. " >> + "use exwm fallback configure.\\\")" >> + ")")))) > >This eval forces the user to put all exwm specific configuration in >~/.exwm.el. Is it possible to work out some way to let the user keep all >their configuration in the usual ~/.emacs, but still have some way for >the default configuration to work out of the box without the user having >to modify their ~/.emacs ? i do not know, seem to have no easy way > > > ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#26454: [PATCH 2/2] gnu: add emacs-exwm 2017-04-16 21:22 ` tumashu @ 2017-04-17 2:14 ` tumashu 2017-04-17 13:47 ` Arun Isaac 0 siblings, 1 reply; 39+ messages in thread From: tumashu @ 2017-04-17 2:14 UTC (permalink / raw) To: 我; +Cc: 26454 [-- Attachment #1: Type: text/plain, Size: 436 bytes --] >exwm config can not enable when user use another wm, so in my opinion, putting exwm config in. emacs >need emacs user do many work to avoid confilt > >maybe adding (load ".emacs") to .exwm.el is a more simple > >exwm-default-session is for exwm beginner or tester, >in my opinion > by the way, loading "~/.emacs" seem to no problem, just slower , without loading "~/.emacs" suit for test and debug exwm or show exwm to new users. [-- Attachment #2: Type: text/html, Size: 577 bytes --] ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#26454: [PATCH 2/2] gnu: add emacs-exwm 2017-04-17 2:14 ` tumashu @ 2017-04-17 13:47 ` Arun Isaac 2017-04-18 8:20 ` Ludovic Courtès 2017-04-23 9:54 ` tumashu 0 siblings, 2 replies; 39+ messages in thread From: Arun Isaac @ 2017-04-17 13:47 UTC (permalink / raw) To: 26454 I have finished all corrections. And, as far as I can tell, exwm builds and works fine. If there are no other suggestions, let me know, and I'll push. In the patch I just sent, I check if the 'exwm feature is loaded. If it is not loaded, then a default configuration is loaded. Else, nothing happens and we proceed assuming the user has configured exwm in their ~/.emacs. This way, we get a working exwm out of the box and at the same time, retain the user's ability to customize their exwm easily. Though upstream prefers we use the pregenerated source code, I'm afraid we cannot do that. All Guix packages are strictly built from source. For now, there is no problem with our own regenerated source code. And, I don't anticipate there will be many problems in the future. If and when there is a problem and the package breaks, we will report the problem upstream as a bug, and take any necessary action to fix our package. Until then, this should be fine. I've made many other minor edits and a little code restructuring. Please go through the patch. I had to move the synopsis field up to the top of the package definition so that I could reference it later while creating the .desktop file. Also, I've switched back to the ELPA tarball. There seem to be some exwm upstream bugs with floating windows. Apart from that, it works great. I have switched to exwm from my previous window manager, dwm. :-) ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#26454: [PATCH 2/2] gnu: add emacs-exwm 2017-04-17 13:47 ` Arun Isaac @ 2017-04-18 8:20 ` Ludovic Courtès 2017-04-18 13:38 ` Arun Isaac 2017-04-23 9:54 ` tumashu 1 sibling, 1 reply; 39+ messages in thread From: Ludovic Courtès @ 2017-04-18 8:20 UTC (permalink / raw) To: Arun Isaac; +Cc: 26454 Hello! Arun Isaac <arunisaac@systemreboot.net> skribis: > I have finished all corrections. And, as far as I can tell, exwm builds > and works fine. If there are no other suggestions, let me know, and I'll > push. I guess you can go ahead. Thanks for finalizing it! > In the patch I just sent, I check if the 'exwm feature is loaded. If it > is not loaded, then a default configuration is loaded. Else, nothing > happens and we proceed assuming the user has configured exwm in their > ~/.emacs. This way, we get a working exwm out of the box and at the same > time, retain the user's ability to customize their exwm easily. > > Though upstream prefers we use the pregenerated source code, I'm afraid > we cannot do that. All Guix packages are strictly built from source. For > now, there is no problem with our own regenerated source code. And, I > don't anticipate there will be many problems in the future. If and when > there is a problem and the package breaks, we will report the problem > upstream as a bug, and take any necessary action to fix our > package. Until then, this should be fine. Makes sense to me. > There seem to be some exwm upstream bugs with floating windows. Apart > from that, it works great. I have switched to exwm from my previous > window manager, dwm. :-) Fun. :-) Thanks to both of you! Ludo’. ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#26454: [PATCH 2/2] gnu: add emacs-exwm 2017-04-18 8:20 ` Ludovic Courtès @ 2017-04-18 13:38 ` Arun Isaac 2017-04-18 20:39 ` Arun Isaac 0 siblings, 1 reply; 39+ messages in thread From: Arun Isaac @ 2017-04-18 13:38 UTC (permalink / raw) To: 26454-done Pushed! :-) ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#26454: [PATCH 2/2] gnu: add emacs-exwm 2017-04-18 13:38 ` Arun Isaac @ 2017-04-18 20:39 ` Arun Isaac 0 siblings, 0 replies; 39+ messages in thread From: Arun Isaac @ 2017-04-18 20:39 UTC (permalink / raw) To: Arun Isaac; +Cc: 26454-done Arun Isaac writes: > Pushed! :-) I forgot to mention. In the spirit of sticking to the filenaming scheme of other configuration files like ~/.emacs and ~/.gnus, I made ~/.exwm the exwm configuration file instead of ~/.exwm.el. ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#26454: [PATCH 2/2] gnu: add emacs-exwm 2017-04-17 13:47 ` Arun Isaac 2017-04-18 8:20 ` Ludovic Courtès @ 2017-04-23 9:54 ` tumashu 2017-04-28 18:57 ` Arun Isaac 1 sibling, 1 reply; 39+ messages in thread From: tumashu @ 2017-04-23 9:54 UTC (permalink / raw) To: Arun Isaac; +Cc: 26454@debbugs.gnu.org [-- Attachment #1: Type: text/plain, Size: 276 bytes --] exwm-x is an extension for exwm, if you instesting it, just try :-) https://github.com/tumashu/exwm-x >There seem to be some exwm upstream bugs with floating windows. Apart >from that, it works great. I have switched to exwm from my previous >window manager, dwm. :-) > > > [-- Attachment #2: Type: text/html, Size: 413 bytes --] ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#26454: [PATCH 2/2] gnu: add emacs-exwm 2017-04-23 9:54 ` tumashu @ 2017-04-28 18:57 ` Arun Isaac 0 siblings, 0 replies; 39+ messages in thread From: Arun Isaac @ 2017-04-28 18:57 UTC (permalink / raw) To: tumashu; +Cc: 26454 tumashu writes: > exwm-x is an extension for exwm, if you instesting it, just try :-) Do you have the gnupg gtk pinentry working in exwm? This is the one floating window I'm having trouble with. It immediately vanishes soon after appearing. So, I can't enter my passphrase, and therefore can't access my private key. I am using the tty pinentry until I can figure out a solution to this problem. ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#26454: [PATCH 2/2] gnu: add emacs-exwm 2017-04-14 15:13 ` Feng Shu 2017-04-14 17:24 ` Arun Isaac @ 2017-04-14 21:47 ` Ludovic Courtès 1 sibling, 0 replies; 39+ messages in thread From: Ludovic Courtès @ 2017-04-14 21:47 UTC (permalink / raw) To: Feng Shu; +Cc: 26454 Hello Feng Shu, "Feng Shu" <tumashu@163.com> skribis: > Sadly, I have found that I can not let exwm work well in guixsd, Could you describe what the problem is? The patch looks good to me, but if you say that the package is actually non-functional, then including it as is may not be very useful, except if these are upstream bugs maybe. >>From b815a6adb8e8b08bb856e2b9e22ddf31324af101 Mon Sep 17 00:00:00 2001 > From: Feng Shu <tumashu@163.com> > 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. Before including, please make it two patches. > +(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"))) Minor thing: I’d suggest using the regular stanza for the commit/revision number (info "(guix) Version Numbers"). > + (add-after 'unpack 'regenerate-el-files > + (lambda _ Maybe add a comment like “Generate .el files from the XML description of the XCB bindings.” > + (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))))) (zero? (system* "make" "all")) and remove #t. > +(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+))) Sounds like a lot of fun. :-) Arun: I don’t have anything to add. I think you could at least commit the first one. Dunno about exwm proper; maybe it’s not worse than Guile-WM anyway? ;-) Thanks, Ludo’. ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#26454: [PATCH 2/2] gnu: add emacs-exwm 2017-04-14 13:27 ` Arun Isaac 2017-04-14 15:13 ` Feng Shu @ 2017-04-16 9:32 ` Ludovic Courtès 2017-04-16 11:06 ` Arun Isaac 1 sibling, 1 reply; 39+ messages in thread From: Ludovic Courtès @ 2017-04-16 9:32 UTC (permalink / raw) To: Arun Isaac; +Cc: 26454 Hello! Arun Isaac <arunisaac@systemreboot.net> skribis: >>> In your new patch, could you add a phase for generating this code from >>> the xcb-proto xml files as well? Thanks! > >> I don't think it it a good idea, xcb-xproto.el provided by repo is >> tested by developer. if we regenerate it, i don't know whether it >> work or not. That would effectively mean we don’t have the source code for this, which would be a problem. What about generating it, and if we do find differences compared to the pre-compiled xcb-proto.el, then we can keep it in mind and report any issues upstream? Thanks, Ludo’. ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#26454: [PATCH 2/2] gnu: add emacs-exwm 2017-04-16 9:32 ` Ludovic Courtès @ 2017-04-16 11:06 ` Arun Isaac 2017-04-16 21:09 ` tumashu 0 siblings, 1 reply; 39+ messages in thread From: Arun Isaac @ 2017-04-16 11:06 UTC (permalink / raw) To: 26454 >>>> In your new patch, could you add a phase for generating this code from >>>> the xcb-proto xml files as well? Thanks! >> >>> I don't think it it a good idea, xcb-xproto.el provided by repo is >>> tested by developer. if we regenerate it, i don't know whether it >>> work or not. > > That would effectively mean we don’t have the source code for this, > which would be a problem. > > What about generating it, and if we do find differences compared to the > pre-compiled xcb-proto.el, then we can keep it in mind and report any > issues upstream? In the latest version of the patch, we are regenerating the sources from xcb-proto. So, this issue has been addressed. ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#26454: [PATCH 2/2] gnu: add emacs-exwm 2017-04-16 11:06 ` Arun Isaac @ 2017-04-16 21:09 ` tumashu 0 siblings, 0 replies; 39+ messages in thread From: tumashu @ 2017-04-16 21:09 UTC (permalink / raw) To: Arun Isaac; +Cc: 26454 -- 发自我的网易邮箱手机智能版 在 2017-04-16 19:06:23,"Arun Isaac" <arunisaac@systemreboot.net> 写道: > >>>>> In your new patch, could you add a phase for generating this code from >>>>> the xcb-proto xml files as well? Thanks! >>> >>>> I don't think it it a good idea, xcb-xproto.el provided by repo is >>>> tested by developer. if we regenerate it, i don't know whether it >>>> work or not. >> >> That would effectively mean we don’t have the source code for this, >> which would be a problem. >> >> What about generating it, and if we do find differences compared to the >> pre-compiled xcb-proto.el, then we can keep it in mind and report any >> issues upstream? > >In the latest version of the patch, we are regenerating the sources from >xcb-proto. So, this issue has been addressed. the xelb developer's suggestion is just copying... https://github.com/ch11ng/xelb/issues/16 > > ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#26454: [PATCH 2/2] gnu: add emacs-exwm 2017-04-13 1:14 ` tumashu 2017-04-13 5:21 ` Arun Isaac @ 2017-04-13 5:25 ` Arun Isaac 2017-04-13 21:04 ` Ludovic Courtès 1 sibling, 1 reply; 39+ messages in thread From: Arun Isaac @ 2017-04-13 5:25 UTC (permalink / raw) To: 26454 Also, could one of the Guix maintainers comment on the following? emacs-xelb (https://github.com/ch11ng/xelb) provides a Makefile to generate source code from xml files in xcb-proto. However, this source code is already pre-generated and included in the upstream git repository. Should we regenerate this code from xcb-proto afresh? ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#26454: [PATCH 2/2] gnu: add emacs-exwm 2017-04-13 5:25 ` Arun Isaac @ 2017-04-13 21:04 ` Ludovic Courtès 2017-04-14 5:40 ` Arun Isaac 0 siblings, 1 reply; 39+ messages in thread From: Ludovic Courtès @ 2017-04-13 21:04 UTC (permalink / raw) To: Arun Isaac; +Cc: 26454 Arun Isaac <arunisaac@systemreboot.net> skribis: > Also, could one of the Guix maintainers comment on the following? > > emacs-xelb (https://github.com/ch11ng/xelb) provides a Makefile to > generate source code from xml files in xcb-proto. However, this source > code is already pre-generated and included in the upstream git > repository. Should we regenerate this code from xcb-proto afresh? It would be nice, yes. I suppose the tool to generate this is in their repo? Ludo’. ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#26454: [PATCH 2/2] gnu: add emacs-exwm 2017-04-13 21:04 ` Ludovic Courtès @ 2017-04-14 5:40 ` Arun Isaac 0 siblings, 0 replies; 39+ messages in thread From: Arun Isaac @ 2017-04-14 5:40 UTC (permalink / raw) To: 26454 Ludovic Courtès writes: > Arun Isaac <arunisaac@systemreboot.net> skribis: > >> Also, could one of the Guix maintainers comment on the following? >> >> emacs-xelb (https://github.com/ch11ng/xelb) provides a Makefile to >> generate source code from xml files in xcb-proto. However, this source >> code is already pre-generated and included in the upstream git >> repository. Should we regenerate this code from xcb-proto afresh? > > It would be nice, yes. I suppose the tool to generate this is in their > repo? Yes, el_client.el in the xelb repository does this. @Feng Shu: In your new patch, could you add a phase for generating this code from the xcb-proto xml files as well? Thanks! ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#26454: [PATCH 2/2] gnu: add emacs-exwm 2017-04-12 20:05 ` Arun Isaac 2017-04-13 1:14 ` tumashu @ 2017-04-16 9:03 ` Alex Kost 2017-04-16 9:29 ` Arun Isaac 1 sibling, 1 reply; 39+ messages in thread From: Alex Kost @ 2017-04-16 9:03 UTC (permalink / raw) To: Arun Isaac; +Cc: 26454 Arun Isaac (2017-04-13 01:35 +0530) wrote: >>>> + (source >>>> + (origin >>>> + (method url-fetch) >>>> + (uri (string-append "https://elpa.gnu.org/packages/exwm-" >>>> + version ".tar")) >>> >>> Could you open an issue with the upstream maintainer asking them to tag a >>> release so that we could use the upstream release tarball directly >>> instead of relying on ELPA's tarball? >> >> Hm, but this ELPA tarball is the release itself, no? > > I thought it would be better if we could get the release tarball > directly from upstream (https://github.com/ch11ng/exwm). What I meant is that the tarball on ELPA is the upstream release itself! ELPA packages are made by the upstream persons, so I bet it is ch11ng who uploaded that tarball to ELPA. So insist that ELPA tarball is the right source and we should use it :-) -- Alex ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#26454: [PATCH 2/2] gnu: add emacs-exwm 2017-04-16 9:03 ` Alex Kost @ 2017-04-16 9:29 ` Arun Isaac 0 siblings, 0 replies; 39+ messages in thread From: Arun Isaac @ 2017-04-16 9:29 UTC (permalink / raw) To: 26454 >> I thought it would be better if we could get the release tarball >> directly from upstream (https://github.com/ch11ng/exwm). > > What I meant is that the tarball on ELPA is the upstream release itself! > ELPA packages are made by the upstream persons, so I bet it is ch11ng > who uploaded that tarball to ELPA. So insist that ELPA tarball is the > right source and we should use it :-) Actually, ch11ng does mention here (https://github.com/ch11ng/exwm/wiki) that the project is dual-hosted on Github and Savannah. So, I'll switch to the ELPA tarball before pushing. Thanks. ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#26454: [PATCH 1/2] gnu: Add emacs-xelb. 2017-04-11 22:58 ` bug#26454: [PATCH 2/2] gnu: add emacs-exwm Feng Shu 2017-04-12 9:35 ` Arun Isaac @ 2017-04-17 13:27 ` Arun Isaac 1 sibling, 0 replies; 39+ messages in thread From: Arun Isaac @ 2017-04-17 13:27 UTC (permalink / raw) To: 26454 From: Feng Shu <tumashu@163.com> * gnu/packages/emacs.scm (emacs-xelb): New variable. Signed-off-by: Arun Isaac <arunisaac@systemreboot.net> --- gnu/packages/emacs.scm | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 673bbdf89..306fb5eb7 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -24,6 +24,7 @@ ;;; Copyright © 2017 Kyle Meyer <kyle@kyleam.com> ;;; Copyright © 2017 Kei Kebreau <kei@openmailbox.org> ;;; Copyright © 2017 George Clemmer <myglc2@gmail.com> +;;; Copyright © 2017 Feng Shu <tumashu@163.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -4382,3 +4383,42 @@ 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") + (source (origin + (method url-fetch) + (uri (string-append "https://elpa.gnu.org/packages/xelb-" + version ".tar")) + (sha256 + (base32 + "0i9n0f3ibj4a5pwcsvwrah9m0fz32m0x6a9wsmjn3li20v8pcb81")))) + (build-system emacs-build-system) + ;; The following functions and variables needed by emacs-xelb are + ;; 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* (#:key inputs #:allow-other-keys) + (zero? (system* "make" + (string-append "PROTO_PATH=" + (assoc-ref inputs "xcb-proto") + "/share/xcb") + (string-append "EMACS_BIN=" + (assoc-ref inputs "emacs") + "/bin/emacs -Q")))))))) + (native-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+))) -- 2.12.2 ^ permalink raw reply related [flat|nested] 39+ messages in thread
* bug#26453: [PATCH 1/2] gnu: add emacs-xelb 2017-04-11 22:58 bug#26453: [PATCH 1/2] gnu: add emacs-xelb Feng Shu 2017-04-11 22:58 ` bug#26454: [PATCH 2/2] gnu: add emacs-exwm Feng Shu @ 2017-04-12 9:34 ` Arun Isaac 2017-04-12 10:12 ` Arun Isaac [not found] ` <cu7zifmezqp.fsf@systemreboot.net> 3 siblings, 0 replies; 39+ messages in thread From: Arun Isaac @ 2017-04-12 9:34 UTC (permalink / raw) To: 26453 Thanks for the patch! > + (source > + (origin > + (method url-fetch) > + (uri (string-append "https://elpa.gnu.org/packages/xelb-" > + version ".tar")) Could you open an issue with the upstream maintainer asking him to tag a release so that we could use the upstream release tarball directly instead of relying on ELPA's tarball? ^ permalink raw reply [flat|nested] 39+ messages in thread
* bug#26453: [PATCH 1/2] gnu: add emacs-xelb 2017-04-11 22:58 bug#26453: [PATCH 1/2] gnu: add emacs-xelb Feng Shu 2017-04-11 22:58 ` bug#26454: [PATCH 2/2] gnu: add emacs-exwm Feng Shu 2017-04-12 9:34 ` bug#26453: [PATCH 1/2] gnu: add emacs-xelb Arun Isaac @ 2017-04-12 10:12 ` Arun Isaac [not found] ` <cu7zifmezqp.fsf@systemreboot.net> 3 siblings, 0 replies; 39+ messages in thread From: Arun Isaac @ 2017-04-12 10:12 UTC (permalink / raw) To: 26453 Also, for future reference, when you are sending a patch series, first open a bug report by mailing guix-patches@gnu.org, and then send the patch series to NNN@debbugs.gnu.org, where NNN is the newly created bug number. This way, all patches will show up in a single bug report and be easier to review and apply. See https://lists.gnu.org/archive/html/guix-devel/2017-02/msg00627.html Thanks! :-) ^ permalink raw reply [flat|nested] 39+ messages in thread
[parent not found: <cu7zifmezqp.fsf@systemreboot.net>]
* bug#26453: [PATCH 1/2] gnu: add emacs-xelb [not found] ` <cu7zifmezqp.fsf@systemreboot.net> @ 2017-04-13 5:26 ` Arun Isaac 0 siblings, 0 replies; 39+ messages in thread From: Arun Isaac @ 2017-04-13 5:26 UTC (permalink / raw) To: 26453-done Closing this bug report so that the entire patch set can be discussed in one place at bug 26454. ^ permalink raw reply [flat|nested] 39+ messages in thread
end of thread, other threads:[~2017-04-28 18:58 UTC | newest] Thread overview: 39+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2017-04-11 22:58 bug#26453: [PATCH 1/2] gnu: add emacs-xelb Feng Shu 2017-04-11 22:58 ` bug#26454: [PATCH 2/2] gnu: add emacs-exwm Feng Shu 2017-04-12 9:35 ` Arun Isaac 2017-04-12 18:13 ` Alex Kost 2017-04-12 20:05 ` Arun Isaac 2017-04-13 1:14 ` tumashu 2017-04-13 5:21 ` Arun Isaac 2017-04-14 11:54 ` Feng Shu 2017-04-14 13:27 ` Arun Isaac 2017-04-14 15:13 ` Feng Shu 2017-04-14 17:24 ` Arun Isaac 2017-04-15 2:37 ` tumashu 2017-04-15 12:29 ` Feng Shu 2017-04-15 21:13 ` Arun Isaac [not found] ` <e0ed6d82.AEAAJGDHDFkAAAAAAAAAAAO1LyIAAAACwQwAAAAAAAW9WABY8o0b@mailjet.com> 2017-04-15 23:41 ` Feng Shu 2017-04-16 7:09 ` Arun Isaac 2017-04-16 8:04 ` Feng Shu, Arun Isaac 2017-04-16 20:53 ` Arun Isaac 2017-04-16 21:22 ` tumashu 2017-04-17 2:14 ` tumashu 2017-04-17 13:47 ` Arun Isaac 2017-04-18 8:20 ` Ludovic Courtès 2017-04-18 13:38 ` Arun Isaac 2017-04-18 20:39 ` Arun Isaac 2017-04-23 9:54 ` tumashu 2017-04-28 18:57 ` Arun Isaac 2017-04-14 21:47 ` Ludovic Courtès 2017-04-16 9:32 ` Ludovic Courtès 2017-04-16 11:06 ` Arun Isaac 2017-04-16 21:09 ` tumashu 2017-04-13 5:25 ` Arun Isaac 2017-04-13 21:04 ` Ludovic Courtès 2017-04-14 5:40 ` Arun Isaac 2017-04-16 9:03 ` Alex Kost 2017-04-16 9:29 ` Arun Isaac 2017-04-17 13:27 ` bug#26454: [PATCH 1/2] gnu: Add emacs-xelb Arun Isaac 2017-04-12 9:34 ` bug#26453: [PATCH 1/2] gnu: add emacs-xelb Arun Isaac 2017-04-12 10:12 ` Arun Isaac [not found] ` <cu7zifmezqp.fsf@systemreboot.net> 2017-04-13 5:26 ` Arun Isaac
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/guix.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).