You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
I have a variety of mappings in my XCompose file. Some of them, like <Multi_key> <a> <l> <p> <h> <a> : "α" are unambiguous: there is no way to continue the sequence and to a different mapping. Some of them, like <Multi_key> <a> : "α", are ambiguous: the sequence could be continued to a different keybinding.
Everywhere on my computer, pressing some key that does not lead to a continuation of some sequence - ex. usually space or esc - ends the compose by inserting the character associated with the string up until then, and inserts the remainder of the sequence. For instance, Multi_keyalpxt inserts αlpxt.
This is not the case in Kitty. Multi_keyalpxt only inserts t.
I think this is probably a bug - and if it isn't, this is a feature request to have Kitty behave equivalently to applications using toolkits! It would also be nice if Kitty supported partial rendering (ex. Firefox renders α with an underscore while in the middle of typing out the full sequence) but that is neither here nor there.
To Reproduce
Create a .XCompose file with the following lines in it:
I dont know what toolkits other than Microsoft windows have this behavior. Quoting the libxkbcomomn docs:
Cancellation Behavior
What should happen when a sequence is cancelled? For example, consider there are only the above sequences, and the input keysyms are <dead_acute> <b>. There are a few approaches:
1. Swallow the cancelling keysym; that is, no keysym is produced. This is the approach taken by libX11.
2. Let the cancelling keysym through; that is, <b> is produced.
3. Replay the entire sequence; that is, <dead_acute> <b> is produced. This is the approach taken by Microsoft Windows (approximately; instead of <dead_acute>, the underlying key is used. This is difficult to simulate with XKB keymaps).
And indeed there is no API in libxkbcommon to accomplish 3 which is what you are asking for. If you know of such an API, feel free to submit a PR. Or get the libxkbcommon maintainers to create such an API and I will be happy to have kitty use it. One could probably hack together some partially working kludge by recording the key events and then re-interpreting them as key events without composition enabled, but this is fraught with edge cases and needs to be implemented in libxkbcommon, not every application/toolkit independently.
Ah interesting! Upon further investigation, it does look like Qt and GTK have different behavior (and both differ from kitty). Kitty does (1), Qt does (2), GTK does (3).
Describe the bug
I have a variety of mappings in my XCompose file. Some of them, like
<Multi_key> <a> <l> <p> <h> <a> : "α"
are unambiguous: there is no way to continue the sequence and to a different mapping. Some of them, like<Multi_key> <a> : "α"
, are ambiguous: the sequence could be continued to a different keybinding.Everywhere on my computer, pressing some key that does not lead to a continuation of some sequence - ex. usually
space
oresc
- ends the compose by inserting the character associated with the string up until then, and inserts the remainder of the sequence. For instance,Multi_key
a
l
p
x
t
insertsαlpxt
.This is not the case in Kitty.
Multi_key
a
l
p
x
t
only insertst
.I think this is probably a bug - and if it isn't, this is a feature request to have Kitty behave equivalently to applications using toolkits! It would also be nice if Kitty supported partial rendering (ex. Firefox renders α with an underscore while in the middle of typing out the full sequence) but that is neither here nor there.
To Reproduce
Create a
.XCompose
file with the following lines in it:Observe that pressing
Compose
a
l
p
h
a
inserts α.Observe that pressing
Compose
a
followed by something (other thanl
) does not insert α.Environment details
I don't have F6 on my keyboard, but I am running kitty 0.36.4 on Arch Linux, under KDE Plasma 6.1 under Wayland.
Additional context
Reproducible with
kitty --config NONE
.debug input log
Keys pressed:
Compose
a
l
p
h
a
<space>
Compose
a
<space>
The text was updated successfully, but these errors were encountered: