glossary.rst 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259
  1. :orphan:
  2. Glossary
  3. =========
  4. .. glossary::
  5. os_window
  6. kitty has two kinds of windows. Operating System windows, referred to as :term:`OS
  7. Window <os_window>`, and *kitty windows*. An OS Window consists of one or more kitty
  8. :term:`tabs <tab>`. Each tab in turn consists of one or more *kitty
  9. windows* organized in a :term:`layout`.
  10. tab
  11. A *tab* refers to a group of :term:`kitty windows <window>`, organized in
  12. a :term:`layout`. Every :term:`OS Window <os_window>` contains one or more tabs.
  13. layout
  14. A *layout* is a system of organizing :term:`kitty windows <window>` in
  15. groups inside a tab. The layout automatically maintains the size and
  16. position of the windows, think of a layout as a tiling window manager for
  17. the terminal. See :doc:`layouts` for details.
  18. window
  19. kitty has two kinds of windows. Operating System windows, referred to as :term:`OS
  20. Window <os_window>`, and *kitty windows*. An OS Window consists of one or more kitty
  21. :term:`tabs <tab>`. Each tab in turn consists of one or more *kitty
  22. windows* organized in a :term:`layout`.
  23. overlay
  24. An *overlay window* is a :term:`kitty window <window>` that is placed on
  25. top of an existing kitty window, entirely covering it. Overlays are used
  26. throughout kitty, for example, to display the :ref:`the scrollback buffer <scrollback>`,
  27. to display :doc:`hints </kittens/hints>`, for :doc:`unicode input
  28. </kittens/unicode_input>` etc. Normal overlays are meant for short
  29. duration popups and so are not considered the :italic:`active window`
  30. when determining the current working directory or getting input text for
  31. kittens, launch commands, etc. To create an overlay considered as a
  32. :italic:`main window` use the :code:`overlay-main` argument to
  33. :doc:`launch`.
  34. hyperlinks
  35. Terminals can have hyperlinks, just like the internet. In kitty you can
  36. :doc:`control exactly what happens <open_actions>` when clicking on a
  37. hyperlink, based on the type of link and its URL. See also `Hyperlinks in terminal
  38. emulators <https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda>`__.
  39. kittens
  40. Small, independent statically compiled command line programs that are designed to run
  41. inside kitty windows and provide it with lots of powerful and flexible
  42. features such as viewing images, connecting conveniently to remote
  43. computers, transferring files, inputting unicode characters, etc.
  44. They can also be written by users in Python and used to customize and
  45. extend kitty functionality, see :doc:`kittens_intro` for details.
  46. easing function
  47. A function that controls how an animation progresses over time. kitty
  48. support the `CSS syntax for easing functions
  49. <https://developer.mozilla.org/en-US/docs/Web/CSS/easing-function>`__.
  50. Commonly used easing functions are :code:`linear` for a constant rate
  51. animation and :code:`ease-in-out` for an animation that starts slow,
  52. becomes fast in the middle and ends slowly. These are used to control
  53. various animations in kitty, such as :opt:`cursor_blink_interval` and
  54. :opt:`visual_bell_duration`.
  55. .. _env_vars:
  56. Environment variables
  57. ------------------------
  58. Variables that influence kitty behavior
  59. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  60. .. envvar:: KITTY_CONFIG_DIRECTORY
  61. Controls where kitty looks for :file:`kitty.conf` and other configuration
  62. files. Defaults to :file:`~/.config/kitty`. For full details of the config
  63. directory lookup mechanism see, :option:`kitty --config`.
  64. .. envvar:: KITTY_CACHE_DIRECTORY
  65. Controls where kitty stores cache files. Defaults to :file:`~/.cache/kitty`
  66. or :file:`~/Library/Caches/kitty` on macOS.
  67. .. envvar:: KITTY_RUNTIME_DIRECTORY
  68. Controls where kitty stores runtime files like sockets. Defaults to
  69. the :code:`XDG_RUNTIME_DIR` environment variable if that is defined
  70. otherwise the run directory inside the kitty cache directory is used.
  71. .. envvar:: VISUAL
  72. The terminal based text editor (such as :program:`vi` or :program:`nano`)
  73. kitty uses, when, for instance, opening :file:`kitty.conf` in response to
  74. :sc:`edit_config_file`.
  75. .. envvar:: EDITOR
  76. Same as :envvar:`VISUAL`. Used if :envvar:`VISUAL` is not set.
  77. .. envvar:: SHELL
  78. Specifies the default shell kitty will run when :opt:`shell` is set to
  79. :code:`.`.
  80. .. envvar:: GLFW_IM_MODULE
  81. Set this to ``ibus`` to enable support for IME under X11.
  82. .. envvar:: KITTY_WAYLAND_DETECT_MODIFIERS
  83. When set to a non-empty value, kitty attempts to autodiscover XKB modifiers
  84. under Wayland. This is useful if using non-standard modifiers like hyper. It
  85. is possible for the autodiscovery to fail; the default Wayland XKB mappings
  86. are used in this case. See :pull:`3943` for details.
  87. .. envvar:: SSH_ASKPASS
  88. Specify the program for SSH to ask for passwords. When this is set, :doc:`ssh
  89. kitten </kittens/ssh>` will use this environment variable by default. See
  90. :opt:`askpass <kitten-ssh.askpass>` for details.
  91. .. envvar:: KITTY_CLONE_SOURCE_CODE
  92. Set this to some shell code that will be executed in the cloned window with
  93. :code:`eval` when :ref:`clone-in-kitty <clone_shell>` is used.
  94. .. envvar:: KITTY_CLONE_SOURCE_PATH
  95. Set this to the path of a file that will be sourced in the cloned window when
  96. :ref:`clone-in-kitty <clone_shell>` is used.
  97. .. envvar:: KITTY_DEVELOP_FROM
  98. Set this to the directory path of the kitty source code and its Python code
  99. will be loaded from there. Only works with official binary builds.
  100. .. envvar:: KITTY_RC_PASSWORD
  101. Set this to a pass phrase to use the ``kitten @`` remote control command with
  102. :opt:`remote_control_password`.
  103. Variables that kitty sets when running child programs
  104. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  105. .. envvar:: LANG
  106. This is only set on macOS. If the country and language from the macOS user
  107. settings form an invalid locale, it will be set to :code:`en_US.UTF-8`.
  108. .. envvar:: PATH
  109. kitty prepends itself to the PATH of its own environment to ensure the
  110. functions calling :program:`kitty` will work properly.
  111. .. envvar:: KITTY_WINDOW_ID
  112. An integer that is the id for the kitty :term:`window` the program is running in.
  113. Can be used with the :doc:`kitty remote control facility <remote-control>`.
  114. .. envvar:: KITTY_PID
  115. An integer that is the process id for the kitty process in which the program
  116. is running. Allows programs to tell kitty to reload its config by sending it
  117. the SIGUSR1 signal.
  118. .. envvar:: KITTY_PUBLIC_KEY
  119. A public key that programs can use to communicate securely with kitty using
  120. the remote control protocol. The format is: :code:`protocol:key data`.
  121. .. envvar:: WINDOWID
  122. The id for the :term:`OS Window <os_window>` the program is running in. Only available
  123. on platforms that have ids for their windows, such as X11 and macOS.
  124. .. envvar:: TERM
  125. The name of the terminal, defaults to ``xterm-kitty``. See :opt:`term`.
  126. .. envvar:: TERMINFO
  127. Path to a directory containing the kitty terminfo database. Or the terminfo
  128. database itself encoded in base64. See :opt:`terminfo_type`.
  129. .. envvar:: KITTY_INSTALLATION_DIR
  130. Path to the kitty installation directory.
  131. .. envvar:: COLORTERM
  132. Set to the value ``truecolor`` to indicate that kitty supports 16 million
  133. colors.
  134. .. envvar:: KITTY_LISTEN_ON
  135. Set when the :doc:`remote control <remote-control>` facility is enabled and
  136. the a socket is used for control via :option:`kitty --listen-on` or :opt:`listen_on`.
  137. Contains the path to the socket. Avoid the need to use :option:`kitten @ --to` when
  138. issuing remote control commands. Can also be a file descriptor of the form
  139. fd:num instead of a socket address, in which case, remote control
  140. communication should proceed over the specified file descriptor.
  141. .. envvar:: KITTY_PIPE_DATA
  142. Set to data describing the layout of the screen when running child
  143. programs using :option:`launch --stdin-source` with the contents of the
  144. screen/scrollback piped to them.
  145. .. envvar:: KITTY_CHILD_CMDLINE
  146. Set to the command line of the child process running in the kitty
  147. window when calling the notification callback program on terminal bell, see
  148. :opt:`command_on_bell`.
  149. .. envvar:: KITTY_COMMON_OPTS
  150. Set with the values of some common kitty options when running
  151. kittens, so kittens can use them without needing to load :file:`kitty.conf`.
  152. .. envvar:: KITTY_SHELL_INTEGRATION
  153. Set when enabling :ref:`shell_integration`. It is automatically removed by
  154. the shell integration scripts.
  155. .. envvar:: ZDOTDIR
  156. Set when enabling :ref:`shell_integration` with :program:`zsh`, allowing
  157. :program:`zsh` to automatically load the integration script.
  158. .. envvar:: XDG_DATA_DIRS
  159. Set when enabling :ref:`shell_integration` with :program:`fish`, allowing
  160. :program:`fish` to automatically load the integration script.
  161. .. envvar:: ENV
  162. Set when enabling :ref:`shell_integration` with :program:`bash`, allowing
  163. :program:`bash` to automatically load the integration script.
  164. .. envvar:: KITTY_OS
  165. Set when using the include directive in kitty.conf. Can take values:
  166. ``linux``, ``macos``, ``bsd``.
  167. .. envvar:: KITTY_HOLD
  168. Set to ``1`` when kitty is running a shell because of the ``--hold`` flag. Can
  169. be used to specialize shell behavior in the shell rc files as desired.
  170. .. envvar:: KITTY_SIMD
  171. Set it to ``128`` to use 128 bit vector registers, ``256`` to use 256 bit
  172. vector registers or any other value to prevent kitty from using SIMD CPU
  173. vector instructions. Warning, this overrides CPU capability detection so
  174. will cause kitty to crash with SIGILL if your CPU does not support the
  175. necessary SIMD extensions.