From fd9b0ecef4142a62b45404700ba1cff488f84a73 Mon Sep 17 00:00:00 2001 From: Benedikt Peetz Date: Thu, 23 May 2024 13:31:11 +0200 Subject: refactor(modules/home): Setup as "normal" NixOS module --- modules/home/conf/alacritty/default.nix | 30 ++ modules/home/conf/alacritty/toml/base.toml | 16 + modules/home/conf/alacritty/toml/bell.toml | 7 + modules/home/conf/alacritty/toml/colorscheme.toml | 79 +++++ modules/home/conf/alacritty/toml/cursor.toml | 11 + modules/home/conf/alacritty/toml/env.toml | 3 + modules/home/conf/alacritty/toml/font.toml | 15 + modules/home/conf/alacritty/toml/hints.toml | 25 ++ .../conf/alacritty/toml/keyboard_bindings.toml | 297 ++++++++++++++++ modules/home/conf/alacritty/toml/mouse.toml | 2 + .../home/conf/alacritty/toml/mouse_bindings.toml | 3 + modules/home/conf/alacritty/toml/scrolling.toml | 3 + modules/home/conf/alacritty/toml/selection.toml | 3 + modules/home/conf/alacritty/toml/window.toml | 18 + modules/home/conf/alacritty/yaml/base.yml | 17 + modules/home/conf/alacritty/yaml/bell.yml | 42 +++ modules/home/conf/alacritty/yaml/colors.yml | 147 ++++++++ modules/home/conf/alacritty/yaml/colorscheme.yml | 31 ++ modules/home/conf/alacritty/yaml/cursor.yml | 43 +++ modules/home/conf/alacritty/yaml/debug.yml | 29 ++ modules/home/conf/alacritty/yaml/env.yml | 11 + modules/home/conf/alacritty/yaml/font.yml | 73 ++++ modules/home/conf/alacritty/yaml/hints.yml | 77 +++++ modules/home/conf/alacritty/yaml/key_bindings.yml | 382 +++++++++++++++++++++ modules/home/conf/alacritty/yaml/mouse.yml | 11 + .../home/conf/alacritty/yaml/mouse_bindings.yml | 32 ++ modules/home/conf/alacritty/yaml/scrolling.yml | 7 + modules/home/conf/alacritty/yaml/selection.yml | 7 + modules/home/conf/alacritty/yaml/shell.yml | 13 + modules/home/conf/alacritty/yaml/window.yml | 89 +++++ 30 files changed, 1523 insertions(+) create mode 100644 modules/home/conf/alacritty/default.nix create mode 100644 modules/home/conf/alacritty/toml/base.toml create mode 100644 modules/home/conf/alacritty/toml/bell.toml create mode 100644 modules/home/conf/alacritty/toml/colorscheme.toml create mode 100644 modules/home/conf/alacritty/toml/cursor.toml create mode 100644 modules/home/conf/alacritty/toml/env.toml create mode 100644 modules/home/conf/alacritty/toml/font.toml create mode 100644 modules/home/conf/alacritty/toml/hints.toml create mode 100644 modules/home/conf/alacritty/toml/keyboard_bindings.toml create mode 100644 modules/home/conf/alacritty/toml/mouse.toml create mode 100644 modules/home/conf/alacritty/toml/mouse_bindings.toml create mode 100644 modules/home/conf/alacritty/toml/scrolling.toml create mode 100644 modules/home/conf/alacritty/toml/selection.toml create mode 100644 modules/home/conf/alacritty/toml/window.toml create mode 100644 modules/home/conf/alacritty/yaml/base.yml create mode 100644 modules/home/conf/alacritty/yaml/bell.yml create mode 100644 modules/home/conf/alacritty/yaml/colors.yml create mode 100644 modules/home/conf/alacritty/yaml/colorscheme.yml create mode 100644 modules/home/conf/alacritty/yaml/cursor.yml create mode 100644 modules/home/conf/alacritty/yaml/debug.yml create mode 100644 modules/home/conf/alacritty/yaml/env.yml create mode 100644 modules/home/conf/alacritty/yaml/font.yml create mode 100644 modules/home/conf/alacritty/yaml/hints.yml create mode 100644 modules/home/conf/alacritty/yaml/key_bindings.yml create mode 100644 modules/home/conf/alacritty/yaml/mouse.yml create mode 100644 modules/home/conf/alacritty/yaml/mouse_bindings.yml create mode 100644 modules/home/conf/alacritty/yaml/scrolling.yml create mode 100644 modules/home/conf/alacritty/yaml/selection.yml create mode 100644 modules/home/conf/alacritty/yaml/shell.yml create mode 100644 modules/home/conf/alacritty/yaml/window.yml (limited to 'modules/home/conf/alacritty') diff --git a/modules/home/conf/alacritty/default.nix b/modules/home/conf/alacritty/default.nix new file mode 100644 index 00000000..c1cf5e44 --- /dev/null +++ b/modules/home/conf/alacritty/default.nix @@ -0,0 +1,30 @@ +{lib, ...}: let + config_file = '' + ${lib.strings.fileContents ./toml/base.toml} + ${lib.strings.fileContents ./toml/bell.toml} + ${lib.strings.fileContents ./toml/colorscheme.toml} + ${lib.strings.fileContents ./toml/cursor.toml} + ${lib.strings.fileContents ./toml/env.toml} + ${lib.strings.fileContents ./toml/font.toml} + ${lib.strings.fileContents ./toml/hints.toml} + ${lib.strings.fileContents ./toml/keyboard_bindings.toml} + ${lib.strings.fileContents ./toml/mouse.toml} + ${lib.strings.fileContents ./toml/mouse_bindings.toml} + ${lib.strings.fileContents ./toml/scrolling.toml} + ${lib.strings.fileContents ./toml/selection.toml} + ${lib.strings.fileContents ./toml/window.toml} + ''; +in { + home.sessionVariables = { + # This is **not** the TERM variable but a special one to signify my favorite terminal. + TERMINAL = "alacritty"; + + # These two here should be set by alacritty at start-up + # TERM = "alacritty"; + # COLORTERM = "truecolor"; + }; + programs.alacritty = { + enable = true; + }; + xdg.configFile."alacritty/alacritty.toml".text = config_file; +} diff --git a/modules/home/conf/alacritty/toml/base.toml b/modules/home/conf/alacritty/toml/base.toml new file mode 100644 index 00000000..93c9942f --- /dev/null +++ b/modules/home/conf/alacritty/toml/base.toml @@ -0,0 +1,16 @@ +# Configuration for Alacritty, the GPU enhanced terminal emulator. + +# If `true`, bold text is drawn using the bright color variants. +#draw_bold_text_with_bright_colors: true # TODO: + +# Live config reload (changes require restart) +live_config_reload = true + +# Startup directory +# +# Directory the shell is started in. If this is unset, or `None`, the working +# directory of the parent process will be used. +#working_directory: None + +# Offer IPC using `alacritty msg` (unix only) +ipc_socket = true diff --git a/modules/home/conf/alacritty/toml/bell.toml b/modules/home/conf/alacritty/toml/bell.toml new file mode 100644 index 00000000..912d08e3 --- /dev/null +++ b/modules/home/conf/alacritty/toml/bell.toml @@ -0,0 +1,7 @@ +# Bell +# +# The bell is rung every time the BEL control character is received. +[bell] +# Duration of the visual bell flash in milliseconds. A `duration` of `0` will +# disable the visual bell animation. +duration = 0 diff --git a/modules/home/conf/alacritty/toml/colorscheme.toml b/modules/home/conf/alacritty/toml/colorscheme.toml new file mode 100644 index 00000000..f98a5b91 --- /dev/null +++ b/modules/home/conf/alacritty/toml/colorscheme.toml @@ -0,0 +1,79 @@ +# Nightfox Alacritty Colors +## name: carbonfox +## upstream: https://github.com/edeneast/nightfox.nvim/raw/main/extra/carbonfox/alacritty.toml + +[colors.primary] +background = "#161616" +foreground = "#f2f4f8" +dim_foreground = "#b6b8bb" +bright_foreground = "#f9fbff" + +[colors.cursor] +text = "#f2f4f8" +cursor = "#b6b8bb" + +[colors.vi_mode_cursor] +text = "#f2f4f8" +cursor = "#33b1ff" + +[colors.search.matches] +foreground = "#f2f4f8" +background = "#525253" + +[colors.search.focused_match] +foreground = "#f2f4f8" +background = "#3ddbd9" + +[colors.footer_bar] +foreground = "#f2f4f8" +background = "#353535" + +[colors.hints.start] +foreground = "#f2f4f8" +background = "#3ddbd9" + +[colors.hints.end] +foreground = "#f2f4f8" +background = "#353535" + +[colors.selection] +text = "#f2f4f8" +background = "#2a2a2a" + +[colors.normal] +black = "#282828" +red = "#ee5396" +green = "#25be6a" +yellow = "#08bdba" +blue = "#78a9ff" +magenta = "#be95ff" +cyan = "#33b1ff" +white = "#dfdfe0" + +[colors.bright] +black = "#484848" +red = "#f16da6" +green = "#46c880" +yellow = "#2dc7c4" +blue = "#8cb6ff" +magenta = "#c8a5ff" +cyan = "#52bdff" +white = "#e4e4e5" + +[colors.dim] +black = "#222222" +red = "#ca4780" +green = "#1fa25a" +yellow = "#07a19e" +blue = "#6690d9" +magenta = "#a27fd9" +cyan = "#2b96d9" +white = "#bebebe" + +[[colors.indexed_colors]] +index = 16 +color = "#3ddbd9" + +[[colors.indexed_colors]] +index = 17 +color = "#ff7eb6" diff --git a/modules/home/conf/alacritty/toml/cursor.toml b/modules/home/conf/alacritty/toml/cursor.toml new file mode 100644 index 00000000..d9cb93f4 --- /dev/null +++ b/modules/home/conf/alacritty/toml/cursor.toml @@ -0,0 +1,11 @@ +[cursor] +blink_interval = 750 +blink_timeout = 5 +thickness = 0.15 +unfocused_hollow = true +vi_mode_style = "None" + +# Cursor style +[cursor.style] +blinking = "On" +shape = "Beam" diff --git a/modules/home/conf/alacritty/toml/env.toml b/modules/home/conf/alacritty/toml/env.toml new file mode 100644 index 00000000..fdd4e5d1 --- /dev/null +++ b/modules/home/conf/alacritty/toml/env.toml @@ -0,0 +1,3 @@ +[env] +TERM = "alacritty" +COLORTERM = "truecolor" diff --git a/modules/home/conf/alacritty/toml/font.toml b/modules/home/conf/alacritty/toml/font.toml new file mode 100644 index 00000000..dd18a6fb --- /dev/null +++ b/modules/home/conf/alacritty/toml/font.toml @@ -0,0 +1,15 @@ +[font] +builtin_box_drawing = true +size = 12.0 + +[font.glyph_offset] +x = -1 +y = -1 + +[font.normal] +family = "SauceCodePro Nerd Font Mono" +style = "Regular" + +[font.offset] +x = -1 +y = -1 diff --git a/modules/home/conf/alacritty/toml/hints.toml b/modules/home/conf/alacritty/toml/hints.toml new file mode 100644 index 00000000..af01dc3e --- /dev/null +++ b/modules/home/conf/alacritty/toml/hints.toml @@ -0,0 +1,25 @@ +[hints] +alphabet = "jfkdls;ahgurieowpq" + +[[hints.enabled]] +command = "xdg-open" # On Linux/BSD +hyperlinks = true +post_processing = true +persist = false +mouse.enabled = true +binding = { key = "U", mods = "Control|Shift" } +regex = "(ipfs:|ipns:|magnet:|mailto:|gemini://|gopher://|https://|http://|news:|file:|git://|ssh:|ftp://)[^\u0000-\u001F\u007F-\u009F<>\"\\s{-}\\^⟨⟩`]+" + + +[[hints.enabled]] +action = "Paste" +post_processing = false +binding = { key = "T", mods = "Control|Shift" } +regex = '''([^ '"`=:\[\(]*/)([^/: '"`\)\]]*)''' + + +[[hints.enabled]] +action = "Paste" +post_processing = false +binding = { key = "H", mods = "Control|Shift" } +regex = '([a-z0-9]{7})\s' diff --git a/modules/home/conf/alacritty/toml/keyboard_bindings.toml b/modules/home/conf/alacritty/toml/keyboard_bindings.toml new file mode 100644 index 00000000..8e0b1e13 --- /dev/null +++ b/modules/home/conf/alacritty/toml/keyboard_bindings.toml @@ -0,0 +1,297 @@ +[[keyboard.bindings]] +action = "Paste" +key = "P" +mods = "Control" + +[[keyboard.bindings]] +action = "Paste" +key = "Insert" +mods = "Shift" + +[[keyboard.bindings]] +chars = "gc" +key = "Slash" +mods = "Control" + +[[keyboard.bindings]] +action = "Copy" +key = "Y" +mods = "Control" + +[[keyboard.bindings]] +action = "ResetFontSize" +key = "Key0" +mods = "Control" + +[[keyboard.bindings]] +action = "IncreaseFontSize" +key = "Equals" +mods = "Control" + +[[keyboard.bindings]] +action = "IncreaseFontSize" +key = "Plus" +mods = "Control" + +[[keyboard.bindings]] +action = "DecreaseFontSize" +key = "Minus" +mods = "Control" + +[[keyboard.bindings]] +action = "ToggleViMode" +key = "Space" +mods = "Control" + +[[keyboard.bindings]] +action = "ScrollToBottom" +key = "Space" +mode = "Vi" +mods = "Control" + +[[keyboard.bindings]] +action = "ScrollToBottom" +key = "I" +mode = "Vi" + +[[keyboard.bindings]] +action = "ToggleViMode" +key = "I" +mode = "Vi" + +[[keyboard.bindings]] +action = "ScrollToBottom" +key = "C" +mode = "Vi" +mods = "Control" + +[[keyboard.bindings]] +action = "ToggleViMode" +key = "C" +mode = "Vi" +mods = "Control" + +[[keyboard.bindings]] +action = "ClearSelection" +key = "Escape" +mode = "Vi" + +[[keyboard.bindings]] +action = "ScrollLineUp" +key = "Y" +mode = "Vi" +mods = "Control" + +[[keyboard.bindings]] +action = "ScrollLineDown" +key = "E" +mode = "Vi" +mods = "Control" + +[[keyboard.bindings]] +action = "ScrollToTop" +key = "G" +mode = "Vi" + +[[keyboard.bindings]] +action = "ScrollToBottom" +key = "G" +mode = "Vi" +mods = "Shift" + +[[keyboard.bindings]] +action = "ScrollPageUp" +key = "B" +mode = "Vi" +mods = "Control" + +[[keyboard.bindings]] +action = "ScrollPageDown" +key = "F" +mode = "Vi" +mods = "Control" + +[[keyboard.bindings]] +action = "ScrollHalfPageUp" +key = "U" +mode = "Vi" +mods = "Control" + +[[keyboard.bindings]] +action = "ScrollHalfPageDown" +key = "D" +mode = "Vi" +mods = "Control" + +[[keyboard.bindings]] +action = "Copy" +key = "Y" +mode = "Vi" + +[[keyboard.bindings]] +action = "ClearSelection" +key = "Y" +mode = "Vi" + +[[keyboard.bindings]] +action = "ToggleNormalSelection" +key = "V" +mode = "Vi" + +[[keyboard.bindings]] +action = "ToggleLineSelection" +key = "V" +mode = "Vi" +mods = "Shift" + +[[keyboard.bindings]] +action = "ToggleBlockSelection" +key = "V" +mode = "Vi" +mods = "Control" + +[[keyboard.bindings]] +action = "ToggleSemanticSelection" +key = "V" +mode = "Vi" +mods = "Alt" + +[[keyboard.bindings]] +action = "Open" +key = "Return" +mode = "Vi" + +[[keyboard.bindings]] +action = "Up" +key = "K" +mode = "Vi" + +[[keyboard.bindings]] +action = "Down" +key = "J" +mode = "Vi" + +[[keyboard.bindings]] +action = "Left" +key = "H" +mode = "Vi" + +[[keyboard.bindings]] +action = "Right" +key = "L" +mode = "Vi" + +[[keyboard.bindings]] +action = "Up" +key = "Up" +mode = "Vi" + +[[keyboard.bindings]] +action = "Down" +key = "Down" +mode = "Vi" + +[[keyboard.bindings]] +action = "Left" +key = "Left" +mode = "Vi" + +[[keyboard.bindings]] +action = "Right" +key = "Right" +mode = "Vi" + +[[keyboard.bindings]] +action = "First" +key = "Key0" +mode = "Vi" + +[[keyboard.bindings]] +action = "Last" +key = "Key4" +mode = "Vi" + +[[keyboard.bindings]] +action = "FirstOccupied" +key = "Key6" +mode = "Vi" +mods = "Shift" + +[[keyboard.bindings]] +action = "High" +key = "H" +mode = "Vi" +mods = "Shift" + +[[keyboard.bindings]] +action = "Middle" +key = "M" +mode = "Vi" +mods = "Shift" + +[[keyboard.bindings]] +action = "Low" +key = "L" +mode = "Vi" +mods = "Shift" + +[[keyboard.bindings]] +action = "SemanticLeft" +key = "B" +mode = "Vi" + +[[keyboard.bindings]] +action = "SemanticRight" +key = "W" +mode = "Vi" + +[[keyboard.bindings]] +action = "SemanticRightEnd" +key = "E" +mode = "Vi" + +[[keyboard.bindings]] +action = "WordLeft" +key = "B" +mode = "Vi" +mods = "Shift" + +[[keyboard.bindings]] +action = "WordRight" +key = "W" +mode = "Vi" +mods = "Shift" + +[[keyboard.bindings]] +action = "WordRightEnd" +key = "E" +mode = "Vi" +mods = "Shift" + +[[keyboard.bindings]] +action = "Bracket" +key = "Key5" +mode = "Vi" +mods = "Shift" + +[[keyboard.bindings]] +action = "SearchForward" +key = "Slash" +mode = "Vi" + +[[keyboard.bindings]] +action = "SearchBackward" +key = "Slash" +mode = "Vi" +mods = "Shift" + +[[keyboard.bindings]] +action = "SearchNext" +key = "N" +mode = "Vi" + +[[keyboard.bindings]] +action = "SearchPrevious" +key = "N" +mode = "Vi" +mods = "Shift" diff --git a/modules/home/conf/alacritty/toml/mouse.toml b/modules/home/conf/alacritty/toml/mouse.toml new file mode 100644 index 00000000..eba68edf --- /dev/null +++ b/modules/home/conf/alacritty/toml/mouse.toml @@ -0,0 +1,2 @@ +[mouse] +hide_when_typing = false diff --git a/modules/home/conf/alacritty/toml/mouse_bindings.toml b/modules/home/conf/alacritty/toml/mouse_bindings.toml new file mode 100644 index 00000000..1b281748 --- /dev/null +++ b/modules/home/conf/alacritty/toml/mouse_bindings.toml @@ -0,0 +1,3 @@ +[[mouse.bindings]] +action = "Copy" +mouse = "Middle" diff --git a/modules/home/conf/alacritty/toml/scrolling.toml b/modules/home/conf/alacritty/toml/scrolling.toml new file mode 100644 index 00000000..ed7c22cf --- /dev/null +++ b/modules/home/conf/alacritty/toml/scrolling.toml @@ -0,0 +1,3 @@ +[scrolling] +history = 10000 +multiplier = 3 diff --git a/modules/home/conf/alacritty/toml/selection.toml b/modules/home/conf/alacritty/toml/selection.toml new file mode 100644 index 00000000..60ea0495 --- /dev/null +++ b/modules/home/conf/alacritty/toml/selection.toml @@ -0,0 +1,3 @@ +[selection] +save_to_clipboard = false +semantic_escape_chars = ",│`|:\"' ()[]{}<>\t" diff --git a/modules/home/conf/alacritty/toml/window.toml b/modules/home/conf/alacritty/toml/window.toml new file mode 100644 index 00000000..123b5b7a --- /dev/null +++ b/modules/home/conf/alacritty/toml/window.toml @@ -0,0 +1,18 @@ +[window] +decorations = "none" +decorations_theme_variant = "None" +dynamic_title = true +opacity = 0.9 +startup_mode = "Windowed" +title = "Alacritty" +[window.class] +general = "Alacritty" +instance = "Alacritty" + +[window.dimensions] +columns = 0 +lines = 0 + +[window.padding] +x = 5 +y = 5 diff --git a/modules/home/conf/alacritty/yaml/base.yml b/modules/home/conf/alacritty/yaml/base.yml new file mode 100644 index 00000000..0791a60f --- /dev/null +++ b/modules/home/conf/alacritty/yaml/base.yml @@ -0,0 +1,17 @@ +--- +# Configuration for Alacritty, the GPU enhanced terminal emulator. + +# If `true`, bold text is drawn using the bright color variants. +#draw_bold_text_with_bright_colors: true # TODO: + +# Live config reload (changes require restart) +live_config_reload: true + +# Startup directory +# +# Directory the shell is started in. If this is unset, or `None`, the working +# directory of the parent process will be used. +#working_directory: None + +# Offer IPC using `alacritty msg` (unix only) +ipc_socket: true diff --git a/modules/home/conf/alacritty/yaml/bell.yml b/modules/home/conf/alacritty/yaml/bell.yml new file mode 100644 index 00000000..bd071aeb --- /dev/null +++ b/modules/home/conf/alacritty/yaml/bell.yml @@ -0,0 +1,42 @@ +# Bell +# +# The bell is rung every time the BEL control character is received. +bell: + # Visual Bell Animation + # + # Animation effect for flashing the screen when the visual bell is rung. + # + # Values for `animation`: + # - Ease + # - EaseOut + # - EaseOutSine + # - EaseOutQuad + # - EaseOutCubic + # - EaseOutQuart + # - EaseOutQuint + # - EaseOutExpo + # - EaseOutCirc + # - Linear + #animation: EaseOutExpo + + # Duration of the visual bell flash in milliseconds. A `duration` of `0` will + # disable the visual bell animation. + duration: 0 + + # Visual bell animation color. + #color: '#ffffff' + + # Bell Command + # + # This program is executed whenever the bell is rung. + # + # When set to `command: None`, no command will be executed. + # + # Example: + # command: + # program: notify-send + # args: ["Hello, World!"] + # + # command: + # program: notify-send + # args: ["The bell in alacritty was rung!"] diff --git a/modules/home/conf/alacritty/yaml/colors.yml b/modules/home/conf/alacritty/yaml/colors.yml new file mode 100644 index 00000000..899c660a --- /dev/null +++ b/modules/home/conf/alacritty/yaml/colors.yml @@ -0,0 +1,147 @@ +# Colors (Tomorrow Night) +colors: + # Default colors + primary: + background: '#191919' + foreground: '#d8dee9' + + # Bright and dim foreground colors + # + # The dimmed foreground color is calculated automatically if it is not + # present. If the bright foreground color is not set, or + # `draw_bold_text_with_bright_colors` is `false`, the normal foreground + # color will be used. + #dim_foreground: '#828482' + #bright_foreground: '#eaeaea' + + # Cursor colors + # + # Colors which should be used to draw the terminal cursor. + # + # Allowed values are CellForeground/CellBackground, which reference the + # affected cell, or hexadecimal colors like #ff00ff. + cursor: + text: '#191919' + cursor: '#d8dee9' + + # Vi mode cursor colors + # + # Colors for the cursor when the vi mode is active. + # + # Allowed values are CellForeground/CellBackground, which reference the + # affected cell, or hexadecimal colors like #ff00ff. + vi_mode_cursor: + text: CellBackground + cursor: CellForeground + + # Search colors + # + # Colors used for the search bar and match highlighting. + search: + # Allowed values are CellForeground/CellBackground, which reference the + # affected cell, or hexadecimal colors like #ff00ff. + matches: + foreground: '#000000' + background: '#ffffff' + focused_match: + foreground: '#ffffff' + background: '#000000' + + # Keyboard hints + hints: + # First character in the hint label + # + # Allowed values are CellForeground/CellBackground, which reference the + # affected cell, or hexadecimal colors like #ff00ff. + start: + foreground: '#1d1f21' + background: '#e9ff5e' + + # All characters after the first one in the hint label + # + # Allowed values are CellForeground/CellBackground, which reference the + # affected cell, or hexadecimal colors like #ff00ff. + end: + foreground: '#e9ff5e' + background: '#1d1f21' + + # Line indicator + # + # Color used for the indicator displaying the position in history during + # search and vi mode. + # + # By default, these will use the opposing primary color. + #line_indicator: + # foreground: None + # background: None + + # Footer bar + # + # Color used for the footer bar on the bottom, used by search regex input, + # hyperlink URI preview, etc. + # + footer_bar: + background: '#c5c8c6' + foreground: '#1d1f21' + + # Selection colors + # + # Colors which should be used to draw the selection area. + # + # Allowed values are CellForeground/CellBackground, which reference the + # affected cell, or hexadecimal colors like #ff00ff. + selection: + text: '#191919' + background: '#d8dee9' + + # Normal colors + normal: + black: '#191919' + red: '#b02626' + green: '#40a62f' + yellow: '#f2e635' + blue: '#314ad0' + magenta: '#b30ad0' + cyan: '#32d0fc' + white: '#acadb1' + + # Bright colors + bright: + black: '#36393d' + red: '#ce2727' + green: '#47c930' + yellow: '#fff138' + blue: '#2e4bea' + magenta: '#cc15ed' + cyan: '#54d9ff' + white: '#dbdbdb' + + # Dim colors + # + # If the dim colors are not set, they will be calculated automatically based + # on the `normal` colors. + dim: + black: '#676f78' + red: '#b55454' + green: '#78a670' + yellow: '#faf380' + blue: '#707fd0' + magenta: '#c583d0' + cyan: '#8adaf1' + white: '#e0e3e7' + # Indexed Colors + # + # The indexed colors include all colors from 16 to 256. + # When these are not set, they're filled with sensible defaults. + # + # Example: + # `- { index: 16, color: '#ff00ff' }` + # + #indexed_colors: [] + + # Transparent cell backgrounds + # + # Whether or not `window.opacity` applies to all cell backgrounds or only to + # the default background. When set to `true` all cells will be transparent + # regardless of their background color. + #transparent_background_colors: false # TODO: diff --git a/modules/home/conf/alacritty/yaml/colorscheme.yml b/modules/home/conf/alacritty/yaml/colorscheme.yml new file mode 100644 index 00000000..4e0abfae --- /dev/null +++ b/modules/home/conf/alacritty/yaml/colorscheme.yml @@ -0,0 +1,31 @@ +# Nightfox Alacritty Colors +# Style: carbonfox +# Upstream: https://github.com/edeneast/nightfox.nvim/raw/main/extra/carbonfox/nightfox_alacritty.yml +colors: + # Default colors + primary: + background: '0x161616' + foreground: '0xf2f4f8' + # Normal colors + normal: + black: '0x282828' + red: '0xee5396' + green: '0x25be6a' + yellow: '0x08bdba' + blue: '0x78a9ff' + magenta: '0xbe95ff' + cyan: '0x33b1ff' + white: '0xdfdfe0' + # Bright colors + bright: + black: '0x484848' + red: '0xf16da6' + green: '0x46c880' + yellow: '0x2dc7c4' + blue: '0x8cb6ff' + magenta: '0xc8a5ff' + cyan: '0x52bdff' + white: '0xe4e4e5' + indexed_colors: + - { index: 16, color: '0x3ddbd9' } + - { index: 17, color: '0xff7eb6' } diff --git a/modules/home/conf/alacritty/yaml/cursor.yml b/modules/home/conf/alacritty/yaml/cursor.yml new file mode 100644 index 00000000..ef700ebc --- /dev/null +++ b/modules/home/conf/alacritty/yaml/cursor.yml @@ -0,0 +1,43 @@ +cursor: + # Cursor style + style: + # Cursor shape + # + # Values for `shape`: + # - ▇ Block + # - _ Underline + # - | Beam + shape: Beam + + # Cursor blinking state + # + # Values for `blinking`: + # - Never: Prevent the cursor from ever blinking + # - Off: Disable blinking by default + # - On: Enable blinking by default + # - Always: Force the cursor to always blink + blinking: On + + # Vi mode cursor style + # + # If the vi mode cursor style is `None` or not specified, it will fall back to + # the style of the active value of the normal cursor. + # + # See `cursor.style` for available options. + vi_mode_style: None + + # Cursor blinking interval in milliseconds. + blink_interval: 750 + + # Time after which cursor stops blinking, in seconds. + # + # Specifying '0' will disable timeout for blinking. + blink_timeout: 5 + + # If this is `true`, the cursor will be rendered as a hollow box when the + # window is not focused. + unfocused_hollow: true + + # Thickness of the cursor relative to the cell width as floating point number + # from `0.0` to `1.0`. + thickness: 0.15 diff --git a/modules/home/conf/alacritty/yaml/debug.yml b/modules/home/conf/alacritty/yaml/debug.yml new file mode 100644 index 00000000..2c391da2 --- /dev/null +++ b/modules/home/conf/alacritty/yaml/debug.yml @@ -0,0 +1,29 @@ +#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 diff --git a/modules/home/conf/alacritty/yaml/env.yml b/modules/home/conf/alacritty/yaml/env.yml new file mode 100644 index 00000000..ee7528b7 --- /dev/null +++ b/modules/home/conf/alacritty/yaml/env.yml @@ -0,0 +1,11 @@ +# Any items in the `env` entry below will be added as +# environment variables. Some entries may override variables +# set by alacritty itself. +env: + # TERM variable + # + # This value is used to set the `$TERM` environment variable for + # each instance of Alacritty. If it is not present, alacritty will + # check the local terminfo database and use `alacritty` if it is + # available, otherwise `xterm-256color` is used. + TERM: alacritty diff --git a/modules/home/conf/alacritty/yaml/font.yml b/modules/home/conf/alacritty/yaml/font.yml new file mode 100644 index 00000000..a3fd3b1d --- /dev/null +++ b/modules/home/conf/alacritty/yaml/font.yml @@ -0,0 +1,73 @@ +# Font configuration +font: + # Normal (roman) font face + normal: + # Font family + # + # Default: + # - (macOS) Menlo + # - (Linux/BSD) monospace + # - (Windows) Consolas + # family: Source Code Pro + # family: SauceCodePro Nerd Font + family: SauceCodePro Nerd Font Mono + + # The `style` can be specified to pick a specific face. + style: Regular + + # Bold font face + #bold: + # Font family + # + # If the bold family is not specified, it will fall back to the + # value specified for the normal font. + # family: Source Code Pro + + # The `style` can be specified to pick a specific face. + #style: Bold + + # Italic font face + #italic: + # Font family + # + # If the italic family is not specified, it will fall back to the + # value specified for the normal font. + # family: Source Code Pro + + # The `style` can be specified to pick a specific face. + #style: Italic + + # Bold italic font face + #bold_italic: + # Font family + # + # If the bold italic family is not specified, it will fall back to the + # value specified for the normal font. + # family: Source Code Pro + + # The `style` can be specified to pick a specific face. + #style: Bold Italic + + # Point size + size: 12.0 + + # Offset is the extra space around each character. `offset.y` can be thought + # of as modifying the line spacing, and `offset.x` as modifying the letter + # spacing. + offset: + x: -1 + y: -1 + + # Glyph offset determines the locations of the glyphs within their cells with + # the default being at the bottom. Increasing `x` moves the glyph to the + # right, increasing `y` moves the glyph upward. + glyph_offset: + x: -1 + y: -1 + + # Use built-in font for box drawing characters. + # + # If `true`, Alacritty will use a custom built-in font for box drawing + # characters (Unicode points 2500 - 259f). + # + builtin_box_drawing: true # TODO: diff --git a/modules/home/conf/alacritty/yaml/hints.yml b/modules/home/conf/alacritty/yaml/hints.yml new file mode 100644 index 00000000..8c35548b --- /dev/null +++ b/modules/home/conf/alacritty/yaml/hints.yml @@ -0,0 +1,77 @@ +# Hints +# +# Terminal hints can be used to find text or hyperlink in the visible part of +# the terminal and pipe it to other applications. +hints: + # Keys used for the hint labels. + alphabet: "jfkdls;ahgurieowpq" + + # List with all available hints + # + # Each hint must have any of `regex` or `hyperlinks` field and either an + # `action` or a `command` field. The fields `mouse`, `binding` and + # `post_processing` are optional. + # + # The `hyperlinks` option will cause OSC 8 escape sequence hyperlinks to be + # highlighted. + # + # The fields `command`, `binding.key`, `binding.mods`, `binding.mode` and + # `mouse.mods` accept the same values as they do in the `key_bindings` section. + # + # The `mouse.enabled` field controls if the hint should be underlined while + # the mouse with all `mouse.mods` keys held or the vi mode cursor is above it. + # + # If the `post_processing` field is set to `true`, heuristics will be used to + # shorten the match if there are characters likely not to be part of the hint + # (e.g. a trailing `.`). This is most useful for URIs and applies only to + # `regex` matches. + # + # Values for `action`: + # - Copy + # Copy the hint's text to the clipboard. + # - Paste + # Paste the hint's text to the terminal or search. + # - Select + # Select the hint's text. + # - MoveViModeCursor + # Move the vi mode cursor to the beginning of the hint. + 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 + + - regex: "([^ '\"`=:\\[\\(]*/)([^/: '\"`\\)\\]]*)" + action: Paste + post_procesing: false + binding: + key: T + mods: Control|Shift + + - regex: "([a-z0-9]{7})\\s" + action: Paste + post_procesing: false + binding: + key: H + 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 diff --git a/modules/home/conf/alacritty/yaml/key_bindings.yml b/modules/home/conf/alacritty/yaml/key_bindings.yml new file mode 100644 index 00000000..c8be747e --- /dev/null +++ b/modules/home/conf/alacritty/yaml/key_bindings.yml @@ -0,0 +1,382 @@ +# Key bindings +# +# Key bindings are specified as a list of objects. For example, this is the +# default paste binding: +# +# `- { key: V, mods: Control|Shift, action: Paste }` +# +# Each key binding will specify a: +# +# - `key`: Identifier of the key pressed +# +# - A-Z +# - F1-F24 +# - Key0-Key9 +# +# A full list with available key codes can be found here: +# https://docs.rs/winit/*/winit/event/enum.VirtualKeyCode.html#variants +# +# Instead of using the name of the keys, the `key` field also supports using +# the scancode of the desired key. Scancodes have to be specified as a +# decimal number. This command will allow you to display the hex scancodes +# for certain keys: +# +# `showkey --scancodes`. +# +# Then exactly one of: +# +# - `chars`: Send a byte sequence to the running application +# +# The `chars` field writes the specified string to the terminal. This makes +# it possible to pass escape sequences. To find escape codes for bindings +# like `PageUp` (`"\x1b[5~"`), you can run the command `showkey -a` outside +# of tmux. Note that applications use terminfo to map escape sequences back +# to keys. It is therefore required to update the terminfo when changing an +# escape sequence. +# +# - `action`: Execute a predefined action +# +# - ToggleViMode +# - SearchForward +# Start searching toward the right of the search origin. +# - SearchBackward +# Start searching toward the left of the search origin. +# - Copy +# - Paste +# - IncreaseFontSize +# - DecreaseFontSize +# - ResetFontSize +# - ScrollPageUp +# - ScrollPageDown +# - ScrollHalfPageUp +# - ScrollHalfPageDown +# - ScrollLineUp +# - ScrollLineDown +# - ScrollToTop +# - ScrollToBottom +# - ClearHistory +# Remove the terminal's scrollback history. +# - Hide +# Hide the Alacritty window. +# - Minimize +# Minimize the Alacritty window. +# - Quit +# Quit Alacritty. +# - ToggleFullscreen +# - ToggleMaximized +# - SpawnNewInstance +# Spawn a new instance of Alacritty. +# - CreateNewWindow +# Create a new Alacritty window from the current process. +# - ClearLogNotice +# Clear Alacritty's UI warning and error notice. +# - ClearSelection +# Remove the active selection. +# - ReceiveChar +# - None +# +# - Vi mode exclusive actions: +# +# - Open +# Perform the action of the first matching hint under the vi mode cursor +# with `mouse.enabled` set to `true`. +# - ToggleNormalSelection +# - ToggleLineSelection +# - ToggleBlockSelection +# - ToggleSemanticSelection +# Toggle semantic selection based on `selection.semantic_escape_chars`. +# - CenterAroundViCursor +# Center view around vi mode cursor +# +# - Vi mode exclusive cursor motion actions: +# +# - Up +# One line up. +# - Down +# One line down. +# - Left +# One character left. +# - Right +# One character right. +# - First +# First column, or beginning of the line when already at the first column. +# - Last +# Last column, or beginning of the line when already at the last column. +# - FirstOccupied +# First non-empty cell in this terminal row, or first non-empty cell of +# the line when already at the first cell of the row. +# - High +# Top of the screen. +# - Middle +# Center of the screen. +# - Low +# Bottom of the screen. +# - SemanticLeft +# Start of the previous semantically separated word. +# - SemanticRight +# Start of the next semantically separated word. +# - SemanticLeftEnd +# End of the previous semantically separated word. +# - SemanticRightEnd +# End of the next semantically separated word. +# - WordLeft +# Start of the previous whitespace separated word. +# - WordRight +# Start of the next whitespace separated word. +# - WordLeftEnd +# End of the previous whitespace separated word. +# - WordRightEnd +# End of the next whitespace separated word. +# - Bracket +# Character matching the bracket at the cursor's location. +# - SearchNext +# Beginning of the next match. +# - SearchPrevious +# Beginning of the previous match. +# - SearchStart +# Start of the match to the left of the vi mode cursor. +# - SearchEnd +# End of the match to the right of the vi mode cursor. +# +# - Search mode exclusive actions: +# - SearchFocusNext +# Move the focus to the next search match. +# - SearchFocusPrevious +# Move the focus to the previous search match. +# - SearchConfirm +# - SearchCancel +# - SearchClear +# Reset the search regex. +# - SearchDeleteWord +# Delete the last word in the search regex. +# - SearchHistoryPrevious +# Go to the previous regex in the search history. +# - SearchHistoryNext +# Go to the next regex in the search history. +# +# - macOS exclusive actions: +# - ToggleSimpleFullscreen +# Enter fullscreen without occupying another space. +# +# - Linux/BSD exclusive actions: +# +# - CopySelection +# Copy from the selection buffer. +# - PasteSelection +# Paste from the selection buffer. +# +# - `command`: Fork and execute a specified command plus arguments +# +# The `command` field must be a map containing a `program` string and an +# `args` array of command line parameter strings. For example: +# `{ program: "alacritty", args: ["-e", "vttest"] }` +# +# And optionally: +# +# - `mods`: Key modifiers to filter binding actions +# +# - Command +# - Control +# - Option +# - Super +# - Shift +# - Alt +# +# Multiple `mods` can be combined using `|` like this: +# `mods: Control|Shift`. +# Whitespace and capitalization are relevant and must match the example. +# +# - `mode`: Indicate a binding for only specific terminal reported modes +# +# This is mainly used to send applications the correct escape sequences +# when in different modes. +# +# - AppCursor +# - AppKeypad +# - Search +# - Alt +# - Vi +# +# A `~` operator can be used before a mode to apply the binding whenever +# the mode is *not* active, e.g. `~Alt`. +# +# Bindings are always filled by default, but will be replaced when a new +# binding with the same triggers is defined. To unset a default binding, it can +# be mapped to the `ReceiveChar` action. Alternatively, you can use `None` for +# a no-op if you do not wish to receive input characters for that binding. +# +# If the same trigger is assigned to multiple actions, all of them are executed +# in the order they were defined in. +key_bindings: +# +# + - { 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 } +# +# +# + #- { key: Paste, action: Paste } + #- { key: Copy, action: Copy } + #- { key: L, mods: Control, action: ClearLogNotice } + #- { key: L, mods: Control, mode: ~Vi|~Search, chars: "\x0c" } + #- { key: PageUp, mods: Shift, mode: ~Alt, action: ScrollPageUp } + #- { key: PageDown, mods: Shift, mode: ~Alt, action: ScrollPageDown } + #- { key: Home, mods: Shift, mode: ~Alt, action: ScrollToTop } + #- { key: End, mods: Shift, mode: ~Alt, action: ScrollToBottom } + + # Vi Mode + #- { key: Space, mods: Shift|Control, mode: ~Search, action: ToggleViMode } + #- { key: Space, mods: Shift|Control, mode: Vi|~Search, action: ScrollToBottom } + #- { key: Escape, mode: Vi|~Search, action: ClearSelection } + #- { key: I, mode: Vi|~Search, action: ToggleViMode } + #- { key: I, mode: Vi|~Search, action: ScrollToBottom } + #- { key: C, mods: Control, mode: Vi|~Search, action: ToggleViMode } + #- { key: Y, mods: Control, mode: Vi|~Search, action: ScrollLineUp } + #- { key: E, mods: Control, mode: Vi|~Search, action: ScrollLineDown } + #- { key: G, mode: Vi|~Search, action: ScrollToTop } + #- { key: G, mods: Shift, mode: Vi|~Search, action: ScrollToBottom } + #- { key: B, mods: Control, mode: Vi|~Search, action: ScrollPageUp } + #- { key: F, mods: Control, mode: Vi|~Search, action: ScrollPageDown } + #- { key: U, mods: Control, mode: Vi|~Search, action: ScrollHalfPageUp } + #- { key: D, mods: Control, mode: Vi|~Search, action: ScrollHalfPageDown } + #- { key: Y, mode: Vi|~Search, action: Copy } + #- { key: Y, mode: Vi|~Search, action: ClearSelection } + #- { key: Copy, mode: Vi|~Search, action: ClearSelection } + #- { key: V, mode: Vi|~Search, action: ToggleNormalSelection } + #- { key: V, mods: Shift, mode: Vi|~Search, action: ToggleLineSelection } + #- { key: V, mods: Control, mode: Vi|~Search, action: ToggleBlockSelection } + #- { key: V, mods: Alt, mode: Vi|~Search, action: ToggleSemanticSelection } + #- { key: Return, mode: Vi|~Search, action: Open } + #- { key: Z, mode: Vi|~Search, action: CenterAroundViCursor } + #- { key: K, mode: Vi|~Search, action: Up } + #- { key: J, mode: Vi|~Search, action: Down } + #- { key: H, mode: Vi|~Search, action: Left } + #- { key: L, mode: Vi|~Search, action: Right } + #- { key: Up, mode: Vi|~Search, action: Up } + #- { key: Down, mode: Vi|~Search, action: Down } + #- { key: Left, mode: Vi|~Search, action: Left } + #- { key: Right, mode: Vi|~Search, action: Right } + #- { key: Key0, mode: Vi|~Search, action: First } + #- { key: Key4, mods: Shift, mode: Vi|~Search, action: Last } + #- { key: Key6, mods: Shift, mode: Vi|~Search, action: FirstOccupied } + #- { key: H, mods: Shift, mode: Vi|~Search, action: High } + #- { key: M, mods: Shift, mode: Vi|~Search, action: Middle } + #- { key: L, mods: Shift, mode: Vi|~Search, action: Low } + #- { key: B, mode: Vi|~Search, action: SemanticLeft } + #- { key: W, mode: Vi|~Search, action: SemanticRight } + #- { key: E, mode: Vi|~Search, action: SemanticRightEnd } + #- { key: B, mods: Shift, mode: Vi|~Search, action: WordLeft } + #- { key: W, mods: Shift, mode: Vi|~Search, action: WordRight } + #- { key: E, mods: Shift, mode: Vi|~Search, action: WordRightEnd } + #- { key: Key5, mods: Shift, mode: Vi|~Search, action: Bracket } + #- { key: Slash, mode: Vi|~Search, action: SearchForward } + #- { key: Slash, mods: Shift, mode: Vi|~Search, action: SearchBackward } + #- { key: N, mode: Vi|~Search, action: SearchNext } + #- { key: N, mods: Shift, mode: Vi|~Search, action: SearchPrevious } + + # Search Mode + #- { key: Return, mode: Search|Vi, action: SearchConfirm } + #- { key: Escape, mode: Search, action: SearchCancel } + #- { key: C, mods: Control, mode: Search, action: SearchCancel } + #- { key: U, mods: Control, mode: Search, action: SearchClear } + #- { key: W, mods: Control, mode: Search, action: SearchDeleteWord } + #- { key: P, mods: Control, mode: Search, action: SearchHistoryPrevious } + #- { key: N, mods: Control, mode: Search, action: SearchHistoryNext } + #- { key: Up, mode: Search, action: SearchHistoryPrevious } + #- { key: Down, mode: Search, action: SearchHistoryNext } + #- { key: Return, mode: Search|~Vi, action: SearchFocusNext } + #- { key: Return, mods: Shift, mode: Search|~Vi, action: SearchFocusPrevious } + + # (Windows, Linux, and BSD only) + #- { key: V, mods: Control|Shift, mode: ~Vi, action: Paste } + #- { key: C, mods: Control|Shift, action: Copy } + #- { key: F, mods: Control|Shift, mode: ~Search, action: SearchForward } + #- { key: B, mods: Control|Shift, mode: ~Search, action: SearchBackward } + #- { key: C, mods: Control|Shift, mode: Vi|~Search, action: ClearSelection } + #- { key: Insert, mods: Shift, action: PasteSelection } + #- { key: Key0, mods: Control, action: ResetFontSize } + #- { key: Equals, mods: Control, action: IncreaseFontSize } + #- { key: Plus, mods: Control, action: IncreaseFontSize } + #- { key: NumpadAdd, mods: Control, action: IncreaseFontSize } + #- { key: Minus, mods: Control, action: DecreaseFontSize } + #- { key: NumpadSubtract, mods: Control, action: DecreaseFontSize } + + # (Windows only) + #- { key: Return, mods: Alt, action: ToggleFullscreen } + + # (macOS only) + #- { key: K, mods: Command, mode: ~Vi|~Search, chars: "\x0c" } + #- { key: K, mods: Command, mode: ~Vi|~Search, action: ClearHistory } + #- { key: Key0, mods: Command, action: ResetFontSize } + #- { key: Equals, mods: Command, action: IncreaseFontSize } + #- { key: Plus, mods: Command, action: IncreaseFontSize } + #- { key: NumpadAdd, mods: Command, action: IncreaseFontSize } + #- { key: Minus, mods: Command, action: DecreaseFontSize } + #- { key: NumpadSubtract, mods: Command, action: DecreaseFontSize } + #- { key: V, mods: Command, action: Paste } + #- { key: C, mods: Command, action: Copy } + #- { key: C, mods: Command, mode: Vi|~Search, action: ClearSelection } + #- { key: H, mods: Command, action: Hide } + #- { key: H, mods: Command|Alt, action: HideOtherApplications } + #- { key: M, mods: Command, action: Minimize } + #- { key: Q, mods: Command, action: Quit } + #- { key: W, mods: Command, action: Quit } + #- { key: N, mods: Command, action: CreateNewWindow } + #- { key: F, mods: Command|Control, action: ToggleFullscreen } + #- { key: F, mods: Command, mode: ~Search, action: SearchForward } + #- { key: B, mods: Command, mode: ~Search, action: SearchBackward } diff --git a/modules/home/conf/alacritty/yaml/mouse.yml b/modules/home/conf/alacritty/yaml/mouse.yml new file mode 100644 index 00000000..4bdb408b --- /dev/null +++ b/modules/home/conf/alacritty/yaml/mouse.yml @@ -0,0 +1,11 @@ +mouse: + # Click settings + # + # The `double_click` and `triple_click` settings control the time + # alacritty should wait for accepting multiple clicks as one double + # or triple click. + double_click: { threshold: 300 } + triple_click: { threshold: 300 } + + # If this is `true`, the cursor is temporarily hidden when typing. + hide_when_typing: false diff --git a/modules/home/conf/alacritty/yaml/mouse_bindings.yml b/modules/home/conf/alacritty/yaml/mouse_bindings.yml new file mode 100644 index 00000000..ab244d21 --- /dev/null +++ b/modules/home/conf/alacritty/yaml/mouse_bindings.yml @@ -0,0 +1,32 @@ +# Mouse bindings +# +# Mouse bindings are specified as a list of objects, much like the key +# bindings further below. +# +# To trigger mouse bindings when an application running within Alacritty +# captures the mouse, the `Shift` modifier is automatically added as a +# requirement. +# +# Each mouse binding will specify a: +# +# - `mouse`: +# +# - Middle +# - Left +# - Right +# - Numeric identifier such as `5` +# +# - `action` (see key bindings for actions not exclusive to mouse mode) +# +# - Mouse exclusive actions: +# +# - ExpandSelection +# Expand the selection to the current mouse cursor location. +# +# And optionally: +# +# - `mods` (see key bindings) +mouse_bindings: +# - { mouse: Right, action: ExpandSelection } +# - { mouse: Right, mods: Control, action: ExpandSelection } + - { mouse: Middle, action: Copy } diff --git a/modules/home/conf/alacritty/yaml/scrolling.yml b/modules/home/conf/alacritty/yaml/scrolling.yml new file mode 100644 index 00000000..50365627 --- /dev/null +++ b/modules/home/conf/alacritty/yaml/scrolling.yml @@ -0,0 +1,7 @@ +scrolling: + # Maximum number of lines in the scrollback buffer. + # Specifying '0' will disable scrolling. + history: 10000 + + # Scrolling distance multiplier. + multiplier: 3 diff --git a/modules/home/conf/alacritty/yaml/selection.yml b/modules/home/conf/alacritty/yaml/selection.yml new file mode 100644 index 00000000..5e5bd544 --- /dev/null +++ b/modules/home/conf/alacritty/yaml/selection.yml @@ -0,0 +1,7 @@ +selection: + # This string contains all characters that are used as separators for + # "semantic words" in Alacritty. + semantic_escape_chars: ",│`|:\"' ()[]{}<>\t" + + # When set to `true`, selected text will be copied to the primary clipboard. + save_to_clipboard: false diff --git a/modules/home/conf/alacritty/yaml/shell.yml b/modules/home/conf/alacritty/yaml/shell.yml new file mode 100644 index 00000000..04844dd0 --- /dev/null +++ b/modules/home/conf/alacritty/yaml/shell.yml @@ -0,0 +1,13 @@ +# Shell +# +# You can set `shell.program` to the path of your favorite shell, e.g. +# `/bin/fish`. Entries in `shell.args` are passed unmodified as arguments to the +# shell. +# +# Default: +# - (Linux/BSD/macOS) `$SHELL` or the user's login shell, if `$SHELL` is unset +# - (Windows) powershell +#shell: +# program: /bin/bash +# args: +# - --login diff --git a/modules/home/conf/alacritty/yaml/window.yml b/modules/home/conf/alacritty/yaml/window.yml new file mode 100644 index 00000000..7b89b6ed --- /dev/null +++ b/modules/home/conf/alacritty/yaml/window.yml @@ -0,0 +1,89 @@ +window: + # Window dimensions (changes require restart) + # + # Number of lines/columns (not pixels) in the terminal. Both lines and columns + # must be non-zero for this to take effect. The number of columns must be at + # least `2`, while using a value of `0` for columns and lines will fall back + # to the window manager's recommended size + dimensions: + columns: 0 + lines: 0 + + # Window position (changes require restart) + # + # Specified in number of pixels. + # If the position is not set, the window manager will handle the placement. + #position: + # x: 0 + # y: 0 + + # Window padding (changes require restart) + # + # Blank space added around the window in pixels. This padding is scaled + # by DPI and the specified value is always added at both opposing sides. + padding: + x: 5 + y: 5 + + # Spread additional padding evenly around the terminal content. + #dynamic_padding: false + + # Window decorations + # + # Values for `decorations`: + # - full: Borders and title bar + # - none: Neither borders nor title bar + # + # Values for `decorations` (macOS only): + # - transparent: Title bar, transparent background and title bar buttons + # - buttonless: Title bar, transparent background and no title bar buttons + decorations: none + + # Background opacity + # + # Window opacity as a floating point number from `0.0` to `1.0`. + # The value `0.0` is completely transparent and `1.0` is opaque. + opacity: 0.9 + + # Startup Mode (changes require restart) + # + # Values for `startup_mode`: + # - Windowed + # - Maximized + # - Fullscreen + # + # Values for `startup_mode` (macOS only): + # - SimpleFullscreen + startup_mode: Windowed + + # Window title + title: Alacritty + + # Allow terminal applications to change Alacritty's window title. + dynamic_title: true + + # Window class (Linux/BSD only): + class: + # Application instance name + instance: Alacritty + # General application class + general: Alacritty + + # Decorations theme variant + # + # Override the variant of the System theme/GTK theme/Wayland client side + # decorations. Commonly supported values are `Dark`, `Light`, and `None` for + # auto pick-up. Set this to `None` to use the default theme variant. + decorations_theme_variant: None + + # Resize increments + # + # Prefer resizing window by discrete steps equal to cell dimensions. + #resize_increments: false + + # Make `Option` key behave as `Alt` (macOS only): + # - OnlyLeft + # - OnlyRight + # - Both + # - None (default) + #option_as_alt: None -- cgit 1.4.1