glossary.rst 8.8 KB

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