dotfiles/contour.yml

872 lines
38 KiB
YAML

# Default Contour Configuration File.
# Overrides the auto-detected platform plugin to be loaded.
#
# Possible (incomplete list of) values are:
# - auto The platform will be auto-detected.
# - xcb Uses XCB plugin (for X11 environment).
# - cocoa Used to be run on Mac OS/X.
# - direct2d Windows platform plugin using Direct2D.
# - winrt Windows platform plugin using WinRT.
#
# Default: auto
platform_plugin: auto
# VT Renderer configuration.
# ADVANCED! Do not touch unless you know what you are doing.
renderer:
# Backend to use for rendering the terminal onto the screen
#
# Possible values are:
# - default Uses the default rendering option as decided by the terminal.
# - software Uses software-based rendering.
# - OpenGL Use (possibly) hardware accelerated OpenGL
backend: OpenGL
# Number of hashtable slots to map to the texture tiles.
# Larger values may increase performance, but too large may also decrease.
# This value is rounded up to a value equal to the power of two.
#
# Default: 4096
tile_hashtable_slots: 4096
# Number of tiles that must fit at lest into the texture atlas.
#
# This does not include direct mapped tiles (US-ASCII glyphs,
# cursor shapes and decorations), if tile_direct_mapping is set to true).
#
# Value must be at least as large as grid cells available in the terminal view.
# This value is automatically adjusted if too small.
#
# Default: 4000
tile_cache_count: 4000
# Enables/disables the use of direct-mapped texture atlas tiles for
# the most often used ones (US-ASCII, cursor shapes, underline styles)
# You most likely do not want to touch this.
#
# Default: true
tile_direct_mapping: true
# Word delimiters when selecting word-wise.
word_delimiters: " /\\()\"'-.,:;<>~!@#$%^&*+=[]{}~?|│"
# Default PTY read buffer size.
#
# This is an advance option. Use with care!
# Default: 16384
read_buffer_size: 16384
# Size in bytes per PTY Buffer Object.
#
# This is an advanced option of an internal storage. Only change with care!
pty_buffer_size: 1048576
default_profile: main
# Flag to determine whether to spawn new process or not when creating new terminal
# Default: false
spawn_new_process: false
# Whether or not to reflow the lines on terminal resize events.
# Default: true
reflow_on_resize: true
# Section of experimental features.
# All experimental features are disabled by default and must be explicitly enabled here.
# NOTE: Contour currently has no experimental features behind this configuration wall.
# experimental:
# # Enables experimental support for feature X/Y/Z
# feature_xyz: true
# This keyboard modifier can be used to bypass the terminal's mouse protocol,
# which can be used to select screen content even if the an application
# mouse protocol has been activated (Default: Shift).
#
# The same modifier values apply as with input modifiers (see below).
bypass_mouse_protocol_modifier: Shift
# Modifier to be pressed in order to initiate block-selection
# using the left mouse button.
#
# This is usually the Control modifier, but on OS/X that is not possible,
# so Alt or Meta would be recommended instead.
#
# Supported modifiers:
# - Alt
# - Control
# - Shift
# - Meta
#
# Default: Control
mouse_block_selection_modifier: Control
# Selects an action to perform when a text selection has been made.
#
# Possible values are:
#
# - None Does nothing
# - CopyToClipboard Copies the selection to the primary clipboard.
# - CopyToSelectionClipboard Copies the selection to the selection clipboard.
# This is not supported on all platforms.
#
# Default: CopyToSelectionClipboard
on_mouse_select: CopyToSelectionClipboard
# Determines whether the instance is reloading the configuration files whenever it is changing or not.
#
# Default: false
live_config: false
# Inline image related default configuration and limits
# -----------------------------------------------------
images:
# Enable or disable sixel scrolling (SM/RM ?80 default)
sixel_scrolling: true
# Configures the maximum number of color registers available when rendering Sixel graphics.
sixel_register_count: 4096
# maximum width in pixels of an image to be accepted (0 defaults to system screen pixel width)
max_width: 0
# maximum height in pixels of an image to be accepted (0 defaults to system screen pixel height)
max_height: 0
# Terminal Profiles
# -----------------
#
# Dominates how your terminal visually looks like. You will need at least one terminal profile.
profiles:
main:
# You can override the process to be started inside the terminal.
# If nothing is specified, the users' default login shell will be used.
# But you may as well log in to a remote host.
# shell: "ssh ubuntu-vm"
shell: "fish"
# arguments: ["some", "optional", "arguments", "for", "the", "shell"]
# Builtin SSH-client configuration.
# Use this to directly connect to an SSH server.
# This will bypass the local PTY creation
# ssh:
# # Target host name to connect to via SSH. This may be a DNS name or IPv4 or IPv6 address.
# # This value MUST be provided when attempting to directly establish a connection via SSH.
# #
# # Note, that based on this hostname, the ~/.ssh/config will be looked up and
# # be used as default values when connecting to this host.
# host: example.com
#
# # TCP/IP port to use to talk to the remote SSH server. This value defaults to 22.
# port: 22
#
# # Remote user name to use for logging into the the SSH server.
# # If not specified, the current local user name will be used as remote SSH login username.
# user: somebody
#
# # When attempting to authenticate with an SSH key, at least the private key must be provided.
# # This usually is something similar to "~/.ssh/id_rsa", but can vary.
# private_key: ""
#
# # The public key (e.g. "~/.ssh/your_key.pub") is usually not required, but some backends (not OpenSSL) may require it.
# # Defaults to an empty string (not specified).
# public_key: ""
#
# # This mandates where to look up for known hosts to guard against MITM attacks.
# # This file is compatible to OpenSSH and thus defaults
# # to the location of OpenSSH's known_hosts, "~/.ssh/known_hosts".
# known_hosts: "~/.ssh/known_hosts"
#
# # Mandates whether or not to enable SSH agent forwarding.
# # Default value currently is `false` (agent forwarding disabled),
# # and is for security reasons also the recommended way.
# forward_agent: false
# If this terminal is being executed from within Flatpak, enforces sandboxing
# then this boolean indicates whether or not that sandbox should be escaped or not.
#
# Default value is true.
#
# It only makes sense to set this value to false if you really know what you are doing.
escape_sandbox: true
# Advanced value that is useful when CopyPreviousMarkRange is used
# with multiline-prompts. This offset value is being added to the
# current cursor's line number minus 1 (i.e. the line above the current cursor).
#
# Default value is 0.
copy_last_mark_range_offset: 0
# Sets initial working directory when spawning a new terminal.
# A leading ~ is expanded to the user's home directory.
# Default value is the user's home directory.
initial_working_directory: "~"
# When this profile is *activated*, this flag decides
# whether or not the title bar will be shown
show_title_bar: true
# When this profile is *activated*, this flag decides
# whether or not the size indicator on resize will be shown.
size_indicator_on_resize: true
# When this profile is being *activated*, this flag decides
# whether or not to put the terminal's screen into fullscreen mode.
#
# It is activated during startup as well as when switching from another profile to this one.
fullscreen: false
# When this profile is *activated*, this flag decides
# whether or not to put the window into maximized mode.
maximized: false
bell:
# There is no sound for BEL character if set to "off".
# If set to "default" BEL character sound will be default sound.
# If set to path to a file then BEL sound will use that file. Example
# sound: "/home/user/Music/bell.wav"
sound: "off"
# If this boolean is true, a window alert will be raised with each bell
alert: false
# Defines the class part of the WM_CLASS property of the window.
wm_class: "contour"
# Tells Contour how to handle Option-Key events on MacOS.
# This value is ignored on other platforms.
#
# Default: false
option_as_alt: false
# Environment variables to be passed to the shell.
environment:
TERM: contour
COLORTERM: truecolor
# Determines the terminal type that is being advertised.
# Possible values are:
# - VT100
# - VT220
# - VT240
# - VT330
# - VT340
# - VT320
# - VT420
# - VT510
# - VT520
# - VT525
# Default: VT525
terminal_id: VT525
# Defines a list of DEC modes to explicitly and permanently disable/enable support for.
#
# This is a developer-users-only option that may possibly help investigating problems.
# This option may also be used by regular users if they're asked to in order to disable
# a broken functionality. This is something we hardly try to avoid, of course.
#
# This can be an object with each key being the DEC mode number and its value a boolean,
# indicating whether this DEC mode is permanently set (enabled) or unset (disabled).
#
# Example:
#
# frozen_dec_modes:
# 2026: false
# 2027: true
#
# Default: (empty object)
frozen_dec_modes:
2026: false
# Defines the number of milliseconds to wait before
# actually executing the LF (linefeed) control code
# in case DEC mode `DECSCLM` is enabled.
#
# Default: 100
slow_scrolling_time: 100
# Determines the initial terminal size in characters.
terminal_size:
columns: 80
lines: 25
history:
# Number of lines to preserve (-1 for infinite).
limit: 1000
# Boolean indicating whether or not to scroll down to the bottom on screen updates.
auto_scroll_on_update: true
# Number of lines to scroll on ScrollUp & ScrollDown events.
# Default: 3
scroll_multiplier: 3
# visual scrollbar support
scrollbar:
# scroll bar position: Left, Right, Hidden (ignore-case)
position: Hidden
# whether or not to hide the scrollbar when in alt-screen.
hide_in_alt_screen: true
# mouse setting
mouse:
# whether or not to hide mouse when typing
#
# Default value: true
hide_while_typing: true
# Some VT sequences should need access permissions.
#
# These can be to:
# - allow Allows the given functionality
# - deny Denies the given functionality
# - ask Asks the user interactively via popup dialog for permission of the given action.
#
# Default for all of these entries should be: "ask".
permissions:
# Allows changing the font via `OSC 50 ; Pt ST`.
change_font: ask
# Allows capturing the screen buffer via `CSI > Pm ; Ps ; Pc ST`.
# The response can be read from stdin as sequence `OSC 314 ; <screen capture> ST`
capture_buffer: ask
# Allows displaying the "Host Writable Statusline" programmatically using `DECSSDT 2`.
display_host_writable_statusline: ask
# If enabled, and you double-click on a word in the primary screen,
# all other words matching this word will be highlighted as well.
# So the double-clicked word will be selected as well as highlighted, along with
# all other words being simply highlighted.
#
# This is currently implemented by initiating a search on the double-clicked word.
# Therefore one can even use FocusNextSearchMatch and FocusPreviousSearchMatch to
# jump to the next/previous same word, also outside of the current viewport.
#
# Default: true
highlight_word_and_matches_on_double_click: true
# Font related configuration (font face, styles, size, rendering mode).
font:
# Initial font size in pixels.
size: 12
# Font Locator API
# Selects an engine to use for locating font files on the system.
# This is implicitly also responsible for font fallback
# Possible values are:
# - native : automatically choose the best available on the current platform
# - fontconfig : uses fontconfig to select fonts
# - CoreText : uses OS/X CoreText to select fonts.
# - DirectWrite : selects DirectWrite engine (Windows only)
locator: native
# Text shaping related settings
text_shaping:
# Selects which text shaping and font rendering engine to use.
# Supported values are:
# - native : automatically choose the best available on the current platform.
# - DirectWrite : selects DirectWrite engine (Windows only)
# - CoreText : selects CoreText engine (Mac OS/X only) (currently not implemented)
# - OpenShaper : selects OpenShaper (harfbuzz/freetype/fontconfig, available on all
# platforms)
engine: native
# Uses builtin textures for pixel-perfect box drawing.
# If disabled, the font's provided box drawing characters
# will be used (Default: true).
builtin_box_drawing: true
# Font render modes tell the font rasterizer engine what rendering technique to use.
#
# Modes available are:
# - lcd Uses a subpixel rendering technique optimized for LCD displays.
# - light Uses a subpixel rendering technique in gray-scale.
# - gray Uses standard gray-scaled anti-aliasing.
# - monochrome Uses pixel-perfect bitmap rendering.
render_mode: gray
# Indicates whether or not to include *only* monospace fonts in the font and
# font-fallback list (Default: true).
strict_spacing: true
# Font family to use for displaying text.
#
# A font can be either described in detail as below or as a
# simple string value (e.g. "monospace" with the appropriate
# weight/slant applied automatically).
regular:
# Font family defines the font family name, such as:
# Fira Code", "Courier New", or "monospace" (default).
family: "JetBrainsMono Nerd Font"
# Font weight can be one of:
# thin, extra_light, light, demilight, book, normal,
# medium, demibold, bold, extra_bold, black, extra_black.
weight: regular
# Font slant can be one of: normal, italic, oblique.
slant: normal
# Set of optional font features to be enabled. This
# is usually a 4-letter code, such as ss01 or ss02 etc.
#
# Please see your font's documentation to find out what it
# supports.
#
# Default: []
# features: [ss01, ss02, ss03, ss04, ss05, ss06, ss07, ss08, calt, dlig]
features: [ss02, calt]
# If bold/italic/bold_italic are not explicitly specified, the regular font with
# the respective weight and slant will be used.
#bold: "Hack"
#italic: "Hack"
#bold_italic: "Hack"
# This is a special font to be used for displaying unicode symbols
# that are to be rendered in emoji presentation.
# Defaults to "emoji".
emoji: "emoji"
# Indicates whether or not bold text should be rendered in bright colors,
# for indexed colors.
#
# If disabled, normal color will be used instead.
#
# Default: false
draw_bold_text_with_bright_colors: false
# Terminal cursor display configuration
cursor:
# Supported shapes are:
#
# - block a filled rectangle
# - rectangle just the outline of a block
# - underscore a line under the text
# - bar: the well known i-Beam
shape: "bar"
# Determines whether or not the cursor will be blinking over time.
blinking: false
# Blinking interval (in milliseconds) to use when cursor is blinking.
blinking_interval: 500
# vi-like normal-mode specific settings.
# Note, currently only the cursor can be customized.
normal_mode:
cursor:
shape: block
blinking: false
blinking_interval: 500
# vi-like visual/visual-line/visual-block mode specific settings.
# Note, currently only the cursor can be customized.
visual_mode:
cursor:
shape: block
blinking: false
blinking_interval: 500
# Time duration in milliseconds for which yank highlight is shown.
vi_mode_highlight_timeout: 300
# Configures a `scrolloff` for cursor movements in normal and visual (block) modes.
#
# Default: 8
vi_mode_scrolloff: 8
status_line:
# Either none or indicator.
# This only reflects the initial state of the status line, as it can
# be changed at any time during runtime by the user or by an application.
display: none
# Position to place the status line to, if it is to be shown.
# This can be either value `top` or value `bottom`.
# Default: bottom
position: bottom
# Synchronize the window title with the Host Writable status_line if
# and only if the host writable status line was denied to be shown.
# Default: false
sync_to_window_title: false
# Background configuration
background:
# Background opacity to use. A value of 1.0 means fully opaque whereas 0.0 means fully
# transparent. Only values between 0.0 and 1.0 are allowed.
opacity: 0.9
# Some platforms can blur the transparent background (currently only Windows 10 is supported).
blur: false
# Specifies a colorscheme to use (alternatively the colors can be inlined).
#
# This can be either the name to a single colorscheme to always use,
# or a map with two keys (dark and light) to determine the color scheme to use for each.
#
# The dark color scheme is used when the system is configured to prefer dark mode and light theme otherwise.
#
# Default: "default"
colors: "catppuccin_mocha"
# Hyperlinks (via OSC-8) can be stylized and colorized on hover.
hyperlink_decoration:
normal: dotted
hover: underline
# Color Profiles
# --------------
#
# Here you can configure your color profiles, whereas a color can be expressed in standard web format,
# with a leading # followed by red/green/blue values, 7 characters in total.
# You may alternatively use 0x as prefix instead of #.
# For example 0x102030 is equal to '#102030'.
color_schemes:
default:
# Default colors
default:
# Default background color (this can be made transparent, see above).
background: '#1a1716'
# Default foreground text color.
foreground: '#d0d0d0'
# Background image support.
background_image:
# Full path to the image to use as background.
#
# Default: empty string (disabled)
# path: '/Users/trapni/Pictures/bg.png'
# Image opacity to be applied to make the image not look to intense
# and not get too distracted by the background image.
# Default: 0.5
opacity: 0.5
# Optionally blurs background image to make it less distracting
# and keep the focus on the actual terminal contents.
#
# Default: false
blur: false
# Mandates the color of the cursor and potentially overridden text.
#
# The color can be specified in RGB as usual, plus
# - CellForeground: Selects the cell's foreground color.
# - CellBackground: Selects the cell's background color.
cursor:
# Specifies the color to be used for the actual cursor shape.
#
# Default: CellForeground
default: CellForeground
# Specifies the color to be used for the characters that would
# be covered otherwise.
#
# Default: CellBackground
text: CellBackground
# color to pick for hyperlinks decoration, when hovering
hyperlink_decoration:
normal: '#f0f000'
hover: '#ff0000'
# Color to pick for vi_mode highlights.
# The value format is equivalent to how selection colors and alpha contribution is defined.
vi_mode_highlight:
foreground: CellForeground
foreground_alpha: 1.0
background: '#ffa500'
background_alpha: 0.5
# Color override for the current cursor's line when in vi_mode:
# The value format is equivalent to how selection colors and alpha contribution is defined.
# To disable cursorline in vi_mode, set foreground to CellForeground and background to CellBackground.
vi_mode_cursorline:
foreground: '#ffffff'
foreground_alpha: 0.2
background: '#808080'
background_alpha: 0.4
# The text selection color can be customized here.
# Leaving a value empty will default to the inverse of the content's color values.
#
# The color can be specified in RGB as usual, plus
# - CellForeground: Selects the cell's foreground color.
# - CellBackground: Selects the cell's background color.
selection:
# Specifies the color to be used for the selected text.
#
# Default: CellBackground
foreground: CellForeground
# Specifies the alpha value (between 0.0 and 1.0) the configured foreground color
# will contribute to the original color.
#
# A value of 1.0 will paint over, whereas a value of 0.5 will give
# a look of a half-transparently painted grid cell.
foreground_alpha: 1.0
# Specifies the color to be used for the selected background.
#
# Default: CellForeground
background: '#4040f0'
# Specifies the alpha value (between 0.0 and 1.0) the configured background color
# will contribute to the original color.
#
# A value of 1.0 will paint over, whereas a value of 0.5 will give
# a look of a half-transparently painted grid cell.
background_alpha: 0.5
# Search match highlighting. Similar to selection highlighting.
search_highlight:
foreground: CellBackground
background: CellForeground
foreground_alpha: 1.0
background_alpha: 1.0
# Search match highlighting (focused term). Similar to selection highlighting.
search_highlight_focused:
foreground: CellBackground
background: CellForeground
foreground_alpha: 1.0
background_alpha: 1.0
# Coloring for the word that is highlighted due to double-clicking it.
#
# The format is similar to selection highlighting.
word_highlight_current:
foreground: CellForeground
background: '#909090'
foreground_alpha: 1.0
background_alpha: 0.5
# Coloring for the word that is highlighted due to double-clicking
# another word that matches this word.
#
# The format is similar to selection highlighting.
word_highlight_other:
foreground: CellForeground
background: '#909090'
foreground_alpha: 1.0
background_alpha: 0.5
# Defines the colors to be used for the Indicator status line.
# Values must be in RGB form.
indicator_statusline:
# Default: default background
foreground: '#808080'
# Default: default foreground
background: '#000000'
# Alternate colors to be used for the indicator status line when
# this terminal is currently not in focus.
indicator_statusline_inactive:
# Default: default background
foreground: '#808080'
# Default: default foreground
background: '#000000'
# Colors for the IME (Input Method Editor) area.
input_method_editor:
# Default: default #FFFFFF
foreground: '#FFFFFF'
# Default: default #FF0000
background: '#FF0000'
# Normal colors
normal:
black: '#000000'
red: '#c63939'
green: '#00a000'
yellow: '#a0a000'
blue: '#4d79ff'
magenta: '#ff66ff'
cyan: '#00a0a0'
white: '#c0c0c0'
# Bright colors
bright:
black: '#707070'
red: '#ff0000'
green: '#00ff00'
yellow: '#ffff00'
blue: '#0000ff'
magenta: '#ff00ff'
cyan: '#00ffff'
white: '#ffffff'
# Dim (faint) colors, if not set, they're automatically computed based on normal colors.
# dim:
# black: '#1d1f21'
# red: '#cc342b'
# green: '#198844'
# yellow: '#fba922'
# blue: '#3971ed'
# magenta: '#a36ac7'
# cyan: '#3971ed'
# white: '#c5c8c6'
catppuccin_mocha:
# Default colours
default:
background: "#1E1D2E"
foreground: "#D9E0EE"
# Cursor colour
cursor:
default: "#F5E0DC"
text: "#1E1D2E"
# Normal colors
normal:
black: "#6E6C7E"
red: "#F28FAD"
green: "#ABE9B3"
yellow: "#FAE3B0"
blue: "#96CDFB"
magenta: "#F5C2E7"
cyan: "#89DCEB"
white: "#C3BAC6"
# Bright colors
bright:
black: "#988BA2"
red: "#F28FAD"
green: "#ABE9B3"
yellow: "#FAE3B0"
blue: "#96CDFB"
magenta: "#F5C2E7"
cyan: "#89DCEB"
white: "#D9E0EE"
# Key Bindings
# ------------
#
# In this section you can customize key bindings.
# Each array element in `input_mapping` represents one key binding,
# whereas `mods` represents an array of keyboard modifiers that must be pressed - as well as
# the `key` or `mouse` - in order to activate the corresponding action,
#
# Additionally one can filter input mappings based on special terminal modes using the `modes` option:
# - Alt : The terminal is currently in alternate screen buffer, otherwise it is in primary screen buffer.
# - AppCursor : The application key cursor mode is enabled (otherwise it's normal cursor mode).
# - AppKeypad : The application keypad mode is enabled (otherwise it's the numeric keypad mode).
# - Select : The terminal has currently an active grid cell selection (such as selected text).
# - Insert : The Insert input mode is active, that is the default and one way to test
# that the input mode is not in normal mode or any of the visual select modes.
# - Search : There is a search term currently being edited or already present.
# - Trace : The terminal is currently in trace-mode, i.e., each VT sequence can be interactively
# single-step executed using custom actions. See TraceEnter/TraceStep/TraceLeave actions.
#
# You can combine these modes by concatenating them via | and negate a single one
# by prefixing with ~.
#
# The `modes` option defaults to not filter at all (the input mappings always
# match based on modifier and key press / mouse event).
#
# `key` represents keys on your keyboard, and `mouse` represents buttons
# as well as the scroll wheel.
#
# Modifiers:
# - Alt
# - Control
# - Shift
# - Meta (this is the Windows key on Windows OS, and the Command key on OS/X, and Meta on anything else)
#
# Keys can be expressed case-insensitively symbolic:
# APOSTROPHE, ADD, BACKSLASH, COMMA, DECIMAL, DIVIDE, EQUAL, LEFT_BRACKET,
# MINUS, MULTIPLY, PERIOD, RIGHT_BRACKET, SEMICOLON, SLASH, SUBTRACT, SPACE
# Enter, Backspace, Tab, Escape, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12,
# DownArrow, LeftArrow, RightArrow, UpArrow, Insert, Delete, Home, End, PageUp, PageDown,
# Numpad_Divide, Numpad_Multiply, Numpad_Subtract, Numpad_Add, Numpad_Decimal, Numpad_Enter, Numpad_Equal,
# Numpad_0, Numpad_1, Numpad_2, Numpad_3, Numpad_4,
# Numpad_5, Numpad_6, Numpad_7, Numpad_8, Numpad_9
# or in case of standard characters, just the character.
#
# Mouse buttons can be one of the following self-explanatory ones:
# Left, Middle, Right, WheelUp, WheelDown
#
# Actions:
# - CancelSelection Cancels currently active selection, if any.
# - ChangeProfile Changes the profile to the given profile `name`.
# - ClearHistoryAndReset Clears the history, performs a terminal hard reset and attempts to force a redraw of the currently running application.
# - CopyPreviousMarkRange Copies the most recent range that is delimited by vertical line marks into clipboard.
# - CopySelection Copies the current selection into the clipboard buffer.
# - DecreaseFontSize Decreases the font size by 1 pixel.
# - DecreaseOpacity Decreases the default-background opacity by 5%.
# - FocusNextSearchMatch Focuses the next search match (if any).
# - FocusPreviousSearchMatch Focuses the next previous match (if any).
# - FollowHyperlink Follows the hyperlink that is exposed via OSC 8 under the current cursor position.
# - IncreaseFontSize Increases the font size by 1 pixel.
# - IncreaseOpacity Increases the default-background opacity by 5%.
# - NewTerminal Spawns a new terminal at the current terminals current working directory.
# - NoSearchHighlight Disables current search highlighting, if anything is still highlighted due to a prior search.
# - OpenConfiguration Opens the configuration file.
# - OpenFileManager Opens the current working directory in a system file manager.
# - OpenSelection Open the current terminal selection with the default system application (eg; xdg-open)
# - PasteClipboard Pastes clipboard to standard input. Pass boolean parameter 'strip' to indicate whether or not to strip repetitive whitespaces down to one and newlines to whitespaces.
# - PasteSelection Pastes current selection to standard input.
# - Quit Quits the application.
# - ReloadConfig Forces a configuration reload.
# - ResetConfig Overwrites current configuration with builtin default configuration and loads it. Attention, all your current configuration will be lost due to overwrite!
# - ResetFontSize Resets font size to what is configured in the config file.
# - ScreenshotVT Takes a screenshot in form of VT escape sequences.
# - ScrollDown Scrolls down by the multiplier factor.
# - ScrollMarkDown Scrolls one mark down (if none present, bottom of the screen)
# - ScrollMarkUp Scrolls one mark up
# - ScrollOneDown Scrolls down by exactly one line.
# - ScrollOneUp Scrolls up by exactly one line.
# - ScrollPageDown Scrolls a page down.
# - ScrollPageUp Scrolls a page up.
# - ScrollToBottom Scrolls to the bottom of the screen buffer.
# - ScrollToTop Scrolls to the top of the screen buffer.
# - ScrollUp Scrolls up by the multiplier factor.
# - SearchReverse Initiates search mode (starting to search at current cursor position, moving upwards).
# - SendChars Writes given characters in `chars` member to the applications input.
# - ToggleAllKeyMaps Disables/enables responding to all keybinds (this keybind will be preserved when disabling all others).
# - ToggleFullScreen Enables/disables full screen mode.
# - ToggleInputProtection Enables/disables terminal input protection.
# - ToggleStatusLine Shows/hides the VT320 compatible Indicator status line.
# - ToggleTitleBar Shows/Hides titlebar
# - TraceBreakAtEmptyQueue Executes any pending VT sequence from the VT sequence buffer in trace mode, then waits.
# - TraceEnter Enables trace mode, suspending execution until explicitly requested to continue (See TraceLeave and TraceStep).
# - TraceLeave Disables trace mode. Any pending VT sequence will be flushed out and normal execution will be resumed.
# - TraceStep Executes a single VT sequence that is to be executed next.
# - ViNormalMode Enters/Leaves Vi-like normal mode. The cursor can then be moved via h/j/k/l movements in normal mode and text can be selected via v, yanked via y, and clipboard pasted via p.
# - WriteScreen Writes VT sequence in `chars` member to the screen (bypassing the application).
input_mapping:
- { mods: [Control], mouse: Left, action: FollowHyperlink }
- { mods: [], mouse: Middle, action: PasteSelection }
- { mods: [], mouse: WheelDown, action: ScrollDown }
- { mods: [], mouse: WheelUp, action: ScrollUp }
- { mods: [Alt], key: Enter, action: ToggleFullscreen }
- { mods: [Alt], mouse: WheelDown, action: DecreaseOpacity }
- { mods: [Alt], mouse: WheelUp, action: IncreaseOpacity }
- { mods: [Control, Alt], key: S, action: ScreenshotVT }
- { mods: [Control, Shift], key: Plus, action: IncreaseFontSize }
- { mods: [Control], key: '0', action: ResetFontSize }
- { mods: [Control, Shift], key: Minus, action: DecreaseFontSize }
- { mods: [Control, Shift], key: '_', action: DecreaseFontSize }
- { mods: [Control, Shift], key: N, action: NewTerminal }
- { mods: [Control, Shift], key: V, action: PasteClipboard, strip: false }
- { mods: [Control, Alt], key: V, action: PasteClipboard, strip: true }
- { mods: [Control], key: C, action: CopySelection, mode: 'Select|Insert' }
- { mods: [Control], key: C, action: CancelSelection, mode: 'Select|Insert' }
- { mods: [Control], key: V, action: PasteClipboard, strip: false, mode: 'Select|Insert' }
- { mods: [Control], key: V, action: CancelSelection, mode: 'Select|Insert' }
- { mods: [], key: Escape, action: CancelSelection, mode: 'Select|Insert' }
- { mods: [Control, Shift], key: Space, action: ViNormalMode, mode: 'Insert' }
- { mods: [Control, Shift], key: Comma, action: OpenConfiguration }
- { mods: [Control, Shift], key: Q, action: Quit }
- { mods: [Control], mouse: WheelDown, action: DecreaseFontSize }
- { mods: [Control], mouse: WheelUp, action: IncreaseFontSize }
- { mods: [Shift], key: DownArrow, action: ScrollOneDown }
- { mods: [Shift], key: End, action: ScrollToBottom }
- { mods: [Shift], key: Home, action: ScrollToTop }
- { mods: [Shift], key: PageDown, action: ScrollPageDown }
- { mods: [Shift], key: PageUp, action: ScrollPageUp }
- { mods: [Shift], key: UpArrow, action: ScrollOneUp }
- { mods: [Control, Alt], key: K, action: ScrollMarkUp, mode: "~Alt"}
- { mods: [Control, Alt], key: J, action: ScrollMarkDown, mode: "~Alt"}
- { mods: [Shift], mouse: WheelDown, action: ScrollPageDown }
- { mods: [Shift], mouse: WheelUp, action: ScrollPageUp }
- { mods: [Control, Alt], key: O, action: OpenFileManager }
- { mods: [Control, Alt], key: '.', action: ToggleStatusLine }
- { mods: [Control, Shift], key: 'F', action: SearchReverse }
- { mods: [Control, Shift], key: 'H', action: NoSearchHighlight }
- { mods: [], key: 'F3', action: FocusNextSearchMatch }
- { mods: [Shift], key: 'F3', action: FocusPreviousSearchMatch }
# - { mods: [Control, Meta], key: 'E', action: TraceEnter, mode: "~Trace" }
# - { mods: [Control, Meta], key: 'E', action: TraceLeave, mode: "Trace" }
# - { mods: [Control, Meta], key: 'N', action: TraceStep, mode: "Trace" }
# - { mods: [Control, Meta], key: 'F', action: TraceBreakAtEmptyQueue, mode: "Trace" }