{ pkgs, config, ... }: let inherit (pkgs) lib; in { programs.xmobar = let networkCard = "wlp2s0f0u7u4"; # TODO: loop over dataDrives disks = [ "/" "${config.machineVars.dataDrives.default}" "${config.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% " } ''; }; }