mirror of
https://github.com/nix-community/home-manager.git
synced 2025-11-08 19:46:05 +01:00
rmpc: add module (#6910)
This commit is contained in:
parent
ef47f36450
commit
50bb714a82
6 changed files with 107 additions and 0 deletions
|
|
@ -237,6 +237,7 @@ let
|
|||
./programs/rio.nix
|
||||
./programs/ripgrep.nix
|
||||
./programs/ripgrep-all.nix
|
||||
./programs/rmpc.nix
|
||||
./programs/rofi-pass.nix
|
||||
./programs/rofi.nix
|
||||
./programs/rtorrent.nix
|
||||
|
|
|
|||
59
modules/programs/rmpc.nix
Normal file
59
modules/programs/rmpc.nix
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (lib)
|
||||
mkIf
|
||||
mkEnableOption
|
||||
mkPackageOption
|
||||
mkOption
|
||||
types
|
||||
;
|
||||
|
||||
cfg = config.programs.rmpc;
|
||||
in
|
||||
{
|
||||
meta.maintainers = with lib.hm.maintainers; [ aguirre-matteo ];
|
||||
|
||||
options.programs.rmpc = {
|
||||
enable = mkEnableOption "rmpc";
|
||||
package = mkPackageOption pkgs "rmpc" { nullable = true; };
|
||||
config = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
example = ''
|
||||
(
|
||||
address: "127.0.0.1:6600",
|
||||
password: None,
|
||||
theme: None,
|
||||
cache_dir: None,
|
||||
on_song_change: None,
|
||||
volume_step: 5,
|
||||
max_fps: 30,
|
||||
scrolloff: 0,
|
||||
wrap_navigation: false,
|
||||
enable_mouse: true,
|
||||
enable_config_hot_reload: true,
|
||||
status_update_interval_ms: 1000,
|
||||
select_current_song_on_change: false,
|
||||
browser_song_sort: [Disc, Track, Artist, Title],
|
||||
)
|
||||
'';
|
||||
description = ''
|
||||
Configuration settings for rmpc in the Rusty Object Notation
|
||||
format. All available options can be found in the official
|
||||
documentation at <https://mierak.github.io/rmpc/next/configuration/>.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home.packages = mkIf (cfg.package != null) [ cfg.package ];
|
||||
xdg.configFile = mkIf (cfg.config != "") {
|
||||
"rmpc/config.ron".text = cfg.config;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -277,6 +277,7 @@ import nmtSrc {
|
|||
./modules/programs/rio
|
||||
./modules/programs/ripgrep
|
||||
./modules/programs/ripgrep-all
|
||||
./modules/programs/rmpc
|
||||
./modules/programs/ruff
|
||||
./modules/programs/sagemath
|
||||
./modules/programs/sapling
|
||||
|
|
|
|||
1
tests/modules/programs/rmpc/default.nix
Normal file
1
tests/modules/programs/rmpc/default.nix
Normal file
|
|
@ -0,0 +1 @@
|
|||
{ rmpc-example-config = ./example-config.nix; }
|
||||
29
tests/modules/programs/rmpc/example-config.nix
Normal file
29
tests/modules/programs/rmpc/example-config.nix
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
{
|
||||
programs.rmpc = {
|
||||
enable = true;
|
||||
config = ''
|
||||
(
|
||||
address: "127.0.0.1:6600",
|
||||
password: None,
|
||||
theme: None,
|
||||
cache_dir: None,
|
||||
on_song_change: None,
|
||||
volume_step: 5,
|
||||
max_fps: 30,
|
||||
scrolloff: 0,
|
||||
wrap_navigation: false,
|
||||
enable_mouse: true,
|
||||
enable_config_hot_reload: true,
|
||||
status_update_interval_ms: 1000,
|
||||
select_current_song_on_change: false,
|
||||
browser_song_sort: [Disc, Track, Artist, Title],
|
||||
)
|
||||
'';
|
||||
};
|
||||
|
||||
nmt.script = ''
|
||||
assertFileExists home-files/.config/rmpc/config.ron
|
||||
assertFileContent home-files/.config/rmpc/config.ron \
|
||||
${./example-config.ron}
|
||||
'';
|
||||
}
|
||||
16
tests/modules/programs/rmpc/example-config.ron
Normal file
16
tests/modules/programs/rmpc/example-config.ron
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
(
|
||||
address: "127.0.0.1:6600",
|
||||
password: None,
|
||||
theme: None,
|
||||
cache_dir: None,
|
||||
on_song_change: None,
|
||||
volume_step: 5,
|
||||
max_fps: 30,
|
||||
scrolloff: 0,
|
||||
wrap_navigation: false,
|
||||
enable_mouse: true,
|
||||
enable_config_hot_reload: true,
|
||||
status_update_interval_ms: 1000,
|
||||
select_current_song_on_change: false,
|
||||
browser_song_sort: [Disc, Track, Artist, Title],
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue