config

betoissues' dotfiles
git clone git://git.betoissues.com/config.git
Historial | Archivos | Refs | Submódulos | README

alacritty.yml (25977B)


      1 # Configuration for Alacritty, the GPU enhanced terminal emulator.
      2 
      3 # Any items in the `env` entry below will be added as
      4 # environment variables. Some entries may override variables
      5 # set by alacritty itself.
      6 #env:
      7   # TERM variable
      8   #
      9   # This value is used to set the `$TERM` environment variable for
     10   # each instance of Alacritty. If it is not present, alacritty will
     11   # check the local terminfo database and use `alacritty` if it is
     12   # available, otherwise `xterm-256color` is used.
     13   #TERM: xterm-256color
     14 
     15 window:
     16   dynamic_title: true
     17   # Window dimensions (changes require restart)
     18   #
     19   # Specified in number of columns/lines, not pixels.
     20   # If both are `0`, this setting is ignored.
     21   dimensions:
     22     columns: 0
     23     lines: 0
     24 
     25   # Window position (changes require restart)
     26   #
     27   # Specified in number of pixels.
     28   # If the position is not set, the window manager will handle the placement.
     29   #position:
     30   #  x: 0
     31   #  y: 0
     32 
     33   # Window padding (changes require restart)
     34   #
     35   # Blank space added around the window in pixels. This padding is scaled
     36   # by DPI and the specified value is always added at both opposing sides.
     37   padding:
     38     x: 2
     39     y: 2
     40 
     41   # Spread additional padding evenly around the terminal content.
     42   dynamic_padding: false
     43 
     44   # Window decorations
     45   #
     46   # Values for `decorations`:
     47   #     - full: Borders and title bar
     48   #     - none: Neither borders nor title bar
     49   #
     50   # Values for `decorations` (macOS only):
     51   #     - transparent: Title bar, transparent background and title bar buttons
     52   #     - buttonless: Title bar, transparent background, but no title bar buttons
     53   decorations: none
     54 
     55   # When true, alacritty starts maximized.
     56   #start_maximized: false
     57 
     58 scrolling:
     59   # Maximum number of lines in the scrollback buffer.
     60   # Specifying '0' will disable scrolling.
     61   history: 10000
     62 
     63   # Number of lines the viewport will move for every line scrolled when
     64   # scrollback is enabled (history > 0).
     65   multiplier: 3
     66 
     67 # Font configuration (changes require restart)
     68 font:
     69   # Normal (roman) font face
     70   normal:
     71     # Font family
     72     #
     73     # Default:
     74     #   - (macOS) Menlo
     75     #   - (Linux) monospace
     76     #   - (Windows) Consolas
     77     family: Fira Code
     78 
     79     # The `style` can be specified to pick a specific face.
     80     style: Regular
     81 
     82   # Bold font face
     83   bold:
     84     # Font family
     85     #
     86     # If the bold family is not specified, it will fall back to the
     87     # value specified for the normal font.
     88     family: Fira Code
     89 
     90     # The `style` can be specified to pick a specific face.
     91     style: Bold
     92 
     93   # Italic font face
     94   italic:
     95     # Font family
     96     #
     97     # If the italic family is not specified, it will fall back to the
     98     # value specified for the normal font.
     99     family: Fira Code
    100 
    101     # The `style` can be specified to pick a specific face.
    102     style: Regular
    103 
    104   # Point size
    105   size: 11
    106 
    107   # Offset is the extra space around each character. `offset.y` can be thought of
    108   # as modifying the line spacing, and `offset.x` as modifying the letter spacing.
    109   offset:
    110     x: 0
    111     y: 0
    112 
    113   # Glyph offset determines the locations of the glyphs within their cells with
    114   # the default being at the bottom. Increasing `x` moves the glyph to the right,
    115   # increasing `y` moves the glyph upwards.
    116   glyph_offset:
    117     x: 0
    118     y: 0
    119 
    120   # Thin stroke font rendering (macOS only)
    121   #
    122   # Thin strokes are suitable for retina displays, but for non-retina screens
    123   # it is recommended to set `use_thin_strokes` to `false`
    124   #
    125   # macOS >= 10.14.x:
    126   #
    127   # If the font quality on non-retina display looks bad then set
    128   # `use_thin_strokes` to `true` and enable font smoothing by running the
    129   # following command:
    130   #   `defaults write -g CGFontRenderingFontSmoothingDisabled -bool NO`
    131   #
    132   # This is a global setting and will require a log out or restart to take
    133   # effect.
    134   use_thin_strokes: false
    135 
    136 # Display the time it takes to redraw each frame.
    137 #render_timer: false
    138 
    139 # Keep the log file after quitting Alacritty.
    140 #persistent_logging: false
    141 
    142 # If `true`, bold text is drawn using the bright color variants.
    143 draw_bold_text_with_bright_colors: true
    144 
    145 # Colors (Gruvbox dark)
    146 colors:
    147   # Default colors
    148   primary:
    149     # hard contrast: background = '0x1d2021'
    150     background: '0x1d2021'
    151     # soft contrast: background = '0x32302f'
    152     foreground: '0xebdbb2'
    153 
    154   # Normal colors
    155   normal:
    156     black:   '0x282828'
    157     red:     '0xcc241d'
    158     green:   '0x98971a'
    159     yellow:  '0xd79921'
    160     blue:    '0x458588'
    161     magenta: '0xb16286'
    162     cyan:    '0x689d6a'
    163     white:   '0xa89984'
    164 
    165   # Bright colors
    166   bright:
    167     black:   '0x928374'
    168     red:     '0xfb4934'
    169     green:   '0xb8bb26'
    170     yellow:  '0xfabd2f'
    171     blue:    '0x83a598'
    172     magenta: '0xd3869b'
    173     cyan:    '0x8ec07c'
    174     white:   '0xebdbb2'
    175   # Default colors
    176   #primary:
    177   #background: '0x000000'
    178   #foreground: '0xeaeaea'
    179 
    180     # Bright and dim foreground colors
    181     #
    182     # The dimmed foreground color is calculated automatically if it is not present.
    183     # If the bright foreground color is not set, or `draw_bold_text_with_bright_colors`
    184     # is `false`, the normal foreground color will be used.
    185     #dim_foreground: '0x9a9a9a'
    186     #bright_foreground: '0xffffff'
    187 
    188   # Cursor colors
    189   #
    190   # Colors which should be used to draw the terminal cursor. If these are unset,
    191   # the cursor color will be the inverse of the cell color.
    192   #cursor:
    193   #  text: '0x000000'
    194   #  cursor: '0xffffff'
    195 
    196   # Vi mode cursor colors
    197   #
    198   # Colors for the cursor when the vi mode is active.
    199   #
    200   # Allowed values are CellForeground and CellBackground, which reference the
    201   # affected cell, or hexadecimal colors like #ff00ff.
    202   #vi_mode_cursor:
    203   #  text: CellBackground
    204   #  cursor: CellForeground
    205   
    206   # Selection colors
    207   #
    208   # Colors which should be used to draw the selection area. If selection 
    209   # background is unset, selection color will be the inverse of the cell colors. 
    210   # If only text is unset the cell text color will remain the same.
    211   #selection:
    212   #  text: '0xeaeaea'
    213   #  background: '0x404040'
    214 
    215   # Search colors
    216   #
    217   # Colors used for the search bar and match highlighting.
    218   #search:
    219     # Allowed values are CellForeground and CellBackground, which reference the
    220     # affected cell, or hexadecimal colors like #ff00ff.
    221     #matches:
    222     #  foreground: '#000000'
    223     #  background: '#ffffff'
    224 
    225     #bar:
    226     #  background: '#c5c8c6'
    227     #  foreground: '#1d1f21'
    228   # Indexed Colors
    229   #
    230   # The indexed colors include all colors from 16 to 256.
    231   # When these are not set, they're filled with sensible defaults.
    232   #
    233   # Example:
    234   #   `- { index: 16, color: '0xff00ff' }`
    235   #
    236   indexed_colors: []
    237 
    238 # Visual Bell
    239 #
    240 # Any time the BEL code is received, Alacritty "rings" the visual bell. Once
    241 # rung, the terminal background will be set to white and transition back to the
    242 # default background color. You can control the rate of this transition by
    243 # setting the `duration` property (represented in milliseconds). You can also
    244 # configure the transition function by setting the `animation` property.
    245 #
    246 # Values for `animation`:
    247 #   - Ease
    248 #   - EaseOut
    249 #   - EaseOutSine
    250 #   - EaseOutQuad
    251 #   - EaseOutCubic
    252 #   - EaseOutQuart
    253 #   - EaseOutQuint
    254 #   - EaseOutExpo
    255 #   - EaseOutCirc
    256 #   - Linear
    257 #
    258 # Specifying a `duration` of `0` will disable the visual bell.
    259 bell:
    260   animation: EaseOutExpo
    261   duration: 0
    262   color: '0xffffff'
    263 
    264 # Background opacity
    265 #
    266 # Window opacity as a floating point number from `0.0` to `1.0`.
    267 # The value `0.0` is completely transparent and `1.0` is opaque.
    268 background_opacity: 1.0
    269 
    270 # Mouse bindings
    271 #
    272 # Available fields:
    273 #   - mouse
    274 #   - action
    275 #   - mods (optional)
    276 #
    277 # Values for `mouse`:
    278 #   - Middle
    279 #   - Left
    280 #   - Right
    281 #   - Numeric identifier such as `5`
    282 #
    283 # All available `mods` and `action` values are documented in the key binding
    284 # section.
    285 mouse_bindings:
    286   - { mouse: Middle, action: PasteSelection }
    287 
    288 mouse:
    289   # Click settings
    290   #
    291   # The `double_click` and `triple_click` settings control the time
    292   # alacritty should wait for accepting multiple clicks as one double
    293   # or triple click.
    294   double_click: { threshold: 300 }
    295   triple_click: { threshold: 300 }
    296 
    297   # If this is `true`, the cursor is temporarily hidden when typing.
    298   hide_when_typing: false
    299 
    300   url:
    301     # URL launcher
    302     #
    303     # This program is executed when clicking on a text which is recognized as a URL.
    304     # The URL is always added to the command as the last parameter.
    305     #
    306     # When set to `None`, URL launching will be disabled completely.
    307     #
    308     # Default:
    309     #   - (macOS) open
    310     #   - (Linux) xdg-open
    311     #   - (Windows) explorer
    312     #launcher:
    313     #  program: xdg-open
    314     #  args: []
    315 
    316     # URL modifiers
    317     #
    318     # These are the modifiers that need to be held down for opening URLs when clicking
    319     # on them. The available modifiers are documented in the key binding section.
    320     modifiers: None
    321 
    322 selection:
    323   semantic_escape_chars: ",│`|:\"' ()[]{}<>"
    324 
    325   # When set to `true`, selected text will be copied to the primary clipboard.
    326   save_to_clipboard: true
    327 
    328 cursor:
    329   # Cursor style
    330   #
    331   # Values for `style`:
    332   #   - ▇ Block
    333   #   - _ Underline
    334   #   - | Beam
    335   style: Underline
    336 
    337   # If this is `true`, the cursor will be rendered as a hollow box when the
    338   # window is not focused.
    339   unfocused_hollow: true
    340 
    341   # Vi mode cursor style
    342   #
    343   # If the vi mode cursor style is `None` or not specified, it will fall back to
    344   # the style of the active value of the normal cursor.
    345   #
    346   # See `cursor.style` for available options.
    347   vi_mode_style: Block
    348 
    349   # Thickness of the cursor relative to the cell width as floating point number
    350   # from `0.0` to `1.0`.
    351   #thickness: 0.15
    352 
    353 # Live config reload (changes require restart)
    354 live_config_reload: true
    355 
    356 # Shell
    357 #
    358 # You can set `shell.program` to the path of your favorite shell, e.g. `/bin/fish`.
    359 # Entries in `shell.args` are passed unmodified as arguments to the shell.
    360 #
    361 # Default:
    362 #   - (Linux/macOS) /bin/bash --login
    363 #   - (Windows) powershell
    364 #shell:
    365 #  program: /bin/bash
    366 #  args:
    367 #    - --login
    368 
    369 # Windows 10 ConPTY backend (Windows only)
    370 #
    371 # This will enable better color support and may resolve other issues,
    372 # however this API and its implementation is still young and so is
    373 # disabled by default, as stability may not be as good as the winpty
    374 # backend.
    375 #
    376 # Alacritty will fall back to the WinPTY automatically if the ConPTY
    377 # backend cannot be initialized.
    378 enable_experimental_conpty_backend: false
    379 
    380 # Send ESC (\x1b) before characters when alt is pressed.
    381 alt_send_esc: true
    382 
    383 # Key bindings
    384 #
    385 # Key bindings are specified as a list of objects. Each binding will specify a
    386 # key and modifiers required to trigger it, terminal modes where the binding is
    387 # applicable, and what should be done when the key binding fires. It can either
    388 # send a byte sequence to the running application (`chars`), execute a
    389 # predefined action (`action`) or fork and execute a specified command plus
    390 # arguments (`command`).
    391 #
    392 # Bindings are always filled by default, but will be replaced when a new binding
    393 # with the same triggers is defined. To unset a default binding, it can be
    394 # mapped to the `None` action.
    395 #
    396 # Example:
    397 #   `- { key: V, mods: Control|Shift, action: Paste }`
    398 #
    399 # Available fields:
    400 #   - key
    401 #   - mods (optional)
    402 #   - chars | action | command (exactly one required)
    403 #   - mode (optional)
    404 #
    405 # Values for `key`:
    406 #   - `A` -> `Z`
    407 #   - `F1` -> `F12`
    408 #   - `Key1` -> `Key0`
    409 #
    410 #   A full list with available key codes can be found here:
    411 #   https://docs.rs/glutin/*/glutin/enum.VirtualKeyCode.html#variants
    412 #
    413 #   Instead of using the name of the keys, the `key` field also supports using
    414 #   the scancode of the desired key. Scancodes have to be specified as a
    415 #   decimal number.
    416 #   This command will allow you to display the hex scancodes for certain keys:
    417 #     `showkey --scancodes`
    418 #
    419 # Values for `mods`:
    420 #   - Command
    421 #   - Control
    422 #   - Super
    423 #   - Shift
    424 #   - Alt
    425 #
    426 #   Multiple `mods` can be combined using `|` like this: `mods: Control|Shift`.
    427 #   Whitespace and capitalization is relevant and must match the example.
    428 #
    429 # Values for `chars`:
    430 #   The `chars` field writes the specified string to the terminal. This makes
    431 #   it possible to pass escape sequences.
    432 #   To find escape codes for bindings like `PageUp` ("\x1b[5~"), you can run
    433 #   the command `showkey -a` outside of tmux.
    434 #   Note that applications use terminfo to map escape sequences back to
    435 #   keys. It is therefore required to update the terminfo when
    436 #   changing an escape sequence.
    437 #
    438 # Values for `action`:
    439 #   - Paste
    440 #   - PasteSelection
    441 #   - Copy
    442 #   - IncreaseFontSize
    443 #   - DecreaseFontSize
    444 #   - ResetFontSize
    445 #   - ScrollPageUp
    446 #   - ScrollPageDown
    447 #   - ScrollLineUp
    448 #   - ScrollLineDown
    449 #   - ScrollToTop
    450 #   - ScrollToBottom
    451 #   - ClearHistory
    452 #   - Hide
    453 #   - Quit
    454 #   - ClearLogNotice
    455 #   - SpawnNewInstance
    456 #   - None
    457 #
    458 # Values for `command`:
    459 #   The `command` field must be a map containing a `program` string and
    460 #   an `args` array of command line parameter strings.
    461 #
    462 #   Example:
    463 #       `command: { program: "alacritty", args: ["-e", "vttest"] }`
    464 #
    465 # Values for `mode`:
    466 #   - ~AppCursor
    467 #   - AppCursor
    468 #   - ~AppKeypad
    469 #   - AppKeypad
    470 key_bindings:
    471     # Vi Mode
    472   - { key: Space,  mods: Shift|Control, mode: Vi, action: ScrollToBottom          }
    473   - { key: Space,  mods: Shift|Control,           action: ToggleViMode            }
    474   - { key: Escape,                      mode: Vi, action: ClearSelection          }
    475   - { key: I,                           mode: Vi, action: ScrollToBottom          }
    476   - { key: I,                           mode: Vi, action: ToggleViMode            }
    477   - { key: Y,      mods: Control,       mode: Vi, action: ScrollLineUp            }
    478   - { key: E,      mods: Control,       mode: Vi, action: ScrollLineDown          }
    479   - { key: G,                           mode: Vi, action: ScrollToTop             }
    480   - { key: G,      mods: Shift,         mode: Vi, action: ScrollToBottom          }
    481   - { key: B,      mods: Control,       mode: Vi, action: ScrollPageUp            }
    482   - { key: F,      mods: Control,       mode: Vi, action: ScrollPageDown          }
    483   - { key: U,      mods: Control,       mode: Vi, action: ScrollHalfPageUp        }
    484   - { key: D,      mods: Control,       mode: Vi, action: ScrollHalfPageDown      }
    485   - { key: Y,                           mode: Vi, action: Copy                    }
    486   - { key: Y,                           mode: Vi, action: ClearSelection          }
    487   - { key: Copy,                        mode: Vi, action: ClearSelection          }
    488   - { key: V,                           mode: Vi, action: ToggleNormalSelection   }
    489   - { key: V,      mods: Shift,         mode: Vi, action: ToggleLineSelection     }
    490   - { key: V,      mods: Control,       mode: Vi, action: ToggleBlockSelection    }
    491   - { key: V,      mods: Alt,           mode: Vi, action: ToggleSemanticSelection }
    492   - { key: Return,                      mode: Vi, action: Open                    }
    493   - { key: K,                           mode: Vi, action: Up                      }
    494   - { key: J,                           mode: Vi, action: Down                    }
    495   - { key: H,                           mode: Vi, action: Left                    }
    496   - { key: L,                           mode: Vi, action: Right                   }
    497   - { key: Up,                          mode: Vi, action: Up                      }
    498   - { key: Down,                        mode: Vi, action: Down                    }
    499   - { key: Left,                        mode: Vi, action: Left                    }
    500   - { key: Right,                       mode: Vi, action: Right                   }
    501   - { key: Key0,                        mode: Vi, action: First                   }
    502   - { key: Key4,   mods: Shift,         mode: Vi, action: Last                    }
    503   - { key: Key6,   mods: Shift,         mode: Vi, action: FirstOccupied           }
    504   - { key: H,      mods: Shift,         mode: Vi, action: High                    }
    505   - { key: M,      mods: Shift,         mode: Vi, action: Middle                  }
    506   - { key: L,      mods: Shift,         mode: Vi, action: Low                     }
    507   - { key: B,                           mode: Vi, action: SemanticLeft            }
    508   - { key: W,                           mode: Vi, action: SemanticRight           }
    509   - { key: E,                           mode: Vi, action: SemanticRightEnd        }
    510   - { key: B,      mods: Shift,         mode: Vi, action: WordLeft                }
    511   - { key: W,      mods: Shift,         mode: Vi, action: WordRight               }
    512   - { key: E,      mods: Shift,         mode: Vi, action: WordRightEnd            }
    513   - { key: Key5,   mods: Shift,         mode: Vi, action: Bracket                 }
    514   - { key: Slash,                       mode: Vi, action: SearchForward           }
    515   - { key: Slash,  mods: Shift,         mode: Vi, action: SearchBackward          }
    516   - { key: N,                           mode: Vi, action: SearchNext              }
    517   - { key: N,      mods: Shift,         mode: Vi, action: SearchPrevious          }
    518 
    519   # (Windows/Linux only)
    520   - { key: V,        mods: Control|Shift, action: Paste            }
    521   - { key: C,        mods: Control|Shift, action: Copy             }
    522   - { key: Insert,   mods: Shift,         action: PasteSelection   }
    523   - { key: Key0,     mods: Control,       action: ResetFontSize    }
    524   - { key: Equals,   mods: Control,       action: IncreaseFontSize }
    525   - { key: Add,      mods: Control,       action: IncreaseFontSize }
    526   - { key: Subtract, mods: Control,       action: DecreaseFontSize }
    527   - { key: Minus,    mods: Control,       action: DecreaseFontSize }
    528 
    529   - { key: Paste,                   action: Paste                            }
    530   - { key: Copy,                    action: Copy                             }
    531   - { key: L,        mods: Control, action: ClearLogNotice                   }
    532   - { key: L,        mods: Control, chars: "\x0c"                            }
    533   - { key: Home,     mods: Alt,     chars: "\x1b[1;3H"                       }
    534   - { key: Home,                    chars: "\x1bOH",        mode: AppCursor  }
    535   - { key: Home,                    chars: "\x1b[H",        mode: ~AppCursor }
    536   - { key: End,      mods: Alt,     chars: "\x1b[1;3F"                       }
    537   - { key: End,                     chars: "\x1bOF",        mode: AppCursor  }
    538   - { key: End,                     chars: "\x1b[F",        mode: ~AppCursor }
    539   - { key: PageUp,   mods: Shift,   action: ScrollPageUp,   mode: ~Alt       }
    540   - { key: PageUp,   mods: Shift,   chars: "\x1b[5;2~",     mode: Alt        }
    541   - { key: PageUp,   mods: Control, chars: "\x1b[5;5~"                       }
    542   - { key: PageUp,   mods: Alt,     chars: "\x1b[5;3~"                       }
    543   - { key: PageUp,                  chars: "\x1b[5~"                         }
    544   - { key: PageDown, mods: Shift,   action: ScrollPageDown, mode: ~Alt       }
    545   - { key: PageDown, mods: Shift,   chars: "\x1b[6;2~",     mode: Alt        }
    546   - { key: PageDown, mods: Control, chars: "\x1b[6;5~"                       }
    547   - { key: PageDown, mods: Alt,     chars: "\x1b[6;3~"                       }
    548   - { key: PageDown,                chars: "\x1b[6~"                         }
    549   - { key: Tab,      mods: Shift,   chars: "\x1b[Z"                          }
    550   - { key: Back,                    chars: "\x7f"                            }
    551   - { key: Back,     mods: Alt,     chars: "\x1b\x7f"                        }
    552   - { key: Insert,                  chars: "\x1b[2~"                         }
    553   - { key: Delete,                  chars: "\x1b[3~"                         }
    554   - { key: Left,     mods: Shift,   chars: "\x1b[1;2D"                       }
    555   - { key: Left,     mods: Control, chars: "\x1b[1;5D"                       }
    556   - { key: Left,     mods: Alt,     chars: "\x1b[1;3D"                       }
    557   - { key: Left,                    chars: "\x1b[D",        mode: ~AppCursor }
    558   - { key: Left,                    chars: "\x1bOD",        mode: AppCursor  }
    559   - { key: Right,    mods: Shift,   chars: "\x1b[1;2C"                       }
    560   - { key: Right,    mods: Control, chars: "\x1b[1;5C"                       }
    561   - { key: Right,    mods: Alt,     chars: "\x1b[1;3C"                       }
    562   - { key: Right,                   chars: "\x1b[C",        mode: ~AppCursor }
    563   - { key: Right,                   chars: "\x1bOC",        mode: AppCursor  }
    564   - { key: Up,       mods: Shift,   chars: "\x1b[1;2A"                       }
    565   - { key: Up,       mods: Control, chars: "\x1b[1;5A"                       }
    566   - { key: Up,       mods: Alt,     chars: "\x1b[1;3A"                       }
    567   - { key: Up,                      chars: "\x1b[A",        mode: ~AppCursor }
    568   - { key: Up,                      chars: "\x1bOA",        mode: AppCursor  }
    569   - { key: Down,     mods: Shift,   chars: "\x1b[1;2B"                       }
    570   - { key: Down,     mods: Control, chars: "\x1b[1;5B"                       }
    571   - { key: Down,     mods: Alt,     chars: "\x1b[1;3B"                       }
    572   - { key: Down,                    chars: "\x1b[B",        mode: ~AppCursor }
    573   - { key: Down,                    chars: "\x1bOB",        mode: AppCursor  }
    574   - { key: F1,                      chars: "\x1bOP"                          }
    575   - { key: F2,                      chars: "\x1bOQ"                          }
    576   - { key: F3,                      chars: "\x1bOR"                          }
    577   - { key: F4,                      chars: "\x1bOS"                          }
    578   - { key: F5,                      chars: "\x1b[15~"                        }
    579   - { key: F6,                      chars: "\x1b[17~"                        }
    580   - { key: F7,                      chars: "\x1b[18~"                        }
    581   - { key: F8,                      chars: "\x1b[19~"                        }
    582   - { key: F9,                      chars: "\x1b[20~"                        }
    583   - { key: F10,                     chars: "\x1b[21~"                        }
    584   - { key: F11,                     chars: "\x1b[23~"                        }
    585   - { key: F12,                     chars: "\x1b[24~"                        }
    586   - { key: F1,       mods: Shift,   chars: "\x1b[1;2P"                       }
    587   - { key: F2,       mods: Shift,   chars: "\x1b[1;2Q"                       }
    588   - { key: F3,       mods: Shift,   chars: "\x1b[1;2R"                       }
    589   - { key: F4,       mods: Shift,   chars: "\x1b[1;2S"                       }
    590   - { key: F5,       mods: Shift,   chars: "\x1b[15;2~"                      }
    591   - { key: F6,       mods: Shift,   chars: "\x1b[17;2~"                      }
    592   - { key: F7,       mods: Shift,   chars: "\x1b[18;2~"                      }
    593   - { key: F8,       mods: Shift,   chars: "\x1b[19;2~"                      }
    594   - { key: F9,       mods: Shift,   chars: "\x1b[20;2~"                      }
    595   - { key: F10,      mods: Shift,   chars: "\x1b[21;2~"                      }
    596   - { key: F11,      mods: Shift,   chars: "\x1b[23;2~"                      }
    597   - { key: F12,      mods: Shift,   chars: "\x1b[24;2~"                      }
    598   - { key: F1,       mods: Control, chars: "\x1b[1;5P"                       }
    599   - { key: F2,       mods: Control, chars: "\x1b[1;5Q"                       }
    600   - { key: F3,       mods: Control, chars: "\x1b[1;5R"                       }
    601   - { key: F4,       mods: Control, chars: "\x1b[1;5S"                       }
    602   - { key: F5,       mods: Control, chars: "\x1b[15;5~"                      }
    603   - { key: F6,       mods: Control, chars: "\x1b[17;5~"                      }
    604   - { key: F7,       mods: Control, chars: "\x1b[18;5~"                      }
    605   - { key: F8,       mods: Control, chars: "\x1b[19;5~"                      }
    606   - { key: F9,       mods: Control, chars: "\x1b[20;5~"                      }
    607   - { key: F10,      mods: Control, chars: "\x1b[21;5~"                      }
    608   - { key: F11,      mods: Control, chars: "\x1b[23;5~"                      }
    609   - { key: F12,      mods: Control, chars: "\x1b[24;5~"                      }
    610   - { key: F1,       mods: Alt,     chars: "\x1b[1;6P"                       }
    611   - { key: F2,       mods: Alt,     chars: "\x1b[1;6Q"                       }
    612   - { key: F3,       mods: Alt,     chars: "\x1b[1;6R"                       }
    613   - { key: F4,       mods: Alt,     chars: "\x1b[1;6S"                       }
    614   - { key: F5,       mods: Alt,     chars: "\x1b[15;6~"                      }
    615   - { key: F6,       mods: Alt,     chars: "\x1b[17;6~"                      }
    616   - { key: F7,       mods: Alt,     chars: "\x1b[18;6~"                      }
    617   - { key: F8,       mods: Alt,     chars: "\x1b[19;6~"                      }
    618   - { key: F9,       mods: Alt,     chars: "\x1b[20;6~"                      }
    619   - { key: F10,      mods: Alt,     chars: "\x1b[21;6~"                      }
    620   - { key: F11,      mods: Alt,     chars: "\x1b[23;6~"                      }
    621   - { key: F12,      mods: Alt,     chars: "\x1b[24;6~"                      }
    622   - { key: F1,       mods: Super,   chars: "\x1b[1;3P"                       }
    623   - { key: F2,       mods: Super,   chars: "\x1b[1;3Q"                       }
    624   - { key: F3,       mods: Super,   chars: "\x1b[1;3R"                       }
    625   - { key: F4,       mods: Super,   chars: "\x1b[1;3S"                       }
    626   - { key: F5,       mods: Super,   chars: "\x1b[15;3~"                      }
    627   - { key: F6,       mods: Super,   chars: "\x1b[17;3~"                      }
    628   - { key: F7,       mods: Super,   chars: "\x1b[18;3~"                      }
    629   - { key: F8,       mods: Super,   chars: "\x1b[19;3~"                      }
    630   - { key: F9,       mods: Super,   chars: "\x1b[20;3~"                      }
    631   - { key: F10,      mods: Super,   chars: "\x1b[21;3~"                      }
    632   - { key: F11,      mods: Super,   chars: "\x1b[23;3~"                      }
    633   - { key: F12,      mods: Super,   chars: "\x1b[24;3~"                      }
    634   - { key: NumpadEnter,             chars: "\n"                              }