Commit graph

898 commits

Author SHA1 Message Date
Kovid Goyal
a0d30f4dd8
DRYer 2023-03-05 13:41:36 +05:30
Kovid Goyal
c88a171b28
Map should use same order of arguments as pythons map 2023-03-05 12:19:03 +05:30
pagedown
e9f5806dcd
Update to Nerd Fonts 2.3.3 2023-03-04 23:23:52 +08:00
Kovid Goyal
a2887bb9e0
get rid of utils.Cut since we can now rely on strings.Cut instead 2023-03-04 13:37:55 +05:30
Kovid Goyal
defac0c061
Implement automatic tmux passthrough for icat 2023-03-04 13:01:23 +05:30
Kovid Goyal
8bd814444c
Fix active TMUX session detection 2023-03-04 12:50:07 +05:30
Kovid Goyal
1218a152bf
Implement unicode placeholders in icat 2023-03-04 11:54:22 +05:30
Kovid Goyal
5b160ea599
Use Once for CachedHostname 2023-03-03 15:20:35 +05:30
Kovid Goyal
e6662e11c3
Dont change the tmux allow-passthrough mode if it is already set 2023-03-03 15:06:49 +05:30
Kovid Goyal
1bf911a81b
Generate the rowcol diacrticis for Go as well 2023-03-03 14:39:38 +05:30
Kovid Goyal
f0aacbd437
Remove unused code 2023-03-01 16:54:06 +05:30
Kovid Goyal
5b46d990a2
Add Read/Write to the MMap interface 2023-02-28 19:01:15 +05:30
Kovid Goyal
944e036611
DRYer 2023-02-28 15:48:04 +05:30
Kovid Goyal
1b2fe90ed1
Fix askpass.go on shm_syscall based systems 2023-02-28 14:11:27 +05:30
Kovid Goyal
ba1ce996bb
Fix WriteWithSize() on shm_syscall 2023-02-28 13:50:06 +05:30
Kovid Goyal
327cefbfda
Make test more robust 2023-02-28 13:44:29 +05:30
Kovid Goyal
ce12fd3515
Fix ReadWithSizeAndUnlink on systems that have syscall based mmap 2023-02-28 13:44:09 +05:30
Kovid Goyal
4d3ce47813
... 2023-02-28 13:19:51 +05:30
Kovid Goyal
8729717229
Dont create SHM files in the bootstrap limit and related tests 2023-02-28 13:16:00 +05:30
Kovid Goyal
1ddb1dc5e1
... 2023-02-28 13:00:19 +05:30
Kovid Goyal
3558d1c274
Finish porting support for color schemes to SSH kitten 2023-02-28 12:08:55 +05:30
Kovid Goyal
c877b2a5cb
Code to dump basic colors from a theme as escape codes 2023-02-27 08:02:22 +05:30
Kovid Goyal
c1791c8d2b
Function to load theme code 2023-02-26 22:09:07 +05:30
Kovid Goyal
22150e13fd
Add tests for cache file downloading 2023-02-26 21:56:03 +05:30
Kovid Goyal
7ce64fcde0
Support include when loading themes from dirs 2023-02-26 21:16:29 +05:30
Kovid Goyal
0b09d18b36
Port theme loading code to Go 2023-02-26 20:40:59 +05:30
Kovid Goyal
4eea2fd4fc
Port code to download themeball to Go 2023-02-26 15:21:49 +05:30
Kovid Goyal
c113ad6f56
Code to parse ISO8601 timestamps at least semi-robustly 2023-02-26 13:32:35 +05:30
Kovid Goyal
64cb9c9542
More work on porting ssh kitten 2023-02-26 11:26:28 +05:30
Kovid Goyal
4a5c6ad47f
Functions to punch DCS escapes through tmux 2023-02-26 11:11:42 +05:30
Kovid Goyal
6de77ce987
Clean up exclude pattern handling 2023-02-26 09:12:12 +05:30
Kovid Goyal
5cc3d3cbfe
Fix remaining failing tests 2023-02-26 08:01:04 +05:30
Kovid Goyal
dc938cf3dd
More test fixes 2023-02-26 08:01:04 +05:30
Kovid Goyal
22ea33182a
Fix various test failures 2023-02-26 08:01:04 +05:30
Kovid Goyal
3f417b26b2
Wire up the new ssh kitten into the python ssh kitten tests 2023-02-26 08:01:04 +05:30
Kovid Goyal
e4002b5691
Switch to a more capable glob implementation that supports ** 2023-02-26 08:01:04 +05:30
Kovid Goyal
77c04107f3
Add test for tarfile exclusion 2023-02-26 08:01:03 +05:30
Kovid Goyal
e02ba7f389
Port bootstrap script length limit 2023-02-26 08:01:03 +05:30
Kovid Goyal
9870c94007
More work on porting the SSH kitten 2023-02-26 08:01:03 +05:30
Kovid Goyal
6b71b58997
Add write API to shm objects 2023-02-26 08:01:03 +05:30
Kovid Goyal
43bcb41a2a
Nicer Set constructor 2023-02-26 08:01:03 +05:30
Kovid Goyal
1df3ef648c
Clean up getting runtime dir on darwin 2023-02-26 08:01:03 +05:30
Kovid Goyal
4d8ccd8e94
... 2023-02-26 08:01:03 +05:30
Kovid Goyal
f40380b05a
More useful Set methods 2023-02-26 08:01:03 +05:30
Kovid Goyal
3703b4dbef
API to conveniently generate secure tokens 2023-02-26 08:01:03 +05:30
Kovid Goyal
907a51c99c
Code to read needed options from kitty.conf in a kitten 2023-02-26 08:01:03 +05:30
Kovid Goyal
0614c63966
Handle XDG_CONFIG_DIRS in Go as well 2023-02-26 08:01:03 +05:30
Kovid Goyal
a84b688038
Embed the data files needed for the ssh kitten into the Go binary 2023-02-26 08:01:03 +05:30
Kovid Goyal
b4b8943e64
Replace some more uses of sync.Once 2023-02-26 08:01:03 +05:30
Kovid Goyal
587d06b295
Replace use of sync.Once 2023-02-26 08:01:03 +05:30
Kovid Goyal
fa0773d9d2
Use a struct to store connection related data 2023-02-26 08:01:03 +05:30
Kovid Goyal
d656017f27
Move SSH askpass implementation into kitten 2023-02-26 08:01:02 +05:30
Kovid Goyal
6f4d89045a
A nicer implementation of sync.Once
Doesnt require storing the result of the function in a dedicated global
variable with a dedicated getter function
2023-02-26 08:01:02 +05:30
Kovid Goyal
fbaaca1be9
Function to create symlinks atomically 2023-02-26 08:01:02 +05:30
Kovid Goyal
fa45324d39
Port code to read cloned env 2023-02-26 08:01:02 +05:30
Kovid Goyal
88077fdbcd
Allow Stat() for MMap objects 2023-02-26 08:01:02 +05:30
Kovid Goyal
5a8d903a4d
Go SHM API to read simple data with size from SHM name 2023-02-26 08:01:02 +05:30
Kovid Goyal
3f829ccdde
Handle invalid args and passthrough 2023-02-26 08:01:02 +05:30
Kovid Goyal
06bfa671d9
Allow specifying the paths to search in Which() 2023-02-26 08:01:02 +05:30
Kovid Goyal
97b9572bec
Port parsing of ssh args 2023-02-26 08:01:02 +05:30
Kovid Goyal
12c8af60dc
String repr for Set 2023-02-26 08:01:02 +05:30
Kovid Goyal
57839b4e03
Port function to get ssh cli options by running ssh binary 2023-02-26 08:01:02 +05:30
Kovid Goyal
407555c6c8
Get completion working for kitten ssh 2023-02-26 08:01:02 +05:30
Kovid Goyal
590c1bd7ad
dont parse args for the ssh kitten as it will do so itself 2023-02-26 08:01:02 +05:30
Kovid Goyal
46367bceed
... 2023-02-26 08:01:02 +05:30
Kovid Goyal
041c646d46
Fix parsing of copy args 2023-02-26 08:01:02 +05:30
Kovid Goyal
d98504e1a6
Finish porting SSH config file parsing 2023-02-26 08:01:02 +05:30
Kovid Goyal
07f4adbab5
Also add tests for bad lines 2023-02-26 08:01:02 +05:30
Kovid Goyal
7b4738125b
Move config code into its own package 2023-02-26 08:01:02 +05:30
Kovid Goyal
2b7d6d45df
Finish up config parser port 2023-02-26 08:01:01 +05:30
Kovid Goyal
747411be00
Finish implementation of config file parsing
Still needs tests
2023-02-26 08:01:01 +05:30
Kovid Goyal
70086451e7
Port parsing of env instructions 2023-02-26 08:01:01 +05:30
Kovid Goyal
32aa580984
Store parsed multi option values on the config object 2023-02-26 08:01:01 +05:30
Kovid Goyal
5822bb23f0
Work on porting config file parsing to Go 2023-02-26 08:01:01 +05:30
Kovid Goyal
6f63d9c5d4
Start work on porting the SSH kitten to Go 2023-02-26 08:01:01 +05:30
Kovid Goyal
ac5298ce76
Finish porting unicode input 2023-02-15 17:42:31 +05:30
Kovid Goyal
1321a96ae7
More work on porting unicode input 2023-02-15 17:14:09 +05:30
Kovid Goyal
2b87a601a0
More work on porting unicode input 2023-02-15 10:48:54 +05:30
Kovid Goyal
73a3366d53
Fix atomic write not working when file does not exist 2023-02-15 10:46:47 +05:30
Kovid Goyal
7223fdaa38
API to set the text at the prompt 2023-02-15 10:16:25 +05:30
Kovid Goyal
67436a48cd
New API to suspend a loop 2023-02-14 22:27:41 +05:30
Kovid Goyal
a5eac42d92
More work on unicode input 2023-02-14 21:33:21 +05:30
Kovid Goyal
fb66cbc792
Forgot to exclude some control chars from unicode name based searching 2023-02-14 21:33:21 +05:30
Kovid Goyal
311a0cbfe9
More work on porting unicode input 2023-02-14 21:33:21 +05:30
Kovid Goyal
53e33a80ba
Start work on porting unicode input kitten to Go 2023-02-14 21:33:21 +05:30
Kovid Goyal
a2e4efbb14
API to save/restore cursor position 2023-02-14 21:33:21 +05:30
Kovid Goyal
1aa9f1e62d
Allow faint as an alias for dim 2023-02-14 21:33:21 +05:30
Kovid Goyal
32e0a56a94
Some more useful generic slice utilities 2023-02-14 21:33:21 +05:30
Kovid Goyal
601a333b0e
Atomically update cached values file 2023-02-14 21:33:21 +05:30
Kovid Goyal
cc5107d0db
Convenient way to load/save JSON data 2023-02-14 21:33:20 +05:30
Kovid Goyal
befd5a65c3
A generic Set implementation 2023-02-09 18:00:04 +05:30
Kovid Goyal
8d0452d375
Allow specifying initial capacity when splitting lines 2023-02-09 12:59:40 +05:30
Kovid Goyal
07bab5253e
Update Unicode data 2023-02-09 09:45:42 +05:30
Kovid Goyal
9bdb647454
kitty @ shell: Fix global options being ignored
Also no need to exec a separate process for every command
2023-02-04 12:54:49 +05:30
Kovid Goyal
0cabc3e109
Indicate when caps lock is on while reading password 2023-02-04 11:06:24 +05:30
Kovid Goyal
f1dc072045
Clean up previous PR 2023-02-03 16:14:24 +05:30
pagedown
370aa3aaa6
Completion: Delegate kitty +complete to kitten
Implement `kitten __complete__ setup` in Go.
Fix zsh completion script to check `kitten`.
2023-02-03 18:16:04 +08:00
Kovid Goyal
bed4f33be8
Remove unused code 2023-02-03 09:51:54 +05:30
Kovid Goyal
8ce80d8962
Switch to using Go stdlib for ECDH crypto 2023-02-03 09:50:42 +05:30
Kovid Goyal
7ea4270c88
... 2023-02-03 08:02:28 +05:30
Kovid Goyal
1d45cf4f91
Use crypto/rand rather than math/rand
Who knows how random math/rand actually is
2023-02-02 06:04:17 +05:30
pagedown
8fe936882d
Docs: Improve usage and help documents for kitten 2023-02-01 17:14:54 +08:00
Kovid Goyal
5eaa935ede
icat: Dont try to further compress PNG images when using stream based transmission 2023-02-01 11:45:01 +05:30
Kovid Goyal
092dc3d01f
... 2023-02-01 11:28:52 +05:30
Kovid Goyal
5c0d477a18
icat kitten: Fix transmission of frame data in direct mode
Sometimes frame data is > 2048 but does not compress smaller, which
broke the if statement checking for first loop.

