Message ID | 87blplqcdd.fsf@web.de |
---|---|
State | Superseded |
Headers | show |
Series | [bug#39804] gnu: add emacs-exwm-next package (i.e. exwm for emacs-next) | expand |
Context | Check | Description |
---|---|---|
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | success | View Laminar job |
Thanks for your submission. Note that you need not create a new thread for to send a update of a patch. If you used the `git send-email` command, you could have used the `--to=` option to send to the previous thread. For instance --8<---------------cut here---------------start------------->8--- git send-email --to=39756@debbugs.gnu.org 0001-my-patch.diff --8<---------------cut here---------------end--------------->8--- Comments below: > --- > gnu/packages/emacs-xyz.scm | 71 ++++++++++++++++++++++++++++++++++++++ > 1 file changed, 71 insertions(+) > > diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm > index 6b9027df8a..c6df469895 100644 > --- a/gnu/packages/emacs-xyz.scm > +++ b/gnu/packages/emacs-xyz.scm > @@ -8601,6 +8601,77 @@ It should enable you to implement low-level X11 applications.") > built on top of XELB.") > (license license:gpl3+))) > > +(define-public emacs-exwm-next I think you don't need to copy the whole package definition. Instead, you could `inherit' from the original definition and only adjust the name, description, inputs and maybe arguments. For instance --8<---------------cut here---------------start------------->8--- (define-public emacs-exwm-next (package (inherit emacs) (name "emacs-exwm-next") (inputs ...) (synopsys ...))) --8<---------------cut here---------------end--------------->8--- See `substitute-keyword-arguments' in the fftwf package for a convenient way to modify just one argument. > + (package > + (name "emacs-exwm-next") > + (version "0.23") > + (synopsis "Emacs X window manager") Maybe tell that this is using the next version of Emacs. > + (source (origin > + (method url-fetch) > + (uri (string-append "https://elpa.gnu.org/packages/exwm-" > + version ".tar")) > + (sha256 > + (base32 > + "05w1v3wrp1lzz20zd9lcvr5nhk809kgy6svvkbs15xhnr6x55ad5")))) > + (build-system emacs-build-system) > + (propagated-inputs > + `(("emacs-xelb" ,emacs-xelb))) > + (inputs > + `(("xhost" ,xhost) > + ("emacs-next" ,emacs-next) > + ("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 Shouldn't this be `emacs-next` as well? Cheers!
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 6b9027df8a..c6df469895 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -8601,6 +8601,77 @@ It should enable you to implement low-level X11 applications.") built on top of XELB.") (license license:gpl3+))) +(define-public emacs-exwm-next + (package + (name "emacs-exwm-next") + (version "0.23") + (synopsis "Emacs X window manager") + (source (origin + (method url-fetch) + (uri (string-append "https://elpa.gnu.org/packages/exwm-" + version ".tar")) + (sha256 + (base32 + "05w1v3wrp1lzz20zd9lcvr5nhk809kgy6svvkbs15xhnr6x55ad5")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-xelb" ,emacs-xelb))) + (inputs + `(("xhost" ,xhost) + ("emacs-next" ,emacs-next) + ("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 wrapper to bin + (with-output-to-file exwm-executable + (lambda _ + (format #t "#!~a ~@ + ~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-next") "/bin/emacs") + '(cond + ((file-exists-p "~/.exwm") + (load-file "~/.exwm")) + ((not (featurep 'exwm)) + (require 'exwm) + (require 'exwm-config) + (exwm-config-default) + (message (concat "exwm configuration not found. " + "Falling back to default configuration..."))))))) + (chmod exwm-executable #o555) + #t)))))) + (home-page "https://github.com/ch11ng/exwm") + (description "EXWM is a full-featured tiling X window manager for Emacs +built on top of XELB.") + (license license:gpl3+))) + (define-public emacs-switch-window (package (name "emacs-switch-window")