forked from Shinonome/omarchy-nix
212 lines
4.5 KiB
Nix
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;
|
|
};
|
|
};
|
|
};
|
|
}
|