From 08d9f9f645080a2b03c608eea6a08fcac8674256 Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Fri, 6 Jun 2025 14:27:16 +0530 Subject: Refactor music module --- home.nix | 3 +- modules/music.home/.gitignore | 1 - modules/music.home/default.nix | 138 ----------------------------------------- modules/music/.gitignore | 1 + modules/music/config.nix | 10 +++ modules/music/default.home.nix | 133 +++++++++++++++++++++++++++++++++++++++ 6 files changed, 145 insertions(+), 141 deletions(-) delete mode 100644 modules/music.home/.gitignore delete mode 100644 modules/music.home/default.nix create mode 100644 modules/music/.gitignore create mode 100644 modules/music/config.nix create mode 100644 modules/music/default.home.nix diff --git a/home.nix b/home.nix index 54374fb..624614e 100644 --- a/home.nix +++ b/home.nix @@ -7,9 +7,8 @@ in ./overlays-home.nix ./modules/git.home.nix ./modules/mpv.home.nix - ./modules/music.home/default.nix + ./modules/music/default.home.nix ./modules/xresources.home.nix - # ./modules/firefox.home/default.nix ./modules/newsboat.home/default.nix ./modules/email.home/default.nix ./modules/calendar.home/default.nix diff --git a/modules/music.home/.gitignore b/modules/music.home/.gitignore deleted file mode 100644 index febbc25..0000000 --- a/modules/music.home/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.private.nix diff --git a/modules/music.home/default.nix b/modules/music.home/default.nix deleted file mode 100644 index d220646..0000000 --- a/modules/music.home/default.nix +++ /dev/null @@ -1,138 +0,0 @@ -{ config, pkgs, ... }: -let - mpd = { - host = "127.0.0.1"; - port = 6600; - musicDir = "${config.home.homeDirectory}/Downloads/music"; - playlistDir = "${config.home.homeDirectory}/Downloads/music/playlist"; - }; -in -{ - home.packages = with pkgs; [ mpc_cli playerctl ]; - - services.mopidy = { - enable = true; - extensionPackages = with pkgs; [ - mopidy-mpd - mopidy-mpris - mopidy-spotify - mopidy-iris - # mopidy-ytmusic - ]; - settings = { - core = { - restore_state = true; - }; - file = { - enabled = true; - media_dirs = [ mpd.musicDir ]; - show_dotfiles = false; - }; - m3u = { - enabled = true; - playlists_dir = mpd.playlistDir; - }; - audio = { - mixer = "software"; - output = "autoaudiosink"; - }; - mpris = { - enabled = true; - bus_type = "session"; - }; - mpd = { - enabled = true; - hostname = mpd.host; - port = mpd.port; - max_connections = 20; - connection_timeout = 60; - }; - http = { - enabled = true; - hostname = "0.0.0.0"; - port = 6680; - default_app = "iris"; - }; - softwaremixer.enabled = true; - stream.enabled = true; - spotify = (import ./spotify.private.nix) // { - timeout = 20000; - bitrate = 320; - cache_size = 32 * 1024; - }; - # ytmusic = { - # enabled = true; - # oauth_json = "~/.local/share/mopidy/ytmusic-auth.json"; - # }; - }; - }; - - programs.ncmpcpp = { - enable = true; - package = pkgs.ncmpcpp; - - bindings = with builtins; let - toBinding = s: let get = elemAt s; in { key = get 0; command = get 1; }; - in - map toBinding [ - [ "h" [ "previous_column" "master_screen" "jump_to_parent_directory" ] ] - [ "l" [ "next_column" "slave_screen" "enter_directory" ] ] - [ "k" "scroll_up" ] - [ "j" "scroll_down" ] - [ "g" "page_up" ] - [ "G" "page_down" ] - [ "d" "delete_playlist_items" ] - [ "n" "next_found_item" ] - [ "N" "previous_found_item" ] - [ "P" "show_playlist_editor" ] - [ "B" "show_browser" ] - [ "s" "show_search_engine" ] - [ "S" "show_search_engine" ] - [ "8" "show_visualizer" ] - [ "ctrl-s" "save_playlist" ] - [ "c" "clear_main_playlist" ] - [ "ctrl-l" "show_lyrics" ] - ]; - - settings = { - user_interface = "alternative"; - playlist_display_mode = "columns"; - browser_display_mode = "columns"; - playlist_editor_display_mode = "classic"; - - empty_tag_color = "magenta"; - header_window_color = "magenta"; - volume_color = "cyan"; - state_line_color = "magenta"; - state_flags_color = "magenta:b"; - color1 = "white"; - color2 = "magenta"; - main_window_color = "white"; - progressbar_color = "black:b"; - progressbar_elapsed_color = "magenta:b"; - statusbar_color = "magenta"; - statusbar_time_color = "magenta:b"; - player_state_color = "magenta:b"; - alternative_ui_separator_color = "magenta"; - window_border_color = "magenta"; - active_window_border = "red"; - - progressbar_look = "=>-"; - now_playing_prefix = "$(blue)$b"; - now_playing_suffix = "$/b$(end)"; - current_item_prefix = "$(magenta)$r$b"; - current_item_suffix = "$/r$(end)$/b"; - current_item_inactive_column_prefix = "$(white)$r"; - current_item_inactive_column_suffix = "$/r$(end)"; - - media_library_primary_tag = "album_artist"; - media_library_albums_split_by_date = "no"; - startup_screen = "browser"; - ignore_leading_the = "yes"; - display_volume_level = "no"; - external_editor = "sensible-editor"; - use_console_editor = "yes"; - mouse_support = "yes"; - }; - }; -} diff --git a/modules/music/.gitignore b/modules/music/.gitignore new file mode 100644 index 0000000..febbc25 --- /dev/null +++ b/modules/music/.gitignore @@ -0,0 +1 @@ +*.private.nix diff --git a/modules/music/config.nix b/modules/music/config.nix new file mode 100644 index 0000000..3e02957 --- /dev/null +++ b/modules/music/config.nix @@ -0,0 +1,10 @@ +{ config, ... } : +{ + mopidyHttpPort = 6680; + mpd = { + host = "127.0.0.1"; + port = 6600; + musicDir = "${config.home.homeDirectory}/Downloads/music"; + playlistDir = "${config.home.homeDirectory}/Downloads/music/playlist"; + }; +} diff --git a/modules/music/default.home.nix b/modules/music/default.home.nix new file mode 100644 index 0000000..10c91bc --- /dev/null +++ b/modules/music/default.home.nix @@ -0,0 +1,133 @@ +{ config, pkgs, ... }@moduleAttrs: +let + cfg = import ./config.nix moduleAttrs; +in +{ + home.packages = with pkgs; [ mpc_cli playerctl ]; + + services.mopidy = { + enable = true; + extensionPackages = with pkgs; [ + mopidy-mpd + mopidy-mpris + mopidy-spotify + mopidy-iris + # mopidy-ytmusic + ]; + settings = { + core = { + restore_state = true; + }; + file = { + enabled = true; + media_dirs = [ cfg.mpd.musicDir ]; + show_dotfiles = false; + }; + m3u = { + enabled = true; + playlists_dir = cfg.mpd.playlistDir; + }; + audio = { + mixer = "software"; + output = "autoaudiosink"; + }; + mpris = { + enabled = true; + bus_type = "session"; + }; + mpd = { + enabled = true; + hostname = cfg.mpd.host; + port = cfg.mpd.port; + max_connections = 20; + connection_timeout = 60; + }; + http = { + enabled = true; + hostname = "0.0.0.0"; + port = cfg.mopidyHttpPort; + default_app = "iris"; + }; + softwaremixer.enabled = true; + stream.enabled = true; + spotify = (import ./spotify.private.nix) // { + timeout = 20000; + bitrate = 320; + cache_size = 32 * 1024; + }; + # ytmusic = { + # enabled = true; + # oauth_json = "~/.local/share/mopidy/ytmusic-auth.json"; + # }; + }; + }; + + programs.ncmpcpp = { + enable = true; + package = pkgs.ncmpcpp; + + bindings = with builtins; let + toBinding = s: let get = elemAt s; in { key = get 0; command = get 1; }; + in + map toBinding [ + [ "h" [ "previous_column" "master_screen" "jump_to_parent_directory" ] ] + [ "l" [ "next_column" "slave_screen" "enter_directory" ] ] + [ "k" "scroll_up" ] + [ "j" "scroll_down" ] + [ "g" "page_up" ] + [ "G" "page_down" ] + [ "d" "delete_playlist_items" ] + [ "n" "next_found_item" ] + [ "N" "previous_found_item" ] + [ "P" "show_playlist_editor" ] + [ "B" "show_browser" ] + [ "s" "show_search_engine" ] + [ "S" "show_search_engine" ] + [ "8" "show_visualizer" ] + [ "ctrl-s" "save_playlist" ] + [ "c" "clear_main_playlist" ] + [ "ctrl-l" "show_lyrics" ] + ]; + + settings = { + user_interface = "alternative"; + playlist_display_mode = "columns"; + browser_display_mode = "columns"; + playlist_editor_display_mode = "classic"; + + empty_tag_color = "magenta"; + header_window_color = "magenta"; + volume_color = "cyan"; + state_line_color = "magenta"; + state_flags_color = "magenta:b"; + color1 = "white"; + color2 = "magenta"; + main_window_color = "white"; + progressbar_color = "black:b"; + progressbar_elapsed_color = "magenta:b"; + statusbar_color = "magenta"; + statusbar_time_color = "magenta:b"; + player_state_color = "magenta:b"; + alternative_ui_separator_color = "magenta"; + window_border_color = "magenta"; + active_window_border = "red"; + + progressbar_look = "=>-"; + now_playing_prefix = "$(blue)$b"; + now_playing_suffix = "$/b$(end)"; + current_item_prefix = "$(magenta)$r$b"; + current_item_suffix = "$/r$(end)$/b"; + current_item_inactive_column_prefix = "$(white)$r"; + current_item_inactive_column_suffix = "$/r$(end)"; + + media_library_primary_tag = "album_artist"; + media_library_albums_split_by_date = "no"; + startup_screen = "browser"; + ignore_leading_the = "yes"; + display_volume_level = "no"; + external_editor = "sensible-editor"; + use_console_editor = "yes"; + mouse_support = "yes"; + }; + }; +} -- cgit v1.3.1