id = "kitty" name = "kitty" homepage = "https://sw.kovidgoyal.net/kitty/" description = "kitty - the fast, feature-rich, cross-platform, GPU based terminal." icon = "https://sw.kovidgoyal.net/kitty/_static/kitty.svg" executables = ["kitty", "kitten"] platforms = ["macos", "linux"] [dotfiles] # https://sw.kovidgoyal.net/kitty/conf/ — "kitty looks for a config file in the # OS config directories (usually ~/.config/kitty/kitty.conf) but you can pass a # specific path via the kitty --config option or use the KITTY_CONFIG_DIRECTORY # environment variable". kitty/launcher/utils.h, get_config_dir(): after # KITTY_CONFIG_DIRECTORY it tries $XDG_CONFIG_HOME, then ~/.config, and on # Apple builds ~/Library/Preferences as well, taking the first whose # /kitty/kitty.conf exists. That first search is [configHome] — the XDG # variable when it is set and ~/.config otherwise, on macOS as well as Linux — # and the Apple-only fallback is [preferences]. The directory also holds the # other files kitty reads from the same place — ssh.conf, open-actions.conf, # diff.conf and session files — so it is listed whole. paths = ["[configHome]/kitty/", "[preferences]/kitty/"] # kitty keeps its caches under KITTY_CACHE_DIRECTORY, ~/Library/Caches/kitty on # macOS and $XDG_CACHE_HOME/kitty elsewhere, so the config directory has nothing # to carve out. # Nothing kitty writes here is a credential. ssh.conf names hosts and kittens, # not keys. secret = [] # No machine_lines: a kitty.conf is fonts, colours, keymaps and layouts, which # is what the user wants carried. `shell` and `editor` can name an absolute # path, but they are just as often a bare command, so a rule on them would # strip a preference as often as it caught a machine detail. [commands] format = 1 label = "Launch kitty" description = "Open a kitty window with title, directory, config and start options. Remote control and kittens are left out." quality = "ai-draft" base = "fig:kitty" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/kitty.ts" license = "MIT" [[commands.field]] id = "title" label = "Window title" type = "string" option = ["-T", "--title"] sources = ["fig"] [[commands.field]] id = "directory" label = "Working directory" type = "path" option = ["-d", "--directory", "--working-directory"] path = { kind = "directory", role = "input" } sources = ["fig"] [[commands.field]] id = "config" label = "Config file" type = "path" option = ["-C", "--config"] path = { kind = "file", role = "input" } sources = ["fig"] [[commands.field]] id = "session" label = "Session file" type = "path" option = ["--session"] path = { kind = "file", role = "input" } sources = ["fig"] [[commands.field]] id = "start_as" label = "Start as" type = "string" option = ["--start-as"] suggestions = [{ value = "normal", label = "Normal" }, { value = "fullscreen", label = "Fullscreen" }, { value = "maximized", label = "Maximized" }, { value = "minimized", label = "Minimized" }] sources = ["fig"] [[commands.field]] id = "hold" label = "Stay open after exit" type = "boolean" option = ["--hold"] sources = ["fig"] [[commands.field]] id = "single_instance" label = "Single instance" type = "boolean" option = ["-1", "--single-instance"] sources = ["fig"] [[commands.field]] id = "command" label = "Program and arguments" type = "string" position = 0 multiple = true sources = ["fig"] [[commands.task]] id = "run" label = "Run a program" set = { hold = [true] } fields = ["command", "directory", "title", "hold"] required = ["command"] [[commands.group]] id = "basic" label = "Basic" fields = ["title", "directory", "command", "hold"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["config", "session", "start_as", "single_instance"]