nixos-config/modules/programs/alacritty/default.nix
2023-09-17 13:35:43 +02:00

594 lines
14 KiB
Nix

{ pkgs, lib, config, ... }:
let
cfg = config.ptw.programs.alacritty;
in {
options.ptw.programs.alacritty = {
enable = lib.mkEnableOption "Configure alacritty using HomeManager";
fontSize = lib.mkOption {
type = lib.types.float;
default = 12.0;
};
};
config = lib.mkIf cfg.enable {
environment.systemPackages = [ pkgs.alacritty ];
home-manager.users."${config.ptw.system.singleUser}".programs = {
alacritty = {
enable = true;
settings = {
window = {
dimensions = {
columns = 0;
lines = 0;
};
padding = {
x = 2;
y = 2;
};
dynamic_padding = false;
dynamic_title = true;
decorations = "full";
startup_mode = "Windowed";
#opacity = 0.7;
};
scrolling = {
history = 10000;
multiplier = 3;
};
font = {
size = config.ptw.programs.alacritty.fontSize;
offset = {
x = 0;
y = 0;
};
glyph_offset = {
x = 0;
y = 0;
};
};
debug = {
render_timer = false;
persistent_logging = false;
};
draw_bold_text_with_bright_colors = true;
colors = {
primary = {
background = "0x1e282d";
foreground = "0xc4c7d1";
};
normal = {
black = "0x666666";
red = "0xeb606b";
green = "0xc3e88d";
yellow = "0xf7eb95";
blue = "0x80cbc4";
magenta = "0xff2f90";
cyan = "0xaeddff";
white = "0xffffff";
};
bright = {
black = "0xff262b";
red = "0xeb606b";
green = "0xc3e88d";
yellow = "0xf7eb95";
blue = "0x7dc6bf";
magenta = "0x6c71c4";
cyan = "0x35434d";
white = "0xffffff";
};
};
mouse_bindings = [ {
mouse = "Middle";
action = "PasteSelection";
} ];
mouse = {
double_click = {
threshold = 300;
};
triple_click = {
threshold = 300;
};
hide_when_typing = false;
};
selection = {
semantic_scape_chars = ",`|:\"' ()[]{}<>";
save_to_clipboard = true;
};
cursor = {
style = "Block";
unfocused_hollow = true;
};
live_config_reload = true;
enable_experimental_conpty_backend = false;
key_bindings = [
{
key = "Paste";
action = "Paste";
}
{
key = "Copy";
action = "Copy";
}
{
key = "L";
mods = "Control";
action = "ClearLogNotice";
}
{
key = "L";
mods = "Control";
chars = "\\x0c";
}
{
key = "Home";
chars = "\\x1bOH";
mode = "AppCursor";
}
{
key = "Home";
chars = "\\x1b[H";
mode = "~AppCursor";
}
{
key = "End";
chars = "\\x1bOF";
mode = "AppCursor";
}
{
key = "End";
chars = "\\x1b[F";
mode = "~AppCursor";
}
{
key = "PageUp";
mods = "Shift";
action = "ScrollPageUp";
mode = "~Alt";
}
{
key = "PageUp";
mods = "Shift";
chars = "\\x1b[5;2~";
mode = "Alt";
}
{
key = "PageDown";
mods = "Control";
chars = "\\x1b[6;5~";
}
{
key = "PageDown";
chars = "\\x1b[6~";
}
{
key = "Tab";
mods = "Shift";
chars = "\\x1b[Z";
}
{
key = "Back";
chars= "\\x7f";
}
{
key = "Back";
mods = "Alt";
chars = "\\x1b\\x7f";
}
{
key = "Insert";
chars = "\\x1b[2~";
}
{
key = "Delete";
chars = "\\x1b[3~";
}
{
key = "Left";
mods = "Shift";
chars = "\\x1b[1;2D";
}
{
key = "Left";
mods = "Control";
chars = "\\x1b[1;5D";
}
{
key = "Left";
mods = "Alt";
chars = "\\x1b[1;3D";
}
{
key = "Left";
chars = "\\x1b[D";
mode = "~AppCursor";
}
{
key = "Left";
chars = "\\x1bOD";
mode = "AppCursor";
}
{
key = "Right";
mods = "Shift";
chars = "\\x1b[1;2C";
}
{
key = "Right";
mods = "Control";
chars = "\\x1b[1;5C";
}
{
key = "Right";
mods = "Alt";
chars = "\\x1b[1;3C";
}
{
key = "Right";
chars = "\\x1b[C";
mode = "~AppCursor";
}
{
key = "Right";
chars = "\\x1bOC";
mode = "AppCursor";
}
{
key = "Up";
mods = "Shift";
chars = "\\x1b[1;2A";
}
{
key = "Up";
mods = "Control";
chars = "\\x1b[1;5A";
}
{
key = "Up";
mods = "Alt";
chars = "\\x1b[1;3A";
}
{
key = "Up";
chars = "\\x1b[A";
mode = "~AppCursor";
}
{
key = "Up";
chars = "\\x1bOA";
mode = "AppCursor";
}
{
key = "Down";
mods = "Shift";
chars = "\\x1b[1;2B";
}
{
key = "Down";
mods = "Control";
chars = "\\x1b[1;5B";
}
{
key = "Down";
mods = "Alt";
chars = "\\x1b[1;3B";
}
{
key = "Down";
chars = "\\x1b[B";
mode = "~AppCursor";
}
{
key = "Down";
chars = "\\x1bOB";
mode = "AppCursor";
}
{
key = "F1";
chars = "\\x1bOP";
}
{
key = "F2";
chars = "\\x1bOQ";
}
{
key = "F3";
chars = "\\x1bOR";
}
{
key = "F4";
chars = "\\x1bOS";
}
{
key = "F5";
chars = "\\x1b[15~";
}
{
key = "F6";
chars = "\\x1b[17~";
}
{
key = "F7";
chars = "\\x1b[18~";
}
{
key = "F8";
chars = "\\x1b[19~";
}
{
key = "F9";
chars = "\\x1b[20~";
}
{
key = "F10";
chars = "\\x1b[21~";
}
{
key = "F11";
chars = "\\x1b[23~";
}
{
key = "F12";
chars = "\\x1b[24~";
}
{
key = "F1";
mods = "Shift";
chars = "\\x1b[1;2P";
}
{
key = "F2";
mods = "Shift";
chars = "\\x1b[1;2Q";
}
{
key = "F3";
mods = "Shift";
chars = "\\x1b[1;2R";
}
{
key = "F4";
mods = "Shift";
chars = "\\x1b[1;2S";
}
{
key = "F5";
mods = "Shift";
chars = "\\x1b[15;2~";
}
{
key = "F6";
mods = "Shift";
chars = "\\x1b[17;2~";
}
{
key = "F7";
mods = "Shift";
chars = "\\x1b[18;2~";
}
{
key = "F8";
mods = "Shift";
chars = "\\x1b[19;2~";
}
{
key = "F9";
mods = "Shift";
chars = "\\x1b[20;2~";
}
{
key = "F10";
mods = "Shift";
chars = "\\x1b[21;2~";
}
{
key = "F11";
mods = "Shift";
chars = "\\x1b[23;2~";
}
{
key = "F12";
mods = "Shift";
chars = "\\x1b[24;2~";
}
{
key = "F1";
mods = "Control";
chars = "\\x1b[1;5P";
}
{
key = "F2";
mods = "Control";
chars = "\\x1b[1;5Q";
}
{
key = "F3";
mods = "Control";
chars = "\\x1b[1;5R";
}
{
key = "F4";
mods = "Control";
chars = "\\x1b[1;5S";
}
{
key = "F5";
mods = "Control";
chars = "\\x1b[15;5~";
}
{
key = "F6";
mods = "Control";
chars = "\\x1b[17;5~";
}
{
key = "F7";
mods = "Control";
chars = "\\x1b[18;5~";
}
{
key = "F8";
mods = "Control";
chars = "\\x1b[19;5~";
}
{
key = "F9";
mods = "Control";
chars = "\\x1b[20;5~";
}
{
key = "F10";
mods = "Control";
chars = "\\x1b[21;5~";
}
{
key = "F11";
mods = "Control";
chars = "\\x1b[23;5~";
}
{
key = "F12";
mods = "Control";
chars = "\\x1b[24;5~";
}
{
key = "F1";
mods = "Alt";
chars = "\\x1b[1;6P";
}
{
key = "F2";
mods = "Alt";
chars = "\\x1b[1;6Q";
}
{
key = "F3";
mods = "Alt";
chars = "\\x1b[1;6R";
}
{
key = "F4";
mods = "Alt";
chars = "\\x1b[1;6S";
}
{
key = "F5";
mods = "Alt";
chars = "\\x1b[15;6~";
}
{
key = "F6";
mods = "Alt";
chars = "\\x1b[17;6~";
}
{
key = "F7";
mods = "Alt";
chars = "\\x1b[18;6~";
}
{
key = "F8";
mods = "Alt";
chars = "\\x1b[19;6~";
}
{
key = "F9";
mods = "Alt";
chars = "\\x1b[20;6~";
}
{
key = "F10";
mods = "Alt";
chars = "\\x1b[21;6~";
}
{
key = "F11";
mods = "Alt";
chars = "\\x1b[23;6~";
}
{
key = "F12";
mods = "Alt";
chars = "\\x1b[24;6~";
}
{
key = "F1";
mods = "Super";
chars = "\\x1b[1;3P";
}
{
key = "F2";
mods = "Super";
chars = "\\x1b[1;3Q";
}
{
key = "F3";
mods = "Super";
chars = "\\x1b[1;3R";
}
{
key = "F4";
mods = "Super";
chars = "\\x1b[1;3S";
}
{
key = "F5";
mods = "Super";
chars = "\\x1b[15;3~";
}
{
key = "F6";
mods = "Super";
chars = "\\x1b[17;3~";
}
{
key = "F7";
mods = "Super";
chars = "\\x1b[18;3~";
}
{
key = "F8";
mods = "Super";
chars = "\\x1b[19;3~";
}
{
key = "F9";
mods = "Super";
chars = "\\x1b[20;3~";
}
{
key = "F10";
mods = "Super";
chars = "\\x1b[21;3~";
}
{
key = "F11";
mods = "Super";
chars = "\\x1b[23;3~";
}
{
key = "F12";
mods = "Super";
chars = "\\x1b[24;3~";
}
{
key = "NumpadEnter";
chars = "\\n";
}
];
};
};
};
};
}