diff --git a/home-manager/fred.nix b/home-manager/fred.nix index 0688adc..f95b8a3 100644 --- a/home-manager/fred.nix +++ b/home-manager/fred.nix @@ -51,6 +51,24 @@ in }; }; + # spotify-player — native librespot TUI replacing the Electron Spotify app. + # stylix's spotify-player target writes the colour theme. + # MPRIS (quickshell's media card), notifications and streaming are all on by + # default on Linux, so no settings needed here. + programs.spotify-player = lib.mkIf isDesktop { + enable = true; + }; + + # Upstream ships no .desktop file (TUI only), so the launcher can't find it. + xdg.desktopEntries.spotify-player = lib.mkIf isDesktop { + name = "Spotify Player"; + genericName = "Music Player"; + exec = "ghostty --title=spotify-player -e spotify_player"; + icon = "spotify"; + terminal = false; + categories = [ "Audio" "Music" "Player" "AudioVideo" ]; + }; + # Warm Ghostty instance — new windows attach via gtk-single-instance. systemd.user.services.ghostty-daemon = lib.mkIf isDesktop { Unit = { diff --git a/settings/quickshell.nix b/settings/quickshell.nix index 799b522..44cecb0 100644 --- a/settings/quickshell.nix +++ b/settings/quickshell.nix @@ -4684,7 +4684,7 @@ in visible: false property var currentNotif: null property bool toastOpen: false - readonly property var mutedApps: ["discord", "Discord", "Vesktop", "vesktop", "Spotify", "spotify", "vlc", "mpv"] + readonly property var mutedApps: ["discord", "Discord", "Vesktop", "vesktop", "Spotify", "spotify", "spotify_player", "spotify-player", "vlc", "mpv"] readonly property bool isPrimary: bar.screen === Quickshell.screens[0] x: Theme.barWidth