unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* 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; 43+ 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] 43+ 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; 43+ 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] 43+ 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; 43+ 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] 43+ 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; 43+ 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] 43+ 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; 43+ 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] 43+ 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; 43+ 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] 43+ 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; 43+ 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] 43+ 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; 43+ 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] 43+ 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; 43+ 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] 43+ 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; 43+ 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] 43+ messages in thread

* 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; 43+ 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] 43+ 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; 43+ 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] 43+ 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; 43+ 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] 43+ 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; 43+ 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] 43+ 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; 43+ 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] 43+ 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; 43+ 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] 43+ 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; 43+ 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] 43+ 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; 43+ 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] 43+ 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; 43+ 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] 43+ 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; 43+ 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] 43+ 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; 43+ 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] 43+ messages in thread

* 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; 43+ 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] 43+ 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; 43+ 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] 43+ 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; 43+ 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] 43+ 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; 43+ 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] 43+ 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; 43+ 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] 43+ 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; 43+ 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] 43+ 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; 43+ 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] 43+ 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; 43+ 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] 43+ 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; 43+ 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] 43+ 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; 43+ 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] 43+ 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; 43+ 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] 43+ 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; 43+ 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] 43+ messages in thread

* bug#26454: [PATCH 2/2] gnu: Add emacs-exwm.
       [not found] <20170417132743.5683-1-arunisaac@systemreboot.net>
@ 2017-04-17 13:27 ` Arun Isaac
       [not found] ` <c675c264.AEMAJSAD6iUAAAAAAAAAAAO1LyIAAAACwQwAAAAAAAW9WABY9MMd@mailjet.com>
  1 sibling, 0 replies; 43+ 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-exwm): New variable.

Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
---
 gnu/packages/emacs.scm | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 69 insertions(+)

diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 306fb5eb7..1f8eac3df 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -4422,3 +4422,72 @@ 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")
+    (synopsis "Emacs X window manager")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://elpa.gnu.org/packages/exwm-"
+                                  version ".tar"))
+              (sha256
+               (base32
+                "0n1wzy6chh024r0yaywjbf7mdsrxs6hrfycv5v0ps0drf6q3zldc"))))
+    (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* ((out (assoc-ref outputs "out"))
+                    (xsessions (string-append out "/share/xsessions"))
+                    (bin (string-append out "/bin"))
+                    (exwm-executable (string-append bin "/exwm")))
+               ;; Add a .desktop file to xsessions
+               (mkdir-p xsessions)
+               (mkdir-p bin)
+               (with-output-to-file
+                   (string-append xsessions "/exwm.desktop")
+                 (lambda _
+                   (format #t "[Desktop Entry]~@
+                     Name=~a~@
+                     Comment=~a~@
+                     Exec=~a~@
+                     TryExec=~@*~a~@
+                     Type=Application~%" ,name ,synopsis exwm-executable)))
+               ;; Add a shell wrap file to bin directory
+               ;; Set DISPLAY variable to work around
+               ;; https://github.com/ch11ng/exwm/issues/213
+               (with-output-to-file exwm-executable
+                 (lambda _
+                   (format #t "#!~a ~@
+                     export DISPLAY=:0 ~@
+                     ~a +SI:localuser:$USER ~@
+                     exec ~a --exit-with-session ~a --eval '~s' ~%"
+                           (string-append (assoc-ref inputs "bash") "/bin/sh")
+                           (string-append (assoc-ref inputs "xhost") "/bin/xhost")
+                           (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
+                           (string-append (assoc-ref inputs "emacs") "/bin/emacs")
+                           '(unless (featurep 'exwm)
+                              (require 'exwm)
+                              (require 'exwm-config)
+                              (exwm-config-default)
+                              (message "exwm configuration not found. Falling back to default configuration.")))))
+               (chmod exwm-executable #o555)
+               #t))))))
+    (home-page "https://github.com/ch11ng/exwm")
+    (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] 43+ 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; 43+ 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] 43+ messages in thread

* bug#26454: [PATCH 2/2] gnu: Add emacs-exwm.
       [not found] ` <c675c264.AEMAJSAD6iUAAAAAAAAAAAO1LyIAAAACwQwAAAAAAAW9WABY9MMd@mailjet.com>
@ 2017-04-17 14:41   ` Feng Shu
  2017-04-17 17:23     ` Arun Isaac
  0 siblings, 1 reply; 43+ messages in thread
From: Feng Shu @ 2017-04-17 14:41 UTC (permalink / raw)
  To: Arun Isaac; +Cc: 26454

Arun Isaac <arunisaac@systemreboot.net> writes:


> +                           '(unless (featurep 'exwm)
> +                              (require 'exwm)
> +                              (require 'exwm-config)
> +                              (exwm-config-default)
> +                              (message "exwm configuration not found. Falling back to default configuration.")))))

If exwm's config put ~/.emacs,  emacs will not start properly in other
desktop environment. user should hack and let exwm's config not
enable when current wm is not exwm, I don't know how to deal with this
problem.

If possible, I suggest to do like this, user can use ~/.emacs or ~/.exwm.el
to config exwm. if one need to switch different wm frequently,
~/.exwm.el may a better solution

  (progn
    (when (file-exists-p "~/.exwm.el")
      (load "~/.exwm.el"))
    (unless (featurep 'exwm)
      (require 'exwm)
      (require 'exwm-config)
      (exwm-config-default)
      (message "exwm configuration not found. Falling back to default configuration.")))))



> +               (chmod exwm-executable #o555)
> +               #t))))))
> +    (home-page "https://github.com/ch11ng/exwm")+    (description "EXWM (Emacs X Window Manager) is a full-featured tiling X
> +window manager for Emacs built on top of XELB.")
> +    (license license:gpl3+)))

-- 

^ permalink raw reply	[flat|nested] 43+ messages in thread

* bug#26454: [PATCH 2/2] gnu: Add emacs-exwm.
  2017-04-17 14:41   ` Feng Shu
@ 2017-04-17 17:23     ` Arun Isaac
  2017-04-17 21:51       ` Feng Shu
  0 siblings, 1 reply; 43+ messages in thread
From: Arun Isaac @ 2017-04-17 17:23 UTC (permalink / raw)
  To: 26454


> If possible, I suggest to do like this, user can use ~/.emacs or ~/.exwm.el
> to config exwm. if one need to switch different wm frequently,
> ~/.exwm.el may a better solution
>
>   (progn
>     (when (file-exists-p "~/.exwm.el")
>       (load "~/.exwm.el"))
>     (unless (featurep 'exwm)
>       (require 'exwm)
>       (require 'exwm-config)
>       (exwm-config-default)
>       (message "exwm configuration not found. Falling back to default configuration.")))))

Yes, that's a good idea -- best of both worlds! Shall I make this change
and push? Are there any other changes?

^ permalink raw reply	[flat|nested] 43+ messages in thread

* bug#26454: [PATCH 2/2] gnu: Add emacs-exwm.
  2017-04-17 17:23     ` Arun Isaac
@ 2017-04-17 21:51       ` Feng Shu
  0 siblings, 0 replies; 43+ messages in thread
From: Feng Shu @ 2017-04-17 21:51 UTC (permalink / raw)
  To: 26454

Arun Isaac <arunisaac@systemreboot.net> writes:

>> If possible, I suggest to do like this, user can use ~/.emacs or ~/.exwm.el
>> to config exwm. if one need to switch different wm frequently,
>> ~/.exwm.el may a better solution
>>
>>   (progn
>>     (when (file-exists-p "~/.exwm.el")
>>       (load "~/.exwm.el"))
>>     (unless (featurep 'exwm)
>>       (require 'exwm)
>>       (require 'exwm-config)
>>       (exwm-config-default)
>>       (message "exwm configuration not found. Falling back to default configuration.")))))
>
> Yes, that's a good idea -- best of both worlds! Shall I make this change
> and push? Are there any other changes?

The rest are ok, in my opinion :-)

-- 

^ permalink raw reply	[flat|nested] 43+ 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; 43+ 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] 43+ 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; 43+ messages in thread
From: Arun Isaac @ 2017-04-18 13:38 UTC (permalink / raw)
  To: 26454-done


Pushed! :-)

^ permalink raw reply	[flat|nested] 43+ 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; 43+ 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] 43+ 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; 43+ 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] 43+ 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; 43+ 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] 43+ messages in thread

end of thread, other threads:[~2017-04-28 18:58 UTC | newest]

Thread overview: 43+ 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
     [not found] <20170417132743.5683-1-arunisaac@systemreboot.net>
2017-04-17 13:27 ` bug#26454: [PATCH 2/2] gnu: Add emacs-exwm Arun Isaac
     [not found] ` <c675c264.AEMAJSAD6iUAAAAAAAAAAAO1LyIAAAACwQwAAAAAAAW9WABY9MMd@mailjet.com>
2017-04-17 14:41   ` Feng Shu
2017-04-17 17:23     ` Arun Isaac
2017-04-17 21:51       ` Feng Shu

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).