diff options
Diffstat (limited to 'home-manager/config/alacritty/default.nix')
-rw-r--r-- | home-manager/config/alacritty/default.nix | 583 |
1 files changed, 583 insertions, 0 deletions
diff --git a/home-manager/config/alacritty/default.nix b/home-manager/config/alacritty/default.nix new file mode 100644 index 00000000..2a18b0d9 --- /dev/null +++ b/home-manager/config/alacritty/default.nix @@ -0,0 +1,583 @@ +{config, ...}: { +programs.alacritty = { + enable = true; + settings = { + env = { + TERM = "alacritty"; + }; + window = { + dimensionns = { + columns = 0; + lines = 0; + }; + + positinon = { + #x = 0; + #y = 0; + }; + + padding = { + x = 5; + y = 5; + }; + + dynamic_padding = false; + decorations = "None"; + opacity = 0.9; + startup_mode = "Windowed"; + title = "Alacritty"; + dynamic_title = true; + class = { + instance = "Alacritty"; + general = "Alacritty"; + }; + docorations_theme_variant = "None"; + }; + + scrolling = { + history = 10000; + multiplier = 3; + }; + + font = { + normal = { + family = "Source Code Pro"; + style = "Regular"; + }; + bold = { + family = "Source Code Pro"; + style = "Bold"; + }; + italic = { + family = "Source Code Pro"; + style = "Italic"; + }; + bold_italic = { + family = "Source Code Pro"; + style = "Bold Italic"; + }; + size = 12.0; + offset = { + x = -1; + y = -1; + }; + glyph_offset = { + x = -1; + y = -1; + }; + builtin_box_drawing = true; + }; + + draw_bold_text_with_bright_colors = false; + + colors = { + primary = { + background = "#191919"; + foreground = "#d8dee9"; + #dim_foreground= "#828482"; + #bright_foreground= "#eaeaea"; + + cursor = { + text = "#191919"; + cursor = "#d8dee9"; + }; + vi_mode_cursor = { + text = "CellBackground"; + cursor = "CellForeground"; + }; + search = { + matches = { + foreground = "#000000"; + background = "#ffffff"; + }; + focused_match = { + foreground = "#ffffff"; + background = "#000000"; + }; + }; + + hints = { + start = { + foreground = "#1d1f21"; + background = "#e9ff5e"; + }; + + end = { + foreground = "#e9ff5e"; + background = "#1d1f21"; + }; + line_indicator = { + #foreground= "None"; + #background= "None"; + }; + + footer_bar = { + background = "#c5c8c6"; + foreground = "#1d1f21"; + }; + + selection = { + text = "#191919"; + background = "#d8dee9"; + }; + + normal = { + black = "#191919"; + red = "#b02626"; + green = "#40a62f"; + yellow = "#f2e635"; + blue = "#314ad0"; + magenta = "#b30ad0"; + cyan = "#32d0fc"; + white = "#acadb1"; + }; + bright = { + black = "#36393d"; + red = "#ce2727"; + green = "#47c930"; + yellow = "#fff138"; + blue = "#2e4bea"; + magenta = "#cc15ed"; + cyan = "#54d9ff"; + white = "#dbdbdb"; + }; + + dim = { + black = "#676f78"; + red = "#b55454"; + green = "#78a670"; + yellow = "#faf380"; + blue = "#707fd0"; + magenta = "#c583d0"; + cyan = "#8adaf1"; + white = "#e0e3e7"; + }; + + #indexed_colors = [ + # {index = 16; color = "#ff00ff";} + # ]; + transparent_background_colors = false; # TODO + }; + }; + + bell = { + animation = "EaseOutExpo"; + duration = 0; + color = "#ffffff"; + command = "None"; + }; + + selection = { + semantic_escape_chars = ",│`|:\"' ()[]{}<>\t"; + save_to_clipboard = false; + }; + + cursor = { + style = { + shape = "Beam"; + blinking = "On"; + }; + vi_mode_style = "None"; + blink_interval = 750; + blink_timeout = 5; + unfocused_hollow = true; + thickness = 0.15; + }; + live_config_reload = true; + + #shell = { + # program = "/bin/sh"; + # args = ["--login"]; + #} + + working_directory = "None"; + + ipc_socket = true; # TODO + + mouse = { + hide_when_typing = false; + double_click.threshold = 300; + triple_click.threshold = 300; + }; + + hints = { + alphabet = "jfkdls;ahgurieowpq"; + enabled = [ + { + regex = "(ipfs:|ipns:|magnet:|mailto:|gemini:|gopher:|https:|http:|news:|file:|git:|ssh:|ftp:)\ + [^\u0000-\u001F\u007F-\u009F<>\"\\s{-}\\^⟨⟩`]+"; + hyperlinks = true; + command = "xdg-open"; + post_processing = true; + mouse = { + enabled = true; + mods = "None"; + }; + binding = { + key = "U"; + mods = "Control|Shift"; + }; + } + + { + # multi regex for different purposes: + # 2. UUIDs + # 3. hex (for example signatures) + # 4. IP addresses + regex = "([[:alnum:]_$%&+=/@-]+)|([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})|([0-9a-f]{12,128})|([[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3})"; + action = "Copy"; + post_processing = false; + binding = { + key = "U"; + mods = "Control|Shift"; + }; + } + ]; + + mouse_bindings = [ + # { mouse = "Right"; action = "ExpandSelection" ;} + # { mouse = "Right"; mods = "Control"; action = "ExpandSelection" ;} + # { mouse = "Middle"; mode = "~Vi"; action = "PasteSelection" ;} + { + mouse = "Middle"; + action = "Copy"; + } + ]; + + key_bindings = [ + # (Windows, Linux, and BSD only) + { + key = "P"; + mods = "Control"; + action = "Paste"; + } + { + key = "Insert"; + mods = "Shift"; + action = "Paste"; + } + { + key = "Slash"; + mods = "Control"; + chars = "gc"; + } + { + key = "Y"; + mods = "Control"; + action = "Copy"; + } + { + key = "Key0"; + mods = "Control"; + action = "ResetFontSize"; + } + { + key = "Equals"; + mods = "Control"; + action = "IncreaseFontSize"; + } + { + key = "Plus"; + mods = "Control"; + action = "IncreaseFontSize"; + } + { + key = "Minus"; + mods = "Control"; + action = "DecreaseFontSize"; + } + # Vi Mode + { + key = "Space"; + mods = "Control"; + action = "ToggleViMode"; + } + { + key = "Space"; + mods = "Control"; + mode = "Vi"; + action = "ScrollToBottom"; + } + { + key = "I"; + mode = "Vi"; + action = "ScrollToBottom"; + } + { + key = "I"; + mode = "Vi"; + action = "ToggleViMode"; + } + { + key = "C"; + mods = "Control"; + mode = "Vi"; + action = "ScrollToBottom"; + } + { + key = "C"; + mods = "Control"; + mode = "Vi"; + action = "ToggleViMode"; + } + { + key = "Escape"; + mode = "Vi"; + action = "ClearSelection"; + } + { + key = "Y"; + mods = "Control"; + mode = "Vi"; + action = "ScrollLineUp"; + } + { + key = "E"; + mods = "Control"; + mode = "Vi"; + action = "ScrollLineDown"; + } + { + key = "G"; + mode = "Vi"; + action = "ScrollToTop"; + } + { + key = "G"; + mods = "Shift"; + mode = "Vi"; + action = "ScrollToBottom"; + } + { + key = "B"; + mods = "Control"; + mode = "Vi"; + action = "ScrollPageUp"; + } + { + key = "F"; + mods = "Control"; + mode = "Vi"; + action = "ScrollPageDown"; + } + { + key = "U"; + mods = "Control"; + mode = "Vi"; + action = "ScrollHalfPageUp"; + } + { + key = "D"; + mods = "Control"; + mode = "Vi"; + action = "ScrollHalfPageDown"; + } + { + key = "Y"; + mode = "Vi"; + action = "Copy"; + } + { + key = "Y"; + mode = "Vi"; + action = "ClearSelection"; + } + { + key = "V"; + mode = "Vi"; + action = "ToggleNormalSelection"; + } + { + key = "V"; + mods = "Shift"; + mode = "Vi"; + action = "ToggleLineSelection"; + } + { + key = "V"; + mods = "Control"; + mode = "Vi"; + action = "ToggleBlockSelection"; + } + { + key = "V"; + mods = "Alt"; + mode = "Vi"; + action = "ToggleSemanticSelection"; + } + { + key = "Return"; + mode = "Vi"; + action = "Open"; + } + { + key = "K"; + mode = "Vi"; + action = "Up"; + } + { + key = "J"; + mode = "Vi"; + action = "Down"; + } + { + key = "H"; + mode = "Vi"; + action = "Left"; + } + { + key = "L"; + mode = "Vi"; + action = "Right"; + } + { + key = "Up"; + mode = "Vi"; + action = "Up"; + } + { + key = "Down"; + mode = "Vi"; + action = "Down"; + } + { + key = "Left"; + mode = "Vi"; + action = "Left"; + } + { + key = "Right"; + mode = "Vi"; + action = "Right"; + } + { + key = "Key0"; + mode = "Vi"; + action = "First"; + } + { + key = "Key4"; + mode = "Vi"; + action = "Last"; + } + { + key = "Key6"; + mods = "Shift"; + mode = "Vi"; + action = "FirstOccupied"; + } + { + key = "H"; + mods = "Shift"; + mode = "Vi"; + action = "High"; + } + { + key = "M"; + mods = "Shift"; + mode = "Vi"; + action = "Middle"; + } + { + key = "L"; + mods = "Shift"; + mode = "Vi"; + action = "Low"; + } + { + key = "B"; + mode = "Vi"; + action = "SemanticLeft"; + } + { + key = "W"; + mode = "Vi"; + action = "SemanticRight"; + } + { + key = "E"; + mode = "Vi"; + action = "SemanticRightEnd"; + } + { + key = "B"; + mods = "Shift"; + mode = "Vi"; + action = "WordLeft"; + } + { + key = "W"; + mods = "Shift"; + mode = "Vi"; + action = "WordRight"; + } + { + key = "E"; + mods = "Shift"; + mode = "Vi"; + action = "WordRightEnd"; + } + { + key = "Key5"; + mods = "Shift"; + mode = "Vi"; + action = "Bracket"; + } + { + key = "Slash"; + mode = "Vi"; + action = "SearchForward"; + } + { + key = "Slash"; + mods = "Shift"; + mode = "Vi"; + action = "SearchBackward"; + } + { + key = "N"; + mode = "Vi"; + action = "SearchNext"; + } + { + key = "N"; + mods = "Shift"; + mode = "Vi"; + action = "SearchPrevious"; + } + ]; + }; + }; + + #debug: + # Display the time it takes to redraw each frame. + #render_timer: false + + # Keep the log file after quitting Alacritty. + #persistent_logging: false + + # Log level + # + # Values for `log_level`: + # - Off + # - Error + # - Warn + # - Info + # - Debug + # - Trace + #log_level: Warn + + # Renderer override. + # - glsl3 + # - gles2 + # - gles2_pure + #renderer: None + + # Print all received window events. + #print_events: false + + # Highlight window damage information. + #highlight_damage: false + }; + }; +} |