about summary refs log tree commit diff stats
path: root/home-manger/alacritty/default.nix
diff options
context:
space:
mode:
authorene <ene@sils.li>2023-02-07 09:00:54 +0100
committerene <ene@sils.li>2023-02-07 09:00:54 +0100
commit22fb1296f089278199830d331b5483e3142878f4 (patch)
tree5397338800ea064eaceba5f3532b7191bf12679d /home-manger/alacritty/default.nix
parentFix(Zsh): Use -R with less (diff)
downloadnixos-config-22fb1296f089278199830d331b5483e3142878f4.tar.gz
nixos-config-22fb1296f089278199830d331b5483e3142878f4.zip
Feat(home-manager): Add alacritty support
Diffstat (limited to 'home-manger/alacritty/default.nix')
-rw-r--r--home-manger/alacritty/default.nix583
1 files changed, 583 insertions, 0 deletions
diff --git a/home-manger/alacritty/default.nix b/home-manger/alacritty/default.nix
new file mode 100644
index 00000000..1bb6afac
--- /dev/null
+++ b/home-manger/alacritty/default.nix
@@ -0,0 +1,583 @@
+{config, ...}: {
+  home-manager.users.soispha.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
+    };
+  };
+}