If I have `ខែ្` (U+1781 U+17c2 U+17d2) in the terminal and press backspace, the first backspace deletes U+17c2 U+17d2 so that I'm left with `ខ` (U+1781). Instead it should only delete the last codepoint, U+17d2.
If I have `ខែ` (U+1781 U+17c2) a backspace deletes only U+17c2, similarly if I have `ខ្` (U+1781 U+17d2) where the backspace deletes U+17d2.
Further investigations show that backspace often deletes the entire cluster, i.e. diacritic(s) plus the base character, for example with `x̣́` (U+0078 U+0301 U+0323) where a backspace deletes all three codepoints.
gnome-terminal should only delete the last codepoint [1].
A real live example where this behavior is problematic is when using ibus-keyman with the Khmer Angkor keyboard. When typing <kbd>x</kbd><kbd>E</kbd><kbd>j</kbd><kbd>m</kbd><kbd>r</kbd> the expected output is `ខ្មែរ` (U+1781 U+17d2 U+1798 U+17c2 U+179a). Keyman does some reordering while typing to put the codepoints in a standardized order. Because gnome-terminal lacks support for surrounding text, the codepoints have to be deleted by emitting several backspace keypresses. Because of the deletion of the cluster the result in gnome-terminal is `មែរ` (U+1798 U+17c2 U+179a).
If I have `ខែ្` (U+1781 U+17c2 U+17d2) in the terminal and press backspace, the first backspace deletes U+17c2 U+17d2 so that I'm left with `ខ` (U+1781). Instead it should only delete the last codepoint, U+17d2.
If I have `ខែ` (U+1781 U+17c2) a backspace deletes only U+17c2, similarly if I have `ខ្` (U+1781 U+17d2) where the backspace deletes U+17d2.
Further investigations show that backspace often deletes the entire cluster, i.e. diacritic(s) plus the base character, for example with `x̣́` (U+0078 U+0301 U+0323) where a backspace deletes all three codepoints.
gnome-terminal should only delete the last codepoint [1].
A real live example where this behavior is problematic is when using ibus-keyman with the Khmer Angkor keyboard. When typing <kbd>x< /kbd><kbd> E</kbd> <kbd>j< /kbd><kbd> m</kbd> <kbd>r< /kbd> the expected output is `ខ្មែរ` (U+1781 U+17d2 U+1798 U+17c2 U+179a). Keyman does some reordering while typing to put the codepoints in a standardized order. Because gnome-terminal lacks support for surrounding text, the codepoints have to be deleted by emitting several backspace keypresses. Because of the deletion of the cluster the result in gnome-terminal is `មែរ` (U+1798 U+17c2 U+179a).
[1] https:/ /github. com/keymanapp/ keyman/ wiki/Backspace- and-cluster- deletion
ProblemType: Bug gnome-terminal- server] ature: Ubuntu 6.5.0-14. 14~22.04. 1-generic 6.5.3 esult: pass
DistroRelease: Ubuntu 22.04
Package: gnome-terminal 3.44.0-1ubuntu1 [modified: usr/libexec/
ProcVersionSign
Uname: Linux 6.5.0-14-generic x86_64
ApportVersion: 2.20.11-0ubuntu82.5
Architecture: amd64
CasperMD5CheckR
CurrentDesktop: ubuntu:GNOME
Date: Fri Jan 26 12:21:42 2024
InstallationDate: Installed on 2022-04-12 (653 days ago)
InstallationMedia: Ubuntu 22.04 LTS "Jammy Jellyfish" - Beta amd64 (20220329.1)
SourcePackage: gnome-terminal
UpgradeStatus: No upgrade log present (probably fresh install)