Opened 11 years ago

Closed 5 years ago

#2098 closed enhancement (duplicate)

Polytonic keymap implementation

Reported by: kaoutsis Owned by: nobody
Priority: low Milestone: Unscheduled
Component: - General Version:
Keywords: Cc:
Blocked By: #9744 Blocking:
Has a Patch: no Platform: All

Description


Attachments (4)

polytonic-table.txt (1.5 KB ) - added by kaoutsis 11 years ago.
windowsXpMapping.txt (479 bytes ) - added by kaoutsis 11 years ago.
text-to-write-alkistis.txt (3.4 KB ) - added by kaoutsis 11 years ago.
Greek-polytonic-tmp.keymap (17.8 KB ) - added by kaoutsis 11 years ago.

Download all attachments as: .zip

Change History (19)

comment:2 by kaoutsis, 11 years ago

Some notes regarding the polytonic keymap implementation:

There are 7 vowels 1) alpha α 2) epsilon ε 3) omicron ο 4) omega ω 5) iota ι 6) eta η 7) upsilon υ (all small and capital letters).

there are 9! tokens, that can be stand alone or combined with others: accents: oxia ´ (=> acute) varia ` (=> grave) perispomeni ῀ (=> circumflex)

pneumata (think of these as some kind of accents): psili ᾽ dasia ῾

dialytika (=> dieresis): ¨

phonetics quantity: vracy macron

ypogegrammeni: ι ypogegrammeni is for small letters, prosgegrammeni for capitals; actually, these stand for 'iota' but since combined with the other vowels, think of this as a token.

And finally, there are 25! discernible common combinations, (for small letters and the corresponding 25 combinations for capitals), not all vowels have them all, but the most of them do have and are widely used: 1) vowels plus oxia: ά, έ, ί, ό, ύ, ώ, ή 2) vowels plus varia: ὰ, ὲ, ὴ, ὶ, ὸ, ὺ, ὼ 3) vowels plus perispomeni: ᾶ, ῆ, ῦ, ῶ 4) vowels plus psili: ἀ, ἐ, ἠ, ὀ, ὐ, ἰ, ὠ 5) vowels plus dasia: ἁ, ἑ, ἡ, etc 6) vowels plus oxia plus psili: ἄ, etc 7) vowels plus oxia plus psili plus ypogegrammeni: ᾄ, etc 8) vowels plus oxia plus dasia: ἅ, etc 9) vowels plus oxia plus dasia plus ypogegrammeni: ᾅ, etc 10) vowels plus varia plus psili: ἂ, etc 11) vowels plus varia plus psili plus ypogegrammeni: ᾂ, etc 12) vowels plus varia plus dasia: ἃ, etc 13) vowels plus varia plus dasia plus ypogegrammeni: ᾃ, etc 14) vowels plus perispomeni plus psili: ἆ, etc 15) vowels plus perispomeni plus psili plus ypogegrammeni: ᾆ, etc 16) vowels plus perispomeni plus dasia: ἇ, etc 17) vowels plus perispomeni plus dasia plus ypogegrammeni: ᾇ, etc 18) vowels plus perispomeni plus ypogegrammeni: ᾷ, etc 19) vowels plus dialytika: ϋ, ϊ 20) vowels plus dialytika plus oxia: ΐ, ΰ 21) vowels plus dialytika plus varia: ῒ. ῢ 22) vowels plus dialytika plus perispomeni: ῗ, ῧ 23) vowels plus ypogegrammeni: ᾳ 24) vowels plus vracy: ῠ, ῐ, ᾰ 25) vowels plus macron: ῡ, ῑ, ᾱ

As i said earlier all above combinations applied also for capitals. We have 5 modifiers: acute, grave, dieresis, circumflex, tilde, adding the Option key gives sum: 6

An example, the following options are assigned randomly: 1) Circumflex to handle psili and varia together 2) tilde to handle dasia and varia 3) dieresis to handle psili and oxia 4) grave to handle dasia and oxia 5) acute to handle perispomeni and dasia 6) option key to handle perispomeni and psili

there aren't any other modifiers for the rest combinations. I can't think any other solution, except from extending the keymap program.

After some digging i cite the way, which windows vista is handling polytonic: (personally i don't like, the key mapping that vista has) ά <= ; α ΐ <= shift w ι ἁ <= shift ' α ὰ <= ] α ϊ <= shift ; ι ἂ <= \ α ᾶ <= [ α ῒ <= shift ~ ι ἃ <= shift \ α ἀ <= ' α ᾳ <= shift [ α ᾱ <= - α ἆ <= = α ᾰ <= shift - α ἇ <= shift = α ἄ <= / α ἅ <= shift / α

From what i can understand, vista doesn't combine modifiers together, but has more than 6 modifiers (16 maybe?)

An other problem is of course if we should follow the vista way for compatibility reasons, or we should make our own more logical mapping way.

Conclusion: According to my opinion there are three ways: a) Making Greek-polytonic depend on Greek keymap: Greek-polytonic will have only the new characters 5-6 modifiers are enough: with only one modifier we could map ~25-30 letters, but if we need a letter without accents we must switch to Greek keymap This method is the ugliest!

to the two solutions bellow be have to extend somehow the keymap program:

b) Using vista method (less ugly from the previous) We have to add more modifiers.

c) Combine modifiers together (an probably adding some new) that is my idea: an example from ypothetical Greek-polytonic.keymap, [...] Grave ' ' = 0xe1bfaf # varia Grave 0xceb1 = 0xe1bdb0 # small letter alpha plus varia [...] Tilde ' ' = 0xe1bebd # psili Tilde 0xceb1 = 0xe1bc80 # small letter alpha plus psili [...] Grave Tilde 0xceb1 = 0xe1bc82 # small letter alpha plus varia plus psili

This is not currently possible, needs to extend the program to do that.

One that wanted a small letter alpha plus varia plus psili, he could press the key for varia, then the key for psili and finally small alpha; (if he presses only varia, and then if he presses no other key for modifiers, he will get a vowel with varia).

comment:3 by axeld, 11 years ago

How is this done in other systems? To me, it looks like an input method might be the better choice - in any case, we should copy what people are actually using.

in reply to:  3 comment:7 by kaoutsis, 11 years ago

Replying to axeld:

How is this done in other systems?

There are two popular standard ways: a) windows way b) mac way what's the difference?

  • They are quite similar, with some small mapping differences:

For instance, in mac way to type an alpha with a macron mark (ᾱ), you have to press the Shift and Option key and L key, then you have to press the alpha key. In Windows, to achive the same you have to press '-' and the alpha key. There are a few more minor mapping differences.

  • mac way seems to be more flexible (i don't have a mac for testing, the assumption

came from reading, it seems they have implemented my idea): multiple diacritics may appear over a single letter by typing the desired accent keystrokes in any order, besides the common way that they both have.

To me, it looks like an input method might be the better choice -

If i am correct, none seems to using input method for polytonic, if this is a argument :-) i don't know how this can be implemented.

in any case, we should copy what people are actually using.

Copy mac or windows way (essentially are the same) we have to increase the number of modifiers, which currently are: acute, grave, dieresis, circumflex, tilde, adding the Option key gives sum: 6

comment:9 by kaoutsis, 11 years ago

Milestone: R1Unscheduled
Priority: normallow

by kaoutsis, 11 years ago

Attachment: polytonic-table.txt added

by kaoutsis, 11 years ago

Attachment: windowsXpMapping.txt added

by kaoutsis, 11 years ago

Attachment: text-to-write-alkistis.txt added

by kaoutsis, 11 years ago

Attachment: Greek-polytonic-tmp.keymap added

comment:12 by kaoutsis, 11 years ago

if i modify the struct key_map in headers/os/interface/InterfaceDefs.h http://haiku.it.su.se:8180/source/xref/headers/os/interface/InterfaceDefs.h#86 by adding some more members, for example: int32 rough_breathing_dead_key[32]; and uint32 rough_breathing_tables; and to all other needed places, do i break hrev5 compatibility, and if so that breakage is really important for other apps? This change if is allowed, it will give the capability to add more dead keys to keymaps.

comment:13 by axeld, 11 years ago

That would break compatibility, so it would be something that we can do for the GCC 4 port only.

comment:14 by axeld, 10 years ago

Owner: changed from axeld to nobody
Version: R1/pre-alpha1

comment:15 by pulkomandy, 5 years ago

Blocked By: 9744 added
Resolution: duplicate
Status: newclosed
Note: See TracTickets for help on using tickets.