Commit graph

202 commits

Author SHA1 Message Date
OBrutus
19a0bf0670 Merge origin/master into go-kitten-ports
Reconcile the three ported kittens with 529 upstream commits. Only conflicts
were in the shrunk resize_window/broadcast/remote_file main.py stubs (upstream
reformatted their OPTIONS strings); resolved by keeping upstream's formatting
plus the Go-port stubs (shrunk main, remote_file handle_result shim, dropped
-h alias). Go build + kitten tests pass; dev build regenerates CLI cleanly;
Python suite at baseline (1 pre-existing unrelated failure).
2026-08-18 16:18:54 +05:30
OBrutus
a0978a74a2 remote_file kitten: port ask UI to Go, wrap and shrink Python to result-handler shim
Adds kittens/remote_file/main.go (ask menu, hostname-mismatch prompt,
save-path prompt with tab completion, edit/open/save actions) on top of the
ControlMaster/ssh helpers from the previous two commits, registers it in
tools/cmd/tool/main.go, and adds remote_file to shell-integration/ssh/kitty's
wrapped_kittens list so both `kitty +kitten remote_file` and ssh-session
invocations exec the Go binary directly. main.py is shrunk to option_text
(kept importable by kitty/cli_stub.py and used for --doc/--help generation),
is_ssh_kitten_sentinel (kept importable by kitty/window.py), and the
handle_result shim boss.py runs in-process to open the returned file.

Also drops the dead `-h` alias on --hostname: Python's CLI layer always
special-cases -h/--help ahead of user options, so it never worked as a
hostname shorthand, but the Go CLI layer hard-errors on the collision; removing
it is a no-op for existing behavior (boss.py only ever passes --hostname) and
unblocks `kitten remote-file --help`. Also adds the same reset_terminal()
calls Python makes between UI phases (ask menu -> action, hostname-mismatch
prompt, overwrite prompt, $EDITOR handoff) so the Go and Python screens match.

Manually verified parity against Python (ask menu, cancel, open/edit/save
download+upload round-trips, hostname-mismatch Y/N, save-path prompt and
overwrite O/A/R/N) using a fake-ssh test double, and confirmed post-wrap that
`kitty +kitten remote_file` execs the Go kitten binary.
2026-08-13 15:21:57 +05:30
OBrutus
7e5c773df1 broadcast kitten: wrap as Go kitten, remove Python implementation 2026-08-12 16:04:03 +05:30
OBrutus
9cffe48359 resize_window kitten: wrap as Go kitten, remove Python implementation 2026-08-11 17:16:05 +05:30
Kovid Goyal
7f0b072f0d
autoformat 2026-08-05 05:32:56 +05:30
Kovid Goyal
bb452f2066
Do not try to auto install kitten when generating completions
Some checks are pending
CI / Linux (python=3.13 cc=clang sanitize=1) (push) Waiting to run
CI / Linux (python=3.11 cc=gcc sanitize=0) (push) Waiting to run
CI / Linux (python=3.12 cc=gcc sanitize=1) (push) Waiting to run
CI / Linux package (push) Waiting to run
CI / Bundle test (macos-latest) (push) Waiting to run
CI / Bundle test (ubuntu-latest) (push) Waiting to run
CI / macOS Brew (push) Waiting to run
CI / Test ./dev.sh and benchmark (push) Waiting to run
CodeQL / CodeQL-Build (actions, ubuntu-latest) (push) Waiting to run
CodeQL / CodeQL-Build (c, macos-latest) (push) Waiting to run
CodeQL / CodeQL-Build (c, ubuntu-latest) (push) Waiting to run
CodeQL / CodeQL-Build (go, ubuntu-latest) (push) Waiting to run
CodeQL / CodeQL-Build (python, ubuntu-latest) (push) Waiting to run
Depscan / Scan dependencies for vulnerabilities (push) Waiting to run
See https://github.com/kovidgoyal/kitty/discussions/10218
2026-07-03 23:30:59 +05:30
Hassan Raza
d77c94e3aa
Avoid shell quoting in ssh login fallback 2026-05-19 23:14:08 +05:00
Hassan Raza
c0db371afe
Quote ssh bootstrap symlink moves 2026-05-19 16:54:02 +05:00
zhaolei
9b02a59c4e Add support for RemoteCommand option in kitten ssh 2026-04-14 11:11:51 +08:00
Daniel M German
33b5b0a339 Add command_palette command to display bound keys
Add a Go-based command_palette kitten that provides a searchable,
interactive overlay for browsing and triggering keyboard shortcuts
and actions.

- New Go kitten at kittens/command_palette/ with FZF fuzzy search,
  grouped/flat views, and remote control action triggering
- Python collect_keys_data() does data collection, passed via stdin
- Navigation: arrows, ctrl+j/k (vim), ctrl+n/p (emacs), page up/down
- Enter triggers the selected action via RC command
- Help text displayed in footer for selected binding
- Added Go tests (main_test.go) and Python tests (command_palette.py)
2026-02-22 20:46:47 -08:00
Kovid Goyal
37da04aad6
choose files: Add default mappings to choose a file and insert it into the terminal 2025-11-23 11:41:21 +05:30
Kovid Goyal
85ba68b59c
ssh kitten: When using python interpreter fix symlinks with absolute paths not working with the copy command 2025-02-09 11:12:47 +05:30
Kovid Goyal
9d027e4fbd
ssh kitten: Fix kitten not being on PATH when sshing into Debian systems
Fixes #7160
2025-01-02 19:46:50 +05:30
Kovid Goyal
4575dc6b70
Fix #7724 2024-08-16 18:50:40 +05:30
Kovid Goyal
2be91d73dd
Move the query_terminal implementation to Go 2024-06-24 07:54:14 +05:30
Kovid Goyal
ecc44dffeb
Fix #7535
I think
2024-06-13 12:26:54 +05:30
Izhar Ameer Shaikh
483dd30e18 shell-integration/ssh: Support arch=arm64, for MacOS
On some Macs (e.g. M1, 2020), `uname` returns 'Darwin' and `uname -m`
retuns 'arm64', this case is not handled in shell-integration. As a
result, ssh kitten transfer fails with:

