Re: Experiments with classical Greek keyboard input

2006-04-14 Thread Jan Willem Stumpel
Joe Schaffner wrote:

 Hello Thomas,

 It looks like we're all looking for non-standard ways to
 capture polytonic Greek in Linux. This must mean no keymap
 exists. Given one hundred years I'll figure out xkb and write
 one.

xkb is not so difficult to figure out. At the moment you can
already enter polytonic Greek with it, and if you set the
Greek/Latin switch to a single key (I use left-windows), entering
mixed text consisting of Greek and Latin is not difficult.

The problem is: what is, from a user point of view, the desired
behaviour of the keyboard? At the moment xkb gr(polytonic) has:

key  US  GR  keysym  with   gives
AD11   [   [   dead_tilde   α   ᾶ  (perispomeni)
shiftAD11  {   {   dead_diaeresis   υ (=y)  ϋ  (dialytika)
altgrAD12  «   dead_macron  α   ᾱ  (macron)

AD12   ]   ]   dead_iotaα   ᾳ  (iota subscript)
shiftAD12  }   }   VoidSymbol   α   α  (does nothing)
altgrAD12  »   dead_breve   α   ᾰ  (breve)

AC10   ;   ´   dead_acute   α   ά  (tonos/oxia)
shiftAC10  :   ¨   dead_hornα   ἀ  (psili)
altgrAC10  ΅   [not defined]α   α  (does nothing)

AC11   '   '   dead_grave   α   ὰ  (varia)
shiftAC11dead_ogonek  α   ἁ  (dasia)
altgrAC11  [not defined]α   α  (does nothing)

AC and AD indicate the third and fourth keyboard row from below,
respectively. The number indicates the position of the key
counting from the left, but not counting shift, capslock, tab.

