· 6 years ago · Mar 04, 2020, 07:02 PM
1# vim:fileencoding=utf-8:ft=conf:foldmethod=marker
2#set _Gi 1
3#: Fonts {{{
4
5#: kitty has very powerful font management. You can configure
6#: individual font faces and even specify special fonts for particular
7#: characters.
8
9font_family Inconsolata
10bold_font auto
11italic_font auto
12bold_italic_font auto
13
14#: You can specify different fonts for the bold/italic/bold-italic
15#: variants. By default they are derived automatically, by the OSes
16#: font system. Setting them manually is useful for font families that
17#: have many weight variants like Book, Medium, Thick, etc. For
18#: example::
19
20#: font_family Operator Mono Book
21#: bold_font Operator Mono Medium
22#: italic_font Operator Mono Book Italic
23#: bold_italic_font Operator Mono Medium Italic
24
25font_size 13.0
26
27#: Font size (in pts)
28
29# adjust_line_height 0
30# adjust_column_width 0
31
32#: Change the size of each character cell kitty renders. You can use
33#: either numbers, which are interpreted as pixels or percentages
34#: (number followed by %), which are interpreted as percentages of the
35#: unmodified values. You can use negative pixels or percentages less
36#: than 100% to reduce sizes (but this might cause rendering
37#: artifacts).
38
39# symbol_map U+E0A0-U+E0A2,U+E0B0-U+E0B3 PowerlineSymbols
40
41#: Map the specified unicode codepoints to a particular font. Useful
42#: if you need special rendering for some symbols, such as for
43#: Powerline. Avoids the need for patched fonts. Each unicode code
44#: point is specified in the form U+<code point in hexadecimal>. You
45#: can specify multiple code points, separated by commas and ranges
46#: separated by hyphens. symbol_map itself can be specified multiple
47#: times. Syntax is::
48
49#: symbol_map codepoints Font Family Name
50
51# box_drawing_scale 0.001, 1, 1.5, 2
52
53#: Change the sizes of the lines used for the box drawing unicode
54#: characters These values are in pts. They will be scaled by the
55#: monitor DPI to arrive at a pixel value. There must be four values
56#: corresponding to thin, normal, thick, and very thick lines.
57
58#: }}}
59
60#: Cursor customization {{{
61
62# cursor magenta
63cursor blue
64
65#: Default cursor color
66
67# cursor_shape block
68
69#: The cursor shape can be one of (block, beam, underline)
70
71cursor_blink_interval 0
72# cursor_stop_blinking_after 15.0
73
74#: The interval (in seconds) at which to blink the cursor. Set to zero
75#: to disable blinking. Note that numbers smaller than repaint_delay
76#: will be limited to repaint_delay. Stop blinking cursor after the
77#: specified number of seconds of keyboard inactivity. Set to zero to
78#: never stop blinking.
79
80#: }}}
81
82#: Scrollback {{{
83
84# scrollback_lines 2000
85
86#: Number of lines of history to keep in memory for scrolling back.
87#: Memory is allocated on demand.
88
89# scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER
90
91#: Program with which to view scrollback in a new window. The
92#: scrollback buffer is passed as STDIN to this program. If you change
93#: it, make sure the program you use can handle ANSI escape sequences
94#: for colors and text formatting. INPUT_LINE_NUMBER in the command
95#: line above will be replaced by an integer representing which line
96#: should be at the top of the screen.
97
98# wheel_scroll_multiplier 5
99
100#: Modify the amount scrolled by the mouse wheel or touchpad. Use
101#: negative numbers to change scroll direction.
102
103#: }}}
104
105#: Mouse {{{
106
107# url_color #0087BD
108# url_style curly
109
110#: The color and style for highlighting URLs on mouse-over. url_style
111#: can be one of: none, single, double, curly
112
113# open_url_modifiers kitty_mod
114
115#: The modifier keys to press when clicking with the mouse on URLs to
116#: open the URL
117
118# open_url_with default
119
120#: The program with which to open URLs that are clicked on. The
121#: special value default means to use the operating system's default
122#: URL handler.
123
124# copy_on_select no
125
126#: Copy to clipboard on select. With this enabled, simply selecting
127#: text with the mouse will cause the text to be copied to clipboard.
128#: Useful on platforms such as macOS/Wayland that do not have the
129#: concept of primary selections. Note that this is a security risk,
130#: as all programs, including websites open in your browser can read
131#: the contents of the clipboard.
132
133# rectangle_select_modifiers ctrl+alt
134
135#: The modifiers to use rectangular selection (i.e. to select text in
136#: a rectangular block with the mouse)
137
138# select_by_word_characters :@-./_~?&=%+#
139
140#: Characters considered part of a word when double clicking. In
141#: addition to these characters any character that is marked as an
142#: alpha-numeric character in the unicode database will be matched.
143
144# click_interval 0.5
145
146#: The interval between successive clicks to detect double/triple
147#: clicks (in seconds)
148
149# mouse_hide_wait 3.0
150
151#: Hide mouse cursor after the specified number of seconds of the
152#: mouse not being used. Set to zero to disable mouse cursor hiding.
153
154# focus_follows_mouse no
155
156#: Set the active window to the window under the mouse when moving the
157#: mouse around
158
159#: }}}
160
161#: Performance tuning {{{
162
163# repaint_delay 10
164
165#: Delay (in milliseconds) between screen updates. Decreasing it,
166#: increases frames-per-second (FPS) at the cost of more CPU usage.
167#: The default value yields ~100 FPS which is more than sufficient for
168#: most uses. Note that to actually achieve 100 FPS you have to either
169#: set sync_to_monitor to no or use a monitor with a high refresh
170#: rate.
171
172# input_delay 3
173
174#: Delay (in milliseconds) before input from the program running in
175#: the terminal is processed. Note that decreasing it will increase
176#: responsiveness, but also increase CPU usage and might cause flicker
177#: in full screen programs that redraw the entire screen on each loop,
178#: because kitty is so fast that partial screen updates will be drawn.
179
180# sync_to_monitor yes
181
182#: Sync screen updates to the refresh rate of the monitor. This
183#: prevents tearing (https://en.wikipedia.org/wiki/Screen_tearing)
184#: when scrolling. However, it limits the rendering speed to the
185#: refresh rate of your monitor. With a very high speed mouse/high
186#: keyboard repeat rate, you may notice some slight input latency. If
187#: so, set this to no.
188
189#: }}}
190
191#: Terminal bell {{{
192
193enable_audio_bell no
194
195#: Enable/disable the audio bell. Useful in environments that require
196#: silence.
197
198# visual_bell_duration 0.0
199
200#: Visual bell duration. Flash the screen when a bell occurs for the
201#: specified number of seconds. Set to zero to disable.
202
203window_alert_on_bell 0
204
205#: Request window attention on bell. Makes the dock icon bounce on
206#: macOS or the taskbar flash on linux.
207
208bell_on_tab no
209
210#: Show a bell symbol on the tab if a bell occurs in one of the
211#: windows in the tab and the window is not the currently focused
212#: window
213
214#: }}}
215
216#: Window layout {{{
217
218# remember_window_size yes
219#initial_window_width 640
220#initial_window_height 400
221
222#: If enabled, the window size will be remembered so that new
223#: instances of kitty will have the same size as the previous
224#: instance. If disabled, the window will initially have size
225#: configured by initial_window_width/height, in pixels. You can use a
226#: suffix of "c" on the width/height values to have them interpreted
227#: as number of cells instead of pixels.
228
229enabled_layouts *
230
231#: The enabled window layouts. A comma separated list of layout names.
232#: The special value * means all layouts. The first listed layout will
233#: be used as the startup layout. For a list of available layouts, see
234#: the layouts.
235
236# window_resize_step_cells 2
237# window_resize_step_lines 2
238
239#: The step size (in units of cell width/cell height) to use when
240#: resizing windows. The cells value is used for horizontal resizing
241#: and the lines value for vertical resizing.
242
243window_border_width 20
244
245#: The width (in pts) of window borders. Will be rounded to the
246#: nearest number of pixels based on screen resolution. Note that
247#: borders are displayed only when more than one window is visible.
248#: They are meant to separate multiple windows.
249
250window_margin_width 0
251
252#: The window margin (in pts) (blank area outside the border)
253
254# single_window_margin_width -1000.0
255
256#: The window margin (in pts) to use when only a single window is
257#: visible. Negative values will cause the value of
258#: window_margin_width to be used instead.
259
260window_padding_width 6
261
262#: The window padding (in pts) (blank area between the text and the
263#: window border)
264
265active_border_color #282c34
266
267#: The color for the border of the active window
268
269inactive_border_color #22262d
270
271#: The color for the border of inactive windows
272
273# bell_border_color #ff5a00
274
275#: The color for the border of inactive windows in which a bell has
276#: occurred
277
278inactive_text_alpha .9
279
280#: Fade the text in inactive windows by the specified amount (a number
281#: between zero and one, with zero being fully faded).
282
283#: }}}
284
285#: Tab bar {{{
286
287# tab_bar_edge bottom
288
289#: Which edge to show the tab bar on, top or bottom
290
291tab_bar_margin_width 4
292
293#: The margin to the left and right of the tab bar (in pts)
294
295tab_bar_style fade
296
297#: The tab bar style, can be one of: fade or separator. In the fade
298#: style, each tab's edges fade into the background color, in the
299#: separator style, tabs are separated by a configurable separator.
300
301# tab_fade 0.25 0.5 0.75 1
302tab_fade 1 1 1
303
304#: Control how each tab fades into the background when using fade for
305#: the tab_bar_style. Each number is an alpha (between zero and one)
306#: that controls how much the corresponding cell fades into the
307#: background, with zero being no fade and one being full fade. You
308#: can change the number of cells used by adding/removing entries to
309#: this list.
310
311# tab_separator " "
312
313#: The separator between tabs in the tab bar when using separator as
314#: the tab_bar_style.
315
316active_tab_foreground #282c34
317active_tab_background #abb2bf
318active_tab_font_style bold
319inactive_tab_foreground #5c6370
320inactive_tab_background #22262d
321inactive_tab_font_style normal
322
323#: Tab bar colors and styles
324
325#: }}}
326
327#: Color scheme {{{
328
329foreground #abb2bf
330background #282c34
331
332#: The foreground and background colors
333
334background_opacity 0.90
335# dynamic_background_opacity no
336
337#: The opacity of the background. A number between 0 and 1, where 1 is
338#: opaque and 0 is fully transparent. This will only work if
339#: supported by the OS (for instance, when using a compositor under
340#: X11). Note that it only sets the default background color's
341#: opacity. This is so that things like the status bar in vim,
342#: powerline prompts, etc. still look good. But it means that if you
343#: use a color theme with a background color in your editor, it will
344#: not be rendered as transparent. Instead you should change the
345#: default background color in your kitty config and not use a
346#: background color in the editor color scheme. Or use the escape
347#: codes to set the terminals default colors in a shell script to
348#: launch your editor. Be aware that using a value less than 1.0 is a
349#: (possibly significant) performance hit. If you want to dynamically
350#: change transparency of windows set dynamic_background_opacity to
351#: yes (this is off by default as it has a performance cost)
352
353# dim_opacity 0.75
354
355#: How much to dim text that has the DIM/FAINT attribute set. One
356#: means no dimming and zero means fully dimmed (i.e. invisible).
357
358# selection_foreground #000000
359# selection_background #FFFACD
360
361#: The foreground and background for text selected with the mouse
362
363
364#: The 16 terminal colors. There are 8 basic colors, each color has a
365#: dull and bright version. You can also set the remaining colors from
366#: the 256 color table as color16 to color255.
367
368color0 #282c34
369color8 #596276
370
371#: black
372
373color1 #e06c75
374color9 #be5046
375
376#: red
377
378color2 #98c379
379color10 #98c379
380
381#: green
382
383color3 #e5c07b
384color11 #d19a66
385
386#: yellow
387
388color4 #61afef
389color12 #61afef
390
391#: blue
392
393color5 #c678dd
394color13 #c678dd
395
396#: magenta
397
398color6 #56b6c2
399color14 #56b6c2
400
401#: cyan
402
403color7 #abb2bf
404color15 #5c6370
405
406#: white
407
408#: }}}
409
410#: Advanced {{{
411
412# shell zsh
413
414#: The shell program to execute. The default value of . means to use
415#: whatever shell is set as the default shell for the current user.
416#: Note that on macOS if you change this, you might need to add
417#: --login to ensure that the shell starts in interactive mode and
418#: reads its startup rc files.
419
420editor .
421
422#: The console editor to use when editing the kitty config file or
423#: similar tasks. A value of . means to use the environment variable
424#: EDITOR. Note that this environment variable has to be set not just
425#: in your shell startup scripts but system-wide, otherwise kitty will
426#: not see it.
427
428# close_on_child_death nvim
429
430#: Close the window when the child process (shell) exits. If no (the
431#: default), the terminal will remain open when the child exits as
432#: long as there are still processes outputting to the terminal (for
433#: example disowned or backgrounded processes). If yes, the window
434#: will close as soon as the child process exits. Note that setting it
435#: to yes means that any background processes still using the terminal
436#: can fail silently because their stdout/stderr/stdin no longer work.
437
438# allow_remote_control no
439
440#: Allow other programs to control kitty. If you turn this on other
441#: programs can control all aspects of kitty, including sending text
442#: to kitty windows, opening new windows, closing windows, reading the
443#: content of windows, etc. Note that this even works over ssh
444#: connections.
445
446# startup_session none
447
448#: Path to a session file to use for all kitty instances. Can be
449#: overridden by using the kitty --session command line option for
450#: individual instances. See sessions in the kitty documentation for
451#: details. Note that relative paths are interpreted with respect to
452#: the kitty config directory. Environment variables in the path are
453#: expanded.
454
455# clipboard_control write-clipboard write-primary
456
457#: Allow programs running in kitty to read and write from the
458#: clipboard. You can control exactly which actions are allowed. The
459#: set of possible actions is: write-clipboard read-clipboard write-
460#: primary read-primary The default is to allow writing to the
461#: clipboard and primary selection. Note that enabling the read
462#: functionality is a security risk as it means that any program, even
463#: one running on a remote server via SSH can read your clipboard.
464
465# term xterm-kitty
466
467#: The value of the TERM environment variable to set. Changing this
468#: can break many terminal programs, only change it if you know what
469#: you are doing, not because you read some advice on Stack Overflow
470#: to change it.
471
472#: }}}
473
474#: OS specific tweaks {{{
475
476#macos_titlebar_color #22262d
477
478#: Change the color of the kitty window's titlebar on macOS. A value
479#: of system means to use the default system color, a value of
480#: background means to use the background color of the currently
481#: active window and finally you can use an arbitrary color, such as
482#: #12af59 or red. WARNING: This option works by using a hack, as
483#: there is no proper Cocoa API for it. It sets the background color
484#: of the entire window and makes the titlebar transparent. As such it
485#: is incompatible with background_opacity. If you want to use both,
486#: you are probably better off just hiding the titlebar with
487#: macos_hide_titlebar.
488
489# macos_hide_titlebar no
490
491#: Hide the kitty window's title bar on macOS.
492
493# x11_hide_window_decorations yes
494
495hide_window_decorations no
496
497
498#: Hide the window decorations (title bar and window borders) on X11
499#: and Wayland. Whether this works and exactly what effect it has
500#: depends on the window manager, as it is the job of the window
501#: manager/compositor to draw window decorations.
502
503# macos_option_as_alt yes
504
505#: Use the option key as an alt key. With this set to no, kitty will
506#: use the macOS native Option+Key = unicode character behavior. This
507#: will break any Alt+key keyboard shortcuts in your terminal
508#: programs, but you can use the macOS unicode input technique.
509
510# macos_hide_from_tasks no
511
512#: Hide the kitty window from running tasks (Option+Tab) on macOS.
513
514# macos_quit_when_last_window_closed no
515
516#: Have kitty quit when all the top-level windows are closed. By
517#: default, kitty will stay running, even with no open windows, as is
518#: the expected behavior on macOS.
519
520#: }}}
521
522#: Keyboard shortcuts {{{
523
524#: For a list of key names, see: GLFW keys
525#: <http://www.glfw.org/docs/latest/group__keys.html>. The name to use
526#: is the part after the GLFW_KEY_ prefix. For a list of modifier
527#: names, see: GLFW mods
528#: <http://www.glfw.org/docs/latest/group__mods.html>
529
530#: On Linux you can also use XKB key names to bind keys that are not
531#: supported by GLFW. See XKB keys
532#: <https://github.com/xkbcommon/libxkbcommon/blob/master/xkbcommon/xkbcommon-
533#: keysyms.h> for a list of key names. The name to use is the part
534#: after the XKB_KEY_ prefix. Note that you should only use an XKB key
535#: name for keys that are not present in the list of GLFW keys.
536
537#: You can use the special action no_op to unmap a keyboard shortcut
538#: that is assigned in the default configuration.
539
540#: You can combine multiple actions to be triggered by a single
541#: shortcut, using the syntax below::
542
543#: map key combine <separator> action1 <separator> action2 <separator> action3 ...
544
545#: For example::
546
547#: map kitty_mod+e combine : new_window : next_layout
548
549#: this will create a new window and switch to the next available
550#: layout
551
552#: You can use multi-key shortcuts using the syntax shown below::
553
554#: map key1>key2>key3 action
555
556#: For example::
557
558#: map ctrl+f>2 set_font_size 20
559
560# kitty_mod ctrl+shift
561
562#: The value of kitty_mod is used as the modifier for all default
563#: shortcuts, you can change it in your kitty.conf to change the
564#: modifiers for all the default shortcuts.
565
566# clear_all_shortcuts no
567
568#: You can have kitty remove all shortcut definition seen up to this
569#: point. Useful, for instance, to remove the default shortcuts.
570
571#: Clipboard {{{
572
573# map cmd+c copy_to_clipboard
574# map kitty_mod+c copy_to_clipboard
575# map cmd+v paste_from_clipboard
576# map kitty_mod+v paste_from_clipboard
577# map kitty_mod+s paste_from_selection
578# map shift+insert paste_from_selection
579# map kitty_mod+o pass_selection_to_program
580
581#: You can also pass the contents of the current selection to any
582#: program using pass_selection_to_program. By default, the system's
583#: open program is used, but you can specify your own, for example::
584
585#: map kitty_mod+o pass_selection_to_program firefox
586
587#: You can pass the current selection to a terminal program running in
588#: a new kitty window, by using the @selection placeholder::
589
590#: map kitty_mod+y new_window less @selection
591
592#: }}}
593
594#: Scrolling {{{
595
596# map kitty_mod+up scroll_line_up
597# map kitty_mod+k scroll_line_up
598# map kitty_mod+down scroll_line_down
599# map kitty_mod+j scroll_line_down
600# map kitty_mod+page_up scroll_page_up
601# map kitty_mod+page_down scroll_page_down
602map kitty_mod+b scroll_page_up
603map kitty_mod+f scroll_page_down
604# map kitty_mod+home scroll_home
605# map kitty_mod+end scroll_end
606# map kitty_mod+h show_scrollback
607
608#: You can send the contents of the current screen + history buffer as
609#: stdin to an arbitrary program using the placeholders @text (which
610#: is the plain text) and @ansi (which includes text styling escape
611#: codes). For only the current screen, use @screen or @ansi_screen.
612#: For example, the following command opens the scrollback buffer in
613#: less in a new window::
614
615#: map kitty_mod+y new_window @ansi less +G -R
616
617#: }}}
618
619#: Window management {{{
620
621# map kitty_mod+enter new_window
622map kitty_mod+enter no_op
623map kitty_mod+enter new_window_with_cwd
624
625#: You can open a new window running an arbitrary program, for
626#: example::
627
628#: map kitty_mod+y new_window mutt
629
630#: You can open a new window with the current working directory set to
631#: the working directory of the current window using::
632
633#: map ctrl+alt+enter new_window_with_cwd
634
635# map cmd+n new_os_window
636# map kitty_mod+n new_os_window
637# map kitty_mod+w close_window
638# map kitty_mod+] next_window
639# map kitty_mod+[ previous_window
640map kitty_mod+j previous_window
641map kitty_mod+k next_window
642map kitty_mod+up move_window_forward
643map kitty_mod+down move_window_backward
644# map kitty_mod+f move_window_forward
645# map kitty_mod+b move_window_backward
646# map kitty_mod+` move_window_to_top
647# map kitty_mod+r start_resizing_window
648# map kitty_mod+1 first_window
649# map kitty_mod+2 second_window
650# map kitty_mod+3 third_window
651# map kitty_mod+4 fourth_window
652# map kitty_mod+5 fifth_window
653# map kitty_mod+6 sixth_window
654# map kitty_mod+7 seventh_window
655# map kitty_mod+8 eighth_window
656# map kitty_mod+9 ninth_window
657# map kitty_mod+0 tenth_window
658#: }}}
659
660#: Tab management {{{
661
662# map kitty_mod+right next_tab
663# map kitty_mod+left previous_tab
664map kitty_mod+] no_op
665map kitty_mod+] next_tab
666map kitty_mod+[ no_op
667map kitty_mod+[ previous_tab
668# map kitty_mod+t new_tab
669# map kitty_mod+q close_tab
670# map kitty_mod+. move_tab_forward
671# map kitty_mod+, move_tab_backward
672map kitty_mod+right no_op
673map kitty_mod+right move_tab_forward
674map kitty_mod+left no_op
675map kitty_mod+left move_tab_backward
676# map kitty_mod+alt+t set_tab_title
677map kitty_mod+t no_op
678map kitty_mod+t new_tab_with_cwd
679
680#: You can also create shortcuts to go to specific tabs, with 1 being
681#: the first tab::
682
683#: map ctrl+alt+1 goto_tab 1
684#: map ctrl+alt+2 goto_tab 2
685
686#: Just as with new_window above, you can also pass the name of
687#: arbitrary commands to run when using new_tab and use
688#: new_tab_with_cwd.
689#: }}}
690
691#: Layout management {{{
692
693# map kitty_mod+l next_layout
694
695#: You can also create shortcuts to switch to specific layouts::
696
697map kitty_mod+0 no_op
698map kitty_mod+0 goto_layout stack
699map kitty_mod+9 no_op
700map kitty_mod+9 goto_layout tall
701map kitty_mod+8 no_op
702map kitty_mod+8 goto_layout fat
703#: map ctrl+alt+t goto_layout tall
704#: map ctrl+alt+s goto_layout stack
705#: }}}
706
707#: Font sizes {{{
708
709#: You can change the font size for all top-level kitty windows at a
710#: time or only the current one.
711
712map kitty_mod+equal change_font_size all +2.0
713map kitty_mod+minus change_font_size all -2.0
714map kitty_mod+backspace change_font_size all 0
715
716#: To setup shortcuts for specific font sizes::
717
718#: map kitty_mod+f6 change_font_size all 10.0
719
720#: To setup shortcuts to change only the current window's font size::
721
722#: map kitty_mod+f6 change_font_size current 10.0
723#: }}}
724
725#: Select and act on visible text {{{
726
727#: Use the hints kitten to select text and either pass it to an
728#: external program or insert it into the terminal or copy it to the
729#: clipboard.
730
731# map kitty_mod+e kitten hints
732
733#: Open a currently visible URL using the keyboard. The program used
734#: to open the URL is specified in open_url_with.
735
736# map kitty_mod+p>f kitten hints --type path --program -
737
738#: Select a path/filename and insert it into the terminal. Useful, for
739#: instance to run git commands on a filename output from a previous
740#: git command.
741
742# map kitty_mod+p>shift+f kitten hints --type path
743
744#: Select a path/filename and open it with the default open program.
745
746# map kitty_mod+p>l kitten hints --type line --program -
747
748#: Select a line of text and insert it into the terminal. Use for the
749#: output of things like: ls -1
750
751# map kitty_mod+p>w kitten hints --type word --program -
752
753#: Select words and insert into terminal.
754
755# map kitty_mod+p>h kitten hints --type hash --program -
756
757#: Select something that looks like a hash and insert it into the
758#: terminal. Useful with git, which uses sha1 hashes to identify
759#: commits
760
761
762#: The hints kitten has many more modes of operation that you can map
763#: to different shortcuts. For a full description see kittens/hints.
764#: }}}
765
766#: Miscellaneous {{{
767
768
769# map kitty_mod+f11 toggle_fullscreen
770# map kitty_mod+u input_unicode_character
771# map kitty_mod+f2 edit_config_file
772# map kitty_mod+escape kitty_shell window
773
774#: Open the kitty shell in a new window/tab/overlay/os_window to
775#: control kitty using commands.
776
777# map kitty_mod+a>m set_background_opacity +0.1
778# map kitty_mod+a>l set_background_opacity -0.1
779# map kitty_mod+a>1 set_background_opacity 1
780# map kitty_mod+a>d set_background_opacity default
781
782#: You can tell kitty to send arbitrary (UTF-8) encoded text to the
783#: client program when pressing specified shortcut keys. For example::
784
785#: map ctrl+alt+a send_text all Special text
786
787#: This will send "Special text" when you press the ctrl+alt+a key
788#: combination. The text to be sent is a python string literal so you
789#: can use escapes like \x1b to send control codes or \u21fb to send
790#: unicode characters (or you can just input the unicode characters
791#: directly as UTF-8 text). The first argument to send_text is the
792#: keyboard modes in which to activate the shortcut. The possible
793#: values are normal or application or kitty or a comma separated
794#: combination of them. The special keyword all means all modes. The
795#: modes normal and application refer to the DECCKM cursor key mode
796#: for terminals, and kitty refers to the special kitty extended
797#: keyboard protocol.
798
799#: Another example, that outputs a word and then moves the cursor to
800#: the start of the line (same as pressing the Home key)::
801
802#: map ctrl+alt+a send_text normal Word\x1b[H
803#: map ctrl+alt+a send_text application Word\x1bOH
804
805#: }}}
806
807map ctrl+space send_text all \x10
808
809# }}}