Re: emacs service and session start
On Thu, Aug 29, 2024 at 05:14:06PM CEST, Max Nikulin <manikulin@gmail.com> said:
> On 29/08/2024 12:56, Erwan David wrote:
> > On Mon, Aug 26, 2024 at 06:13:23PM CEST, Max Nikulin said:
> > > > > > On 23/08/2024 23:30, Max Nikulin wrote:
> > > > > > > It is started by /etc/X11/Xsession.d/90x11-common_ssh-agent
> > >
> > > [Unit]
> > > After=dbus.service ssh-agent.service
> > > Wants=dbus.service ssh-agent.service
> > > [Install]
> > > WantedBy=
> > > WantedBy=graphical-session-pre.target
> >
> > After some investigations :
> [...]
> > In the sourced snippets is /etc/X11/Xsession.d/90x11-common_ssh-agent
> >
> > The effect is that if /etc/Xsession.options sets use-ssh-agent, it
> > starts plasma with the ssh-agent startplasmax11 command. Thus, systemd
> > is given the SSH_AUTH_SOCK variable (and the sock is at a random place
> > under /tmp)
>
> I have had a look into startplasma sources. It pushes environment to systemd
> *before* initiating plasma-workspace-x11.target. (My additional interest was
> the following: If some variable is set in both ~/.profile and environment.d,
> what value wins?)
>
> > Setting no-use-ssh-agent in /etc/X11/Xsession.option is a no go : it
> > is also tested by ssh-agent.service
>
> It seems /usr/lib/openssh/agent-launch checks /etc/X11/Xsession.options, but
> not /etc/X11/Xsession.options.d. However it would be a rather fragile hack.
>
> > Only solutions I see would imply modifying
> > /etc/X11/Xsession.d/90x11-common_ssh-agent, but is it a configuration
> > file ?
>
> Ask "dpkg -s PKG" or dpkg-query with some options.
>
> Do you really need emacs as a part of default.target and
> graphical-session.target is too late for you? The override for
> emacs.service, I posted earlier, should work otherwise.
>
> As an alternative I would consider configuring either ssh-agent.service or a
> dedicated unit to execute in addition 'emacsclient --eval "(putenv ...)"'.
> See emacsclient-mailto.desktop how escape argument for Emacs-28.
The after/wants does not work (starnge since ssh-agent.service seems
to see the SSH_AUTH_SOCK variable.
But /etc/X11/Xsession.d/90x11-common_ssh-agent is a configuration file
and we can add SSHARGS. I added a
SSHARGS="-a $XDG_RUNTIME_DIR/ssh-agent"
Then I added an override to emacs.service
Environment=SSH_AUTH_SOCK=%t/ssh-agent
And it works
--
Erwan David
Reply to: