Ticket #7474 (closed defect: fixed)

Opened 6 years ago

Last modified 4 years ago

Compose keys not working for Amharic

Reported by: sayamindu Owned by: sayamindu
Priority: high Milestone: 8.2.0 (was Update.2)
Component: keyboards Version: Update.1
Keywords: 8.2.0:+ joyride-2330:+ Cc: walter, bernie, kim, jg, arjs, sayamindu, svu, cscott
Action Needed: test in release Verified: no
Deployments affected: Ethiopia Blocked By:
Blocking:

Description

It seems the various compose keys for Amharic are not working. For example Compose Key + H + U should produce 'ሁ' Right now nothing is produced at all.

Attachments

7474_olpc_session.patch (400 bytes) - added by sayamindu 6 years ago.
Patch against olpc-session to choose the XIM method by default. This is a prerequisite for the XIM compose tables to work.
olpc_7474_libX11.patch (32.2 kB) - added by sayamindu 6 years ago.
Updated patch
olpc_7474_dead_vowels_libX11.patch (33.2 kB) - added by sayamindu 6 years ago.
This updates the Compose file so that it does not handle the vowels as dead characters
olpc_7474_xkb_fix.patch (2.6 kB) - added by sayamindu 6 years ago.
Updated et symbol file to generate dead vowel characters

Change History

  Changed 6 years ago by sayamindu

  • priority changed from normal to high

I am assuming that the Alt-Gr key on the XO is the Compose key (Multi_key in XKB terminology). Am I correct in assuming this ?

  Changed 6 years ago by erikg

  • owner changed from sayamindu to erikg
  • status changed from new to assigned

  Changed 6 years ago by sayamindu

  • cc sayamindu added

Some more info that I managed to figure out

