{
  lib,
  pkgs,
  ...
}: let
  xmobarGhc = pkgs.haskellPackages.ghcWithPackages (pkgs:
    with pkgs; [
      xmobar
      statgrab
    ]);
in {
  home = {
    packages = [xmobarGhc];
    file."xmobar.hs" = rec {
      source = ./xmobar.hs;
      target = ".config/xmobar/xmobar.hs";
      onChange = ''
        ${xmobarGhc}/bin/ghc -threaded ${target}
        ${pkgs.busybox}/bin/pkill xmobar
        ${pkgs.haskellPackages.xmonad}/bin/xmonad --restart
      '';
    };
  };
  programs.xmobar = {
    enable = true;
  };
}
