kitten-@-disable-ligatures(1)

πŸ’… kitten-@-disable-ligatures(1) β€” straight from the kitten Manual, bestie ✨

Okay so bestie, listen up: this is the manual page for kitten-@-disable-ligatures, and it's literally all about controlling ligature rendering. No cap. If you've ever been like "why are my fi and fl doing that cute little merge thing" β€” this is the page for you. Periodt. πŸŽ€


🌸 Name

kitten-@-disable-ligatures β€” control ligature rendering, bestie. That's it. That's the vibe. πŸ’–


✨ Usage

kitten @ disable-ligatures  STRATEGY

Yep, that's the whole thing. You pass a STRATEGY and it does the thing. Iconic. πŸ‘‘


πŸ¦‹ Description

So what this does is it controls ligature rendering for the specified windows/tabs β€” and if you don't specify any, it defaults to the active window, which is honestly so convenient. πŸ’…

The STRATEGY can be one of: never, always, cursor. That's it. Those are your three choices. Choose wisely. ✨


πŸ’œ Options

  • --all, -a [=no] β€” By default, ligatures are only affected in the active window. This option will cause ligatures to be changed in all windows. So if you want the whole vibe to change everywhere, this is your girl. 🌈
  • --match, -m β€” The window to match, bestie. Match specifications are of the form: field:query. Where field can be one of: id, title, pid, cwd, cmdline, num, env, var, state, neighbor, session and recent. And query is the expression to match. Expressions can be either a number or a regular expression, and can be combined using Boolean operators. 🧚

The special value all matches all windows. Lowkey powerful.

For numeric fields: id, pid, num and recent, the expression is interpreted as a number, not a regular expression. Negative values for id match from the highest id number down β€” in particular, -1 is the most recently created window. So -1 is literally the newest window. Slay. πŸ’€

The field num refers to the window position in the current tab, starting from zero and counting clockwise (this is the same as the order in which the windows are reported by the kitten @ ls command). Clockwise, bestie. Don't ask, just vibe. πŸŒ€

The window id of the current window is available as the KITTY_WINDOW_ID environment variable. Use it. Love it. 🫢

The field recent refers to recently active windows in the currently active tab, with zero being the currently active window, one being the previously active window and so on. So 0 is now, 1 was just now, etc. Main character energy. ⭐

The field neighbor refers to a neighbor of the active window in the specified direction, which can be: left, right, top or bottom. Like, who's next to you? πŸ‘€

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 and . to match the currently active session and ~ to match either the currently active session or the last active session when no session is active. That's a lot of symbols but you got this. πŸ’ͺ

When using the env field to match on environment variables, you can specify only the environment variable name or a name and value, for example, env:MY_ENV_VAR=2. Easy peasy. πŸ“

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

The field state matches on the state of the window. Supported states are: active, focused, needs_attention, parent_active, parent_focused, focused_os_window, self, overlay_parent. Active windows are the windows that are active in their parent tab. There is only one focused window and it is the window to which keyboard events are delivered. If no window is focused, the last focused window is matched. 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 is under the self window, when the self window is an overlay. So many states, so little time. πŸ’€

Note that you can use the kitten @ ls command to get a list of windows. Helpful. Use it. 🫢

  • --match-tab, -t β€” The tab to match, bestie. Match specifications are of the form: field:query. Where field can be one of: id, index, title, window_id, window_title, pid, cwd, cmdline, env, var, state, session and recent. And query is the expression to match. Expressions can be either a number or a regular expression, and can be combined using Boolean operators. πŸŽ€

The special value all matches all tabs. Every single one. 🌈

For numeric fields: id, index, window_id, pid and recent, the expression is interpreted as a number, not a regular expression. Negative values for id/window_id match from the highest id number down β€” in particular, -1 is the most recently created tab/window. Again with the negative numbers, but it's fine. πŸ’…

When using title or id, first a matching tab is looked for, and if not found a matching window is looked for, and the tab for that window is used. So it tries the tab first, then the window. Resourceful. πŸ‘‘

You can also use window_id and window_title to match the tab that contains the window with the specified id or title. Sneaky but valid. 🧚

The index number is used to match the nth tab in the currently active OS window. The recent number matches recently active tabs in the currently active OS window, with zero being the currently active tab, one the previously active tab and so on. Same pattern as before, just for tabs. ⭐

The field session matches tabs that were created in the specified session. Use the expression ^$ to match windows that were not created in a session and . to match the currently active session and ~ to match either the currently active session or the last active session when no session is active. Yep, same symbols. πŸ’œ

When using the env field to match on environment variables, you can specify only the environment variable name or a name and value, for example, env:MY_ENV_VAR=2. Tabs containing any window with the specified environment variables are matched. Similarly, var matches tabs containing any window with the specified user variable. Got it? Got it. πŸ“

The field state matches on the state of the tab. Supported states are: active, focused, needs_attention, parent_active, parent_focused and focused_os_window. Active tabs are the tabs that are active in their parent OS window. There is only one focused tab and it is the tab to which keyboard events are delivered. If no tab is focused, the last focused tab is matched. The value focused_os_window matches all tabs in the currently focused OS window. So many states again, but you're a pro. 😭

Note that you can use the kitten @ ls command to get a list of tabs. Same tip as before. Use it. 🫢

  • --help, -h [=no] β€” Show help for this command. The classic. The icon. The one we all press when we're lost. πŸ™ˆ

🌟 Global options

  • --to β€” An address for the kitty instance to control. Corresponds to the address given to the kitty instance via the --listen-on option or the listen_on setting in kitty.conf. If not specified, the environment variable KITTY_LISTEN_ON is checked. If that is also not found, messages are sent to the controlling terminal for this process, i.e. they will only work if this process is run within a kitty window. So like, check your env vars, bestie. πŸ’…
  • --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. Security! Boundaries! We love to see it. πŸ”’
  • --password-file [=rc-pass] β€” A file from which to read the password. 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. Used if no --password is supplied. Defaults to checking for the rc-pass file in the kitty configuration directory. So many details, but every single one matters. πŸ“
  • --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. Env vars again. We love a consistent theme. 🌱
  • --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 set to always and no password is provided, the blank password is used. Choices: if-available, always, never. Choose your fighter. πŸ₯Š

Fr fr, bestie: if you're ever confused, just remember the STRATEGY is never, always, or cursor, and you can match windows and tabs with --match and --match-tab. You got this. No cap. πŸ’–

And that's the whole manual, bestie! This gem is from kitten Manual, version 0.49.2, dated Oct 01, 2026. Go forth and disable those ligatures. Slay. πŸ’…βœ¨πŸŽ€

πŸ“¦ where this page comes from