* olpc-session (from OLPC-utils) need a small patch (I'm attaching that) * You don't have to use the Compose key to make this work - sequences such as h + u should work directly. * The mappings are in /usr/share/X11/locale/am_ET.UTF-8/Compose * People claim that this has been working before. I have a nagging suspicion that this was not XKB in action, but the GTK Input Module for Ethiopian, which was selected automatically (since the LANG or LANGUAGE environment was set to am_ET.UTF-8). This automatic selection was prevented in http://dev.laptop.org/attachment/ticket/6945/6945.patch. Ticket #6945 tracks the earlier issue with the Ethiopian keyboard.

Changed 6 years ago by sayamindu

Patch against olpc-session to choose the XIM method by default. This is a prerequisite for the XIM compose tables to work.

  Changed 6 years ago by sayamindu

It seems that GTK+ has support for Compose tables - and the table for GTK+ is at http://svn.gnome.org/viewvc/gtk%2B/trunk/gtk/gtkimcontextsimpleseqs.h?revision=20816&view=markup We might want to experiment with that as well.

  Changed 6 years ago by sayamindu

  • cc svu added
  • owner changed from erikg to sayamindu
  • status changed from assigned to new

Figured out the problem:

Instead of lines like

<u> <U1200> : "ሁ" <U1201> # key h (base character ሀ)

the lines should read as

<u> <U1200> : "ሁ" U1201 # key h (base character ሀ)

(I feel so stupid for not noticing this all these days :-()

However, this introduces a new problem. The vowels (u, i, etc) are treated as dead characters even when the US English keyboard layout is active, and in that mode, pressing u or i does not work.

A possible solution for this would be to modify the XKB symbol file for Amharic, and make u, i, and the other "modifier" keys send in some bogus unicode values, which would be then handled by the Compose file.

Sergey/Bernie: Any suggestions ?

Erik: I'm taking this up again.

follow-up: ↓ 7   Changed 6 years ago by svu

If you look at the attachment in https://bugs.freedesktop.org/show_bug.cgi?id=11307 it uses direct unicode only. Your note regarding brackets seems valid to me.

There can be 2 solutions: introduce dead_u, dead_i etc in Xorg - and use them. Or, alternatively, move this Compose into the file for Ethiopean locale only. But in that locale English layout won't work, that's true.

in reply to: ↑ 6   Changed 6 years ago by sayamindu

  • status changed from new to assigned

Replying to svu:

If you look at the attachment in https://bugs.freedesktop.org/show_bug.cgi?id=11307 it uses direct unicode only. Your note regarding brackets seems valid to me. There can be 2 solutions: introduce dead_u, dead_i etc in Xorg - and use them. Or, alternatively, move this Compose into the file for Ethiopean locale only. But in that locale English layout won't work, that's true.

Thanks for the quick response, Sergey Wonder how the file with the brackets went into our builds - I'll investigate

As for the dead_u solution, I'll definitely take a look.

Thanks again :-).

Changed 6 years ago by sayamindu

Updated patch

  Changed 6 years ago by sayamindu

This is partially working in joyride 2253, I'll have to now make Xorg use dead_u, etc so that "u", etc are usable when the English keyboard is being used.

Changed 6 years ago by sayamindu

This updates the Compose file so that it does not handle the vowels as dead characters

Changed 6 years ago by sayamindu

Updated et symbol file to generate dead vowel characters

  Changed 6 years ago by sayamindu

  • next_action changed from diagnose to package

  Changed 6 years ago by sayamindu

  • keywords 8.2.0:+ joyride-2330:+ added
  • next_action changed from package to qa signoff

Works for me in Joyride 2330 and above.

  Changed 6 years ago by sayamindu

  • cc cscott added
  • next_action changed from qa signoff to add to release

Please add the following packages to the stable repo

  • xkeyboard-config-1.3-3.olpc3.noarch
  • libX11-1.1.4-3.olpc3.i386

The SRPMs (as well as the -devel package for libX11) is in /home/sayamindu/public_rpms/joyride in d.l.o

follow-up: ↓ 17   Changed 6 years ago by sayamindu

  Changed 6 years ago by cscott

  • next_action changed from add to release to approve for release

Needs to go through 'approve for release' state first.

  Changed 6 years ago by mstone

  • next_action changed from approve for release to add to release

  Changed 6 years ago by cscott

libX11 seems to be missing the -debuginfo- rpm; could you provide that, please?

  Changed 6 years ago by cscott

  • next_action changed from add to release to test in release

libX11.i386 0:1.1.4-3.olpc3 and xkeyboard-config-1.3-3.olpc3.noarch seem to have been added already in 756.

in reply to: ↑ 12   Changed 6 years ago by cloos

Replying to sayamindu:

For reference, my reply on the upstream bug report:

The new keysyms it defines overlay with existing syms.

fe70 through fe7a are already in use.

I like the concept — and advocated it in bug 11307 (cf comments 7 and on) — but we need to find a place for them.

Since your patch defines 12 dead vowels we’ll need at least a block of 16. Are you aware of the needs for a similar input style for other such scripts? Is there any chance we’ll eventually need more than 16 dead vowels?

In the 0xfe00 block it looks like the 0xfe40 and 0xfe80 through 0xfec0 blocks are free.

Using 0xfe40 would put the dead vowels right before the other dead keys. But using something like 0xfea0 would allow for more expansion.

Can you take a look through UnicodeData and check whether any other dead vowels would be useful for the currently-encoded scripts? A quick check suggests that the CANADIAN SYLLABICS, YI, VAI, LINEAR B, and CYPRIOT syllables as well as the CHEROKEE letters are relevant.

---

Obviously not all of those UCS blocks are likely to be input on the OLPC, but a comprehensive survey of dead vowel needs is still preferred. Will sixteen dead vowels slots be enough, or do we need thirty-two?

  Changed 6 years ago by mchua

  • deployment_affected set to Ethiopia

  Changed 6 years ago by sayamindu

Fixed in upstream as well. Closing this.

  Changed 6 years ago by sayamindu

  • status changed from assigned to closed
  • resolution set to fixed
Note: See TracTickets for help on using tickets.