Files
nix-config-ryan4yin/hardening/nixpaks/modules/mpv-policy.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
835 B
Nix

# mpv policy: media directories are read-only, playback state and user config
# remain writable, and MPRIS is the only desktop service it owns.
{
sloth,
...
}:
{
imports = [
./desktop-base.nix
./network.nix
];
pasta.mode = "isolate";
portalGroups = {
fileChooser = true;
openUri = true;
};
desktopIntegration.mpris = true;
bubblewrap = {
sockets.pulse = true;
bind.rw = [
(sloth.mkdir (sloth.concat' sloth.homeDir "/.config/mpv"))
(sloth.mkdir (sloth.concat' sloth.homeDir "/.cache/mpv"))
(sloth.mkdir (sloth.concat' sloth.homeDir "/.local/state/mpv"))
];
bind.ro = [
sloth.xdgDocumentsDir
sloth.xdgDownloadDir
sloth.xdgMusicDir
sloth.xdgPicturesDir
sloth.xdgVideosDir
(sloth.concat' sloth.homeDir "/.config/yt-dlp")
];
};
}