{ config, lib, pkgs, ... }: with lib; let cfg = config.nixfiles.modules.bat; in { options.nixfiles.modules.bat.enable = mkEnableOption "bat, an alternative to cat"; config = mkIf cfg.enable { hm.programs = { bat = { enable = true; config = { style = "plain"; tabs = "4"; theme = "base16"; wrap = "never"; }; }; bash = { shellAliases = let bat = "${pkgs.bat}/bin/bat"; in { bay = "${bat} --language=yaml --tabs 2"; baj = "${bat} --language=json --tabs 2"; }; initExtra = mkAfter '' _complete_alias bay _bat bat _complete_alias baj _bat bat ''; }; }; }; }