{ lib, config, namespace, pkgs, ... }: let inherit (lib) mkIf; inherit (lib.${namespace}) mkEnableModule enabled; cfg = config.${namespace}.programs.bat; inherit (config.${namespace}) theme; in { options = mkEnableModule "programs.bat"; config = mkIf cfg.enable { programs.bat = { enable = true; extraPackages = with pkgs.bat-extras; [ batdiff batman ]; "${theme.colors.base}" = enabled; config = { style = "auto"; }; }; home.sessionVariables = lib.mkIf config.programs.git.delta.enable { BATDIFF_USE_DELTA = "true"; }; programs.fish = lib.mkIf config.programs.fish.enable { functions = { cat = { wraps = "bat"; body = # fish "bat $argv"; }; cath = { wraps = "bat"; body = # fish "bat --plain --language=help $argv"; }; }; }; home.shellAbbrs = { B = { position = "anywhere"; setCursor = true; expansion = # fish "% | bat"; }; "-h" = { position = "anywhere"; expansion = # fish "-h | cath"; }; "--help" = { position = "anywhere"; expansion = # fish "--help | cath"; }; help = { position = "anywhere"; expansion = # fish "help | cath"; }; }; }; }