Files
omarchy-nix/modules/home-manager/alacritty.nix
T
2025-06-28 12:27:26 -05:00

212 lines
4.5 KiB
Nix

{
config,
pkgs,
...
}: let
cfg = config.omarchy;
themes = import ../themes.nix;
theme = themes.${cfg.theme};
in {
programs.alacritty = {
enable = true;
settings = {
# Window settings
window = {
padding = {
x = 10;
y = 10;
};
dynamic_padding = true;
decorations = "none";
opacity = 0.95;
blur = true;
startup_mode = "Windowed";
title = "Alacritty";
dynamic_title = true;
};
# Scrolling
scrolling = {
history = 10000;
multiplier = 3;
};
# Font configuration
font = {
normal = {
family = cfg.primary_font;
style = "Regular";
};
bold = {
family = cfg.primary_font;
style = "Bold";
};
italic = {
family = cfg.primary_font;
style = "Italic";
};
bold_italic = {
family = cfg.primary_font;
style = "Bold Italic";
};
size = 11.0;
};
# Colors
colors = {
primary.background = theme.background;
primary.foreground = theme.foreground;
normal.black = theme.black;
normal.red = theme.red;
normal.green = theme.green;
normal.yellow = theme.yellow;
normal.blue = theme.blue;
normal.magenta = theme.magenta;
normal.cyan = theme.cyan;
normal.white = theme.white;
bright.black = theme.bright_black;
bright.red = theme.bright_red;
bright.green = theme.bright_green;
bright.yellow = theme.bright_yellow;
bright.blue = theme.bright_blue;
bright.magenta = theme.bright_magenta;
bright.cyan = theme.bright_cyan;
bright.white = theme.bright_white;
selection.background = theme.primary;
};
# // (
# if theme ? orange
# then {
# indexed_colors =
# [
# {
# index = 16;
# color = theme.orange;
# }
# ]
# ++ (
# if theme ? rosewater
# then [
# {
# index = 17;
# color = theme.rosewater;
# }
# ]
# else []
# )
# ++ (
# if theme ? peach
# then [
# {
# index = 18;
# color = theme.peach;
# }
# ]
# else []
# );
# }
# else {}
# );
# Bell
bell = {
animation = "EaseOutExpo";
duration = 0;
color = theme.warning;
};
# Mouse
mouse = {
hide_when_typing = true;
bindings = [
{
mouse = "Middle";
action = "PasteSelection";
}
];
};
# Key bindings
keyboard.bindings = [
# Copy/Paste
{
key = "C";
mods = "Control|Shift";
action = "Copy";
}
{
key = "V";
mods = "Control|Shift";
action = "Paste";
}
# Search
{
key = "F";
mods = "Control|Shift";
action = "SearchForward";
}
{
key = "B";
mods = "Control|Shift";
action = "SearchBackward";
}
# Font size
{
key = "Plus";
mods = "Control";
action = "IncreaseFontSize";
}
{
key = "Minus";
mods = "Control";
action = "DecreaseFontSize";
}
{
key = "Key0";
mods = "Control";
action = "ResetFontSize";
}
# New window
{
key = "Return";
mods = "Control|Shift";
action = "SpawnNewInstance";
}
];
# Cursor
cursor = {
style = {
shape = "Block";
blinking = "Off";
};
unfocused_hollow = true;
thickness = 0.15;
};
# Live config reload
general.live_config_reload = true;
# Shell
terminal.shell = {
program = "${pkgs.zsh}/bin/zsh";
args = ["--login"];
};
# Working directory
working_directory = "None";
# Debug
debug = {
render_timer = false;
persistent_logging = false;
log_level = "Warn";
print_events = false;
};
};
};
}