kitten-@-set-window-logo(1)

okay bestie, welcome to the <pink>kitten</pink> manual page for kitten-@-set-window-logo β€” yes that's a whole mouthful, but it's giving "small command, big main character energy" and honestly? obsessed. πŸŽ€


🌸 NAME

kitten-@-set-window-logo β€” set the window logo, periodt ✨


πŸ¦‹ USAGE

kitten @ set-window-logo  PATH_TO_PNG_IMAGE

πŸ’– DESCRIPTION

So like, this sets the logo image for the windows you specify πŸ–ΌοΈ. You must give it the path to an image that's gonna be the logo β€” no path, no slay, that's the rule ngl.

And okay special case: if you hand it the special value none, then any logo that's already there gets removed. poof. gone. 🫧

Supported image formats β€” write these down bestie, there's a whole list:

  • PNG
  • JPEG
  • WEBP
  • GIF
  • BMP
  • TIFF

✨ OPTIONS ✨

  • --match, -m β€” the window to match, aka "which window are we doing this to". Match specifications look like field:query. The field can be one of: id, title, pid, cwd, cmdline, num, env, var, state, neighbor, session and recent. And query is the expression you're matching β€” expressions can be a number or a regular expression, and you can smoosh them together with Boolean operators πŸ’…

The special value all matches all windows. very "everybody gets a logo" of it.

For the numeric fields β€” id, pid, num and recent β€” the expression gets read as a number, not a regular expression, iykyk. Negative values for id match from the highest id number going down; in particular, -1 is the most recently created window πŸ•

The field num is the window position in the current tab, starting from zero and counting clockwise (same order the windows show up in when you run the kitten @ ls command, so like, no surprises).

The window id of the current window is available as the KITTY_WINDOW_ID environment variable πŸ”‘

The field recent is about recently active windows in the currently active tab β€” 0 is the currently active window, 1 is the previously active window, and so on and so forth, you get the vibe.

The field neighbor is a neighbor of the active window in whatever direction you specify, and the direction can be: left, right, top or bottom 🧭

The field session matches windows that were created in the specified session. Use the expression ^$ to match windows that were not created in a session, . to match the currently active session, and ~ to match either the currently active session or the last active session when no session is active.

When you're using the env field to match on environment variables, you can specify just the environment variable name, or a name and value, like for example env:MY_ENV_VAR=2 πŸ“

Similarly, the var field matches on user variables set on the window. You can specify the name, or a name and value, same as with the env field.

The field state matches on the state of the window. The supported states are: active, focused, needs_attention, parent_active, parent_focused, focused_os_window, self, overlay_parent. Okay so: active windows are the windows that are active in their parent tab. There's only one focused window and it's the window keyboard events get delivered to β€” if no window is focused, the last focused window is the one that matches. The value focused_os_window matches all windows in the currently focused OS window. The value self matches the window in which the remote control command is run. The value overlay_parent matches the window that's under the self window, when the self window is an overlay.

ngl, you can use the kitten @ ls command to get a list of windows β€” super helpful when you're not sure what you're matching πŸ’€
  • --self [=no] β€” act on the window this command is run in, rather than the active window πŸͺž
  • --position β€” the position for the window logo. See window_logo_position.
  • --alpha [=-1] β€” how much the window logo should be faded into the background. See window_logo_position.
  • --no-response [=no] β€” don't wait for a response from kitty πŸ™ˆ. That means even if setting the image failed, the command will still exit with a success code. so like, heads up, you won't know it flopped.
  • --help, -h [=no] β€” show help for this command 🫢

πŸ‘‘ GLOBAL OPTIONS

  • --to β€” an address for the kitty instance to control. This corresponds to the address you gave the kitty instance via the --listen-on option or the listen_on setting in kitty.conf. If you don't specify it, the environment variable KITTY_LISTEN_ON gets checked. If that's not found either, messages are sent to the controlling terminal for this process β€” meaning they'll only work if this process is run inside a kitty window πŸͺŸ
  • --password β€” a password to use when contacting kitty. This will cause kitty to ask the user for permission to perform the specified action, unless the password has been accepted before or is pre-configured in kitty.conf. To use a blank password, specify --use-password as always πŸ”
  • --password-file [=rc-pass] β€” a file to read the password from. Trailing whitespace is ignored. Relative paths are resolved from the kitty configuration directory. Use - to read from STDIN. Use fd:num to read from the file descriptor num. This is used if no --password is supplied. It defaults to checking for the rc-pass file in the kitty configuration directory πŸ“„
  • --password-env [=KITTY_RC_PASSWORD] β€” the name of an environment variable to read the password from. Used if no --password-file is supplied. Defaults to checking the environment variable KITTY_RC_PASSWORD 🌈
  • --use-password [=if-available] β€” if no password is available, kitty will usually just send the remote control command without a password. This option can be used to force it to always or never use the supplied password. If it's set to always and no password is provided, the blank password is used 🧚

Choices: if-available, always, never


okay that's the whole thing bestie, you ate that πŸ’œ

this iconic little page is from kitten version 0.49.2, dated Oct 01, 2026 β€” go forth and logo your windows βœ¨πŸŽ€

πŸ“¦ where this page comes from