Compare commits

...

3 Commits

Author SHA1 Message Date
f9541ba01b (wip) Run kodi in gamescope 2024-10-21 12:53:32 -07:00
b9097e91d5 [spotifyd] Update to lean in on pulseaudio 2024-10-21 12:31:36 -07:00
abf8fe9ad2 [audio] Switch to pulseaudio
This is an attempt to get spotifyd running as a system user working
2024-10-21 12:31:36 -07:00
4 changed files with 32 additions and 9 deletions

View File

@@ -19,6 +19,10 @@ with lib;
autologin = true; autologin = true;
wayland = true; wayland = true;
}; };
spotifyd = {
enable = true;
deviceType = "t_v";
};
users.enable = true; users.enable = true;
}; };

View File

@@ -13,16 +13,15 @@ in
config = mkIf cfg.enable config = mkIf cfg.enable
{ {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
alsa-utils
paprefs paprefs
pavucontrol pavucontrol
pulsemixer pulsemixer
]; ];
services.pipewire = { hardware.pulseaudio.enable = true;
enable = true;
pulse.enable = true;
};
hardware.pulseaudio.package = pkgs.pulseaudioFull; hardware.pulseaudio.package = pkgs.pulseaudioFull;
hardware.pulseaudio.support32Bit = true;
hardware.pulseaudio.extraConfig = " hardware.pulseaudio.extraConfig = "
load-module module-combine-sink load-module module-combine-sink
load-module module-switch-on-connect load-module module-switch-on-connect

View File

@@ -38,7 +38,18 @@ in
(mkIf cfg.wayland { (mkIf cfg.wayland {
cage = mkIf cfg.wayland { cage = mkIf cfg.wayland {
user = "kodi"; user = "kodi";
program = "${kodiPkg}/bin/kodi-standalone"; #program = "gamescope -f --hdr-enabled ${kodiPkg}/bin/kodi-standalone";
program =
let
kodiGamescope = pkgs.writeShellApplication {
name = "kodi-gamescope";
runtimeInputs = [ kodiPkg pkgs.gamescope ];
text = ''
${pkgs.gamescope}/bin/gamescope --hdr-enabled -f -- ${kodiPkg}/bin/kodi-standalone
'';
};
in
"${lib.getExe kodiGamescope}";
enable = true; enable = true;
}; };
xserver = { xserver = {

View File

@@ -8,29 +8,38 @@ in
{ {
options.roles.spotifyd = { options.roles.spotifyd = {
enable = mkEnableOption "Enable the spotifyd role"; enable = mkEnableOption "Enable the spotifyd role";
deviceType = mkOption {
default = "computer";
};
}; };
config = mkIf cfg.enable config = mkIf cfg.enable
{ {
roles.audio.enable = true; roles.audio.enable = true;
hardware.pulseaudio.enable = true;
hardware.pulseaudio.extraConfig = ''
unload-module module-native-protocol-unix
load-module module-native-protocol-unix auth-anonymous=1
'';
hardware.pulseaudio.systemWide = true;
services.spotifyd = { services.spotifyd = {
enable = true; enable = true;
settings = { settings = {
global = { global = {
use_mpris = false; use_mpris = false;
backend = "alsa"; backend = "pulseaudio";
device = "sysdefault";
bitrate = 320; bitrate = 320;
cache_path = ""; cache_path = "";
zeroconf_port = 1234; zeroconf_port = 5354;
autoplay = false; autoplay = false;
device_type = cfg.deviceType;
}; };
}; };
}; };
networking.firewall.allowedTCPPorts = [ networking.firewall.allowedTCPPorts = [
1234 5354
57621 57621
]; ];
networking.firewall.allowedUDPPorts = [ networking.firewall.allowedUDPPorts = [