Switch to contour virtual terminal

This commit is contained in:
Skylar Hill 2023-11-21 19:03:46 -06:00
parent f21e246fd0
commit 81d0381f7a
21 changed files with 873 additions and 3 deletions

870
contour.yml Normal file
View File

@ -0,0 +1,870 @@
# 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: "ion"
# 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: "default"
# If this boolean is true, a window alert will be raised with each bell
alert: true
# 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: "MonaspiceXe NF"
# 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: []
# 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.8
# 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" }

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -11,9 +11,9 @@ stow:
- src: notmuch
links:
- "${HOME}/.notmuch-config"
- src: kitty
- src: contour.yml
links:
- "${confhome}/kitty"
- "${confhome}/contour/contour.yml"
- src: bat
links:
- "${confhome}/bat"

View File

@ -16,7 +16,7 @@ set $down j
set $up k
set $right l
# Your preferred terminal emulator
set $term kitty
set $term contour
# Your preferred application launcher
# Note: pass the final command to swaymsg so that the resulting window can be opened
# on the original workspace that the command was run on.