{ config, lib, pkgs, ... }: with lib; with lib.my; let cfg = config.modules.desktop.alacritty; in { options.modules.desktop.alacritty = { enable = mkBoolOpt false; }; config = mkIf cfg.enable { home-manager.users.${config.user.name} = { programs.alacritty = { enable = true; settings = { colors = { # (Gruvbox dark) primary = { background = "0x1d2021"; foreground = "0xebdbb2"; }; normal = { black = "0x282828"; red = "0xcc241d"; green = "0x98971a"; yellow = "0xd79921"; blue = "0x458588"; magenta = "0xb16286"; cyan = "0x689d6a"; white = "0xa89984"; }; bright = { black = "0x928374"; red = "0xfb4934"; green = "0xb8bb26"; yellow = "0xfabd2f"; blue = "0x83a598"; magenta = "0xd3869b"; cyan = "0x8ec07c"; white = "0xebdbb2"; }; }; window = { title = "Alacritty"; padding = { x = 5; y = 5; }; }; scrolling.history = 65535; font.size = 8; keyboard.bindings = [ { key = "Up"; mods = "Control"; action = "IncreaseFontSize"; } { key = "Down"; mods = "Control"; action = "DecreaseFontSize"; } ]; }; }; }; }; }