Hacks/exwm-with-another-emacs

Exwm-next has been discussion in the offical Guix add emacs-exwm-next package but nothing was really done since more than 2 years.

Here is a quick way to adapt exwm so that it can use whatever package of emacs.

Ie Inside your /etc/config.scm (use-modules ...)

(with-imported-modules '((gnu packages emacs-xyz) (guix packages) (guix cvs-download) (guix download) (guix bzr-download) (guix gexp) (guix git-download) (guix hg-download) (guix build-system gnu) (guix build-system cmake) (guix build-system copy) (guix build-system emacs) (guix build-system glib-or-gtk) (guix build-system perl) (guix build-system trivial) (gnu packages) (gnu packages admin) (gnu packages aspell) (gnu packages audio) (gnu packages bash) (gnu packages chez) (gnu packages cmake) (gnu packages code) (gnu packages cpp) (gnu packages curl) (gnu packages databases) (gnu packages dictionaries) (gnu packages djvu) (gnu packages ebook) (gnu packages emacs) (gnu packages freedesktop) (gnu packages golang) (gnu packages guile) (gnu packages gtk) (gnu packages gnome) (gnu packages graphviz) (gnu packages haskell-apps) (gnu packages ibus) (gnu packages java) (gnu packages ncurses) (gnu packages networking) (gnu packages python) (gnu packages python-xyz) (gnu packages telephony) (gnu packages terminals) (gnu packages tex) (gnu packages texinfo) (gnu packages tcl) (gnu packages tls) (gnu packages pkg-config) (gnu packages xorg) (gnu packages lesstif) (gnu packages llvm) (gnu packages image) (gnu packages linux) (gnu packages libevent) (gnu packages lisp-xyz) (gnu packages lua) (gnu packages music) (gnu packages version-control) (gnu packages imagemagick) (gnu packages w3m) (gnu packages web) (gnu packages wget) (gnu packages autotools) (gnu packages base) (gnu packages compression) (gnu packages node) (gnu packages xml) (gnu packages glib) (gnu packages acl) (gnu packages mail) (gnu packages messaging) (gnu packages package-management) (gnu packages perl) (gnu packages pdf) (gnu packages racket) (gnu packages ruby) (gnu packages rust-apps) (gnu packages scheme) (gnu packages serialization) (gnu packages speech) (gnu packages xiph) (gnu packages mp3) (gnu packages gettext) (gnu packages fribidi) (gnu packages gd) (gnu packages fontutils) (gnu packages password-utils) (gnu packages pulseaudio) (gnu packages sphinx) (gnu packages xdisorg) (gnu packages shells) (gnu packages shellutils) (gnu packages sqlite) (gnu packages ghostscript) (gnu packages gnupg) (gnu packages video) (gnu packages haskell-xyz) (gnu packages wordnet) (gnu packages photo) (gnu packages uml) (gnu packages finance) (guix utils) (srfi srfi-1) (ice-9 match)) ;; in this example, emacs-custom is the guix package "emacs-next"  (define emacs-custom (specification->package "emacs-next"))  (define emacs-xelb-custom (package      (inherit emacs-xelb)       (name "emacs-xelb-next")       (arguments (cons* #:emacs emacs-custom              (cddr (package-arguments emacs-xelb))))))  (define emacs-exwm-custom (package      (inherit emacs-exwm)       (name "emacs-exwm-next")       (synopsis "Emacs X window manager using the next version of emacs")       (propagated-inputs (list emacs-xelb-custom))      (arguments (cons* #:emacs emacs-custom              (cddr (package-arguments emacs-exwm))))))  )

(operating-system ... (packages (list ... emacs-exwm-custom ...)))
 * now you can add `emacs-exwm-custom' to the list of your packages