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进行安装。