linux Wayland显示多用户

linux Wayland显示多用户,linux,archlinux,wayland,Linux,Archlinux,Wayland,我使用sway合成器 当我在控制台中更改用户时,我无法显示wayland图形界面(它与X应用程序一起工作) 我设置它:(从其他用户处获取) 在主用户界面中: $ ls -l /run/user/1000 total 0 srw-rw-rw- 1 edupin edupin 0 Jan 23 08:14 bus drwx------ 2 edupin edupin 60 Jan 26 13:25 dconf dr-x------ 2 edupin edupin 0 Jan 23 08:1

我使用sway合成器

当我在控制台中更改用户时,我无法显示wayland图形界面(它与X应用程序一起工作)

我设置它:(从其他用户处获取)

在主用户界面中:

$ ls -l /run/user/1000
total 0
srw-rw-rw- 1 edupin edupin   0 Jan 23 08:14 bus
drwx------ 2 edupin edupin  60 Jan 26 13:25 dconf
dr-x------ 2 edupin edupin   0 Jan 23 08:15 gvfs
drwx------ 2 edupin edupin  80 Jan 26 14:31 pulse
srwxr-xr-x 1 edupin edupin   0 Jan 23 08:14 sway-ipc.1000.645.sock
drwxr-xr-x 3 edupin edupin 100 Jan 23 08:14 systemd
srwxr-xr-x 1 edupin edupin   0 Jan 23 08:14 wayland-0
-rw-r----- 1 edupin edupin   0 Jan 23 08:14 wayland-0.lock
我有:

当我呼叫时,wayland连接失败:

wl_display_connect(nullptr);

谢谢

这是一个正确的问题。其他用户无法访问路径/run/user/XXX,则其他用户无法访问“其他”权限的wayland socker事件并获取该点

解决方案(方式不好但速度快)(用用户ID替换XXX):

在运行sway的用户上:

chmod -R 777 /run/user/XXXX
在第二个用户上:

export XDG_RUNTIME_DIR=/run/user/XXXX

另一种方式(更好,但也不是很好)

设置“用户”组中的所有用户

在提供wayland合成器edit“.bashrc”的用户中:

在所有其他用户编辑“.bashrc”中:


如果希望所有应用程序默认启动wayland中的所有后端:

# force all generic backend to use wayland backend
export GDK_BACKEND=wayland
export QT_QPA_PLATFORM=wayland-egl
export CLUTTER_BACKEND=wayland
export SDL_VIDEODRIVER=wayland
export EWOL_BACKEND=wayland

嗨,我跟不上了。有几件事我不明白,你说的有影响力的用户是什么意思?这是您当前登录的用户帐户吗?另外,将XXX替换为用户ID。那是哪个用户?XXX代表用户ID,您首先创建的是1000(取决于安装情况。要获取用户ID,只需在控制台上写上“ID”),XXX在两种情况下是相同的,这是运行wayland服务的用户的ID。
chmod -R 777 /run/user/XXXX
export XDG_RUNTIME_DIR=/run/user/XXXX
# specify a path to create the wayland IO and force it to be readable for each user in group "users"
export XDG_RUNTIME_DIR=/tmp/wayland
export WAYLAND_DISPLAY=wayland-0
# create default directory
mkdir -p $XDG_RUNTIME_DIR
chgrp users $XDG_RUNTIME_DIR
chmod g+rwx $XDG_RUNTIME_DIR
# at the first run of the terminal ==> the other user have acces on it (many time use terminal to change user)
chgrp users $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY
chmod g+rwx $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY
export XDG_RUNTIME_DIR=/tmp/wayland
export WAYLAND_DISPLAY=wayland-0
# force all generic backend to use wayland backend
export GDK_BACKEND=wayland
export QT_QPA_PLATFORM=wayland-egl
export CLUTTER_BACKEND=wayland
export SDL_VIDEODRIVER=wayland
export EWOL_BACKEND=wayland