{ config, fonts, ... }: { programs.alacritty = { enable = true; settings = { shell = "${config.programs.fish.package}/bin/fish"; font = { size = fonts.sizes.applications; normal = { family = fonts.monospace.name; style = "Regular"; }; }; window = { dynamic_title = true; padding = { x = 5; y = 5; }; }; live_config_reload = true; selection.save_to_clipboard = true; mouse.hide_when_typing = true; colors = let mapColours = isBright: (builtins.listToAttrs ( builtins.map (col: { # Alacritty uses Yellow instead of Orange for BASE09 name = if col == "orange" then "yellow" else col; value = "0x${config.scheme.${if isBright then "bright-${col}" else col}}"; }) [ "red" "orange" "green" "cyan" "blue" "magenta" ] )); mapNamedColours = mapColours false; mapNamedBrightColours = mapColours true; in { draw_bold_text_with_bright_colors = false; primary = { background = "0x${config.scheme.base00}"; foreground = "0x${config.scheme.base05}"; }; cursor = { cursor = "0x${config.scheme.base05}"; text = "0x${config.scheme.base00}"; }; normal = { black = "0x${config.scheme.base00-hex}"; white = "0x${config.scheme.base05-hex}"; } // mapNamedColours; bright = { black = "0x${config.scheme.base03-hex}"; white = "0x${config.scheme.base07-hex}"; } // mapNamedBrightColours; }; }; }; }