The column US shows which symbols are engraved on the physical
keys of a standard US PC 104 keyboard. The column GR shows what
is engraved on the physical keys of a Greek keyboard, according to
Wikipedia (http://en.wikipedia.org/wiki/Keyboard_layout#Greek). I
do not know how standard this is (in Greece).

The keysyms dead_ogonek and dead_horn are only interpreted as
dasia and psili if the locale is el_GR.UTF-8. To use gr(polytonic)
with 'international' UTF-locales, these keysyms should be replaced
by 0x1000314 and 0x1000313 respectively (edit the file
/etc/X11/xkb/symbols/pc/gr).

Combinations, like ᾄ, are also possible; you have to use a fixed
order:

-- iota subscript first
-- accent second
-- breathing third

So for ᾧ you woud enter the keystroke sequence (keys as marked on
a US keyboard) ][v. [The order, I admit, seems unnatural. The
order that you propose looks better. This can be changed in the
Compose file, and maybe it should be filed as a bug -- but where?
Where does the Compose file come from?]

This works in openoffice, mozilla, and any text-mode editor you like.

The question is, is this a workable system in practice? I am sure
any desired keyboard behaviour could easily be made to work with
the tools we have (editing the files in /etc/X11/xkb and the
Compose file).

For instance, earlier on the list, Simos Xenitellis called
attention to a proposal for polytonic handling in Linux:
http://planet.hellug.gr/misc/polytonic/

This document has some keyboard combination tables of which a
small part is given below:

tonos/oxia ΄Dead key (;) + vowel
dialytika ¨ Dead key (:) + vowel (only υ, ι)
perispomeni ῀   Dead key ([) + vowel
iota subscript ͺDead key ({) + vowel
psili ᾿ Dead key (') + vowel/ρ
dasia ῾ Dead key () + vowel/ρ
varia ` Dead key (/) + vowel
macron ¯Dead key (]) + vowel
breve ˘ Dead key (}) + vowel

Only a few of those are the same as what xkb now provides, but it
is easy to change /etc/X11/xkb/symbols/pc/gr to give it this
behaviour:

xkb_symbols polytonic {

include pc/el(extended)

name[Group1] = Greece - Polytonic;

key AD11 { [   dead_tilde,   dead_iota   ] };
key AD12 { [   dead_macron,  dead_breve  ] };
key AC10 { [   dead_acute,   dead_diaeresis  ] };
key AC11 { [   0x1000313,0x1000314   ] };
key AB10 { [   dead_grave,   question] };
};

This of course makes the / key dead. The AltGr key is no longer
used. The Compose file does not have to be changed, but if the
other characters mentioned in the 'proposal' would have to be
entered (koppa, digamma, etc.) a few lines should be added to it.

Would this be easier to use than the present xkb system? I don't
know.

Thomas Wolff suggests using 'unused' keys like F6 for oxia, etc.
Again, I think that usability is the most important criterion for
the choice. To type Greek you would have to switch your keyboard
from Latin to Greek anyway. In the 'Greek' state all keys can get
a different function. Ideally the 'Greek' keys would do similar
things to 'Latin' keys (i.e. dead tilde would become dead
perispomeni, dead acute would become dead tonos, perhaps alt-i
could become dead_iota, etc.). But there does not seem to be a
special need to look for 'unused' keys, because in 'Greek' mode,
keys can be re-used.

Finally, would the system which is available on Windows XP

Re: Experiments with classical Greek keyboard input

2006-04-14 Thread Joe Schaffner
Thanks Jan,

Your message gave me some encouragement. I'll try starting the
gr(polytonic) map again tomorrow, and experiment with the dead keys,
but I don't have much time to lose. It took me 2 or 3 hours to do the
perl script, and I have lost days experimenting with system software.

The problem I have with system software is that it usually makes a
fool out of me, and I don't find the xkb intuitive at all. By
intuitive, I mean it reads my mind and does what I want.

I found the mono Greek map quite intuitive, but I believe I saw a
program somewhere which had a Gui keyboard with all the keys marked. I
was wondering, is there anyway to see the poly greek keyboard on my
system?

 Ceterum censeo /usr/lib/X11/locale/el_GR.UTF-8/Compose esse delendam.

I was happy to find it, because it listed all the poly greek
characters, but I was a bit surprised to find it in a 'locale'
directory, well, in an X11/locale directory. I'd eventually like to
sort out the locale and the keymap stuff, because at first glance, I
don't know what one has to do with the other.

Joe
http://modern-greek-verbs.tripod.com/

PS

I found a key conflict with my program. Sometimes I need to enclose
greek text inside parentheses, like this:

(εἶμεν)

[damn, these windows fonts suck]

In this case I don't want dasia epsilon and I don't want a space
between the LP and the epsilon, so I encoded the text like this

(me)~ιμεν)

The m is an undefined tag which the browser conveniently throws
away, respecting the spacing, like a b or an i.

I realize my program only works on text files. It won't help entering
poly Greek into OO, but I do all my work in gedit.

===

On 4/14/06, Jan Willem Stumpel [EMAIL PROTECTED] wrote:
 Joe Schaffner wrote:

  Hello Thomas,
 
  It looks like we're all looking for non-standard ways to
  capture polytonic Greek in Linux. This must mean no keymap
  exists. Given one hundred years I'll figure out xkb and write
  one.

 xkb is not so difficult to figure out. At the moment you can
 already enter polytonic Greek with it, and if you set the
 Greek/Latin switch to a single key (I use left-windows), entering
 mixed text consisting of Greek and Latin is not difficult.

 The problem is: what is, from a user point of view, the desired
 behaviour of the keyboard? At the moment xkb gr(polytonic) has:

 key  US  GR  keysym  with   gives
 AD11   [   [   dead_tilde   α   ᾶ  (perispomeni)
 shiftAD11  {   {   dead_diaeresis   υ (=y)  ϋ  (dialytika)
 altgrAD12  «   dead_macron  α   ᾱ  (macron)

 AD12   ]   ]   dead_iotaα   ᾳ  (iota subscript)
 shiftAD12  }   }   VoidSymbol   α   α  (does nothing)
 altgrAD12  »   dead_breve   α   ᾰ  (breve)

 AC10   ;   ´   dead_acute   α   ά  (tonos/oxia)
 shiftAC10  :   ¨   dead_hornα   ἀ  (psili)
 altgrAC10  ΅   [not defined]α   α  (does nothing)

 AC11   '   '   dead_grave   α   ὰ  (varia)
 shiftAC11dead_ogonek  α   ἁ  (dasia)
 altgrAC11  [not defined]α   α  (does nothing)

 AC and AD indicate the third and fourth keyboard row from below,
 respectively. The number indicates the position of the key
 counting from the left, but not counting shift, capslock, tab.

 The column US shows which symbols are engraved on the physical
 keys of a standard US PC 104 keyboard. The column GR shows what
 is engraved on the physical keys of a Greek keyboard, according to
 Wikipedia (http://en.wikipedia.org/wiki/Keyboard_layout#Greek). I
 do not know how standard this is (in Greece).

 The keysyms dead_ogonek and dead_horn are only interpreted as
 dasia and psili if the locale is el_GR.UTF-8. To use gr(polytonic)
 with 'international' UTF-locales, these keysyms should be replaced
 by 0x1000314 and 0x1000313 respectively (edit the file
 /etc/X11/xkb/symbols/pc/gr).

 Combinations, like ᾄ, are also possible; you have to use a fixed
 order:

 -- iota subscript first
 -- accent second
 -- breathing third

 So for ᾧ you woud enter the keystroke sequence (keys as marked on
 a US keyboard) ][v. [The order, I admit, seems unnatural. The
 order that you propose looks better. This can be changed in the
 Compose file, and maybe it should be filed as a bug -- but where?
 Where does the Compose file come from?]

 This works in openoffice, mozilla, and any text-mode editor you like.

 The question is, is this a workable system in practice? I am sure
 any desired keyboard behaviour could easily be made to work with
 the tools we have (editing the files in /etc/X11/xkb and the
 Compose file).

 For instance, earlier on the list, Simos Xenitellis called
 attention to a proposal for polytonic handling in Linux:
 http://planet.hellug.gr/misc/polytonic/

 This document has some keyboard combination tables of which a
 small part is given below:

 tonos/oxia ΄Dead key (;) + vowel
 dialytika ¨ Dead key (:) + vowel (only υ, ι)
 perispomeni ῀