Niri Obs

2026-10-15 · Hirycptp

前言

最近从hyprland切到了niri,由于portal后端并不会自动配置导致obs的屏幕采集一直是黑屏,本文将阐述在Arch Linux中配置niri下obs的全流程。 本文选用屏幕采集方面比较成熟的gnome后端(同时比较省电)

1) 装包

安装obs包和portal前后端

sudo pacman -S --needed obs-studio xdg-desktop-portal xdg-desktop-portal-gnome xdg-desktop-portal-gtk

2) 指定后端

mkdir -p ~/.config/xdg-desktop-portal
cat > ~/.config/xdg-desktop-portal/portals.conf <<'EOF'
[preferred]
default=gnome
org.freedesktop.impl.portal.ScreenCast=gnome
org.freedesktop.impl.portal.Screenshot=gnome
EOF

3) 让 portal 以 GNOME 身份读配置

mkdir -p ~/.config/systemd/user/xdg-desktop-portal.service.d
printf '[Service]\nEnvironment="XDG_CURRENT_DESKTOP=GNOME"\n' \
  > ~/.config/systemd/user/xdg-desktop-portal.service.d/override.conf
systemctl --user daemon-reload

4) 按序重启服务

注意pipewire要先于portal

systemctl --user stop xdg-desktop-portal xdg-desktop-portal-gnome xdg-desktop-portal-gtk 2>/dev/null
systemctl --user restart pipewire pipewire-pulse wireplumber; sleep 2
systemctl --user start xdg-desktop-portal

需要注意的是尽量不要让flatpak和yay的obs在某一刻同时存在,可能会导致一些奇奇妙妙小问题从而需要重新配置

写在最后

尽管obs可以正常使用,但可能一些常见的屏幕共享软件仍然无法使用,特别是腾讯会议wemeet和飞书的会议共享,它们使用的是SHM(共享内存形式的屏幕共享),在niri 26.04-1版本还未支持。目前上游 PR #1791已解决此问题但尚未合并,可以等待下个大版本的适配。当然aur现在也有补丁,可以通过yay -S niri-shm-sharing进行安装。

Comments