Hello Alessandro,
Consolekit doesn't handle the /run/user stuff quite well.
XDG_RUNTIME_DIR isn't being populated and the user folder not
initialized. A workaround I came up with, to make sure XDG_RUNTIME_DIR
is always populated, is to insert the following lines in
your .xsessionrc:
if [ ! -d "$XDG_RUNTIME_DIR" ] && [ -d "/run/user/$(id -u)/" ]; then
export XDG_RUNTIME_DIR="/run/user/$(id -u)/"
fi
If XDG_RUNTIME_DIR is populated but the folder doesn't exists, then
follow Gregory's indications.
Cheers,
Ludovic
On Tue, 10 Nov 2020 13:41:25 +0100
Alessandro Vesely via Dng <dng@???> wrote:
> Hi all,
>
> I create a terminal window for a different user using a script like
> so: #! /bin/bash
> #
> # Extract auth of current user and run x-terminal-emulator in new user
>
> printf -v altgksu 'export DISPLAY=:0; touch ~/.Xauthority; echo "%s"|
> xauth nmerge -; dbus-launch --exit-with-x11 x-terminal-emulator;'
> "$(xauth nextract - $DISPLAY)" su -l -c "$altgksu" $1
>
>
> When $1 is not root, I get errors from, e.g., geany, when it tries to
> create a "uim" subdirectory:
>
> stat("/run/user/111/uim", 0x7ffee78a9180) = -1 ENOENT (No such file
> or directory) mkdir("/run/user/111/uim", 0700) = -1 ENOENT (No
> such file or directory) write(2, "uim_helper_get_pathname()
> failed"..., 33) = 33
>
> There is no folder 111 in /run/user. Should I create it in the above
> script? But then, who created /run/user/0?
>
>
> Best
> Ale