Commit graph

220 commits

Author SHA1 Message Date
Kovid Goyal
e8e7ad3b75
DRYer 2021-09-16 18:34:51 +05:30
Kovid Goyal
e9d648d37c
Handle exceptions in the tui context managers 2021-09-16 18:28:29 +05:30
Kovid Goyal
eaeece8177
Use the repeat escape code for progress bar rendering 2021-09-16 17:55:22 +05:30
Kovid Goyal
33a6abfc07
More work on the transfer kitten 2021-09-16 07:39:07 +05:30
Kovid Goyal
5c1dd69963
forgot this in the last commit 2021-09-15 14:03:01 +05:30
Kovid Goyal
c08dc64581
spinner and progress bar for kittens UI 2021-09-15 13:39:39 +05:30
Kovid Goyal
4c25ceff29
Remove duplicated reset of mouse_utf8_mode 2021-09-14 20:22:28 +05:30
Kovid Goyal
d726eb354d
Play with human size some more 2021-09-12 13:41:51 +05:30
Kovid Goyal
1136c64d49
Make human_size() a little nicer 2021-09-12 13:28:07 +05:30
Kovid Goyal
3eee442f28
Output total transfer size when confirming 2021-09-12 12:41:48 +05:30
Kovid Goyal
0d89eb2c40
When not using alternate screen dont restore cursor position to what it was before initialization 2021-09-10 17:26:01 +05:30
Kovid Goyal
f9c99a61d4
More work on file transfer 2021-09-09 12:59:31 +05:30
Kovid Goyal
2178c8e4af
... 2021-09-09 08:43:44 +05:30
Kovid Goyal
8aacf30f19
Centralize definition of file transfer OSC code 2021-09-08 13:43:59 +05:30
Kovid Goyal
34ec3eac44
icat kitten: Fix display of JPEG images that are rotated via EXIF data and larger than available screen size
Fixes #3949
2021-08-19 09:08:35 +05:30
Kovid Goyal
43ccf9cb41
Draw theme demo 2021-08-05 13:17:16 +05:30
Kovid Goyal
c7ccedae95
... 2021-08-04 22:27:48 +05:30
Kovid Goyal
03517459db
Type check set_mode and reset_mode 2021-08-04 22:25:27 +05:30
Kovid Goyal
96326280e5
Use a pending update when drawing the screen 2021-08-04 22:06:05 +05:30
Kovid Goyal
7090c24321
More work on the themes kitten 2021-08-04 14:13:09 +05:30
Kovid Goyal
a22404abe6
Better names 2021-07-28 15:44:17 +05:30
Kovid Goyal
7c06313750
A couple more useful aliases 2021-07-28 15:40:48 +05:30
Kovid Goyal
6f265f448d
DRYer 2021-07-28 15:39:21 +05:30
Kovid Goyal
acdc41bd03
Allow sending no payload 2021-07-28 13:39:15 +05:30
Kovid Goyal
bcff2a7fb6
Add aliases to GraphicsCommand to make it more useable 2021-07-28 13:28:21 +05:30
Kovid Goyal
ff191c9404
clipboard kitten: fix copies to clipboard not working without the --wait-for-completion option 2021-07-24 07:55:50 +05:30
Kovid Goyal
8f214c51c0
Get rid of kitty's special OSC 52 protocol
A better solution from an ecosystem perspective is to just work with the
original protocol. I have modified kitty's escape parser to special case
OSC 52 handling without changing its max escape code size.

Basically, it works by splitting up OSC 52 escape codes longer than the
max size into a series of partial OSC 52 escape codes. These get
dispatched to the UI layer where it accumulates them upto the 8MB limit
and then sends to clipboard when the partial sequence ends.

