From 3dfed89e0be21a6880824a88719e213cfc8e164b Mon Sep 17 00:00:00 2001 From: Christoph Urlacher Date: Sat, 5 Jul 2025 18:12:03 +0200 Subject: [PATCH] Modules/Rmpc: Add rmpc module --- home/modules/default.nix | 4 +-- home/modules/rmpc/default.nix | 61 +++++++++++++++++++++++++++++++++++ home/modules/rmpc/options.nix | 9 ++++++ 3 files changed, 72 insertions(+), 2 deletions(-) create mode 100644 home/modules/rmpc/default.nix create mode 100644 home/modules/rmpc/options.nix diff --git a/home/modules/default.nix b/home/modules/default.nix index d405b26b..50e1b964 100644 --- a/home/modules/default.nix +++ b/home/modules/default.nix @@ -3,18 +3,18 @@ # Obsolete modules are kept in "1_deprecated" for reference. # My own HM modules - ./ags ./chromium ./color + ./docs ./firefox ./fish ./hyprland ./hyprpanel ./kitty - ./latex ./neovim ./nnn ./paths + ./rmpc ./rofi ./waybar ./zathura diff --git a/home/modules/rmpc/default.nix b/home/modules/rmpc/default.nix new file mode 100644 index 00000000..45209248 --- /dev/null +++ b/home/modules/rmpc/default.nix @@ -0,0 +1,61 @@ +{ + config, + nixosConfig, + lib, + mylib, + pkgs, + ... +}: let + inherit (config.modules) rmpc; +in { + options.modules.rmpc = import ./options.nix {inherit lib mylib;}; + + config = lib.mkIf rmpc.enable { + assertions = [ + { + assertion = config.services.mpd.enable; + message = "Enabling rmpc requires mpd!"; + } + ]; + + programs.rmcp.enable = true; + + home.file = { + ".config/rmpc/config.ron".text = '' + address: "127.0.0.1:${builtins.toString config.services.mpd.network.port}" + theme: "chriphost" + rewind_to_start_sec: 30 // rewind skips to start of the same track if more than 30 seconds were played + // show_playlists_in_browser: All + ''; + + ".config/rmpc/themes/chriphost.ron".text = '' + cava: ( + framerate: 60, // default 60 + autosens: true, // default true + sensitivity: 100, // default 100 + lower_cutoff_freq: 50, // not passed to cava if not provided + higher_cutoff_freq: 10000, // not passed to cava if not provided + + input: ( + method: Fifo, + source: "/tmp/mpd.fifo", + sample_rate: 44100, + channels: 2, + sample_bits: 16, + ), + + smoothing: ( + noise_reduction: 77, // default 77 + monstercat: false, // default false + waves: false, // default false + ), + + // this is a list of floating point numbers thats directly passed to cava + // they are passed in order that they are defined + eq: [] + ), + + ''; + }; + }; +} diff --git a/home/modules/rmpc/options.nix b/home/modules/rmpc/options.nix new file mode 100644 index 00000000..b1d3158e --- /dev/null +++ b/home/modules/rmpc/options.nix @@ -0,0 +1,9 @@ +{ + lib, + mylib, + ... +}: +with lib; +with mylib.modules; { + enable = mkEnableOption "rmpc"; +}