1
0
Fork 0
mirror of https://github.com/nix-community/home-manager.git synced 2025-11-08 19:46:05 +01:00

pianobar: add module to create config file (#7734)

Configuration entry similar to;

```nix
    programs.pianobar = {
      enable = true;
      user = "groovy-tunes@example.com";
      password_command = "cat /run/secrets/pianobar/groovy-tunes";
    };
```

... will produce a `~/.config/pianobar/config` file with content of;

```conf
user = groovy-tunes@example.com
password_command = cat /run/secrets/pianobar/groovy-tunes
```

...  and add `pianobar` to `home.packages` list.

All configurations that `man pianobar` documents _should_ available via
`extraOptions` attribute.

License, according to `NixOS/nixpkgs` is MIT, and that seems to match
what's shown on `PromyLOPh/pianobar` repo too;

- d92bfd5feb/pkgs/by-name/pi/pianobar/package.nix (L42o)
- https://github.com/PromyLOPh/pianobar/?tab=License-1-ov-file#readme
This commit is contained in:
S0AndS0 2025-09-10 03:43:46 +00:00 committed by GitHub
parent ede1f891c0
commit a60021a8c9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 204 additions and 0 deletions

View file

@ -0,0 +1,4 @@
{
pianobar-minimally-required-configs = ./minimally-required-configs.nix;
pianobar-extra-settings = ./extra-settings.nix;
}

View file

@ -0,0 +1,29 @@
act_help=h
act_history=?
at_icon=@
audio_pipe=/path/to/fifo
audio_quality=low
autoselect={1,0}
autostart_station=123456
bind_to={if!tunX,host!127.0.0.1}
buffer_seconds=5
ca_bundle=/etc/ssl/certs/ca-certificates.crt
control_proxy=http://user:password@host:port/
event_command=/home/user/.config/pianobar/eventcmd
fifo=/home/user/.config/pianobar/cmd
format_list_song=%i) %a - %t%r
format_msg_none=%s
gain_mul=1.0
history=5
host=tuner.pandora.com
love_icon=<3
max_retry=3
password_command=cat /run/secrets/pianobar/groovy-tunes
proxy=http://user:password@host:port/
sample_rate=0
sort={name_az, name_za, quickmix_01_name_az, quickmix_01_name_za, quickmix_10_name_az, quickmix_10_name_za}
timeout=30
tired_icon=zZ
tls_port=443
user=groovy-tunes@example.com
volume=30

View file

@ -0,0 +1,42 @@
{
programs.pianobar = {
enable = true;
settings = {
act_help = "h";
act_history = "?";
at_icon = "@";
audio_pipe = "/path/to/fifo";
audio_quality = "low";
autoselect = "{1,0}";
autostart_station = "123456";
bind_to = "{if!tunX,host!127.0.0.1}";
buffer_seconds = "5";
ca_bundle = "/etc/ssl/certs/ca-certificates.crt";
control_proxy = "http://user:password@host:port/";
event_command = "/home/user/.config/pianobar/eventcmd";
fifo = "/home/user/.config/pianobar/cmd";
format_list_song = "%i) %a - %t%r";
format_msg_none = "%s";
gain_mul = "1.0";
history = "5";
host = "tuner.pandora.com";
love_icon = "<3";
max_retry = "3";
password_command = "cat /run/secrets/pianobar/groovy-tunes";
proxy = "http://user:password@host:port/";
sample_rate = "0";
sort = "{name_az, name_za, quickmix_01_name_az, quickmix_01_name_za, quickmix_10_name_az, quickmix_10_name_za}";
timeout = "30";
tired_icon = "zZ";
tls_port = "443";
user = "groovy-tunes@example.com";
volume = "30";
};
};
nmt.script = ''
assertFileExists home-files/.config/pianobar/config
assertFileContent home-files/.config/pianobar/config \
${./extra-settings.conf}
'';
}

View file

@ -0,0 +1,2 @@
password_command=cat /run/secrets/pianobar/groovy-tunes
user=groovy-tunes@example.com

View file

@ -0,0 +1,15 @@
{
programs.pianobar = {
enable = true;
settings = {
password_command = "cat /run/secrets/pianobar/groovy-tunes";
user = "groovy-tunes@example.com";
};
};
nmt.script = ''
assertFileExists home-files/.config/pianobar/config
assertFileContent home-files/.config/pianobar/config \
${./minimally-required-configs.conf}
'';
}