Type object
Schema URL https://catalog.lintel.tools/schemas/schemastore/espanso-config-yml/latest.json
Source https://raw.githubusercontent.com/espanso/espanso/refs/heads/dev/schemas/config.schema.json

Validate with Lintel

npx @lintel/lintel check
Type: object

a schema to validate base.yaml

Properties

$schema string
filter_title string

Filter based on the current window title.

filter_exec string

Filter based on the current application's executable path. For example, C:\Programs\Telegram.exe

filter_class string

Filter based on the current window class. This is mostly relevant on Linux

filter_os string

OS specific filter

Values: "linux" "macos" "windows"
extra_includes string[]

extend the defaults with these files

includes string[]

redefine includes without extending them

extra_excludes string[]

extend the defaults with these files

excludes string[]

redefine includes without extending them

auto_restart boolean

If true, instructs the daemon process to restart the worker (and refresh the configuration) after a configuration file change is detected on disk. Default true

Default: true
backspace_limit number

How many backspace espanso tracks to correct misspelled keywordsMaximum number of backspace presses espanso keeps track of. For example, this is needed to correctly expand even if typos are typed. Default 5

Default: 5
keyboard_layout object

On Wayland, overrides the auto-detected keyboard configuration (RMLVO) which is used both for the detection and injection process.

5 nested properties
rules string
model string
layout string
variant string
options string
preserve_keyboard boolean

If true, Espanso will attempt to preserve the previous clipboard content after an expansion has taken place.

Default: true
search_shortcut string

Hotkey used to show the Search UI.

search_trigger string

Trigger used to show the Search UI.

show_icon boolean

Hide the Espanso status icon on the macOS menu bar or the Windows system tray

show_notifications boolean

If false, disable all notifications.

toggle_key string

Defines the key that disables/enables espanso when double pressed.

Values: "OFF" "CTRL" "ALT" "SHIFT" "META" "LEFT_CTRL" "LEFT_ALT" "LEFT_SHIFT" "LEFT_META" "RIGHT_CTRL" "RIGHT_ALT" "RIGHT_SHIFT" "RIGHT_META"
win32_exclude_orphan_events boolean

If true, filter out keyboard events without an explicit HID device source on Windows. This is needed to filter out the software-generated events, including those from Espanso, but might need to be disabled when using some software-level keyboards. Disabling this option might conflict with the undo feature.

Default: true
win32_keyboard_layout_cache_interval number

The maximum interval (in milliseconds) for which a keyboard layout can be cached. If switching often between different layouts, you could lower this amount to avoid the "lost detection" effect described in this issue: https://github.com/federico-terzi/espanso/issues/745.

Default: 2000
word_separators string[]

Chars that when pressed mark the start and end of a word. Examples of this are . or ,

undo_backspace boolean

When enabled, espanso automatically "reverts" an expansion if the user presses the Backspace key afterwards. This is not available on some platform/configurations.

Default: true
apply_patch boolean

If false, avoid applying the built-in patches to the current config.

Default: true
backend string

The mechanism used to perform the injection. Espanso can either inject text by simulating keypresses (Inject backend) or by using the clipboard (Clipboard backend). Both of them have pros and cons, so the Auto backend is used by default to automatically choose the most appropriate one based on the situation. If for whatever reason the Auto backend is not appropriate, you can change this option to override it.

Default: "auto"
Values: "clipboard" "inject" "auto"
clipboard_threshold number

Number of chars after which a match is injected with the clipboard backend instead of the default one. This is done for efficiency reasons, as injecting a long match through separate events becomes slow for long strings. This is only relevant if the backend is set to Auto.

Default: 100
disable_x11_fast_inject boolean

NOTE: This is only relevant on Linux under X11 environments. Switch to a slower (but sometimes more supported) way of injecting key events based on XTestFakeKeyEvent instead of XSendEvent. From my experiements, disabling fast inject becomes particularly slow when using the Gnome desktop environment.

Default: false
emulate_alt_codes boolean

Restores ALT-code functionality to Windows.

Default: "false"
enable boolean

If false, Espanso will be disabled for the current configuration. This option can be used to selectively disable espanso when using a specific application (by creating an app-specific config).

Default: "false"
evdev_modifier_delay number

Extra delay to apply when injecting modifiers under the EVDEV backend (Wayland). This is useful on Wayland if espanso is injecting seemingly random cased letters, for example"Hi theRE1" instead of "Hi there!". Increase if necessary, decrease to speed up the injection.

Default: 10
inject_delay number

Number of milliseconds between text injection events. Increase if the target application is missing some characters.

key_delay number

Number of milliseconds between key injection events. Increase if the target application is missing some key events. For example, increasing might help if the trigger is not deleted completely.

paste_shortcut_event_delay number

Number of milliseconds between keystrokes when simulating the Paste shortcut. For example: CTRL + (wait 5ms) + V + (wait 5ms) + release V + (wait 5ms) + release CTRL. This is needed as sometimes (for example on macOS), without a delay some keystrokes were not registered correctly.

Default: 10
paste_shortcut string

Customize the keyboard shortcut used to paste an expansion. This should follow this format: CTRL+SHIFT+V.

post_form_delay number

Delay (in ms) returning text after closing a form, to allow the target application regain focus.

Default: 200
max_form_width number

Maximum width of a form window.

Default: 700
max_form_height number

Maximum height of a form window.

Default: 500
max_regex_buffer_size number

The max number of characters held in memory for regex matching

Default: 50
post_search_delay number

Delay (in ms) returning text after the search bar has closed, to allow the target application regain focus.

Default: 200
pre_paste_delay number

Delay (in ms) that espanso should wait to trigger the paste shortcut after copying the content in the clipboard. This is needed because if we trigger a "paste" shortcut before the content is actually copied in the clipboard, the operation will fail. If you see previous contents of the clipboard being inserted instead of the correct replacement, increase this value.

Default: 300
restore_clipboard_delay number

The number of milliseconds to wait before restoring the previous clipboard content after an expansion. This is needed as without this delay, sometimes the target application detects the previous clipboard content instead of the expansion content.

Default: 300
x11_use_xclip_backend boolean

If true, use the xclip command to implement the clipboard instead of the built-in native module on X11. You'll need to install the xclip command. Enable if the clipboard "get stuck" for some applications on Linux.

Default: "false"
x11_use_xdotool_backend boolean

If true, use the xdotool command to implement the clipboard.

Default: "false"