See https://github.com/ranger/ranger/issues/1861
2021-07-23 22:18:02 +05:30
Kovid Goyal
af956f4d84
Fix debug print for long strings 2021-07-19 16:56:10 +05:30
Kovid Goyal
cdd8e52116
DRYer 2021-07-11 21:39:08 +05:30
Kovid Goyal
6d7df1c5e8
Refactor configuration file parsing
Now the time for importing the kitty.config module has been halved, from
16ms from 32ms on my machine. Also, the new architecture will eventually
allow for auto generating a bunch of python-to-C boilerplate code.
2021-05-31 17:40:49 +05:30
Kovid Goyal
fe94f4cbb4
Move type parsers for config into own module 2021-05-24 22:29:28 +05:30
Kovid Goyal
6dc8df5178
icat kitten: Respect EXIF orientation when displaying JPEG images
Fixes #3518
2021-04-23 07:31:37 +05:30
Kovid Goyal
1aebd83e45
A little clearer code 2021-04-19 17:42:15 +05:30
Kovid Goyal
8225351145
icat: When displaying an animated GIF image with no delays between frames, add a 100ms delay between every frame.
This allows some broken images tested with broken software *cough* browsers to work.
See #3498
2021-04-19 17:17:45 +05:30
Kovid Goyal
379add8d6f
IntEnum was needed 2021-04-19 17:09:23 +05:30
Kovid Goyal
ea11ce8664
Use a normal enum for Dispose rather than an IntEnum 2021-04-19 16:57:43 +05:30
Kovid Goyal
c989a7198b
Add support for the keypad Begin key
Fixes #3468
2021-04-11 07:58:27 +05:30
Kovid Goyal
271c39cc9d
Fix reading image index not working on older ImageMagick
Fixes #3384
2021-03-12 12:00:44 +05:30
Kovid Goyal
18186da90e
Better error message for people running icat on systems with outdated/broken ImageMagick 2021-03-12 11:28:57 +05:30
Kovid Goyal
02d29d4816
Better error message when ImageMagick does not write correct output filenames 2021-03-12 11:07:42 +05:30
Kovid Goyal
1d51fca879
Python 3.6 compat 2021-02-05 09:49:46 +05:30
Kovid Goyal
7a1785e1e8
Get chunked loading working with frames 2021-02-04 21:04:44 +05:30
Kovid Goyal
8033e9fef5
Fix error checking when rendering single frame 2021-02-04 17:16:52 +05:30
Kovid Goyal
cf3a01f502
Handle images whose first frame is smaller than the canvas 2021-02-04 15:57:49 +05:30
Kovid Goyal
3925e18964
Use rgba data for opaque animations that uses blended frames 2021-02-04 14:39:06 +05:30
Kovid Goyal
0f18fedf13
Add support for animations to icat 2021-02-04 14:18:47 +05:30
Kovid Goyal
7eba3b6cbc
Use the magick executable from IMv7 preferentially 2021-02-04 11:34:32 +05:30
Kovid Goyal
e5ef9d9062
Ensure IM outputs multiple images in rgba format 2021-02-04 11:23:54 +05:30
Kovid Goyal
55d0e23c38
... 2021-02-03 19:29:46 +05:30
Kovid Goyal
d3489712a6
Store mode data per frame 2021-02-03 18:00:36 +05:30
Kovid Goyal
56193f6902
Handle resizing of animated images with blended frames correctly 2021-02-03 17:51:38 +05:30
Kovid Goyal
9cf5348c36
Modify ImageMagick wrapper to handle animated images 2021-02-01 14:12:26 +05:30
Kovid Goyal
edf4e14e4c
Work on animation support for icat 2021-01-31 20:58:43 +05:30
Kovid Goyal
ad4665e638
Add support for newer keys to GraphicsCommand serializer 2021-01-31 20:58:42 +05:30
Kovid Goyal
9c6ba213f9
Fix key handling in diff kitten 2021-01-16 20:52:14 +05:30
Kovid Goyal
66341111e6
keyboard mode change should happen only in alternate screen 2021-01-16 20:52:14 +05:30
Kovid Goyal
027c5a57f1
Work on porting kittens to use new key infrastructure
Also move type definitions into their own module
2021-01-16 20:52:14 +05:30
Kovid Goyal
65361d56c4
Use find_exe() for resolving editor as well
Avoids having to exec the shell in most cases
2020-12-29 11:33:42 +05:30
Kovid Goyal
08fae7a0ac
Add sbin to default paths 2020-12-29 10:50:31 +05:30
Kovid Goyal
a7e9030c12
Make finding ImageMagick a bit more robust on macOS 2020-12-29 10:48:26 +05:30
Kovid Goyal
5f8dee8384
Add support for the color settings stack that XTerm copied from us without acknowledgement and decided to use incompatible escape codes for.
Completely in keeping with that project's past behavior.
See https://github.com/kovidgoyal/kitty/issues/879

