keymanapp / keymanapp/keyman

bug(linux): wrong output typing with gff_amharic in gedit

Open
#15,230 2 comments 0 reactions 1 assignee Assigned to @Markus-SWAG View on GitHub
bug linux/ linux/engine/
Dominant language
Pascal
Stars
534
Forks
143
Avg merge
2d 10h
Merged PRs (30d)
113

Description

Split out of #14997:

In gedit on Ubuntu 25.10 Questing with gff_amharic keyboard:

Typing `melkam adis amet` should output `መልካም አዲስ አመት` but outputs `መልካም አድኢስሳመት` instead.

Typing `dan'iel` should output `ዳንኤል` but outputs `ዳኔል` instead.

Same behavior in Ubuntu 24.04 (and probably other versions).

Log of typing `dan'iel`

```
** Message: 15:35:48.089: DAR: ibus_keyman_engine_constructor am:/home/eberhard/.local/share/keyman/gff_amharic/gff_amharic.kmx
** Message: 15:35:48.090: setup_environment: setting up environment
** Message: 15:35:48.090: load_keyboard_options: Loading options for kb_name: gff_amharic
** Message: 15:35:48.090: keyman_get_keyboard_options_queue_fromdconf
** Message: 15:35:48.090: keyman_get_keyboard_options_fromdconf
** Message: 15:35:48.091: set_context_if_needed: not a compliant client app
** Message: 15:35:48.092: ibus_keyman_engine_focus_in
** Message: 15:35:48.092: set_context_if_needed: not a compliant client app
** Message: 15:35:48.092: WDG: ibus_keyman_engine_enable am:/home/eberhard/.local/share/keyman/gff_amharic/gff_amharic.kmx: enabling surrounding context
** Message: 15:35:48.128: ibus_keyman_engine_focus_out
** Message: 15:35:48.128: ibus_keyman_engine_focus_in
** Message: 15:35:48.128: set_context_if_needed: current core context : || (len: 0) [ ]
** Message: 15:35:48.128: set_context_if_needed: new application context: || (len:0) cursor:0 anchor:0
** Message: 15:35:48.128: set_context_if_needed: context updated
** Message: 15:35:49.639: ----------------------------------------------------------------------------------------------------------------- # Typing 'd'
** Message: 15:35:49.639: DAR: ibus_keyman_engine_process_key_event - keyval=0x64 keycode=0x20, state=0x10, isKeyDown=1, compliant=1
** Message: 15:35:49.639: DAR: ibus_keyman_engine_process_key_event - km_mod_state=0x0
** Message: 15:35:49.639: ibus_keyman_engine_process_key_event: before process key event: || (len: 0) [ ]
** Message: 15:35:49.639: ibus_keyman_engine_process_key_event: after process key event : |ድ| (len: 1) [ U+12f5 ]
** Message: 15:35:49.639: process_output_action: compliant app: Outputing |ድ| (len:1) [U+12f5 ]
** Message: 15:35:49.639: DAR: commit_string - |ድ| (len:1) [U+12f5 ]
** Message: 15:35:49.639: process_capslock_action: Disable caps-lock
** Message: 15:35:49.640: ibus_keyman_engine_process_key_event: after processing all actions: |ድ| (len: 1) [ U+12f5 ], returning TRUE
** Message: 15:35:49.923: -----------------------------------------------------------------------------------------------------------------
** Message: 15:35:49.923: DAR: ibus_keyman_engine_process_key_event - keyval=0x64 keycode=0x20, state=0x40000010, isKeyDown=0, compliant=1
** Message: 15:35:49.923: DAR: ibus_keyman_engine_process_key_event - km_mod_state=0x0
** Message: 15:35:49.924: ibus_keyman_engine_process_key_event: before process key event: |ድ| (len: 1) [ U+12f5 ]
** Message: 15:35:49.924: ibus_keyman_engine_process_key_event: after process key event : |ድ| (len: 1) [ U+12f5 ]
** Message: 15:35:49.924: process_capslock_action: Disable caps-lock
** Message: 15:35:49.924: ibus_keyman_engine_process_key_event: after processing all actions: |ድ| (len: 1) [ U+12f5 ], returning FALSE
** Message: 15:35:49.924: set_context_if_needed: current core context : |ድ| (len: 1) [ U+12f5 ]
** Message: 15:35:49.924: set_context_if_needed: new application context: |ድ| (len:1) cursor:1 anchor:1
** Message: 15:35:49.924: set_context_if_needed: context unchanged
** Message: 15:35:51.090: ----------------------------------------------------------------------------------------------------------------- # Typing 'a'
** Message: 15:35:51.090: DAR: ibus_keyman_engine_process_key_event - keyval=0x61 keycode=0x1e, state=0x10, isKeyDown=1, compliant=1
** Message: 15:35:51.090: DAR: ibus_keyman_engine_process_key_event - km_mod_state=0x0
** Message: 15:35:51.091: ibus_keyman_engine_process_key_event: before process key event: |ድ| (len: 1) [ U+12f5 ]
** Message: 15:35:51.091: ibus_keyman_engine_process_key_event: after process key event : |ዳ| (len: 1) [ U+12f3 ]
** Message: 15:35:51.091: process_backspace_action: compliant app: deleting surrounding text 1 codepoints
** Message: 15:35:51.091: process_output_action: compliant app: Outputing |ዳ| (len:1) [U+12f3 ]
** Message: 15:35:51.091: DAR: commit_string - |ዳ| (len:1) [U+12f3 ]
** Message: 15:35:51.091: process_capslock_action: Disable caps-lock
** Message: 15:35:51.091: ibus_keyman_engine_process_key_event: after processing all actions: |ዳ| (len: 1) [ U+12f3 ], returning TRUE
** Message: 15:35:51.185: -----------------------------------------------------------------------------------------------------------------
** Message: 15:35:51.185: DAR: ibus_keyman_engine_process_key_event - keyval=0x61 keycode=0x1e, state=0x40000010, isKeyDown=0, compliant=1
** Message: 15:35:51.185: DAR: ibus_keyman_engine_process_key_event - km_mod_state=0x0
** Message: 15:35:51.185: ibus_keyman_engine_process_key_event: before process key event: |ዳ| (len: 1) [ U+12f3 ]
** Message: 15:35:51.185: ibus_keyman_engine_process_key_event: after process key event : |ዳ| (len: 1) [ U+12f3 ]
** Message: 15:35:51.185: process_capslock_action: Disable caps-lock
** Message: 15:35:51.185: ibus_keyman_engine_process_key_event: after processing all actions: |ዳ| (len: 1) [ U+12f3 ], returning FALSE
** Message: 15:35:51.198: set_context_if_needed: current core context : |ዳ| (len: 1) [ U+12f3 ]
** Message: 15:35:51.198: set_context_if_needed: new application context: || (len:0) cursor:0 anchor:0
** Message: 15:35:51.198: set_context_if_needed: context updated
** Message: 15:35:51.198: set_context_if_needed: current core context : || (len: 0) [ ]
** Message: 15:35:51.198: set_context_if_needed: new application context: |ዳ| (len:1) cursor:1 anchor:1
** Message: 15:35:51.198: set_context_if_needed: context updated
** Message: 15:35:52.133: ----------------------------------------------------------------------------------------------------------------- # Typing 'n'
** Message: 15:35:52.133: DAR: ibus_keyman_engine_process_key_event - keyval=0x6e keycode=0x31, state=0x10, isKeyDown=1, compliant=1
** Message: 15:35:52.133: DAR: ibus_keyman_engine_process_key_event - km_mod_state=0x0
** Message: 15:35:52.133: ibus_keyman_engine_process_key_event: before process key event: |ዳ| (len: 1) [ U+12f3 ]
** Message: 15:35:52.133: ibus_keyman_engine_process_key_event: after process key event : |ዳን| (len: 2) [ U+12f3 U+1295 ]
** Message: 15:35:52.133: process_output_action: compliant app: Outputing |ን| (len:1) [U+1295 ]
** Message: 15:35:52.133: DAR: commit_string - |ን| (len:1) [U+1295 ]
** Message: 15:35:52.133: process_capslock_action: Disable caps-lock
** Message: 15:35:52.135: ibus_keyman_engine_process_key_event: after processing all actions: |ዳን| (len: 2) [ U+12f3 U+1295 ], returning TRUE
** Message: 15:35:52.136: set_context_if_needed: current core context : |ዳን| (len: 2) [ U+12f3 U+1295 ]
** Message: 15:35:52.136: set_context_if_needed: new application context: |ዳን| (len:2) cursor:2 anchor:2
** Message: 15:35:52.136: set_context_if_needed: context unchanged
** Message: 15:35:52.227: -----------------------------------------------------------------------------------------------------------------
** Message: 15:35:52.227: DAR: ibus_keyman_engine_process_key_event - keyval=0x6e keycode=0x31, state=0x40000010, isKeyDown=0, compliant=1
** Message: 15:35:52.227: DAR: ibus_keyman_engine_process_key_event - km_mod_state=0x0
** Message: 15:35:52.227: ibus_keyman_engine_process_key_event: before process key event: |ዳን| (len: 2) [ U+12f3 U+1295 ]
** Message: 15:35:52.227: ibus_keyman_engine_process_key_event: after process key event : |ዳን| (len: 2) [ U+12f3 U+1295 ]
** Message: 15:35:52.227: process_capslock_action: Disable caps-lock
** Message: 15:35:52.228: ibus_keyman_engine_process_key_event: after processing all actions: |ዳን| (len: 2) [ U+12f3 U+1295 ], returning FALSE
** Message: 15:35:53.881: ----------------------------------------------------------------------------------------------------------------- # Typing "'" *****
** Message: 15:35:53.881: DAR: ibus_keyman_engine_process_key_event - keyval=0x27 keycode=0x28, state=0x10, isKeyDown=1, compliant=1
** Message: 15:35:53.881: DAR: ibus_keyman_engine_process_key_event - km_mod_state=0x0
** Message: 15:35:53.882: ibus_keyman_engine_process_key_event: before process key event: |ዳን| (len: 2) [ U+12f3 U+1295 ]
** Message: 15:35:53.882: ibus_keyman_engine_process_key_event: after process key event : |ዳን| (len: 3) [ U+12f3 U+1295 M(1) ]
** Message: 15:35:53.882: process_backspace_action: compliant app: deleting surrounding text 1 codepoints
** Message: 15:35:53.882: process_output_action: compliant app: Outputing |ን| (len:1) [U+1295 ]
** Message: 15:35:53.882: DAR: commit_string - |ን| (len:1) [U+1295 ]
** Message: 15:35:53.882: process_capslock_action: Disable caps-lock
** Message: 15:35:53.883: ibus_keyman_engine_process_key_event: after processing all actions: |ዳን| (len: 3) [ U+12f3 U+1295 M(1) ], returning TRUE
** Message: 15:35:53.883: -----------------------------------------------------------------------------------------------------------------
** Message: 15:35:53.883: DAR: ibus_keyman_engine_process_key_event - keyval=0x27 keycode=0x28, state=0x40000010, isKeyDown=0, compliant=1
** Message: 15:35:53.883: DAR: ibus_keyman_engine_process_key_event - km_mod_state=0x0
** Message: 15:35:53.883: ibus_keyman_engine_process_key_event: before process key event: |ዳን| (len: 3) [ U+12f3 U+1295 M(1) ]
** Message: 15:35:53.883: ibus_keyman_engine_process_key_event: after process key event : |ዳን| (len: 3) [ U+12f3 U+1295 M(1) ]
** Message: 15:35:53.883: process_capslock_action: Disable caps-lock
** Message: 15:35:53.883: ibus_keyman_engine_process_key_event: after processing all actions: |ዳን| (len: 3) [ U+12f3 U+1295 M(1) ], returning FALSE
** Message: 15:35:53.894: set_context_if_needed: current core context : |ዳን| (len: 3) [ U+12f3 U+1295 M(1) ]
** Message: 15:35:53.894: set_context_if_needed: new application context: |ዳ| (len:1) cursor:1 anchor:1
** Message: 15:35:53.894: set_context_if_needed: context updated
** Message: 15:35:54.072: set_context_if_needed: current core context : |ዳ| (len: 1) [ U+12f3 ]
** Message: 15:35:54.072: set_context_if_needed: new application context: |ዳን| (len:2) cursor:2 anchor:2
** Message: 15:35:54.072: set_context_if_needed: context updated
** Message: 15:35:55.539: ----------------------------------------------------------------------------------------------------------------- # Typing 'i'
** Message: 15:35:55.539: DAR: ibus_keyman_engine_process_key_event - keyval=0x69 keycode=0x17, state=0x10, isKeyDown=1, compliant=1
** Message: 15:35:55.539: DAR: ibus_keyman_engine_process_key_event - km_mod_state=0x0
** Message: 15:35:55.539: ibus_keyman_engine_process_key_event: before process key event: |ዳን| (len: 2) [ U+12f3 U+1295 ]
** Message: 15:35:55.539: ibus_keyman_engine_process_key_event: after process key event : |ዳኒ| (len: 2) [ U+12f3 U+1292 ]
** Message: 15:35:55.539: process_backspace_action: compliant app: deleting surrounding text 1 codepoints
** Message: 15:35:55.539: process_output_action: compliant app: Outputing |ኒ| (len:1) [U+1292 ]
** Message: 15:35:55.539: DAR: commit_string - |ኒ| (len:1) [U+1292 ]
** Message: 15:35:55.539: process_capslock_action: Disable caps-lock
** Message: 15:35:55.540: ibus_keyman_engine_process_key_event: after processing all actions: |ዳኒ| (len: 2) [ U+12f3 U+1292 ], returning TRUE
** Message: 15:35:55.626: -----------------------------------------------------------------------------------------------------------------
** Message: 15:35:55.626: DAR: ibus_keyman_engine_process_key_event - keyval=0x69 keycode=0x17, state=0x40000010, isKeyDown=0, compliant=1
** Message: 15:35:55.626: DAR: ibus_keyman_engine_process_key_event - km_mod_state=0x0
** Message: 15:35:55.626: ibus_keyman_engine_process_key_event: before process key event: |ዳኒ| (len: 2) [ U+12f3 U+1292 ]
** Message: 15:35:55.626: ibus_keyman_engine_process_key_event: after process key event : |ዳኒ| (len: 2) [ U+12f3 U+1292 ]
** Message: 15:35:55.626: process_capslock_action: Disable caps-lock
** Message: 15:35:55.627: ibus_keyman_engine_process_key_event: after processing all actions: |ዳኒ| (len: 2) [ U+12f3 U+1292 ], returning FALSE
** Message: 15:35:55.627: set_context_if_needed: current core context : |ዳኒ| (len: 2) [ U+12f3 U+1292 ]
** Message: 15:35:55.627: set_context_if_needed: new application context: |ዳ| (len:1) cursor:1 anchor:1
** Message: 15:35:55.627: set_context_if_needed: context updated
** Message: 15:35:55.627: set_context_if_needed: current core context : |ዳ| (len: 1) [ U+12f3 ]
** Message: 15:35:55.627: set_context_if_needed: new application context: |ዳኒ| (len:2) cursor:2 anchor:2
** Message: 15:35:55.627: set_context_if_needed: context updated
** Message: 15:35:56.870: ----------------------------------------------------------------------------------------------------------------- # Typing 'e'
** Message: 15:35:56.870: DAR: ibus_keyman_engine_process_key_event - keyval=0x65 keycode=0x12, state=0x10, isKeyDown=1, compliant=1
** Message: 15:35:56.870: DAR: ibus_keyman_engine_process_key_event - km_mod_state=0x0
** Message: 15:35:56.870: ibus_keyman_engine_process_key_event: before process key event: |ዳኒ| (len: 2) [ U+12f3 U+1292 ]
** Message: 15:35:56.870: ibus_keyman_engine_process_key_event: after process key event : |ዳኔ| (len: 2) [ U+12f3 U+1294 ]
** Message: 15:35:56.870: process_backspace_action: compliant app: deleting surrounding text 1 codepoints
** Message: 15:35:56.870: process_output_action: compliant app: Outputing |ኔ| (len:1) [U+1294 ]
** Message: 15:35:56.870: DAR: commit_string - |ኔ| (len:1) [U+1294 ]
** Message: 15:35:56.871: process_capslock_action: Disable caps-lock
** Message: 15:35:56.871: ibus_keyman_engine_process_key_event: after processing all actions: |ዳኔ| (len: 2) [ U+12f3 U+1294 ], returning TRUE
** Message: 15:35:56.872: -----------------------------------------------------------------------------------------------------------------
** Message: 15:35:56.872: DAR: ibus_keyman_engine_process_key_event - keyval=0x65 keycode=0x12, state=0x40000010, isKeyDown=0, compliant=1
** Message: 15:35:56.872: DAR: ibus_keyman_engine_process_key_event - km_mod_state=0x0
** Message: 15:35:56.872: ibus_keyman_engine_process_key_event: before process key event: |ዳኔ| (len: 2) [ U+12f3 U+1294 ]
** Message: 15:35:56.872: ibus_keyman_engine_process_key_event: after process key event : |ዳኔ| (len: 2) [ U+12f3 U+1294 ]
** Message: 15:35:56.872: process_capslock_action: Disable caps-lock
** Message: 15:35:56.872: ibus_keyman_engine_process_key_event: after processing all actions: |ዳኔ| (len: 2) [ U+12f3 U+1294 ], returning FALSE
** Message: 15:35:56.898: set_context_if_needed: current core context : |ዳኔ| (len: 2) [ U+12f3 U+1294 ]
** Message: 15:35:56.898: set_context_if_needed: new application context: |ዳ| (len:1) cursor:1 anchor:1
** Message: 15:35:56.898: set_context_if_needed: context updated
** Message: 15:35:56.898: set_context_if_needed: current core context : |ዳ| (len: 1) [ U+12f3 ]
** Message: 15:35:56.898: set_context_if_needed: new application context: |ዳኔ| (len:2) cursor:2 anchor:2
** Message: 15:35:56.899: set_context_if_needed: context updated
** Message: 15:35:57.655: ----------------------------------------------------------------------------------------------------------------- # Typing 'l'
** Message: 15:35:57.655: DAR: ibus_keyman_engine_process_key_event - keyval=0x6c keycode=0x26, state=0x10, isKeyDown=1, compliant=1
** Message: 15:35:57.655: DAR: ibus_keyman_engine_process_key_event - km_mod_state=0x0
** Message: 15:35:57.655: ibus_keyman_engine_process_key_event: before process key event: |ዳኔ| (len: 2) [ U+12f3 U+1294 ]
** Message: 15:35:57.655: ibus_keyman_engine_process_key_event: after process key event : |ዳኔል| (len: 3) [ U+12f3 U+1294 U+120d ]
** Message: 15:35:57.655: process_output_action: compliant app: Outputing |ል| (len:1) [U+120d ]
** Message: 15:35:57.655: DAR: commit_string - |ል| (len:1) [U+120d ]
** Message: 15:35:57.657: process_capslock_action: Disable caps-lock
** Message: 15:35:57.657: ibus_keyman_engine_process_key_event: after processing all actions: |ዳኔል| (len: 3) [ U+12f3 U+1294 U+120d ], returning TRUE
** Message: 15:35:57.660: set_context_if_needed: current core context : |ዳኔል| (len: 3) [ U+12f3 U+1294 U+120d ]
** Message: 15:35:57.660: set_context_if_needed: new application context: |ዳኔል| (len:3) cursor:3 anchor:3
** Message: 15:35:57.660: set_context_if_needed: context unchanged
** Message: 15:35:57.945: -----------------------------------------------------------------------------------------------------------------
** Message: 15:35:57.945: DAR: ibus_keyman_engine_process_key_event - keyval=0x6c keycode=0x26, state=0x40000010, isKeyDown=0, compliant=1
** Message: 15:35:57.945: DAR: ibus_keyman_engine_process_key_event - km_mod_state=0x0
** Message: 15:35:57.945: ibus_keyman_engine_process_key_event: before process key event: |ዳኔል| (len: 3) [ U+12f3 U+1294 U+120d ]
** Message: 15:35:57.945: ibus_keyman_engine_process_key_event: after process key event : |ዳኔል| (len: 3) [ U+12f3 U+1294 U+120d ]
** Message: 15:35:57.945: process_capslock_action: Disable caps-lock
** Message: 15:35:57.947: ibus_keyman_engine_process_key_event: after processing all actions: |ዳኔል| (len: 3) [ U+12f3 U+1294 U+120d ], returning FALSE
** Message: 15:35:59.660: ----------------------------------------------------------------------------------------------------------------- # Typing 'Shift"
** Message: 15:35:59.660: DAR: ibus_keyman_engine_process_key_event - keyval=0xffeb keycode=0x7d, state=0x10, isKeyDown=1, compliant=1
** Message: 15:35:59.660: DAR: ibus_keyman_engine_process_key_event - km_mod_state=0x0
** Message: 15:35:59.660: ibus_keyman_engine_process_key_event: before process key event: |ዳኔል| (len: 3) [ U+12f3 U+1294 U+120d ]
** Message: 15:35:59.661: ibus_keyman_engine_process_key_event: after process key event : |ዳኔል| (len: 3) [ U+12f3 U+1294 U+120d ]
** Message: 15:35:59.661: process_capslock_action: Disable caps-lock
** Message: 15:35:59.662: ibus_keyman_engine_process_key_event: after processing all actions: |ዳኔል| (len: 3) [ U+12f3 U+1294 U+120d ], returning FALSE
** Message: 15:35:59.733: ----------------------------------------------------------------------------------------------------------------- # Typing 'Space'
** Message: 15:35:59.733: DAR: ibus_keyman_engine_process_key_event - keyval=0x20 keycode=0x39, state=0x50, isKeyDown=1, compliant=1
** Message: 15:35:59.733: ibus_keyman_engine_process_key_event: Not handling keys with IBUS_MOD4_MASK (Super) modifier
** Message: 15:35:59.941: -----------------------------------------------------------------------------------------------------------------
** Message: 15:35:59.941: DAR: ibus_keyman_engine_process_key_event - keyval=0x20 keycode=0x39, state=0x40000050, isKeyDown=0, compliant=1
** Message: 15:35:59.941: ibus_keyman_engine_process_key_event: Not handling keys with IBUS_MOD4_MASK (Super) modifier
** Message: 15:35:59.945: ibus_keyman_engine_reset
** Message: 15:35:59.945: set_context_if_needed: current core context : |ዳኔል| (len: 3) [ U+12f3 U+1294 U+120d ]
** Message: 15:35:59.945: set_context_if_needed: new application context: |ዳኔል| (len:3) cursor:3 anchor:3
** Message: 15:35:59.945: set_context_if_needed: context unchanged
** Message: 15:35:59.945: ibus_keyman_engine_reset
** Message: 15:35:59.945: set_context_if_needed: current core context : |ዳኔል| (len: 3) [ U+12f3 U+1294 U+120d ]
** Message: 15:35:59.945: set_context_if_needed: new application context: |ዳኔል| (len:3) cursor:3 anchor:3
** Message: 15:35:59.945: set_context_if_needed: context unchanged
** Message: 15:35:59.945: ibus_keyman_engine_focus_out
** Message: 15:35:59.945: ibus_keyman_engine_focus_in
** Message: 15:35:59.945: set_context_if_needed: current core context : || (len: 0) [ ]
** Message: 15:35:59.945: set_context_if_needed: new application context: |ዳኔል| (len:3) cursor:3 anchor:3
** Message: 15:35:59.945: set_context_if_needed: context updated
** Message: 15:36:00.305: ibus_keyman_engine_focus_out
** Message: 15:36:00.305: WDG: ibus_keyman_engine_disable am:/home/eberhard/.local/share/keyman/gff_amharic/gff_amharic.kmx
** Message: 15:36:00.305: ibus_keyman_engine_focus_out
** Message: 15:36:00.306: DAR: ibus_keyman_engine_destroy am:/home/eberhard/.local/share/keyman/gff_amharic/gff_amharic.kmx
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.