{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)"; } ]; } ]; } ]; }; }