From 942089d6c5dbc9329e6ff51ab9a70e0bc1e28d69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Geoffrey=20=E2=80=9CFrogeye=E2=80=9D=20Preud=27homme?= Date: Wed, 16 Jun 2021 22:54:27 +0200 Subject: [PATCH] Upgraded alacritty config --- config/alacritty/alacritty.yml.j2 | 422 +++++++++++++++++++----------- 1 file changed, 275 insertions(+), 147 deletions(-) diff --git a/config/alacritty/alacritty.yml.j2 b/config/alacritty/alacritty.yml.j2 index 8ef1b0d..ea51ae0 100644 --- a/config/alacritty/alacritty.yml.j2 +++ b/config/alacritty/alacritty.yml.j2 @@ -1,6 +1,17 @@ # vi:syntax=yaml # Configuration for Alacritty, the GPU enhanced terminal emulator. +# Import additional configuration files +# +# Imports are loaded in order, skipping all missing files, with the importing +# file being loaded last. If a field is already present in a previous import, it +# will be replaced. +# +# All imports must either be absolute paths starting with `/`, or paths relative +# to the user's home directory starting with `~/`. +#import: +# - /path/to/alacritty.yml + # Any items in the `env` entry below will be added as # environment variables. Some entries may override variables # set by alacritty itself. @@ -16,8 +27,9 @@ env: window: # Window dimensions (changes require restart) # - # Specified in number of columns/lines, not pixels. - # If both are `0`, this setting is ignored. + # Number of lines/columns (not pixels) in the terminal. 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 @@ -49,7 +61,7 @@ window: # # Values for `decorations` (macOS only): # - transparent: Title bar, transparent background and title bar buttons - # - buttonless: Title bar, transparent background, but no title bar buttons + # - buttonless: Title bar, transparent background and no title bar buttons #decorations: full # Startup Mode (changes require restart) @@ -78,8 +90,8 @@ window: # GTK theme variant (Linux/BSD only) # - # Override the variant of the GTK theme. Commonly supported values are `dark` and `light`. - # Set this to `None` to use the default theme variant. + # Override the variant of the GTK theme. Commonly supported values are `dark` + # and `light`. Set this to `None` to use the default theme variant. #gtk_theme_variant: None #scrolling: @@ -141,15 +153,16 @@ font: # 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 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: 0 # y: 0 # 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. + # the default being at the bottom. Increasing `x` moves the glyph to the + # right, increasing `y` moves the glyph upward. #glyph_offset: # x: 0 # y: 0 @@ -183,8 +196,8 @@ bell: # - Linear animation: EaseOutExpo - # Duration of the visual bell flash. A `duration` of `0` will disable the - # visual bell animation. + # Duration of the visual bell flash in milliseconds. A `duration` of `0` will + # disable the visual bell animation. duration: 100 # Visual bell animation color. @@ -214,6 +227,8 @@ bell: #background_opacity: 1.0 #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. @@ -228,6 +243,15 @@ cursor: # - | Beam #style: Block + # 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: Off + # Vi mode cursor style # # If the vi mode cursor style is `None` or not specified, it will fall back to @@ -236,6 +260,9 @@ cursor: # See `cursor.style` for available options. vi_mode_style: Underline + # Cursor blinking interval in milliseconds. + #blink_interval: 750 + # If this is `true`, the cursor will be rendered as a hollow box when the # window is not focused. #unfocused_hollow: true @@ -249,8 +276,9 @@ cursor: # 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. +# 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: # - (macOS) /bin/bash --login @@ -280,7 +308,7 @@ cursor: # Send ESC (\x1b) before characters when alt is pressed. #alt_send_esc: true -mouse: +#mouse: # Click settings # # The `double_click` and `triple_click` settings control the time @@ -292,35 +320,58 @@ mouse: # If this is `true`, the cursor is temporarily hidden when typing. #hide_when_typing: false - #url: - # URL launcher - # - # This program is executed when clicking on a text which is recognized as a URL. - # The URL is always added to the command as the last parameter. - # - # When set to `launcher: None`, URL launching will be disabled completely. - # - # Default: - # - (macOS) open - # - (Linux/BSD) xdg-open - # - (Windows) explorer - #launcher: - # program: xdg-open - # args: [] +# Regex hints +# +# Terminal hints can be used to find text in the visible part of the terminal +# and pipe it to other applications. +hints: + # Keys used for the hint labels. + #alphabet: "jfkdls;ahgurieowpq" - # URL modifiers - # - # These are the modifiers that need to be held down for opening URLs when clicking - # on them. The available modifiers are documented in the key binding section. - modifiers: Control + # List with all available hints + # + # Each hint must have a `regex` and either an `action` or a `command` field. + # The fields `mouse`, `binding` and `post_processing` are optional. + # + # The fields `command`, `binding.key`, `binding.mods` 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. + # + # 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: "(mailto:|gemini:|gopher:|https:|http:|news:|file:|git:|ssh:|ftp:)\ + [^\u0000-\u001F\u007F-\u009F<>\"\\s{-}\\^⟨⟩`]+" + command: xdg-open + post_processing: true + mouse: + enabled: true + mods: Control + binding: + key: F + mods: Control|Alt # 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. +# 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: # @@ -379,10 +430,11 @@ mouse: # # - ToggleViMode # - SearchForward +# Start searching toward the right of the search origin. # - SearchBackward +# Start searching toward the left of the search origin. # - Copy # - Paste -# - PasteSelection # - IncreaseFontSize # - DecreaseFontSize # - ResetFontSize @@ -395,51 +447,110 @@ mouse: # - ScrollToTop # - ScrollToBottom # - ClearHistory +# Remove the terminal's scrollback history. # - Hide +# Hide the Alacritty window. # - Minimize +# Minimize the Alacritty window. # - Quit +# Quit Alacritty. # - ToggleFullscreen # - SpawnNewInstance +# Spawn a new instance of Alacritty. # - ClearLogNotice +# Clear Alacritty's UI warning and error notice. # - ClearSelection +# Remove the active selection. # - ReceiveChar # - None # -# (`mode: Vi` only): +# - Vi mode exclusive actions: +# # - Open -# - Up -# - Down -# - Left -# - Right -# - First -# - Last -# - FirstOccupied -# - High -# - Middle -# - Low -# - SemanticLeft -# - SemanticRight -# - SemanticLeftEnd -# - SemanticRightEnd -# - WordRight -# - WordLeft -# - WordRightEnd -# - WordLeftEnd -# - Bracket +# 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`. +# +# - 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. # -# (macOS only): -# - ToggleSimpleFullscreen: Enters fullscreen without occupying another space +# - 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. # -# (Linux/BSD only): -# - CopySelection: Copies into selection buffer +# - 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 # @@ -469,7 +580,9 @@ mouse: # # - 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`. @@ -482,100 +595,115 @@ mouse: # If the same trigger is assigned to multiple actions, all of them are executed # in the order they were defined in. key_bindings: - #- { key: Paste, action: Paste } - #- { key: Copy, action: Copy } - #- { key: L, mods: Control, action: ClearLogNotice } - #- { key: L, mods: Control, mode: ~Vi, 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 } + #- { 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: Vi, action: ScrollToBottom } - - { key: Space, mods: Alt|Control, action: ToggleViMode } - #- { key: Escape, mode: Vi, action: ClearSelection } - #- { key: I, mode: Vi, action: ScrollToBottom } - #- { key: I, mode: Vi, action: ToggleViMode } - #- { 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: K, mods: Control, mode: Vi, action: ScrollHalfPageUp } - - { key: J, mods: Control, mode: Vi, action: ScrollHalfPageDown } - #- { key: Y, mode: Vi, action: Copy } - #- { key: Y, mode: Vi, action: ClearSelection } - #- { key: Copy, 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, mods: Shift, 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: Space, mods: Shift|Control, mode: Vi|~Search, action: ScrollToBottom } + - { key: Space, mods: Alt|Control, mode: ~Search, action: ToggleViMode } + #- { key: Escape, mode: Vi|~Search, action: ClearSelection } + #- { key: I, mode: Vi|~Search, action: ScrollToBottom } + #- { key: I, mode: Vi|~Search, action: ToggleViMode } + #- { 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: K, mods: Control, mode: Vi|~Search, action: ScrollHalfPageUp } + - { key: J, 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: 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|Alt, action: Paste } - - { key: C, mods: Control|Alt, action: Copy } - - { key: F, mods: Control|Alt, action: SearchForward } - - { key: B, mods: Control|Alt, action: SearchBackward } - - { key: C, mods: Control|Alt, mode: Vi, action: ClearSelection } - #- { key: Insert, mods: Shift, action: PasteSelection } - #- { key: Key0, mods: Control, action: ResetFontSize } - #- { key: Key0, mods: Control, action: ResetFontSize } - #- { key: Equals, mods: Control, action: IncreaseFontSize } - #- { key: Add, mods: Control, action: IncreaseFontSize } - #- { key: Subtract, mods: Control, action: DecreaseFontSize } - #- { key: Minus, mods: Control, action: DecreaseFontSize } + - { key: V, mods: Control|Alt, mode: ~Vi, action: Paste } + - { key: C, mods: Control|Alt, action: Copy } + - { key: F, mods: Control|Alt, mode: ~Search, action: SearchForward } + - { key: B, mods: Control|Alt, mode: ~Search, action: SearchBackward } + - { key: C, mods: Control|Alt, 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, chars: "\x0c" } - #- { key: Key0, mods: Command, action: ResetFontSize } - #- { key: Equals, mods: Command, action: IncreaseFontSize } - #- { key: Add, mods: Command, action: IncreaseFontSize } - #- { key: Minus, mods: Command, action: DecreaseFontSize } - #- { key: K, mods: Command, action: ClearHistory } - #- { key: V, mods: Command, action: Paste } - #- { key: C, mods: Command, action: Copy } - #- { key: C, mods: Command, mode: Vi, action: ClearSelection } - #- { key: H, mods: Command, action: Hide } - #- { key: M, mods: Command, action: Minimize } - #- { key: Q, mods: Command, action: Quit } - #- { key: W, mods: Command, action: Quit } - #- { key: N, mods: Command, action: SpawnNewInstance } - #- { key: F, mods: Command|Control, action: ToggleFullscreen } - #- { key: F, mods: Command, action: SearchForward } - #- { key: B, mods: Command, action: SearchBackward } + #- { 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: SpawnNewInstance } + #- { key: F, mods: Command|Control, action: ToggleFullscreen } + #- { key: F, mods: Command, mode: ~Search, action: SearchForward } + #- { key: B, mods: Command, mode: ~Search, action: SearchBackward } #debug: # Display the time it takes to redraw each frame. @@ -587,7 +715,7 @@ key_bindings: # Log level # # Values for `log_level`: - # - None + # - Off # - Error # - Warn # - Info