137 lines
3.6 KiB
Nix
137 lines
3.6 KiB
Nix
|
{ config, pkgs, lib, ... }:
|
||
|
let inherit (import ./variables.nix) key theme color accent font;
|
||
|
in {
|
||
|
config = {
|
||
|
programs.alacritty = {
|
||
|
enable = true;
|
||
|
settings = {
|
||
|
font = {
|
||
|
size = font.size.small;
|
||
|
normal = { family = font.mono; };
|
||
|
};
|
||
|
colors = {
|
||
|
primary = {
|
||
|
background = "${color.bg}";
|
||
|
foreground = "${color.txt}";
|
||
|
};
|
||
|
cursor = {
|
||
|
text = "#000000";
|
||
|
cursor = "${accent.color}";
|
||
|
};
|
||
|
normal = {
|
||
|
black = "${color.normal.black}";
|
||
|
red = "${color.normal.red}";
|
||
|
green = "${color.normal.green}";
|
||
|
yellow = "${color.normal.yellow}";
|
||
|
blue = "${color.normal.blue}";
|
||
|
magenta = "${color.normal.magenta}";
|
||
|
cyan = "${color.normal.cyan}";
|
||
|
white = "${color.normal.white}";
|
||
|
};
|
||
|
};
|
||
|
draw_bold_text_with_bright_colors = false;
|
||
|
window = {
|
||
|
opacity = theme.opacity / 100.0;
|
||
|
dynamic_padding = true;
|
||
|
};
|
||
|
|
||
|
hints = {
|
||
|
alphabet = key.hints;
|
||
|
enabled = [{
|
||
|
regex = let
|
||
|
mimes =
|
||
|
"(mailto:|gemini:|gopher:|https:|http:|news:|file:|git:|ssh:|ftp:)";
|
||
|
# I fucking hate regex, look at this bullshit
|
||
|
delimiters = ''^\\u0000-\\u001F\\u007F-\\u009F<>"\\s{-}\\^⟨⟩`'';
|
||
|
in "${mimes}[${delimiters}]+";
|
||
|
command = "xdg-open";
|
||
|
post_processing = true;
|
||
|
mouse = {
|
||
|
enabled = true;
|
||
|
mods = "None";
|
||
|
};
|
||
|
binding = {
|
||
|
key = "U";
|
||
|
mods = "Control|Shift";
|
||
|
};
|
||
|
}];
|
||
|
};
|
||
|
mouse = { hide_when_typing = true; };
|
||
|
key_bindings = [
|
||
|
{
|
||
|
key = lib.toUpper key.up;
|
||
|
mode = "Vi|~Search";
|
||
|
action = "Up";
|
||
|
}
|
||
|
{
|
||
|
key = lib.toUpper key.down;
|
||
|
mode = "Vi|~Search";
|
||
|
action = "Down";
|
||
|
}
|
||
|
{
|
||
|
key = lib.toUpper key.left;
|
||
|
mode = "Vi|~Search";
|
||
|
action = "Left";
|
||
|
}
|
||
|
{
|
||
|
key = lib.toUpper key.right;
|
||
|
mode = "Vi|~Search";
|
||
|
action = "Right";
|
||
|
}
|
||
|
{
|
||
|
key = lib.toUpper key.insertMode;
|
||
|
mode = "Vi|~Search";
|
||
|
action = "ScrollToBottom";
|
||
|
}
|
||
|
{
|
||
|
key = lib.toUpper key.insertMode;
|
||
|
mode = "Vi|~Search";
|
||
|
action = "ToggleViMode";
|
||
|
}
|
||
|
{
|
||
|
key = lib.toUpper key.next;
|
||
|
mode = "Vi|~Search";
|
||
|
action = "SearchNext";
|
||
|
}
|
||
|
{
|
||
|
key = "Up";
|
||
|
mods = "Control|Shift";
|
||
|
mode = "~Alt";
|
||
|
action = "ScrollLineUp";
|
||
|
}
|
||
|
{
|
||
|
key = "Down";
|
||
|
mods = "Control|Shift";
|
||
|
mode = "~Alt";
|
||
|
action = "ScrollLineDown";
|
||
|
}
|
||
|
{
|
||
|
key = "PageUp";
|
||
|
mods = "Control|Shift";
|
||
|
mode = "~Alt";
|
||
|
action = "ScrollHalfPageUp";
|
||
|
}
|
||
|
{
|
||
|
key = "PageDown";
|
||
|
mods = "Control|Shift";
|
||
|
mode = "~Alt";
|
||
|
action = "ScrollHalfPageDown";
|
||
|
}
|
||
|
{
|
||
|
key = "N";
|
||
|
mods = "Control|Shift";
|
||
|
action = "SpawnNewInstance";
|
||
|
}
|
||
|
# {%@@ if key.layout == "colemak" @@%}
|
||
|
{
|
||
|
key = "T";
|
||
|
mode = "Vi|~Search";
|
||
|
action = "SemanticRightEnd";
|
||
|
}
|
||
|
# {%@@ endif @@%}
|
||
|
];
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
}
|