You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

909 lines
29KB

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