Skip to content

kitty keyboard protocol's "disambiguate escape codes" disables VINTR/VSTOP #10864

@krobelus

Description

@krobelus

The disambiguate flag means that:

In particular, ctrl+c will no longer generate the SIGINT signal, but instead be delivered as a CSI u escape code.

so cancellation only works while we turn off disambiguation.
We turn it off while running external commands that want to claim the TTY.
Also we do it (only as a workaround for this issue) while expanding wildcards or while running builtin wait.

There are other cases where we don't have a workaround, like in trivial infinite loops or when opening a fifo.

One approach is to add a separate thread for handling input, then we can process keys while the main thread is busy.

Metadata

Metadata

Assignees

No one assigned

    Labels

    RFCregressionSomething that used to work, but was broken, especially between releases

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions