Files
nixos-config/home/terminal/software/fum.nix
T
2026-03-31 16:53:11 +02:00

125 lines
2.7 KiB
Nix

{pkgs, ...}: let
configFile = "fum/config.jsonc";
in {
users.users.someone.packages = with pkgs; [
fum
playerctl
];
xdg.configFile."${configFile}".text = builtins.toJSON {
players = [
"zen"
"zen-browser"
"mozilla zen"
"helium"
];
debug = false;
keybinds = {
"esc;q" = "quit()";
"h" = "prev()";
"l" = "next()";
" " = "play_pause()";
"-" = "volume(-5)";
"+" = "volume(+5)";
"left" = "backward(2500)";
"right" = "forward(2500)";
};
width = 60;
height = 8;
direction = "horizontal";
layout = [
{
type = "cover-art";
width = 20;
height = 20;
}
{
type = "empty";
size = 4;
}
{
type = "container";
direction = "vertical";
children = [
{
type = "label";
text = "󰝚 $title";
fg = "blue";
}
{
type = "label";
text = "󰠃 $artists";
fg = "gray";
}
{
type = "label";
text = " $album";
fg = "gray";
}
{
type = "container";
children = [];
}
{
type = "container";
height = 1;
align = "center";
flex = "center";
children = [
{
type = "button";
text = "󰒮";
action = "prev()";
}
{
type = "empty";
size = 3;
}
{
type = "button";
text = "$status-icon";
action = "play_pause()";
}
{
type = "empty";
size = 3;
}
{
type = "button";
text = "󰒭";
action = "next()";
}
];
}
{
type = "progress";
progress = {
char = "━";
fg = "magenta";
};
empty = {
char = "─";
};
}
{
type = "container";
flex = "space-between";
height = 1;
children = [
{
type = "button";
text = "$position";
}
{
type = "button";
text = "var($len-style, $length)";
action = "toggle($len-style, $length, $remaining-length)";
}
];
}
];
}
];
};
}