Opened 6 years ago

Closed 6 years ago

Last modified 5 years ago

#7474 closed defect (fixed)

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
Blocked By: Blocking:
Deployments affected: Ethiopia Action Needed: test in release
Verified: no

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 (4)

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

Download all attachments as: .zip

Change History (24)

comment:1 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 ?

comment:2 Changed 6 years ago by erikg

  • Owner changed from sayamindu to erikg
  • Status changed from new to assigned

comment:3 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.

comment:4 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.

comment:5 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.

comment:6 follow-up: 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.

comment:7 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

comment:8 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

comment:9 Changed 6 years ago by sayamindu

  • Action Needed changed from diagnose to package

comment:10 Changed 6 years ago by sayamindu

  • Action Needed changed from package to qa signoff
  • Keywords 8.2.0:+ joyride-2330:+ added

Works for me in Joyride 2330 and above.

comment:11 Changed 6 years ago by sayamindu

  • Action Needed changed from qa signoff to add to release
  • Cc cscott added

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

comment:12 follow-up: Changed 6 years ago by sayamindu

comment:13 Changed 6 years ago by cscott

  • Action Needed changed from add to release to approve for release

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

comment:14 Changed 6 years ago by mstone

  • Action Needed changed from approve for release to add to release

comment:15 Changed 6 years ago by cscott

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

comment:16 Changed 6 years ago by cscott

  • Action Needed 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.

comment:17 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?

comment:18 Changed 6 years ago by mchua

  • Deployments affected set to Ethiopia

comment:19 Changed 6 years ago by sayamindu

Fixed in upstream as well. Closing this.

comment:20 Changed 6 years ago by sayamindu

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