This commit is contained in:
2026-02-22 16:46:50 +00:00
parent 598306c57e
commit 79c70eea54

View File

@@ -24,31 +24,50 @@
}; };
}; };
systemd.user.services = systemd.user.services =
lib.mkIf settings.virtual_audio_devices { let
mergedSet = lib.mergeAttrsList [
(
let
set = lib.mkIf settings.virtual_audio_devices {
pw-discordaudio-virtual-device = { pw-discordaudio-virtual-device = {
Unit = {
Description = "OBS daemon";
After = [ "hyprland-session.target" ];
};
Install = { Install = {
WantedBy = [ "hyprland-session.target" ]; WantedBy = [ "hyprland-session.target" ];
}; };
Service = { Service = {
ExecStart = "${pkgs.writeShellScript "discord_audio_virt_device" '' ExecStart = "${pkgs.writeShellScript "discord_audio_virt_device" ''
#!/run/current-system/sw/bin/bash
pw-loopback -m '[ FL FR]' --capture-props='media.class=Audio/Sink node.name=DiscordSink' -n DiscordSink pw-loopback -m '[ FL FR]' --capture-props='media.class=Audio/Sink node.name=DiscordSink' -n DiscordSink
''}"; ''}";
Restart = "on-failure";
RestartSec = "5s";
}; };
}; };
pw-gameaudio-virtual-device = { pw-gameaudio-virtual-device = {
Unit = {
Description = "OBS daemon";
After = [ "hyprland-session.target" ];
};
Install = { Install = {
WantedBy = [ "hyprland-session.target" ]; WantedBy = [ "hyprland-session.target" ];
}; };
Service = { Service = {
ExecStart = "${pkgs.writeShellScript "game_audio_virt_device" '' ExecStart = "${pkgs.writeShellScript "game_audio_virt_device" ''
#!/run/current-system/sw/bin/bash
pw-loopback -m '[ FL FR]' --capture-props='media.class=Audio/Sink node.name=GameAudioSink' -n GameAudioSink pw-loopback -m '[ FL FR]' --capture-props='media.class=Audio/Sink node.name=GameAudioSink' -n GameAudioSink
''}"; ''}";
Restart = "on-failure";
RestartSec = "5s";
}; };
}; };
} };
// pkgs.lib.mkIf settings.autostart { in
set
)
(
let
set = lib.mkIf settings.autostart {
obs-autostart = { obs-autostart = {
Unit = { Unit = {
Description = "OBS daemon"; Description = "OBS daemon";
@@ -65,6 +84,12 @@
}; };
}; };
}; };
in
set
)
];
in
mergedSet;
}; };
}; };
} }