diff --git a/.gitignore b/.gitignore index ad9fc483f..0a6a62d73 100644 --- a/.gitignore +++ b/.gitignore @@ -12,7 +12,7 @@ /compile_commands.json /link_commands.json /glad/out/ -/kitty/launcher/kitty* +/kitty/launcher/kitt* /tools/cmd/at/*_generated.go *_generated.go /*.dSYM/ diff --git a/bypy/init_env.py b/bypy/init_env.py index 4b965860a..15e9c5401 100644 --- a/bypy/init_env.py +++ b/bypy/init_env.py @@ -81,10 +81,10 @@ def run_tests(kitty_exe): def build_frozen_tools(kitty_exe): cmd = SETUP_CMD + ['--prefix', os.path.dirname(kitty_exe)] + ['build-frozen-tools'] if run(*cmd, cwd=build_frozen_launcher.writeable_src_dir) != 0: - print('Building of frozen kitty-tool failed', file=sys.stderr) + print('Building of frozen kitten failed', file=sys.stderr) os.chdir(KITTY_DIR) run_shell() - raise SystemExit('Building of kitty-tool launcher failed') + raise SystemExit('Building of kitten launcher failed') def sanitize_source_folder(path: str) -> None: diff --git a/bypy/macos/__main__.py b/bypy/macos/__main__.py index f476858ae..0fc7f1e42 100644 --- a/bypy/macos/__main__.py +++ b/bypy/macos/__main__.py @@ -106,9 +106,9 @@ def do_sign(app_dir): codesign(fw) items = set(os.listdir('.')) - fw codesign(expand_dirs(items)) - # Sign kitty-tool + # Sign kitten with current_dir('MacOS'): - codesign('kitty-tool') + codesign('kitten') # Now sign the main app codesign(app_dir) diff --git a/docs/changelog.rst b/docs/changelog.rst index 70fc0c62e..86cd7f574 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -38,9 +38,9 @@ Detailed list of changes 0.27.0 [future] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- A new statically compiled, standalone executable, ``kitty-tool`` (written in Go) - that can be used on all UNIX-like servers for remote control (``kitty-tool @``), - viewing images (``icat``), manipulating the clipboard, etc. +- A new statically compiled, standalone executable, ``kitten`` (written in Go) + that can be used on all UNIX-like servers for remote control (``kitten @``), + viewing images (``kitten icat``), manipulating the clipboard (``kitten clipboard``), etc. - :doc:`clipboard kitten `: Allow copying arbitrary data types to/from the clipboard, not just plain text @@ -59,7 +59,7 @@ Detailed list of changes - Pass key events mapped to scroll actions to the program running in the terminal when the terminal is in alternate screen mode (:iss:`5839`) -- Implement :ref:`edit-in-kitty ` using the new ``kitty-tool`` static executable (:iss:`5546`, :iss:`5630`) +- Implement :ref:`edit-in-kitty ` using the new ``kitten`` static executable (:iss:`5546`, :iss:`5630`) - Add an option :opt:`background_tint_gaps` to control background image tinting for window gaps (:iss:`5596`) diff --git a/docs/kittens/icat.rst b/docs/kittens/icat.rst index d21c63b08..8391c8742 100644 --- a/docs/kittens/icat.rst +++ b/docs/kittens/icat.rst @@ -7,7 +7,7 @@ The ``icat`` kitten can be used to display arbitrary images in the |kitty| terminal. Using it is as simple as:: kitty +kitten icat image.jpeg - kitty-tool icat image.jpeg + kitten icat image.jpeg It supports all image types supported by `ImageMagick `__. It even works over SSH. For details, see the diff --git a/docs/rc_protocol.rst b/docs/rc_protocol.rst index 1dc18c38f..b36945bdf 100644 --- a/docs/rc_protocol.rst +++ b/docs/rc_protocol.rst @@ -41,11 +41,11 @@ with the following command line:: echo -en '\eP@kitty-cmd{"cmd":"ls","version":[0,14,2]}\e\\' | socat - unix:/tmp/test | awk '{ print substr($0, 13, length($0) - 14) }' | jq -c '.data | fromjson' | jq . -There is also the statically compiled stand-alone executable ``kitty-tool`` +There is also the statically compiled stand-alone executable ``kitten`` that can be used for this, available from the `kitty releases `__ page:: - kitty-tool @ --help + kitten @ --help .. _rc_crypto: diff --git a/docs/remote-control.rst b/docs/remote-control.rst index 2792a0d2f..944049ae5 100644 --- a/docs/remote-control.rst +++ b/docs/remote-control.rst @@ -305,12 +305,12 @@ The remote control protocol If you wish to develop your own client to talk to |kitty|, you can use the :doc:`remote control protocol specification `. Note that there -is a statically compiled, standalone executable, ``kitty-tool`` available that +is a statically compiled, standalone executable, ``kitten`` available that can be used as a remote control client on any UNIX like computer. This can be downloaded and used directly from the `kitty releases `__ page:: - kitty-tool @ --help + kitten @ --help .. _search_syntax: diff --git a/gen-go-code.py b/gen-go-code.py index 576ed6f87..711afcb07 100755 --- a/gen-go-code.py +++ b/gen-go-code.py @@ -120,7 +120,7 @@ def generate_completions_for_kitty() -> None: # The kitty exe print('k := root.AddSubCommand(&cli.Command{' 'Name:"kitty", SubCommandIsOptional: true, ArgCompleter: cli.CompleteExecutableFirstArg, SubCommandMustBeFirst: true })') - print('kt := root.AddSubCommand(&cli.Command{Name:"kitty-tool", SubCommandMustBeFirst: true })') + print('kt := root.AddSubCommand(&cli.Command{Name:"kitten", SubCommandMustBeFirst: true })') print('tool.KittyToolEntryPoints(kt)') for opt in go_options_for_seq(parse_option_spec()[0]): print(opt.as_option('k')) diff --git a/kittens/clipboard/main.py b/kittens/clipboard/main.py index fd3365160..9b0c49a44 100644 --- a/kittens/clipboard/main.py +++ b/kittens/clipboard/main.py @@ -78,7 +78,7 @@ the clipboard. Some examples: usage = '[files to copy to/from]' if __name__ == '__main__': - raise SystemExit('This should be run as kitty-tool clipboard') + raise SystemExit('This should be run as kitten clipboard') elif __name__ == '__doc__': from kitty.cli import CompletionSpec cd = sys.cli_docs # type: ignore diff --git a/kittens/icat/main.py b/kittens/icat/main.py index bd35cef47..a886aa4f5 100644 --- a/kittens/icat/main.py +++ b/kittens/icat/main.py @@ -134,7 +134,7 @@ usage = 'image-file-or-url-or-directory ...' if __name__ == '__main__': - raise SystemExit('This should be run as kitty-tool icat') + raise SystemExit('This should be run as kitten icat') elif __name__ == '__doc__': import sys diff --git a/kittens/ssh/main.py b/kittens/ssh/main.py index 2911b1e66..7140379b4 100644 --- a/kittens/ssh/main.py +++ b/kittens/ssh/main.py @@ -182,7 +182,7 @@ def make_tarfile(ssh_opts: SSHOptions, base_env: Dict[str, str], compression: st arcname = 'home/' + rd + '/kitty' add_data_as_file(tf, arcname + '/version', str_version.encode('ascii')) tf.add(shell_integration_dir + '/ssh/kitty', arcname=arcname + '/bin/kitty', filter=normalize_tarinfo) - tf.add(shell_integration_dir + '/ssh/kitty-tool', arcname=arcname + '/bin/kitty-tool', filter=normalize_tarinfo) + tf.add(shell_integration_dir + '/ssh/kitten', arcname=arcname + '/bin/kitten', filter=normalize_tarinfo) tf.add(f'{terminfo_dir}/kitty.terminfo', arcname='home/.terminfo/kitty.terminfo', filter=normalize_tarinfo) tf.add(glob.glob(f'{terminfo_dir}/*/xterm-kitty')[0], arcname='home/.terminfo/x/xterm-kitty', filter=normalize_tarinfo) return buf.getvalue() diff --git a/kitty/constants.py b/kitty/constants.py index f8bbc69ac..e5326c018 100644 --- a/kitty/constants.py +++ b/kitty/constants.py @@ -79,8 +79,8 @@ def kitty_exe() -> str: return os.path.join(rpath, 'kitty') -def kitty_tool_exe() -> str: - return os.path.join(os.path.dirname(kitty_exe()), 'kitty-tool') +def kitten_exe() -> str: + return os.path.join(os.path.dirname(kitty_exe()), 'kitten') def _get_config_dir() -> str: diff --git a/kitty/entry_points.py b/kitty/entry_points.py index 3eff676c9..48855d132 100644 --- a/kitty/entry_points.py +++ b/kitty/entry_points.py @@ -26,9 +26,9 @@ def runpy(args: List[str]) -> None: def hold(args: List[str]) -> None: - from kitty.constants import kitty_tool_exe - args = ['kitty-tool', '__hold_till_enter__'] + args[1:] - os.execvp(kitty_tool_exe(), args) + from kitty.constants import kitten_exe + args = ['kitten', '__hold_till_enter__'] + args[1:] + os.execvp(kitten_exe(), args) def open_urls(args: List[str]) -> None: diff --git a/kitty/launch.py b/kitty/launch.py index 4a9365c30..f8affd492 100644 --- a/kitty/launch.py +++ b/kitty/launch.py @@ -12,7 +12,7 @@ from .child import Child from .cli import parse_args from .cli_stub import LaunchCLIOptions from .clipboard import set_clipboard_string, set_primary_selection -from .constants import kitty_tool_exe, shell_path +from .constants import kitten_exe, shell_path from .fast_data_types import add_timer, get_boss, get_options, get_os_window_title, patch_color_profiles from .options.utils import env as parse_env from .tabs import Tab, TabManager @@ -563,7 +563,7 @@ def launch( else: if opts.hold: cmd = kw['cmd'] or [shell_path] - kw['cmd'] = [kitty_tool_exe(), '__hold_till_enter__'] + cmd + kw['cmd'] = [kitten_exe(), '__hold_till_enter__'] + cmd if force_target_tab: tab = target_tab else: diff --git a/kitty/launcher/main.c b/kitty/launcher/main.c index 6963fa7d2..8d2956a83 100644 --- a/kitty/launcher/main.c +++ b/kitty/launcher/main.c @@ -324,24 +324,24 @@ is_wrapped_kitten(const char *arg) { } static void -exec_kitty_tool(int argc, char *argv[], char *exe_dir) { +exec_kitten(int argc, char *argv[], char *exe_dir) { char exe[PATH_MAX+1] = {0}; - snprintf(exe, PATH_MAX, "%s/kitty-tool", exe_dir); + snprintf(exe, PATH_MAX, "%s/kitten", exe_dir); char **newargv = malloc(sizeof(char*) * (argc + 1)); memcpy(newargv, argv, sizeof(char*) * argc); newargv[argc] = 0; - newargv[0] = "kitty-tool"; + newargv[0] = "kitten"; errno = 0; execv(exe, argv); - fprintf(stderr, "Failed to execute kitty-tool (%s) with error: %s\n", exe, strerror(errno)); + fprintf(stderr, "Failed to execute kitten (%s) with error: %s\n", exe, strerror(errno)); exit(1); } static void -delegate_to_kitty_tool_if_possible(int argc, char *argv[], char* exe_dir) { - if (argc > 1 && argv[1][0] == '@') exec_kitty_tool(argc, argv, exe_dir); - if (argc > 2 && strcmp(argv[1], "+kitten") == 0 && is_wrapped_kitten(argv[2])) exec_kitty_tool(argc - 1, argv + 1, exe_dir); - if (argc > 3 && strcmp(argv[1], "+") == 0 && strcmp(argv[2], "kitten") == 0 && is_wrapped_kitten(argv[3])) exec_kitty_tool(argc - 2, argv + 2, exe_dir); +delegate_to_kitten_if_possible(int argc, char *argv[], char* exe_dir) { + if (argc > 1 && argv[1][0] == '@') exec_kitten(argc, argv, exe_dir); + if (argc > 2 && strcmp(argv[1], "+kitten") == 0 && is_wrapped_kitten(argv[2])) exec_kitten(argc - 1, argv + 1, exe_dir); + if (argc > 3 && strcmp(argv[1], "+") == 0 && strcmp(argv[2], "kitten") == 0 && is_wrapped_kitten(argv[3])) exec_kitten(argc - 2, argv + 2, exe_dir); } int main(int argc, char *argv[], char* envp[]) { @@ -357,7 +357,7 @@ int main(int argc, char *argv[], char* envp[]) { if (!read_exe_path(exe, sizeof(exe))) return 1; strncpy(exe_dir_buf, exe, sizeof(exe_dir_buf)); char *exe_dir = dirname(exe_dir_buf); - delegate_to_kitty_tool_if_possible(argc, argv, exe_dir); + delegate_to_kitten_if_possible(argc, argv, exe_dir); int num, ret=0; char lib[PATH_MAX+1] = {0}; num = snprintf(lib, PATH_MAX, "%s/%s", exe_dir, KITTY_LIB_PATH); diff --git a/kitty/session.py b/kitty/session.py index 7cf934aac..f1f4a25a6 100644 --- a/kitty/session.py +++ b/kitty/session.py @@ -6,7 +6,7 @@ import sys from typing import TYPE_CHECKING, Generator, Iterator, List, Optional, Tuple, Union from .cli_stub import CLIOptions -from .constants import kitty_tool_exe +from .constants import kitten_exe from .layout.interface import all_layouts from .options.types import Options from .options.utils import resize_window, to_layout_names, window_size @@ -209,7 +209,7 @@ def create_sessions( if special_window is None: cmd = args.args if args and args.args else resolved_shell(opts) if args and args.hold: - cmd = [kitty_tool_exe(), '__hold_till_enter__'] + cmd + cmd = [kitten_exe(), '__hold_till_enter__'] + cmd from kitty.tabs import SpecialWindow cwd: Optional[str] = args.directory if respect_cwd and args else None special_window = SpecialWindow(cmd, cwd_from=cwd_from, cwd=cwd) diff --git a/kitty/tabs.py b/kitty/tabs.py index 6b4e5f975..d51f61de5 100644 --- a/kitty/tabs.py +++ b/kitty/tabs.py @@ -28,7 +28,7 @@ from typing import ( from .borders import Border, Borders from .child import Child from .cli_stub import CLIOptions -from .constants import appname, kitty_tool_exe +from .constants import appname, kitten_exe from .fast_data_types import ( GLFW_MOUSE_BUTTON_LEFT, GLFW_MOUSE_BUTTON_MIDDLE, @@ -441,7 +441,7 @@ class Tab: # {{{ cmd[:0] = shlex.split(line) else: cmd[:0] = [resolved_shell(get_options())[0]] - cmd[:0] = [kitty_tool_exe(), '__hold_till_enter__'] + cmd[:0] = [kitten_exe(), '__hold_till_enter__'] fenv: Dict[str, str] = {} if env: fenv.update(env) diff --git a/kitty/utils.py b/kitty/utils.py index 88b762cdb..4a0cf4294 100644 --- a/kitty/utils.py +++ b/kitty/utils.py @@ -985,8 +985,8 @@ def sanitize_control_codes(text: str, replace_with: str = '') -> str: def hold_till_enter() -> None: import subprocess - from .constants import kitty_tool_exe - subprocess.Popen([kitty_tool_exe(), '__hold_till_enter__']).wait() + from .constants import kitten_exe + subprocess.Popen([kitten_exe(), '__hold_till_enter__']).wait() def cleanup_ssh_control_masters() -> None: diff --git a/kitty_tests/check_build.py b/kitty_tests/check_build.py index 4aade0f40..a9f990d34 100644 --- a/kitty_tests/check_build.py +++ b/kitty_tests/check_build.py @@ -15,12 +15,12 @@ from . import BaseTest class TestBuild(BaseTest): def test_exe(self) -> None: - from kitty.constants import kitty_exe, kitty_tool_exe, str_version + from kitty.constants import kitty_exe, kitten_exe, str_version exe = kitty_exe() self.assertTrue(os.access(exe, os.X_OK)) self.assertTrue(os.path.isfile(exe)) self.assertIn('kitty', os.path.basename(exe)) - exe = kitty_tool_exe() + exe = kitten_exe() self.assertTrue(os.access(exe, os.X_OK)) self.assertTrue(os.path.isfile(exe)) self.assertIn(str_version, subprocess.check_output([exe, '--version']).decode()) @@ -68,7 +68,7 @@ class TestBuild(BaseTest): q = stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH return mode & q == q - for x in ('kitty', 'kitty-tool', 'askpass.py'): + for x in ('kitty', 'kitten', 'askpass.py'): x = os.path.join(shell_integration_dir, 'ssh', x) self.assertTrue(is_executable(x), f'{x} is not executable') if getattr(sys, 'frozen', False): diff --git a/kitty_tests/completion.py b/kitty_tests/completion.py index b8606e44e..b4744f3bc 100644 --- a/kitty_tests/completion.py +++ b/kitty_tests/completion.py @@ -8,7 +8,7 @@ import shlex import subprocess import tempfile -from kitty.constants import kitty_tool_exe as kitty_tool +from kitty.constants import kitten_exe as kitten from . import BaseTest @@ -86,10 +86,10 @@ def completion(self: TestCompletion, tdir: str): env['HOME'] = os.path.join(tdir, 'sub') env['KITTY_CONFIG_DIRECTORY'] = os.path.join(tdir, 'sub') cp = subprocess.run( - [kitty_tool(), '__complete__', 'json'], + [kitten(), '__complete__', 'json'], check=True, stdout=subprocess.PIPE, cwd=tdir, input=json.dumps(all_argv).encode(), env=env ) - self.assertEqual(cp.returncode, 0, f'kitty-tool __complete__ failed with exit code: {cp.returncode}') + self.assertEqual(cp.returncode, 0, f'kitten __complete__ failed with exit code: {cp.returncode}') return json.loads(cp.stdout) add('kitty ', has_words('@', '@ls', '+', '+open')) @@ -148,9 +148,9 @@ def completion(self: TestCompletion, tdir: str): add('kitty @launch --cwd ', has_words('current', 'oldest', 'last_reported')) add('kitty @launch --logo ', all_words('exe-not3.png')) add('kitty @launch --logo ~', all_words('~/exe-not3.png')) - add('kitty-tool ', has_words('@')) - add('kitty-tool ', does_not_have_words('__complete__')) - add('kitty-tool @launch --ty', has_words('--type')) + add('kitten ', has_words('@')) + add('kitten ', does_not_have_words('__complete__')) + add('kitten @launch --ty', has_words('--type')) add('kitty + ', has_words('launch', 'kitten')) add('kitty + kitten ', has_words('icat', 'diff')) diff --git a/kitty_tests/ssh.py b/kitty_tests/ssh.py index 1b2b1d213..a6b9d6046 100644 --- a/kitty_tests/ssh.py +++ b/kitty_tests/ssh.py @@ -143,7 +143,7 @@ copy --exclude */w.* d1 self.ae(contents, { 'g.1', 'g.2', f'{tname}/kitty.terminfo', 'simple-file', 'd1/d2/x', 'd1/y', 'a/sfa', 's1', 's2', '.local/share/kitty-ssh-kitten/kitty/version', '.local/share/kitty-ssh-kitten/kitty/bin/kitty', - '.local/share/kitty-ssh-kitten/kitty/bin/kitty-tool' + '.local/share/kitty-ssh-kitten/kitty/bin/kitten' }) self.ae(len(glob.glob(f'{remote_home}/{tname}/*/xterm-kitty')), 2) diff --git a/publish.py b/publish.py index 3bcc18847..37604ce05 100755 --- a/publish.py +++ b/publish.py @@ -437,7 +437,7 @@ def files_for_upload() -> Dict[str, str]: files[path] = desc signatures[path] = f'GPG signature for {desc}' b = len(files) - for path in glob.glob('build/static/kitty-tool-*'): + for path in glob.glob('build/static/kitten-*'): if path.endswith('.sig'): continue path = os.path.abspath(path) diff --git a/setup.py b/setup.py index 928e88312..4a509118c 100755 --- a/setup.py +++ b/setup.py @@ -896,7 +896,7 @@ def update_go_generated_files(args: Options, kitty_exe: str) -> None: raise SystemExit(cp.returncode) -def build_kitty_tool( +def build_static_kittens( args: Options, launcher_dir: str, destination_dir: str = '', for_freeze: bool = False, for_platform: Optional[Tuple[str, str]] = None ) -> str: @@ -917,7 +917,7 @@ def build_kitty_tool( ld_flags.append('-s') ld_flags.append('-w') cmd += ['-ldflags', ' '.join(ld_flags)] - dest = os.path.join(destination_dir or launcher_dir, 'kitty-tool') + dest = os.path.join(destination_dir or launcher_dir, 'kitten') if for_platform: dest += f'-{for_platform[0]}-{for_platform[1]}' src = os.path.abspath('tools/cmd') @@ -957,8 +957,8 @@ def build_static_binaries(args: Options, launcher_dir: str) -> None: 'dragonfly': ('amd64',), }.items(): for arch in arches_: - print('Cross compiling static kitty-tool for:', os_, arch) - build_kitty_tool(args, launcher_dir, args.dir_for_static_binaries, for_platform=(os_, arch)) + print('Cross compiling static kitten for:', os_, arch) + build_static_kittens(args, launcher_dir, args.dir_for_static_binaries, for_platform=(os_, arch)) def build_launcher(args: Options, launcher_dir: str = '.', bundle_type: str = 'source') -> None: @@ -1357,7 +1357,7 @@ def create_minimal_macos_bundle(args: Options, launcher_dir: str) -> None: with open(os.path.join(kapp, 'Contents/Info.plist'), 'wb') as f: f.write(macos_info_plist()) build_launcher(args, bin_dir) - build_kitty_tool(args, launcher_dir=bin_dir) + build_static_kittens(args, launcher_dir=bin_dir) kitty_exe = os.path.join(launcher_dir, appname) with suppress(FileNotFoundError): os.remove(kitty_exe) @@ -1384,9 +1384,9 @@ def create_macos_bundle_gunk(dest: str, for_freeze: bool, args: Options) -> str: os.symlink(os.path.relpath(kitty_exe, os.path.dirname(in_src_launcher)), in_src_launcher) create_macos_app_icon(os.path.join(ddir, 'Contents', 'Resources')) if not for_freeze: - kitty_tool_exe = build_kitty_tool(args, launcher_dir=os.path.dirname(kitty_exe)) - os.symlink(os.path.relpath(kitty_tool_exe, os.path.dirname(in_src_launcher)), - os.path.join(os.path.dirname(in_src_launcher), os.path.basename(kitty_tool_exe))) + kitten_exe = build_static_kittens(args, launcher_dir=os.path.dirname(kitty_exe)) + os.symlink(os.path.relpath(kitten_exe, os.path.dirname(in_src_launcher)), + os.path.join(os.path.dirname(in_src_launcher), os.path.basename(kitten_exe))) return str(kitty_exe) @@ -1457,7 +1457,7 @@ def package(args: Options, bundle_type: str) -> None: if path.endswith('.so'): return True q = path.split(os.sep)[-2:] - if len(q) == 2 and q[0] == 'ssh' and q[1] in ('askpass.py', 'kitty', 'kitty-tool'): + if len(q) == 2 and q[0] == 'ssh' and q[1] in ('askpass.py', 'kitty', 'kitten'): return True return False @@ -1466,7 +1466,7 @@ def package(args: Options, bundle_type: str) -> None: path = os.path.join(root, f_) os.chmod(path, 0o755 if should_be_executable(path) else 0o644) if not for_freeze and not bundle_type.startswith('macos-'): - build_kitty_tool(args, launcher_dir=launcher_dir) + build_static_kittens(args, launcher_dir=launcher_dir) if not is_macos: create_linux_bundle_gunk(ddir, args.libdir_name) @@ -1476,7 +1476,7 @@ def package(args: Options, bundle_type: str) -> None: def clean_launcher_dir(launcher_dir: str) -> None: - for x in glob.glob(os.path.join(launcher_dir, 'kitty*')): + for x in glob.glob(os.path.join(launcher_dir, 'kitt*')): if os.path.isdir(x): shutil.rmtree(x) else: @@ -1566,7 +1566,7 @@ def option_parser() -> argparse.ArgumentParser: # {{{ p.add_argument( '--dir-for-static-binaries', default=Options.dir_for_static_binaries, - help='Where to create the static kitty-tool binaries' + help='Where to create the static kitten binary' ) p.add_argument( '--full', @@ -1737,17 +1737,17 @@ def main() -> None: create_minimal_macos_bundle(args, launcher_dir) else: build_launcher(args, launcher_dir=launcher_dir) - build_kitty_tool(args, launcher_dir=launcher_dir) + build_static_kittens(args, launcher_dir=launcher_dir) elif args.action == 'build-launcher': init_env_from_args(args, False) build_launcher(args, launcher_dir=launcher_dir) - build_kitty_tool(args, launcher_dir=launcher_dir) + build_static_kittens(args, launcher_dir=launcher_dir) elif args.action == 'build-frozen-launcher': init_env_from_args(args, False) bundle_type = ('macos' if is_macos else 'linux') + '-freeze' build_launcher(args, launcher_dir=os.path.join(args.prefix, 'bin'), bundle_type=bundle_type) elif args.action == 'build-frozen-tools': - build_kitty_tool(args, launcher_dir=args.prefix, for_freeze=True) + build_static_kittens(args, launcher_dir=args.prefix, for_freeze=True) elif args.action == 'linux-package': build(args, native_optimizations=False) package(args, bundle_type='linux-package') diff --git a/shell-integration/bash/kitty.bash b/shell-integration/bash/kitty.bash index 0cf32b051..7cc936c3d 100644 --- a/shell-integration/bash/kitty.bash +++ b/shell-integration/bash/kitty.bash @@ -209,14 +209,14 @@ _ksi_main() { _ksi_prompt[ps0]+="\[\e]133;C\a\]" fi - alias edit-in-kitty="kitty-tool edit-in-kitty" + alias edit-in-kitty="kitten edit-in-kitty" if [[ "${_ksi_prompt[complete]}" == "y" ]]; then _ksi_completions() { builtin local src builtin local limit # Send all words up to the word the cursor is currently on builtin let limit=1+$COMP_CWORD - src=$(builtin printf "%s\n" "${COMP_WORDS[@]:0:$limit}" | builtin command kitty-tool __complete__ bash) + src=$(builtin printf "%s\n" "${COMP_WORDS[@]:0:$limit}" | builtin command kitten __complete__ bash) if [[ $? == 0 ]]; then builtin eval "${src}" fi @@ -224,7 +224,7 @@ _ksi_main() { builtin complete -F _ksi_completions kitty builtin complete -F _ksi_completions edit-in-kitty builtin complete -F _ksi_completions clone-in-kitty - builtin complete -F _ksi_completions kitty-tool + builtin complete -F _ksi_completions kitten fi # wrap our prompt additions in markers we can use to remove them using diff --git a/shell-integration/fish/vendor_completions.d/clone-in-kitty.fish b/shell-integration/fish/vendor_completions.d/clone-in-kitty.fish index 37fe1b97e..51392d24b 100644 --- a/shell-integration/fish/vendor_completions.d/clone-in-kitty.fish +++ b/shell-integration/fish/vendor_completions.d/clone-in-kitty.fish @@ -1,7 +1,7 @@ function __ksi_completions set --local ct (commandline --current-token) set --local tokens (commandline --tokenize --cut-at-cursor --current-process) - printf "%s\n" $tokens $ct | command kitty-tool __complete__ fish | source - + printf "%s\n" $tokens $ct | command kitten __complete__ fish | source - end complete -f -c clone-in-kitty -a "(__ksi_completions)" diff --git a/shell-integration/fish/vendor_completions.d/kitty-tool.fish b/shell-integration/fish/vendor_completions.d/kitten.fish similarity index 55% rename from shell-integration/fish/vendor_completions.d/kitty-tool.fish rename to shell-integration/fish/vendor_completions.d/kitten.fish index 4ba8d1ac8..6eb900bfc 100644 --- a/shell-integration/fish/vendor_completions.d/kitty-tool.fish +++ b/shell-integration/fish/vendor_completions.d/kitten.fish @@ -1,7 +1,7 @@ function __ksi_completions set --local ct (commandline --current-token) set --local tokens (commandline --tokenize --cut-at-cursor --current-process) - printf "%s\n" $tokens $ct | command kitty-tool __complete__ fish | source - + printf "%s\n" $tokens $ct | command kitten __complete__ fish | source - end -complete -f -c kitty-tool -a "(__ksi_completions)" +complete -f -c kitten -a "(__ksi_completions)" diff --git a/shell-integration/fish/vendor_completions.d/kitty.fish b/shell-integration/fish/vendor_completions.d/kitty.fish index 9b80dfa41..088e21736 100644 --- a/shell-integration/fish/vendor_completions.d/kitty.fish +++ b/shell-integration/fish/vendor_completions.d/kitty.fish @@ -1,7 +1,7 @@ function __ksi_completions set --local ct (commandline --current-token) set --local tokens (commandline --tokenize --cut-at-cursor --current-process) - printf "%s\n" $tokens $ct | command kitty-tool __complete__ fish | source - + printf "%s\n" $tokens $ct | command kitten __complete__ fish | source - end complete -f -c kitty -a "(__ksi_completions)" diff --git a/shell-integration/fish/vendor_conf.d/kitty-shell-integration.fish b/shell-integration/fish/vendor_conf.d/kitty-shell-integration.fish index 1f39d5059..76d7f85d7 100644 --- a/shell-integration/fish/vendor_conf.d/kitty-shell-integration.fish +++ b/shell-integration/fish/vendor_conf.d/kitty-shell-integration.fish @@ -156,8 +156,8 @@ function __ksi_schedule --on-event fish_prompt -d "Setup kitty integration after end end -function edit-in-kitty --wraps "kitty-tool edit-in-kitty" - kitty-tool edit-in-kitty $argv +function edit-in-kitty --wraps "kitten edit-in-kitty" + kitten edit-in-kitty $argv end function __ksi_transmit_data -d "Transmit data to kitty using chunked DCS escapes" diff --git a/shell-integration/ssh/kitty-tool b/shell-integration/ssh/kitten similarity index 77% rename from shell-integration/ssh/kitty-tool rename to shell-integration/ssh/kitten index 24cfd9c52..9787265f2 100755 --- a/shell-integration/ssh/kitty-tool +++ b/shell-integration/ssh/kitten @@ -18,14 +18,14 @@ script_path="$(command readlink -f "$0" 2> /dev/null)" script_dir="$(command dirname "$script_path")" install_dir="$(command dirname "$script_dir")/install-tool" remote_kitty_version_file="$script_dir/../version" -local_kitty_version_file="$install_dir/installed-kitty-tool-version" -kitty_exe="$install_dir/kitty-tool" +local_kitty_version_file="$install_dir/installed-kitten-version" +kitty_exe="$install_dir/kitten" local_kitty_version="" [ -f "$kitty_exe" -a -x "$kitty_exe" ] && exec_kitty "$@" -# Use kitty-tool from the downloaded kitty installation, if available. -embed_exe="$(command dirname "$script_dir")/install/bin/kitty-tool" +# Use kitten from the downloaded kitty installation, if available. +embed_exe="$(command dirname "$script_dir")/install/bin/kitten" [ -f "$embed_exe" -a -x "$embed_exe" ] && { kitty_exe="$embed_exe" exec_kitty "$@" @@ -38,7 +38,7 @@ case "$(command uname)" in 'NetBSD') OS="netbsd";; 'OpenBSD') OS="openbsd";; 'DragonFlyBSD') OS="dragonfly";; - *) die "kitty-tool pre-built binaries are not available for the $(command uname) operating system";; + *) die "kitten pre-built binaries are not available for the $(command uname) operating system";; esac if command -v curl 2> /dev/null > /dev/null; then @@ -56,7 +56,7 @@ elif command -v wget 2> /dev/null > /dev/null; then command wget --quiet -O- "$1" } else - die "Neither curl nor wget available, cannot download kitty-tool" + die "Neither curl nor wget available, cannot download kitten" fi case "$(command uname -m)" in @@ -74,20 +74,20 @@ release_version=$(fetch_quiet "https://sw.kovidgoyal.net/kitty/current-version.t } release_version="v$release_version" -# no kitty-tool available till 0.27.0 +# no kitten available till 0.27.0 case "$release_version" in v0.26.*) release_version="nightly";; esac -url="https://github.com/kovidgoyal/kitty/releases/download/$release_version/kitty-tool-$OS-$arch" +url="https://github.com/kovidgoyal/kitty/releases/download/$release_version/kitten-$OS-$arch" -printf "\033[33mkitty-tool needs to be installed\033[m\n\n" +printf "\033[33mkitten needs to be installed\033[m\n\n" command mkdir -p "$install_dir" -printf "Downloading kitty-tool from: \033[32m%s\033[m\n\n" "$url" +printf "Downloading kitten from: \033[32m%s\033[m\n\n" "$url" download_dest="$(command mktemp "$kitty_exe.XXXXXXXXXX")" fetch "$url" > "$download_dest" || { command rm -f "$download_dest" - die "Failed to download kitty-tool" + die "Failed to download kitten" } command chmod 755 "$download_dest" command mv "$download_dest" "$kitty_exe" diff --git a/shell-integration/ssh/kitty b/shell-integration/ssh/kitty index 330400bc2..fe90e3248 100755 --- a/shell-integration/ssh/kitty +++ b/shell-integration/ssh/kitty @@ -34,7 +34,7 @@ is_wrapped_kitten() { test "(" "$1" = "+kitten" -a -n "$(is_wrapped_kitten "$2")" ")" -o "(" "$1" = "+" -a "$2" = "kitten" -a "$(is_wrapped_kitten "$3")" ")" && { if [ "$1" = "+kitten" ]; then shift "1"; else shift "2"; fi - exec kitty-tool "$@" + exec kitten "$@" } lock_dir="" diff --git a/shell-integration/zsh/completions/_kitty b/shell-integration/zsh/completions/_kitty index 0ed00f156..3fb8880aa 100644 --- a/shell-integration/zsh/completions/_kitty +++ b/shell-integration/zsh/completions/_kitty @@ -3,5 +3,5 @@ (( ${+commands[kitty]} )) || builtin return builtin local src cmd=${(F)words:0:$CURRENT} # Send all words up to the word the cursor is currently on. -src=$(builtin command kitty-tool __complete__ zsh "_matcher=$_matcher" <<<$cmd) || builtin return +src=$(builtin command kitten __complete__ zsh "_matcher=$_matcher" <<<$cmd) || builtin return builtin eval "$src" diff --git a/shell-integration/zsh/kitty-integration b/shell-integration/zsh/kitty-integration index b33e8545b..bace0e38a 100644 --- a/shell-integration/zsh/kitty-integration +++ b/shell-integration/zsh/kitty-integration @@ -107,7 +107,7 @@ _ksi_deferred_init() { builtin autoload -Uz -- $comp_dir/_kitty compdef _kitty kitty compdef _kitty clone-in-kitty - compdef _kitty kitty-tool + compdef _kitty kitten fi # If compdef is not set, compinit has not run yet. In this case we must @@ -386,7 +386,7 @@ _ksi_deferred_init() { fi builtin unset KITTY_IS_CLONE_LAUNCH KITTY_CLONE_SOURCE_STRATEGIES - alias edit-in-kitty="kitty-tool edit-in-kitty" + alias edit-in-kitty="kitten edit-in-kitty" # Map alt+left/right to move by word if not already mapped. This is expected behavior on macOS and I am tired # of answering questions about it. diff --git a/tools/cmd/at/shell.go b/tools/cmd/at/shell.go index 350fdc9c6..4b73aeece 100644 --- a/tools/cmd/at/shell.go +++ b/tools/cmd/at/shell.go @@ -161,13 +161,13 @@ func exec_command(at_root_command *cli.Command, rl *readline.Readline, cmdline s } exe, err := os.Executable() if err != nil { - exe, err = exec.LookPath("kitty-tool") + exe, err = exec.LookPath("kitten") if err != nil { - fmt.Fprintln(os.Stderr, "Could not find the kitty-tool executable") + fmt.Fprintln(os.Stderr, "Could not find the kitten executable") return false } } - cmdline := []string{"kitty-tool", "@"} + cmdline := []string{"kitten", "@"} cmdline = append(cmdline, parsed_cmdline...) cmd := exec.Cmd{Path: exe, Args: cmdline, Stdin: os.Stdin, Stdout: os.Stdout, Stderr: os.Stderr} err = cmd.Run() @@ -185,14 +185,14 @@ func exec_command(at_root_command *cli.Command, rl *readline.Readline, cmdline s } func completions(before_cursor, after_cursor string) (ans *cli.Completions) { - const prefix = "kitty-tool @ " + const prefix = "kitten @ " text := prefix + before_cursor argv, position_of_last_arg := shlex.SplitForCompletion(text) if len(argv) == 0 || position_of_last_arg < len(prefix) { return } root := cli.NewRootCommand() - c := root.AddSubCommand(&cli.Command{Name: "kitty-tool"}) + c := root.AddSubCommand(&cli.Command{Name: "kitten"}) EntryPoint(c) root.Validate() ans = root.GetCompletions(argv, nil) diff --git a/tools/cmd/main.go b/tools/cmd/main.go index 97090173e..08c697b7d 100644 --- a/tools/cmd/main.go +++ b/tools/cmd/main.go @@ -10,7 +10,7 @@ import ( func main() { root := cli.NewRootCommand() - root.ShortDescription = "Fast, statically compiled implementations for various kitty command-line tools" + root.ShortDescription = "Fast, statically compiled implementations for various kittens (command line tools for use with kitty)" root.Usage = "command [command options] [command args]" root.Run = func(cmd *cli.Command, args []string) (int, error) { cmd.ShowHelp() diff --git a/tools/cmd/update_self/main.go b/tools/cmd/update_self/main.go index 4d9d4b730..f7723bb9d 100644 --- a/tools/cmd/update_self/main.go +++ b/tools/cmd/update_self/main.go @@ -27,14 +27,14 @@ func update_self(version string) (err error) { exe := "" exe, err = os.Executable() if err != nil { - return fmt.Errorf("Failed to determine path to kitty-tool: %w", err) + return fmt.Errorf("Failed to determine path to kitten: %w", err) } exe, err = filepath.EvalSymlinks(exe) if err != nil { return err } if !kitty.IsStandaloneBuild { - return fmt.Errorf("This is not a standalone kitty-tool executable. You must update all of kitty instead.") + return fmt.Errorf("This is not a standalone kitten executable. You must update all of kitty instead.") } rv := "v" + version if version == "nightly" { @@ -44,8 +44,8 @@ func update_self(version string) (err error) { if version == "latest" { url_base = "https://github.com/kovidgoyal/kitty/releases/latest/download" } - url := fmt.Sprintf("%s/kitty-tool-%s-%s", url_base, runtime.GOOS, runtime.GOARCH) - dest, err := os.CreateTemp(filepath.Dir(exe), "kitty-tool.") + url := fmt.Sprintf("%s/kitten-%s-%s", url_base, runtime.GOOS, runtime.GOARCH) + dest, err := os.CreateTemp(filepath.Dir(exe), "kitten.") if err != nil { return err } @@ -65,15 +65,15 @@ func update_self(version string) (err error) { } } fmt.Print("Updated to: ") - return unix.Exec(exe, []string{"kitty-tool", "--version"}, os.Environ()) + return unix.Exec(exe, []string{"kitten", "--version"}, os.Environ()) } func EntryPoint(root *cli.Command) *cli.Command { sc := root.AddSubCommand(&cli.Command{ Name: "update-self", Usage: "update-self [options ...]", - ShortDescription: "Update this kitty-tool binary", - HelpText: "Update this kitty-tool binary in place to the latest available version.", + ShortDescription: "Update this kitten binary", + HelpText: "Update this kitten binary in place to the latest available version.", Run: func(cmd *cli.Command, args []string) (ret int, err error) { if len(args) != 0 { return 1, fmt.Errorf("No command line arguments are allowed")