diff options
author | Christian Duerr <contact@christianduerr.com> | 2020-03-18 02:35:08 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-18 02:35:08 +0000 |
commit | 1a8cd172e520e493bacc9c6a2ae6f80de086eaa3 (patch) | |
tree | 0b837f1f52f72fe00e258afc34094d60b5d18f04 /alacritty.yml | |
parent | 64db7d3daaed4e06fb8292227622bbc4cdaa2cf0 (diff) | |
download | alacritty-1a8cd172e520e493bacc9c6a2ae6f80de086eaa3.tar.gz alacritty-1a8cd172e520e493bacc9c6a2ae6f80de086eaa3.zip |
Add modal keyboard motion mode
This implements a basic mode for navigating inside of Alacritty's
history with keyboard bindings. They're bound by default to vi's motion
shortcuts but are fully customizable. Since this relies on key bindings
only single key bindings are currently supported (so no `ge`, or
repetition).
Other than navigating the history and moving the viewport, this mode
should enable making use of all available selection modes to copy
content to the clipboard and launch URLs below the cursor.
This also changes the rendering of the block cursor at the side of
selections, since previously it could be inverted to be completely
invisible. Since that would have caused some troubles with this keyboard
selection mode, the block cursor now is no longer inverted when it is at
the edges of a selection.
Fixes #262.
Diffstat (limited to 'alacritty.yml')
-rw-r--r-- | alacritty.yml | 115 |
1 files changed, 105 insertions, 10 deletions
diff --git a/alacritty.yml b/alacritty.yml index 1fcf46b8..744fd111 100644 --- a/alacritty.yml +++ b/alacritty.yml @@ -187,12 +187,20 @@ # Cursor colors # - # Colors which should be used to draw the terminal cursor. If these are unset, - # the cursor color will be the inverse of the cell color. + # Colors which should be used to draw the terminal cursor. If these are + # unset, the cursor color will be the inverse of the cell color. #cursor: # text: '#000000' # cursor: '#ffffff' + # Vi mode cursor colors + # + # Colors for the cursor when the vi mode is active. If these are unset, the + # cursor color will be the inverse of the cell color. + #vi_mode_cursor: + # text: '#000000' + # cursor: '#ffffff' + # Selection colors # # Colors which should be used to draw the selection area. If selection @@ -298,6 +306,14 @@ # - | Beam #style: Block + # 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 + # If this is `true`, the cursor will be rendered as a hollow box when the # window is not focused. #unfocused_hollow: true @@ -435,6 +451,7 @@ # # - `action`: Execute a predefined action # +# - ToggleViMode # - Copy # - Paste # - PasteSelection @@ -454,9 +471,36 @@ # - ToggleFullscreen # - SpawnNewInstance # - ClearLogNotice +# - ClearSelection # - ReceiveChar # - None # +# (`mode: Vi` only): +# - Open +# - Up +# - Down +# - Left +# - Right +# - First +# - Last +# - FirstOccupied +# - High +# - Middle +# - Low +# - SemanticLeft +# - SemanticRight +# - SemanticLeftEnd +# - SemanticRightEnd +# - WordRight +# - WordLeft +# - WordRightEnd +# - WordLeftEnd +# - Bracket +# - ToggleNormalSelection +# - ToggleLineSelection +# - ToggleBlockSelection +# - ToggleSemanticSelection +# # (macOS only): # - ToggleSimpleFullscreen: Enters fullscreen without occupying another space # @@ -501,6 +545,57 @@ # If the same trigger is assigned to multiple actions, all of them are executed # at once. #key_bindings: + #- { key: Paste, action: Paste } + #- { key: Copy, action: Copy } + #- { key: L, mods: Control, action: ClearLogNotice } + #- { key: L, mods: Control, chars: "\x0c" } + #- { key: PageUp, mods: Shift, action: ScrollPageUp, mode: ~Alt } + #- { key: PageDown, mods: Shift, action: ScrollPageDown, mode: ~Alt } + #- { key: Home, mods: Shift, action: ScrollToTop, mode: ~Alt } + #- { key: End, mods: Shift, action: ScrollToBottom, mode: ~Alt } + + # Vi Mode + #- { key: Space, mods: Shift|Control, mode: Vi, action: ScrollToBottom } + #- { key: Space, mods: Shift|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: Y, mode: Vi, action: Copy } + #- { 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 } + # (Windows, Linux, and BSD only) #- { key: V, mods: Control|Shift, action: Paste } #- { key: C, mods: Control|Shift, action: Copy } @@ -530,14 +625,14 @@ #- { key: N, mods: Command, action: SpawnNewInstance } #- { key: F, mods: Command|Control, action: ToggleFullscreen } - #- { key: Paste, action: Paste } - #- { key: Copy, action: Copy } - #- { key: L, mods: Control, action: ClearLogNotice } - #- { key: L, mods: Control, chars: "\x0c" } - #- { key: PageUp, mods: Shift, action: ScrollPageUp, mode: ~Alt } - #- { key: PageDown, mods: Shift, action: ScrollPageDown, mode: ~Alt } - #- { key: Home, mods: Shift, action: ScrollToTop, mode: ~Alt } - #- { key: End, mods: Shift, action: ScrollToBottom, mode: ~Alt } + #- { key: Paste, action: Paste } + #- { key: Copy, action: Copy } + #- { key: L, mods: Control, action: ClearLogNotice } + #- { key: L, mods: Control, chars: "\x0c" } + #- { key: PageUp, mods: Shift, action: ScrollPageUp, mode: ~Alt } + #- { key: PageDown, mods: Shift, action: ScrollPageDown, mode: ~Alt } + #- { key: Home, mods: Shift, action: ScrollToTop, mode: ~Alt } + #- { key: End, mods: Shift, action: ScrollToBottom, mode: ~Alt } #debug: # Display the time it takes to redraw each frame. |