问题
您好,我对 FreeBSD 完全陌生,而且对 UNIX 系统也比较陌生。我正在阅读 FreeBSD 手册,并且到目前为止我很喜欢它。我的目标是在 Wayland 上安装河流平铺窗口管理器。我遇到了一个问题,根据我在手册中读到的内容,我相信这会出现在任何其他 Wayland 合成器也是如此。 简而言之,问题在于XDG_RUNTIME_DIR
无效/不被认可。
附加信息和我采取的步骤
硬件:
- 联想 Thinkpad T480s
- 第八代英特尔酷睿 i7
- 超高清显卡 620
- 24 GB 内存
软件:
- FreeBSD 13.1 发布
- 韦兰1.21.0
- River 0.2.4(从最新端口分支作为二进制文件安装)
到目前为止我按照以下步骤采取的步骤手册中有关 Wayland 的部分:
- 将用户添加到视频组:
# pw groupmod video -m myUsername
- 安装了 Wayland 和席位管理守护进程:
# pkg install wayland seatd
- 添加到
.shrc
:导出 XDG_RUNTIME_DIR=/var/run/user/`id -u` - 安装适当的图形驱动程序:
# pkg install drm-kmod
/etc/rc.conf
然后,通过执行以下命令 将模块添加到文件中:# sysrc kld_list+=i915kms
- 安装了合成器:
# pkg install river
- 启用并
seatd
作为系统服务运行:# sysrc seatd_enable=”YES”
# service seatd start
- 复制了posix shell 中的示例配置到:
~/.config/river/init
- 启动 Riverwm:
# river
错误
这是错误输出:
info(wlroots): [wayland] error: XDG_RUNTIME_DIR is invalid or not set in the environment
显然,问题归结为XDG_RUNTIME_DIR
不被认可。我不知道下一步该做什么。以下是手册对此的说明:
值得注意的是,大多数合成器都会在目录中搜索
XDG_RUNTIME_DIR
配置文件。在这里包含的示例中,将使用参数来指定配置文件,以~/.config
将临时文件和配置文件分开。建议为每个合成器配置一个别名来加载指定的配置文件。
然而,River 的文档说明了 River 获取配置文件的位置:
$XDG_CONFIG_HOME/river/init
启动时,如果存在可执行文件,River 将运行该可执行文件。如果$XDG_CONFIG_HOME
未设置,~/.config/river/init
将使用它。
问题
我需要创建吗XDG_RUNTIME_DIR
?尽管我在我的 中定义了它的路径.shrc
,但/var/run/user
它在我的系统上并不存在。如果我需要创建它,我是否应该用特定文件填充它?显然,韦兰期待着它的开始。 River 没有报告任何错误。
任何帮助将不胜感激!我希望有人能指出我正确的方向或填补我对系统理解的空白。得到解决方案也很棒! :)
答案1
我能够从 River 的创建者和其他优秀用户那里获得帮助irc.libera.chat 上的 #river 频道。
解决方案
唯一的要求XDG_RUNTIME_DIR
是它存在并且由具有 700 权限的用户拥有。
换句话说:
- 在其中创建一个
/var/run/user/
以您的用户 ID 为名称的目录。就我而言,它是1001
( 的输出id -u
)。显然,user
如果该目录不存在,则首先创建该目录。 - 一旦
/var/run/user/yourUserId
存在,请确保您的用户是它的所有者,并且权限设置为700
(您的用户可以rwx
且其他人没有任何其他权限):# chown yourUsername /var/run/user/yourUserId
# chmod 700 /var/run/user/yourUserId
- 在 shell 的 rc 文件中添加以下内容(例如 .shrc、.bashrc):
export XDG_RUNTIME_DIR=/var/run/user/`id -u`