{ config, lib, pkgs, ... }: let alacritty-cfg = extrVals: builtins.toJSON ({ font = { normal = { family = "Inconsolata"; style = "Regular"; }; bold = { family = "Inconsolata"; style = "Bold"; }; italic = { family = "Inconsolata"; style = "Italic"; }; bold_italic = { family = "Inconsolata"; style = "Bold Italic"; }; size = 8; }; live_config_reload = true; window.dimensions = { columns = 80; lines = 20; }; # window.opacity = 0; hints.enabled = [ { regex = ''(mailto:|gemini:|gopher:|https:|http:|news:|file:|git:|ssh:|ftp:)[^\u0000-\u001F\u007F-\u009F<>"\s{-}\^⟨⟩`]+''; command = "/run/current-system/sw/bin/xdg-open"; post_processing = true; mouse.enabled = true; binding = { key = "U"; mods = "Alt"; }; } ]; } // extrVals); alacritty = pkgs.symlinkJoin { name = "alacritty"; paths = [ (pkgs.writeDashBin "alacritty" '' ${pkgs.alacritty}/bin/alacritty --config-file /var/theme/config/alacritty.yaml "$@" '') pkgs.alacritty ]; }; in { environment.etc = { "themes/light/alacritty.yaml".text = alacritty-cfg { colors = { # Default colors primary = { # hard contrast: background = '#f9f5d7' # background = "#fbf1c7"; background = "#f9f5d7"; # soft contrast: background = '#f2e5bc' foreground = "#3c3836"; }; # Normal colors normal = { black = "#fbf1c7"; red = "#cc241d"; green = "#98971a"; yellow = "#d79921"; blue = "#458588"; magenta = "#b16286"; cyan = "#689d6a"; white = "#7c6f64"; }; # Bright colors bright = { black = "#928374"; red = "#9d0006"; green = "#79740e"; yellow = "#b57614"; blue = "#076678"; magenta = "#8f3f71"; cyan = "#427b58"; white = "#3c3836"; }; }; }; "themes/dark/alacritty.yaml".text = alacritty-cfg { colors = { # Default colors primary = { background = "0x000000"; foreground = "0xffffff"; }; cursor = { text = "0xF81CE5"; cursor = "0xffffff"; }; # Normal colors normal = { black = "0x000000"; red = "0xfe0100"; green = "0x33ff00"; yellow = "0xfeff00"; blue = "0x0066ff"; magenta = "0xcc00ff"; cyan = "0x00ffff"; white = "0xd0d0d0"; }; # Bright colors bright = { black = "0x808080"; red = "0xfe0100"; green = "0x33ff00"; yellow = "0xfeff00"; blue = "0x0066ff"; magenta = "0xcc00ff"; cyan = "0x00ffff"; white = "0xFFFFFF"; }; }; }; }; environment.systemPackages = [ alacritty ]; }