From 071b8f8921cb2bbb1fcabbf3d271e77af0b12a7d Mon Sep 17 00:00:00 2001 From: Ian Chesal Date: Tue, 28 May 2024 17:40:30 -0400 Subject: [PATCH] feat(kitty): add plugin for the kitty terminal (#10994) * A plugin for the Kitty terminal Provides a handful of useful aliases for anyone working in a Kitty terminal. In particular, the kssh command is handy for ensuring that terminfo is set correctly on remote hosts when you ssh to them. * Guard kitty configuration We should only load these aliases into a terminal that's identifying itself as an xterm-kitty terminal. They're not useful in any other situation. --- plugins/kitty/README.md | 23 +++++++++++++++++++++++ plugins/kitty/kitty.plugin.zsh | 16 ++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 plugins/kitty/README.md create mode 100644 plugins/kitty/kitty.plugin.zsh diff --git a/plugins/kitty/README.md b/plugins/kitty/README.md new file mode 100644 index 000000000..ec9e375de --- /dev/null +++ b/plugins/kitty/README.md @@ -0,0 +1,23 @@ +# Kitty plugin + +This plugin adds a few aliases and functions that are useful for users of the [Kitty](https://sw.kovidgoyal.net/kitty/) terminal. + +To use it, add _kitty_ to the plugins array of your zshrc file: +``` +plugins=(... kitty) +``` + +## Plugin commands + +* `kssh` + Runs a kitten ssh session that ensures your terminfo settings are copied + correctly to the remote hose. +* `kssh-slow` + A slower form of `kssh` that should always work. Use this if `kssh` fails + to set terminfo correctly for you on the remote host. +* `kitty-theme` + Browse and change the theme of your Kitty terminal. + +## Contributors + +- [Ian Chesal](https://github.com/ianchesal) diff --git a/plugins/kitty/kitty.plugin.zsh b/plugins/kitty/kitty.plugin.zsh new file mode 100644 index 000000000..1094236a7 --- /dev/null +++ b/plugins/kitty/kitty.plugin.zsh @@ -0,0 +1,16 @@ +##################################################### +# Kitty plugin for oh-my-zsh # +##################################################### + +if [[ "$TERM" == 'xterm-kitty' ]]; then + ## kssh + # Use this when your terminfo isn't recognized on remote hosts. + # See: https://sw.kovidgoyal.net/kitty/faq/#i-get-errors-about-the-terminal-being-unknown-or-opening-the-terminal-failing-when-sshing-into-a-different-computer + alias kssh="kitty +kitten ssh" + compdef kssh='ssh' + # Use this if kssh fails + alias kssh-slow="infocmp -a xterm-kitty | ssh myserver tic -x -o \~/.terminfo /dev/stdin" + + # Change the colour theme + alias kitty-theme="kitty +kitten themes" +fi