XTerm announcement:
https://www.mail-archive.com/xorg@lists.x.org/msg06419.html
2020-12-21 21:39:05 +05:30
Kovid Goyal
ed4b5f179e
Full screen kittens: Fix incorrect cursor position after kitten quits
DECOM should be reset only after entering alternate screen as it also
changes cursor position. Fixes #3176
2020-12-17 08:58:44 +05:30
Kovid Goyal
f52c843fa2
Add support for placement id to GraphicsCommand 2020-12-02 05:35:57 +05:30
Kovid Goyal
00aba7c646
Add basic editing support for the broadcast kitten 2020-12-01 17:35:15 +05:30
Kovid Goyal
34db18ea0a
Also transmit key events when broadcasting 2020-12-01 14:11:50 +05:30
Kovid Goyal
ed2dae5884
Fix error when sending empty write buf 2020-12-01 12:25:09 +05:30
Kovid Goyal
df61ee4ac3
... 2020-12-01 11:39:50 +05:30
Kovid Goyal
dab555ea3b
kittens: Dont discard pending input on startup
Fixes #3012
2020-10-06 16:39:00 +05:30
Kovid Goyal
437efe5473
Allow using the ask kitten to pick a choice 2020-09-15 12:39:07 +05:30
Kovid Goyal
4279d6514d
Fix path completion for ~ paths 2020-09-15 09:22:24 +05:30
Kovid Goyal
457db5994b
Fix coloring of links using target 2020-09-15 09:14:44 +05:30
Kovid Goyal
71c942d290
Add colors to the path completer 2020-09-14 22:19:56 +05:30
Kovid Goyal
ee5bc8523b
Fix input redisplay when cursor not at end 2020-09-14 20:15:36 +05:30
Kovid Goyal
174f6b7ea8
Start work on a path completion implementation 2020-09-14 19:58:36 +05:30
Kovid Goyal
b14fb6f3c4
Implement editing of remote files 2020-09-12 18:43:04 +05:30
Luflosi
2b884377d4
Fix typos 2020-06-23 16:35:13 +02:00
Kovid Goyal
0196920533
icat kitten: Fix display of 16-bit depth images
Fixes #2542
2020-04-13 23:05:10 +05:30
Kovid Goyal
eddd45bbc3
diff kitten: Fix images losing position when scrolling using mouse wheel/touchpad 2020-03-19 18:46:10 +05:30
Kovid Goyal
382c31ddf2
Use a stub rather than TYPE_CHECKING 2020-03-15 13:27:40 +05:30
Kovid Goyal
149ae2866a
more typing work 2020-03-12 08:10:51 +05:30
Kovid Goyal
2ebdf738ca
more typing work 2020-03-11 20:08:16 +05:30
Kovid Goyal
2d4f194f0d
more typing work 2020-03-11 09:43:28 +05:30
Kovid Goyal
ce94a9b2df
More typing work 2020-03-11 09:35:59 +05:30
Kovid Goyal
bb8cab3a02
Add type information for tui operations cmds 2020-03-10 22:25:57 +05:30
Kovid Goyal
10435c23c2
more typing work 2020-03-10 20:25:09 +05:30
Kovid Goyal
01142cdc8c
Add type information to the Graphics Command infrastructure 2020-03-10 20:14:04 +05:30
Kovid Goyal
ac2c21e046
more typing work 2020-03-09 16:13:00 +05:30
Kovid Goyal
c817ba9eae
more typing work 2020-03-09 13:32:45 +05:30
Kovid Goyal
9beae321d7
More typing work 2020-03-08 22:08:18 +05:30
Kovid Goyal
77e9460eea
Make mypy a bit stricter 2020-03-05 19:57:28 +05:30
Kovid Goyal
f0b29e15c3
The utils and constants modules are now fully typechecked 2020-03-04 10:26:41 +05:30
Kovid Goyal
36eb52424f
No top level typing issues for kittens 2020-03-04 07:49:28 +05:30
Kovid Goyal
c9ce2f47dc
No top level typing issues found in kitty package 2020-03-04 07:31:22 +05:30
Kovid Goyal
5730ce5f53
More typing work 2020-03-03 20:18:24 +05:30
Kovid Goyal
27524bfc3d
Restore global key definitions so as not to break third party kittens that might use them 2020-03-03 15:06:10 +05:30
Kovid Goyal
8843ded1c9
Refactor key encoding
Cannot have key names in global namespace as not all key names are valid
python identifiers. So move them into a dict.
2020-03-03 14:54:30 +05:30
Trygve Aaberge
6a3eb3f3d7 tui line_edit: Set correct cursor position on end
Previously, the cursor would end up one character after the last typed
character when pressing end in the unicode input kitten.
2020-02-23 11:58:44 +01:00
Luflosi
5f855ce547
Use context managers to open files
Inspired by d50a6ddc1b.
2019-08-01 13:21:26 -05:00
Kovid Goyal
8ebad06e7e
clipboard kitten: Add a --wait-for-completion option to have the kitten wait till copying to clipboard is complete
Fixes #1693
2019-06-07 07:13:15 +05:30
Luflosi
2b095f720e
Use "with suppress()" to suppress python exceptions
Using
```Python
with suppress(OSError):
    os.remove('somefile.tmp')
```
instead of
```Python
try:
    os.remove('somefile.tmp')
except OSError:
    pass
```
makes the code more compact and more readable IMO.

This pattern was recommended by Raymond Hettinger, a Python Core
Developer in his talk "Transforming Code into Beautiful, Idiomatic Python" at https://www.youtube.com/watch?v=OSGv2VnC0go. The transcript is available at https://github.com/JeffPaine/beautiful_idiomatic_python
2019-06-03 12:27:43 +02:00