nix-config/home/ncmpcpp.nix
Donovan Glover f32213f896
mpd: Fix audio output being incorrectly detected as alsa
This fixes an issue where previously one would have to pause and play
audio tracks in order for them to play properly.

Upstream issue: https://github.com/MusicPlayerDaemon/MPD/issues/1649
2024-07-22 20:54:58 -04:00

70 lines
2.2 KiB
Nix

{ pkgs, config, ... }:
let
inherit (pkgs) mpc-cli;
inherit (config.xdg.userDirs) music;
musicDirectory = music;
in
{
home.packages = [ mpc-cli ];
services.mpd = {
enable = true;
inherit musicDirectory;
extraConfig = ''
audio_output {
type "pipewire"
name "PipeWire Sound Server"
}
auto_update "yes"
'';
};
programs.ncmpcpp = {
enable = true;
bindings = [
{ key = "mouse"; command = "dummy"; }
{ key = "h"; command = [ "previous_column" "jump_to_parent_directory" ]; }
{ key = "j"; command = "scroll_down"; }
{ key = "k"; command = "scroll_up"; }
{ key = "l"; command = [ "next_column" "enter_directory" "play_item" ]; }
{ key = "H"; command = [ "select_item" "scroll_down" ]; }
{ key = "J"; command = [ "move_sort_order_down" "move_selected_items_down" ]; }
{ key = "K"; command = [ "move_sort_order_up" "move_selected_items_up" ]; }
{ key = "L"; command = [ "select_item" "scroll_up" ]; }
{ key = "'"; command = "remove_selection"; }
{ key = "ctrl-u"; command = "page_up"; }
{ key = "ctrl-d"; command = "page_down"; }
{ key = "u"; command = "page_up"; }
{ key = "d"; command = "page_down"; }
{ key = "n"; command = "next_found_item"; }
{ key = "N"; command = "previous_found_item"; }
{ key = "t"; command = "next_screen"; }
{ key = "g"; command = "move_home"; }
{ key = "G"; command = "move_end"; }
{ key = "w"; command = "next"; }
{ key = "b"; command = "previous"; }
{ key = ";"; command = "seek_forward"; }
{ key = ","; command = "seek_backward"; }
{ key = "f"; command = "apply_filter"; }
{ key = "i"; command = "select_item"; }
{ key = "x"; command = [ "delete_playlist_items" "delete_browser_items" "delete_stored_playlist" ]; }
{ key = "U"; command = "update_database"; }
{ key = "m"; command = "add_random_items"; }
];
settings = {
ncmpcpp_directory = "~/.config/ncmpcpp";
user_interface = "alternative";
autocenter_mode = "yes";
allow_for_physical_item_deletion = "no";
mouse_support = "no";
mpd_crossfade_time = 3;
};
};
}