It's never the terminal emulator (whether GNOME Terminal or any other
terminal app) that decides what to print on a backspace. The only thing
it does is that it tells over the tty line that the backspace key has
been pressed.

It's the remote party, which could be the application running inside
(such as "bash", "vim" etc.), or the kernel's cooked mode handler code
(e.g. if you're running "cat") that decides what to tell to the terminal
how to update its canvas (such as e.g. retreat the cursor by one, print
a space, and retreat the cursor again -> to achieve the visual effect of
deleting the last single-cell character). The terminal emulator has no
other choice than to blindly execute these instructions and update its
canvas accordingly. (It cannot even tell if this requested display
update was in any way connected to the backspace keypress or not, nor
should it care.)

That's just the way this whole architecture looks like. You have to file
a bugreport against whichever applications where backspace doesn't work
as you'd expect it.

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to gnome-terminal in Ubuntu.
https://bugs.launchpad.net/bugs/2051371

Title:
  Backspace in gnome-terminal often deletes cluster

Status in gnome-terminal package in Ubuntu:
  New

Bug description:
  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 [2]. When typing xEjmr 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+17d2 U+1798 U+17c2 U+179a).

  [1] https://github.com/keymanapp/keyman/wiki/Backspace-and-cluster-deletion
  [2] https://github.com/keymanapp/keyman/issues/10481

  ProblemType: Bug
  DistroRelease: Ubuntu 22.04
  Package: gnome-terminal 3.44.0-1ubuntu1 [modified: 
usr/libexec/gnome-terminal-server]
  ProcVersionSignature: Ubuntu 6.5.0-14.14~22.04.1-generic 6.5.3
  Uname: Linux 6.5.0-14-generic x86_64
  ApportVersion: 2.20.11-0ubuntu82.5
  Architecture: amd64
  CasperMD5CheckResult: pass
  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)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gnome-terminal/+bug/2051371/+subscriptions


-- 
Mailing list: https://launchpad.net/~desktop-packages
Post to     : desktop-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~desktop-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to