glossary.rst 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  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. easing function
  45. A function that controls how an animation progresses over time. kitty
  46. support the `CSS syntax for easing functions
  47. <https://developer.mozilla.org/en-US/docs/Web/CSS/easing-function>`__.
  48. Commonly used easing functions are :code:`linear` for a constant rate
  49. animation and :code:`ease-in-out` for an animation that starts slow,
  50. becomes fast in the middle and ends slowly. These are used to control
  51. various animations in kitty, such as :opt:`cursor_blink_interval` and
  52. :opt:`visual_bell_duration`.
  53. .. _env_vars:
  54. Environment variables
  55. ------------------------
  56. Variables that influence kitty behavior
  57. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  58. .. envvar:: KITTY_CONFIG_DIRECTORY
  59. Controls where kitty looks for :file:`kitty.conf` and other configuration
  60. files. Defaults to :file:`~/.config/kitty`. For full details of the config
  61. directory lookup mechanism see, :option:`kitty --config`.
  62. .. envvar:: KITTY_CACHE_DIRECTORY
  63. Controls where kitty stores cache files. Defaults to :file:`~/.cache/kitty`
  64. or :file:`~/Library/Caches/kitty` on macOS.
  65. .. envvar:: KITTY_RUNTIME_DIRECTORY
  66. Controls where kitty stores runtime files like sockets. Defaults to
  67. the :code:`XDG_RUNTIME_DIR` environment variable if that is defined
  68. otherwise the run directory inside the kitty cache directory is used.
  69. .. envvar:: VISUAL
  70. The terminal based text editor (such as :program:`vi` or :program:`nano`)
  71. kitty uses, when, for instance, opening :file:`kitty.conf` in response to
  72. :sc:`edit_config_file`.
  73. .. envvar:: EDITOR
  74. Same as :envvar:`VISUAL`. Used if :envvar:`VISUAL` is not set.
  75. .. envvar:: GLFW_IM_MODULE
  76. Set this to ``ibus`` to enable support for IME under X11.
  77. .. envvar:: KITTY_WAYLAND_DETECT_MODIFIERS
  78. When set to a non-empty value, kitty attempts to autodiscover XKB modifiers
  79. under Wayland. This is useful if using non-standard modifiers like hyper. It
  80. is possible for the autodiscovery to fail; the default Wayland XKB mappings
  81. are used in this case. See :pull:`3943` for details.
  82. .. envvar:: SSH_ASKPASS
  83. Specify the program for SSH to ask for passwords. When this is set, :doc:`ssh
  84. kitten </kittens/ssh>` will use this environment variable by default. See
  85. :opt:`askpass <kitten-ssh.askpass>` for details.
  86. .. envvar:: KITTY_CLONE_SOURCE_CODE
  87. Set this to some shell code that will be executed in the cloned window with
  88. :code:`eval` when :ref:`clone-in-kitty <clone_shell>` is used.
  89. .. envvar:: KITTY_CLONE_SOURCE_PATH
  90. Set this to the path of a file that will be sourced in the cloned window when
  91. :ref:`clone-in-kitty <clone_shell>` is used.
  92. .. envvar:: KITTY_DEVELOP_FROM
  93. Set this to the directory path of the kitty source code and its Python code
  94. will be loaded from there. Only works with official binary builds.
  95. .. envvar:: KITTY_RC_PASSWORD
  96. Set this to a pass phrase to use the ``kitten @`` remote control command with
  97. :opt:`remote_control_password`.
  98. Variables that kitty sets when running child programs
  99. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  100. .. envvar:: LANG
  101. This is only set on macOS. If the country and language from the macOS user
  102. settings form an invalid locale, it will be set to :code:`en_US.UTF-8`.
  103. .. envvar:: PATH
  104. kitty prepends itself to the PATH of its own environment to ensure the
  105. functions calling :program:`kitty` will work properly.
  106. .. envvar:: KITTY_WINDOW_ID
  107. An integer that is the id for the kitty :term:`window` the program is running in.
  108. Can be used with the :doc:`kitty remote control facility <remote-control>`.
  109. .. envvar:: KITTY_PID
  110. An integer that is the process id for the kitty process in which the program
  111. is running. Allows programs to tell kitty to reload its config by sending it
  112. the SIGUSR1 signal.
  113. .. envvar:: KITTY_PUBLIC_KEY
  114. A public key that programs can use to communicate securely with kitty using
  115. the remote control protocol. The format is: :code:`protocol:key data`.
  116. .. envvar:: WINDOWID
  117. The id for the :term:`OS Window <os_window>` the program is running in. Only available
  118. on platforms that have ids for their windows, such as X11 and macOS.
  119. .. envvar:: TERM
  120. The name of the terminal, defaults to ``xterm-kitty``. See :opt:`term`.
  121. .. envvar:: TERMINFO
  122. Path to a directory containing the kitty terminfo database. Or the terminfo
  123. database itself encoded in base64. See :opt:`terminfo_type`.
  124. .. envvar:: KITTY_INSTALLATION_DIR
  125. Path to the kitty installation directory.
  126. .. envvar:: COLORTERM
  127. Set to the value ``truecolor`` to indicate that kitty supports 16 million
  128. colors.
  129. .. envvar:: KITTY_LISTEN_ON
  130. Set when the :doc:`remote control <remote-control>` facility is enabled and
  131. the a socket is used for control via :option:`kitty --listen-on` or :opt:`listen_on`.
  132. Contains the path to the socket. Avoid the need to use :option:`kitten @ --to` when
  133. issuing remote control commands. Can also be a file descriptor of the form
  134. fd:num instead of a socket address, in which case, remote control
  135. communication should proceed over the specified file descriptor.
  136. .. envvar:: KITTY_PIPE_DATA
  137. Set to data describing the layout of the screen when running child
  138. programs using :option:`launch --stdin-source` with the contents of the
  139. screen/scrollback piped to them.
  140. .. envvar:: KITTY_CHILD_CMDLINE
  141. Set to the command line of the child process running in the kitty
  142. window when calling the notification callback program on terminal bell, see
  143. :opt:`command_on_bell`.
  144. .. envvar:: KITTY_COMMON_OPTS
  145. Set with the values of some common kitty options when running
  146. kittens, so kittens can use them without needing to load :file:`kitty.conf`.
  147. .. envvar:: KITTY_SHELL_INTEGRATION
  148. Set when enabling :ref:`shell_integration`. It is automatically removed by
  149. the shell integration scripts.
  150. .. envvar:: ZDOTDIR
  151. Set when enabling :ref:`shell_integration` with :program:`zsh`, allowing
  152. :program:`zsh` to automatically load the integration script.
  153. .. envvar:: XDG_DATA_DIRS
  154. Set when enabling :ref:`shell_integration` with :program:`fish`, allowing
  155. :program:`fish` to automatically load the integration script.
  156. .. envvar:: ENV
  157. Set when enabling :ref:`shell_integration` with :program:`bash`, allowing
  158. :program:`bash` to automatically load the integration script.
  159. .. envvar:: KITTY_OS
  160. Set when using the include directive in kitty.conf. Can take values:
  161. ``linux``, ``macos``, ``bsd``.
  162. .. envvar:: KITTY_HOLD
  163. Set to ``1`` when kitty is running a shell because of the ``--hold`` flag. Can
  164. be used to specialize shell behavior in the shell rc files as desired.
  165. .. envvar:: KITTY_SIMD
  166. Set it to ``128`` to use 128 bit vector registers, ``256`` to use 256 bit
  167. vector registers or any other value to prevent kitty from using SIMD CPU
  168. vector instructions. Warning, this overrides CPU capability detection so
  169. will cause kitty to crash with SIGILL if your CPU does not support the
  170. necessary SIMD extensions.