Files
nix/home/modules/music/default.nix
T
hektor 178a51d75e
check / lint (push) Successful in 15s
refactor(ncspot): nixify configuration
2026-09-28 21:03:34 +02:00

83 lines
2.0 KiB
Nix

{
config,
lib,
pkgs,
osConfig ? null,
...
}:
let
cfg = config.music;
spotifyWithWayland = pkgs.symlinkJoin {
name = "spotify";
paths = [ pkgs.spotify ];
buildInputs = [ pkgs.makeWrapper ];
postBuild = ''
wrapProgram $out/bin/spotify \
--add-flags "--enable-features=UseOzonePlatform --ozone-platform=wayland"
'';
};
in
{
options.music.enable = lib.mkEnableOption "music";
config = lib.mkIf cfg.enable {
home.packages = [ spotifyWithWayland ];
programs.ncspot = {
enable = true;
settings = {
backend = lib.mkIf (osConfig.audio.enable or false) (lib.mkDefault "pulseaudio");
default_keybindings = false;
flip_status_indicators = true;
library_tabs = [
"tracks"
"albums"
"artists"
"playlists"
"browse"
]; # remove podcasts tab
keybindings = {
"Enter" = "play";
" " = "playpause";
"S" = "stop";
"<" = "seek -10000";
">" = "seek +10000";
"H" = "previous";
"L" = "next";
"r" = "repeat";
"z" = "shuffle";
"d" = "delete";
"s" = "save";
"O" = "open current";
"o" = "open selected";
"Backspace" = "back";
"A" = "goto artist";
"a" = "goto album";
"q" = "queue";
"J" = "shift down 1";
"K" = "shift up 1";
"c" = "clear";
"=" = "volup 1";
"-" = "voldown 1";
"1" = "focus queue";
"2" = "focus search";
"3" = "focus library";
"4" = "focus cover";
"h" = "move left 1";
"j" = "move down 1";
"k" = "move up 1";
"l" = "move right 1";
"g" = "move top";
"G" = "move bottom";
"t" = "sort added d";
"T" = "sort title a";
"y" = "share current";
"Y" = "share selected";
"U" = "update";
notify = "false";
};
};
};
};
}