{ config, fonts, ... }: { programs.alacritty = { enable = true; settings = { font = { size = fonts.sizes.applications; normal = { family = fonts.monospace.name; style = "Regular"; }; }; window = { dynamic_title = true; padding = { x = 10; y = 10; }; # decorations = "none"; # opacity = 0.9; }; 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 = with config.scheme; { background = "0x${base00}"; foreground = "0x${base05}"; }; cursor = with config.scheme; { cursor = "0x${base05}"; text = "0x${base00}"; }; normal = with config.scheme; { black = "0x${base00-hex}"; white = "0x${base05-hex}"; } // mapNamedColours; bright = with config.scheme; { black = "0x${base03-hex}"; white = "0x${base07-hex}"; } // mapNamedBrightColours; }; }; }; }