Commit graph

345 commits

Author SHA1 Message Date
Kovid Goyal
ce4c71c465
Start work on the transmit backend 2023-01-05 19:15:11 +05:30
Kovid Goyal
31df90a64e
Dont allow abort while waiting for query response 2023-01-05 19:15:11 +05:30
Kovid Goyal
d76e0850ae
More work on porting icat 2023-01-05 19:15:11 +05:30
Kovid Goyal
b520882b62
... 2023-01-05 19:15:11 +05:30
Kovid Goyal
79acab1547
More work on porting icat 2023-01-05 19:15:11 +05:30
Kovid Goyal
4690f3c7c0
... 2023-01-05 19:15:11 +05:30
Kovid Goyal
cf1d9eb303
Parse more icat cli flags 2023-01-05 19:15:11 +05:30
Kovid Goyal
ba2a3f228d
Implement --detect-timeout 2023-01-05 19:15:11 +05:30
Kovid Goyal
ea756db544
Get transmission medium detection working 2023-01-05 19:15:10 +05:30
Kovid Goyal
7a1140cd03
Start work on porting icat to Go 2023-01-05 19:15:10 +05:30
Kovid Goyal
456af90ad2
Remote control: Allow matching for self window even over sockets when run inside a kitty window
Have kitty-tool send the value of KITTY_WINDOW_ID if present.
2022-12-30 12:17:31 +05:30
Kovid Goyal
0f24ce60f8
Fix @ send-text --stdin always assuming STDIN is a tty 2022-12-30 08:29:30 +05:30
Kovid Goyal
d235b673d1
also test \ is escaped 2022-12-13 10:21:19 +05:30
Kovid Goyal
0ab618c2dc
Fix #5767 2022-12-13 10:20:02 +05:30
Kovid Goyal
902373ed20
Also make lists and dicts of strings escape code safe 2022-12-12 19:24:44 +05:30
Kovid Goyal
aac57550c9
rc protocol: Encode strings values in an escape code safe way
Go emits UTF-8 encoded JSON not ascii encoded JSON. Still need to fix
lists and dicts of strings
2022-12-12 18:48:54 +05:30
Kovid Goyal
95e05ce9ec
Fix #5761 2022-12-12 16:49:18 +05:30
Kovid Goyal
94410f2866
Handle EBUSY as well 2022-12-06 12:20:20 +05:30
Kovid Goyal
f35ee1bb40
Fix using primary selection with the extended protocol 2022-12-06 11:15:52 +05:30
Kovid Goyal
b644a42a48
Allow using wildcard mime types when copying from clipboard 2022-12-03 14:06:16 +05:30
Kovid Goyal
6422b323c6
Implement MIME aliases for clipboard 2022-12-03 12:20:03 +05:30
Kovid Goyal
a622a149f6
Allow arbitrary bytes in the mime metadata key 2022-12-03 09:21:36 +05:30
Kovid Goyal
26e8a5186a
Avoid extra roundtrip when only reading clipboard mime types 2022-12-03 08:06:48 +05:30
Kovid Goyal
bde737fa38
Finish implementation of clipboard writing 2022-12-03 08:02:27 +05:30
Kovid Goyal
f5d2c35755
Move implementation of +hold to Go
No need to pay python interpreter startup cost for --hold
2022-12-01 22:34:56 +05:30
Kovid Goyal
38a7fa73e3
Simplify filter mode operation
Dont need channels and goroutines as writing in the loop is already
asnychronous
2022-12-01 19:54:57 +05:30
Kovid Goyal
fe75493c37
Better error messages 2022-12-01 18:17:53 +05:30
Kovid Goyal
e187265d04
Dont truncate the output file just to get tis permission bits 2022-12-01 14:13:28 +05:30
Kovid Goyal
0a985134e2
Ensure permissions are correct when using atomic writes 2022-12-01 14:04:52 +05:30
Kovid Goyal
e555d963b1
DRYer 2022-12-01 13:58:06 +05:30
Kovid Goyal
f29ce19097
Reading arbitrary MIME from clipboard now works 2022-12-01 13:35:44 +05:30
Kovid Goyal
3cf874f6e9
Work on implementing read support in the clipboard kitten 2022-11-29 22:07:51 +05:30
Kovid Goyal
b3f096b03b
kitty shell: Fix pressing enter while cursor is not at end of line causes line to be truncated visually 2022-11-26 15:30:49 +05:30
Kovid Goyal
a721ffeb7d
Finish porting clipboard kitten to Go 2022-11-26 15:15:30 +05:30
Kovid Goyal
63a08dc6cc
kitty-tool @: Fix extra newline being printed when a command returns no response 2022-11-26 05:02:32 +05:30
Kovid Goyal
15a7aeff4d
Fix kitty-tool @ send-text not processing ANSI escapes 2022-11-25 21:09:51 +05:30
Kovid Goyal
4d3f3b5e91
Start moving clipboard kitten to kitty-tool 2022-11-25 12:58:10 +05:30
Kovid Goyal
a9bb341e43
Add an option to control max file size for edit-in-kitty 2022-11-18 10:24:38 +05:30
Kovid Goyal
0af48a4d05
Start work on implementing edit-in-kitty in kitty-tool 2022-11-17 17:05:25 +05:30
Kovid Goyal
bdd04f37d6
Better error message for kitty shell when running unknown command 2022-11-16 20:53:08 +05:30
Kovid Goyal
a4e43b3925
Use a pager for the help interactive command as well 2022-11-16 20:44:13 +05:30
Kovid Goyal
e31587ec1e
Ensure auto-generated entries such as --help are present for completion by calling Validate() 2022-11-16 18:05:27 +05:30
Kovid Goyal
81916d0f02
Finish implementation of update-self 2022-11-16 17:44:21 +05:30
Kovid Goyal
d54fe3c16a
Start work on a command to self update kitty-tool 2022-11-15 21:29:11 +05:30
Kovid Goyal
c7d47a59f1
When running kitty-tool without arguments show usage 2022-11-14 16:36:05 +05:30
Kovid Goyal
723a9c91b5
Get completion basically working 2022-11-14 15:42:08 +05:30
Kovid Goyal
9e2c96653f
More work on readline completion 2022-11-14 15:42:08 +05:30
Kovid Goyal
8d76cf8d32
Import the google shlex package as we need more sophisticated parsing 2022-11-14 15:42:08 +05:30
Kovid Goyal
7c23536bfe
Start work on readline completions 2022-11-14 15:42:08 +05:30
Kovid Goyal
e1ab2383b3
Add basic history operations 2022-11-14 15:42:07 +05:30
Kovid Goyal
8574e136cd
Store cwd in history 2022-11-14 15:42:07 +05:30
Kovid Goyal
260249491d
Avoid Querying screen size on every resize 2022-11-14 15:42:05 +05:30
Kovid Goyal
cbbf8a2d34
Port output of active window and tab ids at shell startup 2022-11-14 15:42:05 +05:30
Kovid Goyal
88567f69b2
Start work on history support for readline 2022-11-14 15:42:05 +05:30
Kovid Goyal
5e2255591c
Dont send invalid kitty-cmd escape code over tty 2022-11-14 15:42:05 +05:30
Kovid Goyal
b89dfc6d1d
Actually run the remote control commands from the shell 2022-11-14 15:42:05 +05:30
Kovid Goyal
59edf1d349
Code to show help 2022-11-14 15:42:05 +05:30
Kovid Goyal
bf7dd1c369
Fix multiline prompts 2022-11-14 15:42:04 +05:30
Kovid Goyal
350060e0f6
... 2022-11-14 15:42:04 +05:30
Kovid Goyal
9f2b2eac85
More work on shell 2022-11-14 15:42:04 +05:30
Kovid Goyal
32059dba7e
More work on readline 2022-11-14 15:42:03 +05:30
Kovid Goyal
c8296a44eb
More work on readline 2022-11-14 15:42:03 +05:30
Kovid Goyal
565526624f
Start work on porting kitty shell to Go 2022-11-14 15:42:03 +05:30
Kovid Goyal
654bd23109
DRYer 2022-11-14 15:42:03 +05:30
Kovid Goyal
2633356842
No need to use a map 2022-11-14 15:42:02 +05:30
Kovid Goyal
262e2fb7a3
Various fixes from the completion merge 2022-11-14 15:42:02 +05:30
Kovid Goyal
97716fea8b
More work on merging completions with parse tree 2022-11-14 15:42:02 +05:30
Kovid Goyal
97acb60981
Move completion package into cli 2022-11-14 15:42:02 +05:30
Kovid Goyal
5771bd0c01
Make adding subcommands a bit nicer 2022-11-14 15:42:02 +05:30
Kovid Goyal
4396dede85
Get rid of the cobra dependency 2022-11-14 15:42:02 +05:30
Kovid Goyal
79cfc1e70a
Move kitty-tool __complete__ to use the new CLI framework 2022-11-14 15:42:01 +05:30
Kovid Goyal
7c41737370
Couple more errors found by linting 2022-11-14 15:42:01 +05:30
Kovid Goyal
2cacd7a64a
get rid of interface{} since we now require Go 1.18 2022-11-14 15:42:00 +05:30
Kovid Goyal
005a9c7090
Add an entry point for the completion tool 2022-11-14 15:41:56 +05:30
Kovid Goyal
a7f6105393
Use Unsafe rather than Dangerous to be consistent 2022-11-14 15:41:55 +05:30
Kovid Goyal
6672904e64
Fix spurious error message when setting image to none 2022-11-14 15:41:55 +05:30
Kovid Goyal
905c4d641c
Allow using many image formats in RC commands 2022-11-14 15:41:55 +05:30
Kovid Goyal
fa7a6dfd4a
Implement stdin echo loop for socket i/o as well 2022-11-14 15:41:55 +05:30
Kovid Goyal
cb452ba9fc
Implement sen text from stdin for the tty backend 2022-11-14 15:41:55 +05:30
Kovid Goyal
85169c989f
... 2022-11-14 15:41:55 +05:30
Kovid Goyal
e8a321d097
Port code to serialize key events as CSI to Go 2022-11-14 15:41:55 +05:30
Kovid Goyal
3a198833da
Simplify escape code wrapping 2022-11-14 15:41:55 +05:30
Kovid Goyal
f86ce03d3b
Fix set-colors 2022-11-14 15:41:55 +05:30
Kovid Goyal
7f77f7e408
Only send cancel async if there is an async id 2022-11-14 15:41:54 +05:30
Kovid Goyal
65c3630099
send_text other than from stdin works 2022-11-14 15:41:54 +05:30
Kovid Goyal
0a2455c8be
Get scroll_window working 2022-11-14 15:41:54 +05:30
Kovid Goyal
bacca88213
Get set_font_size working 2022-11-14 15:41:54 +05:30
Kovid Goyal
bd1b3d9f6e
Implement streaming mode for socket IO 2022-11-14 15:41:54 +05:30
Kovid Goyal
364533b1ed
Work on supporting streaming remote commands with passwords 2022-11-14 15:41:54 +05:30
Kovid Goyal
a388a658ce
Fix payload update code in multi send commands 2022-11-14 15:41:54 +05:30
Kovid Goyal
b5e2871aa0
Remove not needed chunking code 2022-11-14 15:41:54 +05:30
Kovid Goyal
a4b2e2a196
more work on porting command parsing to Go 2022-11-14 15:41:54 +05:30
Kovid Goyal
6f4968305a
more work on porting rc command parsing to Go 2022-11-14 15:41:54 +05:30
Kovid Goyal
79c8862d4c
Work on conversion of args parsing to go code 2022-11-14 15:41:53 +05:30
Kovid Goyal
ef71b071db
Automap a bunch of json fields from identically named options 2022-11-14 15:41:53 +05:30
Kovid Goyal
b2e610f9b1
Implement socket I/O 2022-11-14 15:41:52 +05:30
Kovid Goyal
a960937095
Simplify serialization code and avoid extra copy 2022-11-14 15:41:52 +05:30
Kovid Goyal
0cda5d43a6
Fix final write detection 2022-11-14 15:41:52 +05:30
Kovid Goyal
1b90c03304
Refactor loop code into its own package 2022-11-14 15:41:52 +05:30
Kovid Goyal
b1f9139ca5
Use a fully random async_id rather than a uuid 2022-11-14 15:41:52 +05:30
Kovid Goyal
4a49c3940a
Switch to using goroutines rather than a select()
More complex code since now we have to synchronize between threads,
but a good way to teach myself more about goroutines.
2022-11-14 15:41:52 +05:30
Kovid Goyal
03705cbec0
Fix transmission of async rc commands 2022-11-14 15:41:51 +05:30
Kovid Goyal
a22ba9f739
Fix failing test 2022-11-14 15:41:51 +05:30
Kovid Goyal
c86f8a698c
@ ls works phew 2022-11-14 15:41:51 +05:30
Kovid Goyal
174bc25afb
Make timeout checking more efficient 2022-11-14 15:41:51 +05:30
Kovid Goyal
2ffba1c422
Work on implementing ttyio via TUI 2022-11-14 15:41:51 +05:30
Kovid Goyal
0913b64c6b
Dont vendor base85 2022-11-14 15:41:51 +05:30
Kovid Goyal
32e59257d2
Refactor io in preparation for using tui 2022-11-14 15:41:51 +05:30
Kovid Goyal
80c5ac891d
Add license info to Go files 2022-11-14 15:41:51 +05:30
Kovid Goyal
7280c712d6
Move escape code parser into wcswidth package 2022-11-14 15:41:50 +05:30
Kovid Goyal
235eb868b2
More misc fixes for TUI 2022-11-14 15:41:50 +05:30
Kovid Goyal
5703a3370e
Move wcswidth into its own package as it is very slow to build 2022-11-14 15:41:50 +05:30
Kovid Goyal
526a331f47
Wire up a bunch of callbacks 2022-11-14 15:41:49 +05:30
Kovid Goyal
10cef16210
DRYer 2022-11-14 15:41:49 +05:30
Kovid Goyal
6a79b450f7
Drop another dependency and get a better read password function 2022-11-14 15:41:48 +05:30
Kovid Goyal
eb4ee13f73
Drop another dependency 2022-11-14 15:41:48 +05:30
Kovid Goyal
246277e7af
Refactor tty code into its own package 2022-11-14 15:41:48 +05:30
Kovid Goyal
13758e9600
Drop one dependency 2022-11-14 15:41:48 +05:30
Kovid Goyal
7457746d65
Fix @command form not supporting global options 2022-11-14 15:41:48 +05:30
Kovid Goyal
eec8f04e93
fix reading from tty 2022-11-14 15:41:48 +05:30
Kovid Goyal
3a7d26a3ef
Work on reading command responses 2022-11-14 15:41:48 +05:30
Kovid Goyal
43e93414ea
Some work on implementing TTYIO 2022-11-14 15:41:47 +05:30
Kovid Goyal
6c3a439455
Use the io.Reader interface 2022-11-14 15:41:47 +05:30
Kovid Goyal
a7bc2fcba8
Code to parse socket addresses 2022-11-14 15:41:47 +05:30
Kovid Goyal
417c8887b9
Start on testing infra for command to JSON serialization 2022-11-14 15:41:47 +05:30
Kovid Goyal
47feb73cdf
Code to generate structs for JSON marshalling 2022-11-14 15:41:47 +05:30
Kovid Goyal
63512f0512
Implement setting of option values into a struct 2022-11-14 15:41:46 +05:30
Kovid Goyal
a32251cab4
Handle aliased flags 2022-11-14 15:41:46 +05:30
Kovid Goyal
605882582e
Transfer response_timeout 2022-11-14 15:41:46 +05:30
Kovid Goyal
e127579ae6
DRYer 2022-11-14 15:41:46 +05:30
Kovid Goyal
b3be6792fd
General cleanup 2022-11-14 15:41:46 +05:30
Kovid Goyal
6c25f0cf4b
Use cobra's builtin machinery for creating new types 2022-11-14 15:41:46 +05:30
Kovid Goyal
3a87cfce3e
Get bool set flags ported 2022-11-14 15:41:46 +05:30
Kovid Goyal
15ffd8e6d8
Support older Go 2022-11-14 15:41:46 +05:30
Kovid Goyal
33e16df586
Add some basic RC serialization tests 2022-11-14 15:41:46 +05:30
Kovid Goyal
bab914c497
Create hidden alias commands so kitty-tool @ls also works 2022-11-14 15:41:45 +05:30
Kovid Goyal
47f35a06e6
Start work on generating rc cmd wrappers 2022-11-14 15:41:45 +05:30
Kovid Goyal
77f7ce82c0
Parse global options 2022-11-14 15:41:45 +05:30
Kovid Goyal
10b74d0703
Update documentation of --to 2022-11-14 15:41:45 +05:30
Kovid Goyal
1325844539
Add some go testing infrastructure 2022-11-14 15:41:44 +05:30
Kovid Goyal
46840df1ad
CLI help output make kitty.conf a clickable URL 2022-11-14 15:41:43 +05:30
Kovid Goyal
aaf0dea8dc
Use a single wrapper binary for all command line tools
This is because Go has a multi megabyte overhead for its binaries
2022-11-14 15:41:43 +05:30
Kovid Goyal
abaafc2d68
Parse roles in the help strings 2022-11-14 15:41:43 +05:30
Kovid Goyal
c97556de65
Show help when command is specified 2022-11-14 15:41:43 +05:30
Kovid Goyal
bbf7504303
Start work on implementing kitty @ as a static binary using Go 2022-11-14 15:41:43 +05:30