<tomas@tuxteam.de> writes:
On Thu, Sep 15, 2022 at 01:12:02PM +0200, Julien Cubizolles
wrote:
I used to rely on getenv to get the value of
$XDG_SESSION_TYPE. I
noticed that recently:
--8<---------------cut
here---------------start------------->8---
(getenv "XDG_SESSION_TYPE")
--8<---------------cut
here---------------end--------------->8---
returns nil, because this variable isn't in
process-environment
What is the reason for dropping this particular variable ? How
can I get
the value of this variable from within Emacs ?
The process that starts your Emacs has to pass it on (that's
the idea
of environment variables). If things changed, this is where you
have
to look.
How is your Emacs started?
It's started through a user systemd service that hasn't changed
in
years.
--8<---------------cut
here---------------start------------->8---
[Service]
Type=forking
Environment='XMODIFIERS=""'
ExecStart=/usr/bin/emacs --daemon
ExecStop=/usr/bin/emacsclient --eval "(progn (setq
kill-emacs-hook daemon-kill-emacs-hook) (kill-emacs))"
Restart=on-failure
Environment="DISPLAY=:%i"
TimeoutStartSec=0
--8<---------------cut
here---------------end--------------->8---
In the getenv docstring, there is a mention of variable
process-environment, containing a list of environment variables,
not
refered to in the systemd service file but nonetheless
accessible to
getenv (some are XDG variables like XDG_DATA_DIRS). Maybe
XDG_SESSION_TYPE has been dropped from this list ?