mention kitty keyboard protocol support #2131

pull/2148/head
nick black 3 years ago committed by nick black
parent f44d5bb97b
commit 1ace0139ff

@ -85,6 +85,12 @@ Why use this non-standard library?
* Portable support for bitmapped graphics, whether using Sixel, Kitty, the iTerm2
protocol, or even the Linux framebuffer console.
* Support for unambiguous [keyboard protocols](https://sw.kovidgoyal.net/kitty/keyboard-protocol/).
* "TUI mode" facilitates high-performance, non-scrolling, full-screen
applications. "CLI mode" supports scrolling output for shell utilities,
but with the full power of Notcurses.
* It's Apache2-licensed in its entirety, as opposed to the
[drama in several acts](https://invisible-island.net/ncurses/ncurses-license.html)
that is the NCURSES license (the latter is [summarized](https://invisible-island.net/ncurses/ncurses-license.html#issues_freer)

@ -116,6 +116,9 @@ https://github.com/dankamongmen/notcurses/issues/1117.
Kitty is furthermore the only terminal I know to lack the `bce` (Background
Color Erase) capability, but Notcurses never relies on `bce` behavior.
Kitty has introduced an unambiguous [keyboard protocol](https://sw.kovidgoyal.net/kitty/keyboard-protocol/).
Notcurses supports this protocol when it is detected.
### WezTerm
WezTerm [implements](https://wezfurlong.org/wezterm/escape-sequences.html) some

@ -478,6 +478,7 @@ block_on_input(tinfo* ti, const struct timespec* ts){
}
return -1;
}
return 1; // ? FIXME
#else
struct pollfd pfd = {
.fd = ti->input.infd,
@ -488,7 +489,7 @@ block_on_input(tinfo* ti, const struct timespec* ts){
pfd.events |= POLLRDHUP;
#endif
int events;
#ifdef __APPLE__
#if defined(__APPLE__) || defined(__MINGW64__)
int timeoutms = ts ? ts->tv_sec * 1000 + ts->tv_nsec / 1000000 : -1;
while((events = poll(&pfd, 1, timeoutms)) < 0){ // FIXME smask?
#else // linux, BSDs
@ -498,7 +499,7 @@ block_on_input(tinfo* ti, const struct timespec* ts){
sigdelset(&smask, SIGWINCH);
while((events = ppoll(&pfd, 1, ts, &smask)) < 0){
#endif
if(errno != EINTR && errno != EAGAIN){
if(errno != EINTR && errno != EAGAIN && errno != EBUSY && errno != EWOULDBLOCK){
return -1;
}
if(resize_seen){

Loading…
Cancel
Save