125 lines
2.7 KiB
Nix
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)";
|
|
}
|
|
];
|
|
}
|
|
];
|
|
}
|
|
];
|
|
};
|
|
}
|