Files
nix-config-ryan4yin/hardening/tests/policy/obs-studio.nix
T
ryan4yin | 二花 c277c81cd6 feat(nixpak): sandbox six desktop apps (#497)
* feat(nixpak): sandbox six desktop apps

* chore(nixpak): trim OBS plugin set

* fix(nixpak): enable OBS on aarch64

* fix(nixpak): let imv read the full home directory

* fix(home): drop redundant freerdp package

* fix(nixpak): grant OBS access to V4L2 camera devices

* fix(nixpak): expose V4L2 sysfs to OBS

* fix(nixpak): expose NVIDIA encode library to OBS

* docs(nixpak): record OBS interactive validation

* docs(nixpak): record OBS RTMP validation

* fix(nixpak): run MuseScore via XWayland and PulseAudio

* docs(nixpak): explain app sandboxing rationale

* fix(nixpak): route MuseScore ALSA through PipeWire
2026-11-01 01:24:47 -05:00

35 lines
818 B
Nix

{
lib,
load,
mkAppPolicy,
...
}:
let
app = load "obs-studio";
in
mkAppPolicy "obs-studio" {
network = "pasta";
media = true;
pulse = true;
x11 = true;
allowedVideoDevices = [
"/dev/video0"
"/dev/video1"
];
notifications = true;
tray = true;
extraChecks = {
fileChooser = app.portalGroups.fileChooser;
screenCast = app.portalGroups.screenCast;
camera = app.portalGroups.camera;
inhibit = app.portalGroups.inhibit;
accessibility = app.desktopIntegration.accessibility;
videoDevices = lib.all (dev: lib.elem dev app.bubblewrap.bind.dev) [
"/dev/video0"
"/dev/video1"
];
video4linuxSysfs = lib.elem "/sys/class/video4linux" app.bubblewrap.bind.ro;
nvencLibraryPath = app.bubblewrap.env.LD_LIBRARY_PATH == "/run/opengl-driver/lib";
};
}