{ config, lib, ... }: { options = { alacritty = { enable = lib.mkEnableOption "enables creation of alacritty config file"; font.size = lib.mkOption { type = lib.types.int; default = 12; }; font.family = lib.mkOption { type = lib.types.str; default = "JetBrainsMonoNL Nerd Font Mono"; }; }; }; config = { programs.alacritty.enable = config.alacritty.enable; programs.alacritty.settings = lib.mkIf config.alacritty.enable { colors = { bright = { black = "#7f7f7f"; blue = "#1578c1"; cyan = "#00c4a3"; green = "#2bb500"; magenta = "#b14ff7"; red = "#ed1207"; white = "#ffffff"; yellow = "#fc9700"; }; normal = { black = "#101010"; blue = "#1578c1"; cyan = "#00c4a3"; green = "#2bb500"; magenta = "#b14ff7"; red = "#ed1207"; white = "#ffffff"; yellow = "#fc9700"; }; primary = { background = "#101010"; foreground = "#ffffff"; }; }; cursor.style.blinking = "Never"; env.TERM = "xterm-256color"; font = { size = config.alacritty.font.size; normal.family = config.alacritty.font.family; }; mouse.bindings = [{ action = "PasteSelection"; mouse = "Right"; }]; window = { dynamic_padding = true; dynamic_title = true; title = "Terminal"; # Pretend to be st class = { general = "st"; instance = "st"; }; }; }; }; }