问题

问题

问题

您好,我对 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`
    

相关内容