{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 }; }; }