aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2025-05-02 16:29:33 +0530
committerAkshay Nair <phenax5@gmail.com>2025-05-02 16:29:56 +0530
commite9d92cabeed8c9f54c748cddfdc5336fa44fc5bc (patch)
tree9e3b578bc773e65d199446332dccb9baf691d8f3 /modules
parentb9b036c7eb19dce1b4a996915dcfdfda18b2c6ca (diff)
downloadnixos-config-e9d92cabeed8c9f54c748cddfdc5336fa44fc5bc.tar.gz
nixos-config-e9d92cabeed8c9f54c748cddfdc5336fa44fc5bc.zip
Switch to mopidy
Diffstat (limited to 'modules')
-rw-r--r--modules/music.home/.gitignore1
-rw-r--r--modules/music.home/default.nix (renamed from modules/music.home.nix)166
-rw-r--r--modules/xresources.home.nix2
-rw-r--r--modules/xresources/catcula.nix1
4 files changed, 84 insertions, 86 deletions
diff --git a/modules/music.home/.gitignore b/modules/music.home/.gitignore
new file mode 100644
index 0000000..febbc25
--- /dev/null
+++ b/modules/music.home/.gitignore
@@ -0,0 +1 @@
+*.private.nix
diff --git a/modules/music.home.nix b/modules/music.home/default.nix
index d320475..d220646 100644
--- a/modules/music.home.nix
+++ b/modules/music.home/default.nix
@@ -1,7 +1,5 @@
{ config, pkgs, ... }:
let
- visualizer_name = "my_fifo";
- visualizer_fifo = "/tmp/mpd.fifo";
mpd = {
host = "127.0.0.1";
port = 6600;
@@ -12,9 +10,89 @@ 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.override { visualizerSupport = 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";
@@ -55,88 +133,6 @@ in
external_editor = "sensible-editor";
use_console_editor = "yes";
mouse_support = "yes";
-
- visualizer_data_source = visualizer_fifo;
- visualizer_output_name = visualizer_name;
- visualizer_type = "spectrum";
- visualizer_in_stereo = "yes";
- visualizer_look = "●●";
- visualizer_color = "white, cyan, blue, magenta, red, red, black";
- visualizer_spectrum_smooth_look = "yes";
- visualizer_autoscale = "yes";
- visualizer_spectrum_dft_size = 3;
- };
-
- 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" ]
- ];
- };
-
- services.mpd = {
- enable = true;
- musicDirectory = mpd.musicDir;
- playlistDirectory = mpd.playlistDir;
- network = {
- listenAddress = mpd.host;
- port = mpd.port;
- };
- extraConfig = ''
- user "imsohexy"
- group "users"
- restore_paused "yes"
- metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc"
- auto_update "yes"
- auto_update_depth "5"
- follow_outside_symlinks "yes"
- follow_inside_symlinks "yes"
-
- input {
- plugin "curl"
- }
-
- audio_output {
- type "pipewire"
- name "My PipeWire Device"
- }
-
- audio_output {
- type "fifo"
- name "${visualizer_name}"
- path "${visualizer_fifo}"
- format "44100:16:2"
- }
-
- filesystem_charset "UTF-8"
- '';
- };
-
- services.mpdris2 = {
- enable = true;
- notifications = false;
- multimediaKeys = false;
- mpd = {
- host = mpd.host;
- port = mpd.port;
- musicDirectory = mpd.musicDir;
};
};
}
diff --git a/modules/xresources.home.nix b/modules/xresources.home.nix
index 20d3ce1..818db22 100644
--- a/modules/xresources.home.nix
+++ b/modules/xresources.home.nix
@@ -45,7 +45,7 @@
"dmenu.highlightselbg" = theme.accent;
"dmenu.highlightselfg" = theme.background;
- "dwm.normbordercolor" = theme.background;
+ "dwm.normbordercolor" = theme.background-light;
"dwm.normbgcolor" = theme.background;
"dwm.normfgcolor" = theme.foreground;
diff --git a/modules/xresources/catcula.nix b/modules/xresources/catcula.nix
index b2d5df3..51069da 100644
--- a/modules/xresources/catcula.nix
+++ b/modules/xresources/catcula.nix
@@ -1,5 +1,6 @@
{
background = "#0f0c19";
+ background-light = "#1a152c";
foreground = "#d8dee9";
accent = "#4e3aA3";
}