>> Unknown CPU architecture arm64

Fix this by adding the case for arch=arm64 in kitten and kitty
shell-integration scripts.

Tested this on Mac Pro (M1, 2020).
2024-05-08 23:44:35 -07:00
Kovid Goyal
7b6c532ac2
... 2024-01-21 15:34:06 +05:30
Kovid Goyal
ef9dada80d
Failure to change to cwd should not be fatal in bootstrap.py to match bootstrap.sh 2023-11-20 19:35:41 +05:30
Kovid Goyal
bd5fcb00e0
Fix regression that broke quick exit from ssh kitten 2023-11-06 21:22:41 +05:30
Kovid Goyal
fd12c5a1e0
Dont assume /dev/stderr exists
Fixes #6671
2023-10-04 06:26:56 +05:30
Elan Ruusamäe
706cde84ae
kitten: Add armv7l alias to arm
Fix Unknown CPU architecture armv7l
2023-10-03 18:26:11 +03:00
Kovid Goyal
1aaaa3f1e9
Fix incorrect exception when tic fails 2023-09-30 07:53:13 +05:30
Kovid Goyal
7cec9016d3
Start work on porting the transfer kitten to Go 2023-07-30 19:49:37 +05:30
Kovid Goyal
da8330253a
Dont use exist_ok in the bootstrap script as it might be run with python2 where it doesnt exist 2023-07-12 12:05:07 +05:30
olzhasar
d0a5d1b3a4 Fix misspellings 2023-06-14 03:39:53 +06:00
Kovid Goyal
019359b219
show_key kitten: In kitty mode show the actual bytes sent by the terminal rather than a re-encoding of the parsed key event
Also port the kitten to Go
2023-04-26 21:48:53 +05:30
Kovid Goyal
44ff6bd1dd
Start work on porting diff kitten 2023-03-27 07:53:53 +05:30
Pierre GRASSER
ce7741c9a8
bootstrap-utils.sh: make grep silent
Prevents a print of "no-rc".
2023-03-26 20:31:37 +02:00
Kovid Goyal
1bed92bed1
Cleanup previous PR 2023-03-20 07:42:10 +05:30
usertam
08fa7f19f7
kitty_tests, shell-integration: rework getpwuid() exceptions suppression 2023-03-20 03:31:23 +08:00
Kovid Goyal
47d7e812a3
Cleanup previous PR 2023-03-19 17:20:09 +05:30
Samuel Tam
8a7491722f
shell-integration/ssh/bootstrap.py: suppress getpwuid() exceptions
Reference: 89e5ae28bb
2023-03-19 19:28:24 +08:00
Kovid Goyal
f7b735d5ab
ssh kitten: Fix failure when remote system has no base64 but does have openssl 2023-03-17 08:36:52 +05:30
Charles McGarvey
4b818244be Add "amd64" as a potential value for "uname -m"
This accommodates FreeBSD and perhaps others.
2023-03-15 19:05:30 -06:00
Kovid Goyal
f9b0b54ee5
Start work on porting themes kitten to Go 2023-03-14 12:29:44 +05:30
Kovid Goyal
09ceb3c0be
Start work on porting hints kitten to Go 2023-03-09 19:00:56 +05:30
Kovid Goyal
0aa55fb755
Start work on porting the ask kitten 2023-03-07 13:55:44 +05:30
Kovid Goyal
6660071d3a
Port the hyperlinked_grep kitten to Go 2023-03-05 13:41:57 +05:30
Kovid Goyal
d656017f27
Move SSH askpass implementation into kitten 2023-02-26 08:01:02 +05:30
Kovid Goyal
6f63d9c5d4
Start work on porting the SSH kitten to Go 2023-02-26 08:01:01 +05:30
Kovid Goyal
53e33a80ba
Start work on porting unicode input kitten to Go 2023-02-14 21:33:21 +05:30
Kovid Goyal
8bdd4d0596
ssh kitten: Install kitty bootstrap on systems other than linux/darwin as now we have kitten which works on more types of systems 2023-01-31 20:16:20 +05:30
Kovid Goyal
ce6dacd0d4
Also build 32-bit kitten for Linux 2023-01-31 10:48:56 +05:30
Kovid Goyal
f3c434b7c1
Now that we are releasing 0.27.0 dont need to fetch release version to download latest kitten 2023-01-31 10:48:56 +05:30
Kovid Goyal
6b8e5ea225
Rename kitty-tool to kitten
It's easier to type, and cuter.

Also, most, if not all of the TUI parts of
kitty's kittens will eventually be re-written into kitten.

The only downside I can see is that we cant tab complete kitty
anymore, but hopefully there will be less reason to run kitty
from the shell as command line tools migrate to kitten.

Meowrrrr!!!
2023-01-14 15:44:52 +05:30
Kovid Goyal
60310ced05
Also build 32-bit ARM kitty-tool for Linux 2023-01-14 11:20:31 +05:30
Kovid Goyal
7a1140cd03
Start work on porting icat to Go 2023-01-05 19:15:10 +05:30
pagedown
a8f2816ac2
ssh kitten: Compile terminfo with tic coming from pkgsrc under NetBSD 2022-12-24 11:53:52 +08:00
pagedown
0ddc5d030c
ssh kitten: Fall back to using openssl when base64 does not exist 2022-12-24 11:53:45 +08:00