Fixes #5958
2023-02-01 10:51:59 +05:30
Kovid Goyal
414ca86e3f
Remaining fixes from #5962
Fixes #5962
2023-02-01 10:26:53 +05:30
Kovid Goyal
084671b26e
Also preread STDIN when using /dev/stdin as the source 2023-01-26 12:57:12 +05:30
Kovid Goyal
1cc69b3edd
Move pre-read code into a separate function for clarity 2023-01-26 12:49:21 +05:30
Kovid Goyal
d88105319d
clipboard kitten: Allow STDIN to be connected to a program that itself uses the tty directly
Read in STDIN first, and only then start terminal IO, hopefully allowing
the other program to finish its terminal IO before we start.

Fixes #5934
2023-01-26 12:40:08 +05:30
Kovid Goyal
eb50fac8de
Add a test for creation of anonymous tempfiles 2023-01-26 11:51:02 +05:30
Kovid Goyal
4185e30d73
Code to more securely create anonymous temp files on Linux 2023-01-26 11:41:01 +05:30
Kovid Goyal
e3040a9c91
Make the various path finding functions thread safe and cache their results 2023-01-25 16:24:27 +05:30
Kovid Goyal
a01d68ed85
... 2023-01-25 16:12:47 +05:30
Kovid Goyal
f070b17fee
Also load ~/.config/kitty/mime.types in Go code 2023-01-25 16:08:12 +05:30
Kovid Goyal
22d562ca41
DRYer 2023-01-25 15:38:23 +05:30
pagedown
83f505e209
Update known textual mimes to Python
Also add default aliases for JavaScript and XML in Go.
2023-01-25 16:42:15 +08:00
Kovid Goyal
5a86bc2411
Add default aliases for YAML and TOML 2023-01-25 11:54:09 +05:30
Kovid Goyal
b9c324586e
Also recognize a few well known MIME types as being textual 2023-01-24 18:30:46 +05:30
Kovid Goyal
41fb3c79c5
DRYer 2023-01-24 18:26:01 +05:30
Kovid Goyal
11f98592f7
We still need full keyboard protocol for @ send-text 2023-01-23 16:33:08 +05:30
Kovid Goyal
97467acb1f
kitten @ cmd: Dont generate key release events
We dont need them and they sometimes can spill over into the prompt if
the command is very fast.
2023-01-23 16:18:46 +05:30
Kovid Goyal
cc1f0bc3fe
Function to drain controlling tty 2023-01-23 16:07:00 +05:30
Kovid Goyal
a009d6b258
kitty shell: Add completion for help and exit commands 2023-01-23 15:34:45 +05:30
Kovid Goyal
1f00c27097
Also create an automatic text/plain alias when reading from clipboard 2023-01-22 22:04:53 +05:30
Kovid Goyal
7a526d9588
clipboard kitten: When copying, automatically add a text/plain alias if there is at least one text/* MIME and no actual text/plain MIME 2023-01-22 20:41:37 +05:30
Kovid Goyal
bd13238d9b
Should only return ENOTSUPP if SHM_DIR doesnt exist, not the fil we are trying to open 2023-01-21 17:46:37 +05:30
Kovid Goyal
dc0093cb51
SHM FS: Return a not supported error if SHM_DIR does not exist 2023-01-21 17:40:59 +05:30
Kovid Goyal
b1934ce267
kitten: When guessing MIME types use a builtin list as a fallback, generated from the MIME type definitions available on the build system 2023-01-21 17:35:41 +05:30
Kovid Goyal
26ca3f9bad
Simplify code 2023-01-18 16:16:11 +05:30
Kovid Goyal
bf7d27691c
Also add the EINTR fix from previous commit to writing to loop 2023-01-18 16:09:19 +05:30
Kovid Goyal
22532b4805
kitten @: Fix occasional hang until key is pressed while waiting for response from terminal
Fixes #5890
2023-01-18 16:07:42 +05:30
Kovid Goyal
2d846f53a1
... 2023-01-18 14:44:40 +05:30
Kovid Goyal
63077e5432
Dont do extremely small reads 2023-01-18 10:13:07 +05:30
Kovid Goyal
5edb1e2d6b
micro-optimization 2023-01-18 09:58:29 +05:30
Kovid Goyal
821f52a748
... 2023-01-17 12:39:41 +05:30
Kovid Goyal
750f2fa4d0
Use go 1.20 facilities for unsafe string <-> bytes 2023-01-17 12:38:54 +05:30
Kovid Goyal
ce161e610f
... 2023-01-17 11:52:06 +05:30
Kovid Goyal
dd5cfe38b7
Update README 2023-01-14 15:56:03 +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
397ac36011
Also mention terminal multiplxers can cause graphics to fail 2023-01-06 16:36:39 +05:30
Kovid Goyal
02063a5a6a
Make some variables local no need for them to be global 2023-01-06 16:35:17 +05:30
Kovid Goyal
b3926ae9e7
Remove unused code 2023-01-06 16:32:04 +05:30
Kovid Goyal
3743ae50e7
Simplify icat code and write to STDOUT rather than the terminal device
The terminal device is now used only for detection.
2023-01-06 16:16:15 +05:30
Kovid Goyal
ddf36383b4
Dont need to fetch the current version since GitHub provides a redirecting constant download URL 2023-01-05 20:09:32 +05:30
Kovid Goyal
a2c68a927e
icat: When using --place ensure screen doesnt scroll by leaving cursor at top-left corner of image. 2023-01-05 19:15:13 +05:30
Kovid Goyal
cab7856495
Finish resize handling for the magick engine 2023-01-05 19:15:13 +05:30
Kovid Goyal
c317c934f3
More work on ImageMagick 2023-01-05 19:15:13 +05:30
Kovid Goyal
4d21be9eb5
Port python's shutil.which() 2023-01-05 19:15:13 +05:30
Kovid Goyal
fd71d2035d
Start work on rendering with ImageMagick 2023-01-05 19:15:13 +05:30
Kovid Goyal
7ebb281855
Allow controlling num of CPUs for images operations 2023-01-05 19:15:13 +05:30
Kovid Goyal
2d3da1db6d
Dont scan all pixels of JPEG images when EXIF rotated to check for opacity 2023-01-05 19:15:13 +05:30
Kovid Goyal
458adf967a
Dont use extra memory for mirror operations 2023-01-05 19:15:13 +05:30
Kovid Goyal
eec4c6b802
Dont transmit animation control commands for non-animated images 2023-01-05 19:15:13 +05:30
Kovid Goyal
0b9b207513
Implement scaling for GIF as well 2023-01-05 19:15:13 +05:30
Kovid Goyal
7e8017604e
Copy comment explaining min gap and set it to the correct value 2023-01-05 19:15:13 +05:30
Kovid Goyal
9cb83a6ec2
... 2023-01-05 19:15:12 +05:30
Kovid Goyal
7c2317d301
Fix divide by zero 2023-01-05 19:15:12 +05:30
Kovid Goyal
7237e5cf9c
Get GIF basically working 2023-01-05 19:15:12 +05:30
Kovid Goyal
cd5dab581b
DRYer 2023-01-05 19:15:12 +05:30
Kovid Goyal
481cebbd29
Transmission format should be per frame 2023-01-05 19:15:12 +05:30
Kovid Goyal
4623f580b9
Get 24 bit RGB transmission working 2023-01-05 19:15:12 +05:30
Kovid Goyal
6291d0d400
Code to check if an image is Opaque 2023-01-05 19:15:12 +05:30
Kovid Goyal
36d82267bb
... 2023-01-05 19:15:12 +05:30
Kovid Goyal
f9feb4954a
Wire up pasting to RGB 2023-01-05 19:15:12 +05:30
Kovid Goyal
d192dcb0d7
Code to convert images to NRGB 2023-01-05 19:15:12 +05:30
Kovid Goyal
143fd6e4dd
Start work on transmitting RGB images 2023-01-05 19:15:12 +05:30
Kovid Goyal
df06578c2d
Implement --scale-up and --place 2023-01-05 19:15:12 +05:30
Kovid Goyal
73a055fe12
Fix failing test 2023-01-05 19:15:12 +05:30
Kovid Goyal
1fa1a478d9
Get --background working 2023-01-05 19:15:12 +05:30
Kovid Goyal
5a3a547c65
Work on adding support for rendering transforms 2023-01-05 19:15:12 +05:30
Kovid Goyal
373ab95f14
Basic go based rendering 2023-01-05 19:15:11 +05:30
Kovid Goyal
7f866b2b1f
Start work on rendering images with Go 2023-01-05 19:15:11 +05:30
Kovid Goyal
24db38ba7e
Set data size for SHM transmission as on some platforms the actual SHM size is not equal to the requested size 2023-01-05 19:15:11 +05:30
Kovid Goyal
efdfaaec30
... 2023-01-05 19:15:11 +05:30
Kovid Goyal
d694f48c91
Get the other two transmission modes working as well 2023-01-05 19:15:11 +05:30
Kovid Goyal
5562a4d52f
Get file mode transmission working for unmodified PNG 2023-01-05 19:15:11 +05:30
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
22d69d24d0
Fix panic when no timers are left after dispatch 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
a757587ea2
Fix SHM on OpenBSD 2023-01-05 19:15:10 +05:30
Kovid Goyal
ea756db544
Get transmission medium detection working 2023-01-05 19:15:10 +05:30
Kovid Goyal
2d1a2c30bf
MMap.Name() should return the SHM name not the full filesystem path 2023-01-05 19:15:10 +05:30
Kovid Goyal
6ace082bc2
Add openbsd and dragonfly support to shm 2023-01-05 19:15:10 +05:30
Kovid Goyal
7e161ea94b
Get syscall based SHM working 2023-01-05 19:15:10 +05:30
Kovid Goyal
d01d5297b8
Start work on a SHM implementation in Go 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
779a7b7deb
... 2023-01-04 11:15:47 +05:30
Kovid Goyal
c83a8b0773
zsh completion; Fix leading ~ in filenames being quoted on insertion into commandline 2023-01-04 11:07:56 +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
e673747ef4
readline: add alt+arrow to move by word default binding. Common on macOS 2022-12-27 10:59:13 +05:30
Kovid Goyal
2e81d00c92
make go fmt happy 2022-12-24 10:53:17 +05:30
Kovid Goyal
cd92d50a0d
Keyboard protocol: Remove CSI R from the allowed encodings of the F3 key as it conflicts with the *Cursor Position Report* escape code 2022-12-24 10:32:28 +05:30
Kovid Goyal
a2c2d81373
Cleanup readline prompt rendering 2022-12-23 15:23:42 +05:30
Kovid Goyal
40093a4702
Add tests for GraphicsCommand serialization 2022-12-18 11:56:30 +05:30
Kovid Goyal
3815cba8f3
Add stringer interface to GraphicsCommand 2022-12-17 15:34:43 +05:30
Kovid Goyal
7410cd62f9
remove unused code 2022-12-17 09:00:44 +05:30
Kovid Goyal
ae0a8e73d2
... 2022-12-17 08:59:56 +05:30
Kovid Goyal
8f3a8c828f
Add an APC to GraphicsCommand parser 2022-12-16 21:05:17 +05:30
Kovid Goyal
bb33f6c0ac
Start work on graphics support in kitty-tool 2022-12-16 18:06:52 +05:30
Kovid Goyal
928becece4
Fix #5773 2022-12-14 15:45:43 +05:30
Kovid Goyal
2b66775f45
explicitly ignore a few errors 2022-12-13 16:19:46 +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
fe53555dba
Document the additions to the clipboard kitten 2022-12-04 11:37:02 +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
71e09ba1fb
Fix show_key kitten showing incorrect CSI encoding for F3 2022-12-01 23:33:08 +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
3601488b26
Add a generic Values() 2022-12-01 13:47: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
8d45f5011b
Add support for the 🔗 role to prettify 2022-11-26 15:34:20 +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
4969611bdb
Handle backslash escapes in :code: blocks 2022-11-25 22:03:13 +05:30
Kovid Goyal
15a7aeff4d
Fix kitty-tool @ send-text not processing ANSI escapes 2022-11-25 21:09:51 +05:30
Kovid Goyal
f9a22d0bc7
Port ANSI escape code parser to Go 2022-11-25 21:03:09 +05:30
Kovid Goyal
4d3f3b5e91
Start moving clipboard kitten to kitty-tool 2022-11-25 12:58:10 +05:30
Kovid Goyal
4fc91dcc03
There should be no trailing space when completing directories for a file match based on patterns 2022-11-21 11:05:36 +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
e5e8cc72c6
Make the Unicode database version used available 2022-11-17 20:11:50 +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
5ad2ac259b
When truncating descriptions for completion truncate at word boundaries 2022-11-17 08:29:01 +05:30
Kovid Goyal
a2f022d166
Add support for the repeat escape code to TruncatetoVisualLength() 2022-11-17 08:17:11 +05:30
Kovid Goyal
9db1d581f7
DRYer 2022-11-16 22:37:27 +05:30
Kovid Goyal
b3bc5a5565
... 2022-11-16 22:35:59 +05:30
Kovid Goyal
fc20e8d04b
Fix spurious EOF error when select for reading from the tty fails with a temporary error 2022-11-16 22:32:35 +05:30
Kovid Goyal
86af1d5c16
Wrap EOF errors when doing terminal I/O 2022-11-16 22:23:00 +05:30
Kovid Goyal
d8574f8f85
Fix another bug in readline cursor position tracking 2022-11-16 21:28:36 +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
5e880b92f5
Ensure active hyperlink is cleared when truncating output for completion descriptions 2022-11-16 20:32:42 +05:30
Kovid Goyal
d4c103e53e
zsh breaks when there are escape codes in completion descriptions 2022-11-16 19:32:16 +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
ae93d95bbe
Get progress bar rendering working 2022-11-16 16:35:15 +05:30
Kovid Goyal
dd1fcf6855
Support the repeat prev char escape code when calculating the width of a string 2022-11-16 16:25:16 +05:30
Kovid Goyal
463c9debe7
More work on update-self 2022-11-16 13:41:58 +05:30
Kovid Goyal
e70c021371
Some basic TUI widgets ported to Go 2022-11-16 12:48:47 +05:30
Kovid Goyal
0c0b9e6b9c
Fix deadlock in update-self 2022-11-15 22:33:23 +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
36dd5b2d00
More minor loop API additions 2022-11-15 21:00:19 +05:30
Kovid Goyal
87108a18ef
Add a callback for wakeups 2022-11-15 18:01:21 +05:30
Kovid Goyal
234274c1df
... 2022-11-15 16:54:14 +05:30
Kovid Goyal
b42677b343
Utility function to download a URL to a file path with progress reporting 2022-11-15 16:53:43 +05:30
Kovid Goyal
c7d47a59f1
When running kitty-tool without arguments show usage 2022-11-14 16:36:05 +05:30
Kovid Goyal
7eae176b88
Code to build static versions of kitty-tool 2022-11-14 16:27:19 +05:30
Kovid Goyal
1881f4582e
... 2022-11-14 15:42:09 +05:30
Kovid Goyal
a5d05a2954
... 2022-11-14 15:42:09 +05:30
Kovid Goyal
59b43ee844
prettify :option:--xyz> better 2022-11-14 15:42:09 +05:30
Kovid Goyal
29bde6c72c
Improve formatting of completion entries with descriptions 2022-11-14 15:42:09 +05:30
Kovid Goyal
a7ce642a00
Fix rendering in cells 2022-11-14 15:42:08 +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
4974219e0f
Add function to shlex for completion
Also remove the google header since we have diverged from
the original a fair bit. Add a link to the original for credit.
2022-11-14 15:42:08 +05:30
Kovid Goyal
a4de4b7c6f
Report stream start position for tokens 2022-11-14 15:42:08 +05:30
Kovid Goyal
eae4899df4
Use a string builder instead of appending to a slice 2022-11-14 15:42:08 +05:30
Kovid Goyal
87b4800fdf
Get rid of comment parsing from shlex
POSIX does not define comments
2022-11-14 15:42:08 +05:30
Kovid Goyal
64156fd6e6
Have the shlex tokenizer return space tokens as well 2022-11-14 15:42:08 +05:30
Kovid Goyal
1485981b11
Have the shlex tokenizer track position in stream and return defined error types 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
f919efcd42
Move basic multi key shortcut handling into its own package 2022-11-14 15:42:08 +05:30
Kovid Goyal
dc787a6529
Allow pretty printing members of the Action enum 2022-11-14 15:42:08 +05:30
Kovid Goyal
cfb6d93dc0
Move cursor to end of input when traversing history list 2022-11-14 15:42:08 +05:30
Kovid Goyal
1523fef000
tests for history searching 2022-11-14 15:42:08 +05:30
Kovid Goyal
31dcb13836
cursor_y should be zero when resetting 2022-11-14 15:42:07 +05:30
Kovid Goyal
0c82832356
more work on history search 2022-11-14 15:42:07 +05:30
Kovid Goyal
ffea66357a
Start work on incremental history search 2022-11-14 15:42:07 +05:30
Kovid Goyal
6b48624b81
Reset keyboard state when resetting text 2022-11-14 15:42:07 +05:30
Kovid Goyal
5a425ccaad
Implement number args for repeats 2022-11-14 15:42:07 +05:30
Kovid Goyal
2f2dbfb45f
Cleanup prompt handling 2022-11-14 15:42:07 +05:30
Kovid Goyal
13a266aa42
Map ctrl+c to abort the current line 2022-11-14 15:42:07 +05:30
Kovid Goyal
8ad55f7562
Add some tests for history 2022-11-14 15:42:07 +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
c8e8cb5ad5
Add some tests for yanking 2022-11-14 15:42:07 +05:30
Kovid Goyal
22f7145e34
Add yank actions 2022-11-14 15:42:07 +05:30
Kovid Goyal
3237db00fc
Implement word killing actions 2022-11-14 15:42:06 +05:30
Kovid Goyal
ea583f60b3
Start work on kill ring 2022-11-14 15:42:06 +05:30
Kovid Goyal
b7816d26be
Implement clear screen c-l binding 2022-11-14 15:42:06 +05:30
Kovid Goyal
19bf07abd9
Use the more efficient cell iterator api for single char horizontal cursor movement as well 2022-11-14 15:42:06 +05:30
Kovid Goyal
a008c627e3
Implement bindings for moving by simple word 2022-11-14 15:42:06 +05:30
Kovid Goyal
0068ae8f66
An easy to use iterator to iterate over the cells in a string 2022-11-14 15:42:06 +05:30
Kovid Goyal
5436408463
Fix the escape code parser not preserving complete utf-8 state between calls to ParseBytes()
Also allow it to be driven byte-by-byte
2022-11-14 15:42:06 +05:30
Kovid Goyal
d260d2f480
Add some test for vertical movement 2022-11-14 15:42:06 +05:30
Kovid Goyal
00ef9c1955
Implement vertical cursor movement 2022-11-14 15:42:06 +05:30
Kovid Goyal
5509673ff3
More tests 2022-11-14 15:42:06 +05:30
Kovid Goyal
3c4a411cad
Rewrite the readline redraw code to make the screen lines explicit 2022-11-14 15:42:06 +05:30
Kovid Goyal
260249491d
Avoid Querying screen size on every resize 2022-11-14 15:42:05 +05:30
Kovid Goyal
595a78c956
DRYer 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
fe91af5e09
Go stdlib doesnt even have a way to lock files 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
9419fbc77c
Fix rendering when line wraps 2022-11-14 15:42:05 +05:30
Kovid Goyal
834385baff
Improve performance when pasting large amounts of text into readline by not redrawing on every char 2022-11-14 15:42:05 +05:30
Kovid Goyal
c0f17c279e
Add a generic ring buffer
Go's stdlib is very anemic
2022-11-14 15:42:05 +05:30
Kovid Goyal
7264bea8c9
Fix selector incorrectly marking fd as ready on EINTR 2022-11-14 15:42:04 +05:30
Kovid Goyal
1058c999c8
... 2022-11-14 15:42:04 +05:30
Kovid Goyal
bf7dd1c369
Fix multiline prompts 2022-11-14 15:42:04 +05:30
Kovid Goyal
936a7a5f97
Dont write escape code for zero movement 2022-11-14 15:42:04 +05:30
Kovid Goyal
350060e0f6
... 2022-11-14 15:42:04 +05:30
Kovid Goyal
430bd23870
Fix decoding of letter trailer CSI key event 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
fd36435262
Add some default readline bindings 2022-11-14 15:42:04 +05:30
Kovid Goyal
27418eed88
Beep when action could not be performed 2022-11-14 15:42:04 +05:30
Kovid Goyal
48f1690913
Wire up key event handling 2022-11-14 15:42:04 +05:30
Kovid Goyal
eff239a195
Code to erase character ranges 2022-11-14 15:42:04 +05:30
Kovid Goyal
5e5cae8391
Code to move cursor right 2022-11-14 15:42:04 +05:30
Kovid Goyal
57310a772a
Code to move cursor left 2022-11-14 15:42:04 +05:30
Kovid Goyal
066465bce7
Some tests for add_text 2022-11-14 15:42:04 +05:30
Kovid Goyal
1792c2268a
Start writing tests for readline internal functions 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
e536ef7844
Suggestions for sub command names as well 2022-11-14 15:42:03 +05:30
Kovid Goyal
0dab006733
Allow un-ambiguous prefixes for command names 2022-11-14 15:42:03 +05:30
Kovid Goyal
75ead358a2
Show suggestions for options based on levenshtein distance 2022-11-14 15:42:03 +05:30
Kovid Goyal
654bd23109
DRYer 2022-11-14 15:42:03 +05:30
Kovid Goyal
6b04c42730
update wcswidth go version to match unicode 15 update in master 2022-11-14 15:42:03 +05:30
Kovid Goyal
74b1cac344
Allow using unabiguous long option prefixes 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
3bd4fd999a
All completion tests pass again 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
bf74413c1f
Work on merging completion tree with parse tree 2022-11-14 15:42:02 +05:30