{ lib, config, pkgs, ... }: let inherit (lib) mkEnableOption mkIf; inherit (lib.marleyos) enabled; cfg = config.marleyos.programs.bat; inherit (config.marleyos.theme) colors; in { options.marleyos.programs.bat.enable = mkEnableOption "bat"; config = mkIf cfg.enable { programs.bat = { enable = true; extraPackages = with pkgs.bat-extras; [ batdiff batman ]; rose-pine = mkIf colors.isRosePine 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"; }; }; }; }