guix-devel
[Top][All Lists]
Advanced

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

EXWM


From: André A . Gomes
Subject: EXWM
Date: Mon, 04 Oct 2021 17:33:34 +0300
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux)

Hi Guix,

I'd like to addres the way EXWM is packged in Guix.

EXWM starts (from the login manager, i.e. after X is running) by means
of a script that starts emacs by evaluating the following s-exp:

--8<---------------cut here---------------start------------->8---
(cond ((file-exists-p "~/.exwm") (load-file "~/.exwm"))
      ((not (featurep (quote exwm)))
       (require (quote exwm))
       (require (quote exwm-config))
       (exwm-config-default)
       (message (concat "exwm configuration not found. "
                        "Falling back to default configuration..."))))
--8<---------------cut here---------------end--------------->8---

I can't think of any good reason to doing this, but I can think of many
against.  I'll elaborate.

I remember, back in the day, to what great lengths I went to understand
what the hell what going on.  I had EXWM configured in my Emacs init.el
file (the sane, standard and documented way of doing it), and I've used
it before in other distros.

I wondered: why isn't it being honored?  And why the hell is ido-mode
on, if I did it enabled it?  Let's check the EXWM wiki and
documentation.  Nothing.  Ok, maybe I should check how EXWM is packaged
in Guix.  Let's be honest, the "lay user" will never do this.

The present approach assumes that one of the following holds.  Either
the user is stupid and he expects some standard EXWM config to "just
work", or he miracously knows he needs to write an extra .exwm file to
serve such a specfic purpose.  This doesn't configure EXWM in the most
general case (more on that below), and it's bonkers.

EXWM was thought to be started and used in many scenarios.  The most
common one, indeed, is to start it when no other window manager has been
started.  But users can also login into a full-blown DE (GNOME, Xfce,
etc) and active EXWM when they wish!  In this case, EXWM is able to take
control of things (i.e. replace the running window manager).  See how
the .exwm file is short-sighted?  This is a non-standard approach, and a
source of duplication and confusion.

Now, there's another problem.  One simply doesn't start EXWM from
another DE in Guix!  It always fails.  Why?  Because the user needs to
run the following beforehand (yes, the same bit that also appears in the
exwm binary wrapper):

--8<---------------cut here---------------start------------->8---
/gnu/store/HASH-xhost-1.0.8/bin/xhost +SI:localuser:$USER
--8<---------------cut here---------------end--------------->8---

I'm not sure how to handle this issue.  Most users would expect things
to just work.  There are lots of issues on github from Guix users
clueless about this.  Yes, I can mention this in the EXWM wiki, but
perhaps deeper measures should be taken.


It's trivial to fix part of the problem, and I have packaged EXWM
myself.  See the link below.

https://git.sr.ht/~aadcg/aadcg-guix-channel/commit/4a27f9991b0b692694f954cb595a9748a0146d36.

It seemed pointless to send a trivial patch without any further
explation, so feel free to discuss the topic.

Thank you.


--
André A. Gomes
"Free Thought, Free World"



reply via email to

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