{ config, pkgs, machineVars, ... }: let
inherit (pkgs) lib;
in {
programs.xmobar = let
networkCard = "wlp2s0f0u7u4";
# TODO: loop over dataDrives
disks = [
"/"
"${machineVars.dataDrives.default}"
"${machineVars.dataDrives.default}/disks/data2"
];
mpd_status_script = pkgs.writeShellScript "mpd-status" ''
MPD_STATUS=$(${pkgs.mpc-cli}/bin/mpc 2>/dev/null | sed -n '2{p;q}' | cut -d ' ' -f1)
case "$MPD_STATUS" in
"[playing]")
echo "▶"
# echo "[行]"
exit 0
;;
"[paused]")
echo "⏸"
# echo "[止]"
exit 0
;;
*)
echo "⏼"
# echo "[無]"
exit 0
;;
esac
'';
in {
enable = true;
extraConfig = ''
Config {
font = "xft:Fira Code Retina:pixelsize=15:antialias=true:hinting=true"
, additionalFonts = [
"xft:Droid Sans Japanese:pixelsize=20:antialias=true:hinting=true",
"xft:Symbola:pixelsize=20",
"xft:Asana Math:pixelsize=20",
"xft:Noto Sans Symbols2",
"xft:FiraCode Nerd Font"
]
, borderColor = "black"
, border = TopB
, bgColor = "${config.colors.defaultColorSet.background}"
, fgColor = "grey"
, alpha = 255
, position = Static { xpos = 0 , ypos = 0, width = 1920, height = 40 }
, textOffset = -1
, iconOffset = -1
, lowerOnStart = True
, pickBroadest = False
, persistent = False
, hideOnStart = False
, allDesktops = True
, overrideRedirect = True
, commands = [
Run Network "${networkCard}"
[
"-t", "↓ ↑",
"-L","0",
"-H","32",
"--normal","green",
"--high","red"
] 10,
Run Memory ["-t","%"] 10,
Run Swap ["-t", "%"] 100,
Run Date "%a %_d %b - %H:%M - W%W" "date" 10,
Run Com "${mpd_status_script}" [] "mpc" 10,
-- Run Com "${./scripts/wireless.sh}" [] "wi" 100,
Run Com "${./scripts/volume.py}" [] "vol" 10,
Run UnsafeStdinReader,
Run DiskU [
${ lib.concatStringsSep ",\n" (map (d: ''("${d}", "[/]")'') disks) }
]
["-L", "20", "-H", "50", "-m", "1", "-p", "3",
"--low", "#a6e22e",
"--normal", "#f8f8f2",
"--high", "#f92672"] 20,
Run Battery
[
"-t", " (%)",
"--Low", "20",
"--High", "50",
"--low", "red",
"--normal", "yellow",
"--high", "green",
"--",
"-O", "🔌",
"-i", "🔌",
"-o", "🔋"
] 50
]
, sepChar = "%"
, alignSep = "}{"
, template = " %mpc% %UnsafeStdinReader% }\
\ %date% \
\{ %disku% | 🐏 %memory% | %${networkCard}% | %vol% "
}
'';
};
}