Loading ...
Sorry, an error occurred while loading the content.

Re: [jasspa] Accented vowels

Expand Messages
  • Thomas Hundt
    Sorry, I misunderstood, I thought you said every app does it. Anyway: Guess what. I have a similar Ubuntu (breezy), and the same problem, on one of my
    Message 1 of 10 , Apr 9, 2006
    • 0 Attachment
      Sorry, I misunderstood, I thought you said every app does it.

      Anyway: Guess what. I have a similar Ubuntu (breezy), and the same
      problem, on one of my laptops. I get a similar behavior with the accent
      keys, if I switch it to the German layout or to Spanish. (NB I have a
      US keyboard machine.)

      As an aside, the Ubunto keyboard layout support is pretty annoying, in
      that it's hard to switch from one to the other, and I can't figure out
      how to get it to display an indicator in the corner of what layout I'm
      actually in (usually you can turn on a little marker that says EN or DE
      or whatever). I had to enable the Windows-like Shift+Alt toggle option,
      in addition to the Linux-typical both Alt keys one, to get back out of
      German at all. (It must be remapping the other Alt as AltGr and then
      not recognizing Alt+AltGr as a toggle combination.)

      Anyway: On mine, and I believe this is what Rodolfo is seeing, in
      Spanish layout mode, the '/" key (next to Enter) produces a 'Q'. I
      believe this is supposed to be an accent key (hit that, then hit the key
      you want to accent). I can tell I'm in Spanish because, for example,
      the ;/: key outputs an 'n~' (tilde on top of an 'n'). (In German, this
      key outputs an umlauted character, and the accent key is the =/+ key,
      which also outputs a 'Q', and if I hit Shift first, which would normally
      get me a different kind of accent, a 'P'. Aha!)

      None of which gets us any closer to a solution, but at least we know
      there's an issue.

      Just for fun, I tried looking at the keysims coming in using 'xev'.
      I'll post what I got below, but suffice it to say, it looks like they
      are working -- it's talking about diareses and other accent types, and
      not about '=' and '+'.

      And then it occurred to me to Google this whole mess. And lo, there
      seem to be issues. I don't know which one is relevant, don't have time
      to dig into it right now.

      This one seems to be related to my mode-switching problem:
      http://www.ubuntuforums.org/archive/index.php/t-75052.html
      http://bugzilla.ubuntu.com/show_bug.cgi?id=15372

      I love this:

      > Debian: You have two cows. One is very old and stable. Everyone milks the other cow.
      http://helllabs.org/blog/category/ubuntu/


      I have a feeling the answer is out there, and it's looking for us.

      -Th


      German layout keysims, when hitting +/= key, expected "accent"
      key:

      KeyPress event, serial 29, synthetic NO, window 0x3200001,
      root 0x3b, subw 0x0, time 418411795, (348,506), root:(368,624),
      state 0x2000, keycode 21 (keysym 0xfe51, dead_acute), same_screen YES,
      XLookupString gives 2 bytes: (c2 b4) "´"
      XmbLookupString gives 0 bytes:
      XFilterEvent returns: True

      KeyRelease event, serial 29, synthetic NO, window 0x3200001,
      root 0x3b, subw 0x0, time 418411859, (348,506), root:(368,624),
      state 0x2000, keycode 21 (keysym 0xfe51, dead_acute), same_screen YES,
      XLookupString gives 2 bytes: (c2 b4) "´"

      KeyPress event, serial 29, synthetic NO, window 0x3200001,
      root 0x3b, subw 0x0, time 418412001, (348,506), root:(368,624),
      state 0x2000, keycode 21 (keysym 0xfe51, dead_acute), same_screen YES,
      XLookupString gives 2 bytes: (c2 b4) "´"
      XmbLookupString gives 0 bytes:
      XFilterEvent returns: True

      KeyRelease event, serial 29, synthetic NO, window 0x3200001,
      root 0x3b, subw 0x0, time 418412057, (348,506), root:(368,624),
      state 0x2000, keycode 21 (keysym 0xfe51, dead_acute), same_screen YES,
      XLookupString gives 2 bytes: (c2 b4) "´"

      KeyPress event, serial 29, synthetic NO, window 0x3200001,
      root 0x3b, subw 0x0, time 418412191, (348,506), root:(368,624),
      state 0x2000, keycode 21 (keysym 0xfe51, dead_acute), same_screen YES,
      XLookupString gives 2 bytes: (c2 b4) "´"
      XmbLookupString gives 0 bytes:
      XFilterEvent returns: True

      KeyPress event, serial 29, synthetic NO, window 0x3200001,
      root 0x3b, subw 0x0, time 418412191, (348,506), root:(368,624),
      state 0x2000, keycode 0 (keysym 0xb4, acute), same_screen YES,
      XLookupString gives 0 bytes:
      XmbLookupString gives 2 bytes: (c2 b4) "´"
      XFilterEvent returns: False


      Keysims in Spanish keyboard layout, key '/", expected accent:

      KeyRelease event, serial 29, synthetic NO, window 0x3200001,
      root 0x3b, subw 0x0, time 418559732, (327,280), root:(342,375),
      state 0x2000, keycode 48 (keysym 0xfe51, dead_acute), same_screen YES,
      XLookupString gives 2 bytes: (c2 b4) "´"

      KeyPress event, serial 29, synthetic NO, window 0x3200001,
      root 0x3b, subw 0x0, time 418560178, (327,280), root:(342,375),
      state 0x2000, keycode 48 (keysym 0xfe51, dead_acute), same_screen YES,
      XLookupString gives 2 bytes: (c2 b4) "´"
      XmbLookupString gives 0 bytes:
      XFilterEvent returns: True

      KeyPress event, serial 29, synthetic NO, window 0x3200001,
      root 0x3b, subw 0x0, time 418560178, (327,280), root:(342,375),
      state 0x2000, keycode 0 (keysym 0xb4, acute), same_screen YES,
      XLookupString gives 0 bytes:
      XmbLookupString gives 2 bytes: (c2 b4) "´"
      XFilterEvent returns: False

      KeyRelease event, serial 29, synthetic NO, window 0x3200001,
      root 0x3b, subw 0x0, time 418560465, (327,280), root:(342,375),
      state 0x2000, keycode 48 (keysym 0xfe51, dead_acute), same_screen YES,
      XLookupString gives 2 bytes: (c2 b4) "´"

      KeyPress event, serial 29, synthetic NO, window 0x3200001,
      root 0x3b, subw 0x0, time 418562659, (327,280), root:(342,375),
      state 0x2000, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
      XLookupString gives 0 bytes:
      XmbLookupString gives 0 bytes:
      XFilterEvent returns: False

      KeyPress event, serial 29, synthetic NO, window 0x3200001,
      root 0x3b, subw 0x0, time 418562887, (327,280), root:(342,375),
      state 0x2001, keycode 48 (keysym 0xfe57, dead_diaeresis),
      same_screen YES,
      XLookupString gives 2 bytes: (c2 a8) "¨"
      XmbLookupString gives 0 bytes:
      XFilterEvent returns: True



      Rodolfo Valeiras Reina wrote, On 4/9/2006 11:53 AM:
      > Steven Phillips escribió:
      >> Are you using an X window or terminal ME session?
      >
      > X Window; I use a GNOME desktop. Tested also in a terminal.
      >
      > And what version of Linux?
      >
      > Ubuntu 5.10 (Breezy Badger), a Debian based distribution. The kernel is
      > 2.6.12.
      >
      >> Does this happen in other apps?
      >
      > Not. In others apps (command shell, gedit, Firefox... all others,
      > really) the function of the keyboard is normal, including the accented
      > letters. Maybe my poor English may have created confusion.
      >
      > If so could it be your setup as Tom suggests?
      >
      > The setup in Linux is correct; and also in ME, I think. Keyboard:
      > Espanol, Language: Espanol.
      >
      >> As a 'foolproof' temporary solution try the Accented letter abbreviation
      >> support. In user-setup -> General tab enable Abbrev Setup: Accent, once
      >> enabled, in a buffer you can type "~ n esc esc" (i.e. "~n" followed by esc
      >> esc) to replace the ~n with an accented n, or "' e esc esc" for e accute etc.
      >> This should make life a little easier.
      >
      > This works, thanks. But, as you say, it is only acceptable as temporary
      > solution.
      >
      > Thanks to you and Tom for the quick reply. JASSPA ME is great, but maybe
      > the best of all is this list!
      >
      > Rodolfo.
      >
      >> Steve
      >>
      >>
      >>> Subject: [jasspa] Accented vowels
      >>> From: saberquiero <rodoval@...>
      >>> Date: Sunday, April 9, 2006, 4:02:16 PM
      >>> To: jasspa@yahoogroups.com
      >>> Hi, I have using ME for years in Windows, but now I've just install it
      >>> in Ubuntu Linux, using the Patrick Das Gupta's package. All alright,
      >>> but an important (for me) detail: I don't may write accented spanish
      >>> vowels: when I press the acute accent key, an Q appears on screen. The
      >>> correct behaviour is waiting for the next key andt hen write the
      >>> proper character. Thus happens in other programs, as gedit, or the
      >>> command shell. It this problem solvable?
      >>> Regards,
      >>> Rodolfo Valeiras.
      >>
      >>
      >>
      >>
      >>
      >>
      >>> __________________________________________________________________________
      >>> This is an unmoderated list. JASSPA is not responsible for the content of
      >>> any material posted to this list.
      >>> To unsubscribe, send a mail message to
      >>> mailto:jasspa-unsubscribe@yahoogroups.com
      >>> or visit http://groups.yahoo.com/group/jasspa and
      >>> modify your account settings manually.
      >>
      >>>
      >>> Yahoo! Groups Links
      >>
      >>
      >>>
      >>
      >>
      >>
      >>
      >>
    • Jon Green
      ... I looked at this over the weekend. I think the code handling for XK_dead_xxxxxxxx needs to be changed in unixterm.c. I got the impression that these should
      Message 2 of 10 , Apr 10, 2006
      • 0 Attachment
        saberquiero wrote:
        > Hi, I have using ME for years in Windows, but now I've just install it
        > in Ubuntu Linux, using the Patrick Das Gupta's package. All alright,
        > but an important (for me) detail: I don't may write accented spanish
        > vowels: when I press the acute accent key, an Q appears on screen. The
        > correct behaviour is waiting for the next key andt hen write the
        > proper character. Thus happens in other programs, as gedit, or the
        > command shell. It this problem solvable?
        >
        > Regards,
        >
        > Rodolfo Valeiras.

        I looked at this over the weekend. I think the code handling for
        XK_dead_xxxxxxxx needs to be changed in unixterm.c. I got the impression
        that these should be treated as prefix keys. I do not fully understand
        what is being delivered to ME yet for a given set of key strokes. This
        information would be useful to have with the expected key.

        There are some printfs in unixterm.c that are useful to enable, this
        will list out what X is delivering.

        Yes it is solvable - just need to understand what is being delivered and
        what is expected to be output. Any further information would be useful.

        Jon.
      • Thomas Hundt
        I ll be happy to test whatever binaries you care to send. My box is a Thinkpad which is a normal i386 box. IMO the dead keys should be ignored by software
        Message 3 of 10 , Apr 10, 2006
        • 0 Attachment
          I'll be happy to test whatever binaries you care to send. My box is a
          Thinkpad which is a normal i386 box.

          IMO the "dead keys" should be ignored by software -- especially if
          grabbing them prevents some other processor from using them. (Not sure
          how this works in X: if one program accepts the keystroke, does that
          tell some other piece of software not to use it to modify the next
          keystroke?) The way they work is, you push them, then release them,
          then push the next one, then release it, and that one comes up accented.
          (Example: I shift to German mode, hit the '=' key, nothing happens,
          let it go, then hit the 'o' key and get an 'o' with an accent on top of it.)


          -Th


          Jon Green wrote, On 4/10/2006 1:36 AM:
          > saberquiero wrote:
          >> Hi, I have using ME for years in Windows, but now I've just install it
          >> in Ubuntu Linux, using the Patrick Das Gupta's package. All alright,
          >> but an important (for me) detail: I don't may write accented spanish
          >> vowels: when I press the acute accent key, an Q appears on screen. The
          >> correct behaviour is waiting for the next key andt hen write the
          >> proper character. Thus happens in other programs, as gedit, or the
          >> command shell. It this problem solvable?
          >>
          >> Regards,
          >>
          >> Rodolfo Valeiras.
          >
          > I looked at this over the weekend. I think the code handling for
          > XK_dead_xxxxxxxx needs to be changed in unixterm.c. I got the impression
          > that these should be treated as prefix keys. I do not fully understand
          > what is being delivered to ME yet for a given set of key strokes. This
          > information would be useful to have with the expected key.
          >
          > There are some printfs in unixterm.c that are useful to enable, this
          > will list out what X is delivering.
          >
          > Yes it is solvable - just need to understand what is being delivered and
          > what is expected to be output. Any further information would be useful.
          >
          > Jon.
          >
        • saberquiero
          ... key ... On my Spanish keyboard, to the right of the L is the Ñ (N tilde, ; and ... accent and acute accent, double and single quotes in US, I think). This
          Message 4 of 10 , Apr 10, 2006
          • 0 Attachment
            > Anyway: On mine, and I believe this is what Rodolfo is seeing, in
            > Spanish layout mode, the '/" key (next to Enter) produces a 'Q'. I
            > believe this is supposed to be an accent key (hit that, then hit the
            key
            > you want to accent).

            On my Spanish keyboard, to the right of the L is the Ñ (N tilde, ; and
            : in an US Keyboard), and to the right of Ñ, the " and ' (two points
            accent and acute accent, double and single quotes in US, I think).
            This is the key which outputs Q in ME. On top of this, to the right of
            the P, the ^ and ` key (cincunflex and grave accent, used in Frech; {
            and [ in US) outputs a P.

            I can tell I'm in Spanish because, for example,
            > the ;/: key outputs an 'n~' (tilde on top of an 'n'). (In German, this
            > key outputs an umlauted character, and the accent key is the =/+ key,
            > which also outputs a 'Q', and if I hit Shift first, which would
            normally
            > get me a different kind of accent, a 'P'. Aha!)
            >
            > None of which gets us any closer to a solution, but at least we know
            > there's an issue.
          • Rodolfo Valeiras Reina
            I also would like to help, if I m able. Only consider I m not an experienced Linux user. Rodolfo.
            Message 5 of 10 , Apr 10, 2006
            • 0 Attachment
              I also would like to help, if I'm able. Only consider I'm not an
              experienced Linux user.

              Rodolfo.

              Thomas Hundt escribió:
              > I'll be happy to test whatever binaries you care to send. My box is a
              > Thinkpad which is a normal i386 box.
              >
              > IMO the "dead keys" should be ignored by software -- especially if
              > grabbing them prevents some other processor from using them. (Not sure
              > how this works in X: if one program accepts the keystroke, does that
              > tell some other piece of software not to use it to modify the next
              > keystroke?) The way they work is, you push them, then release them,
              > then push the next one, then release it, and that one comes up accented.
              > (Example: I shift to German mode, hit the '=' key, nothing happens,
              > let it go, then hit the 'o' key and get an 'o' with an accent on top of it.)
              >
              >
              > -Th
              >
              >
              > Jon Green wrote, On 4/10/2006 1:36 AM:
              >> saberquiero wrote:
              >>> Hi, I have using ME for years in Windows, but now I've just install it
              >>> in Ubuntu Linux, using the Patrick Das Gupta's package. All alright,
              >>> but an important (for me) detail: I don't may write accented spanish
              >>> vowels: when I press the acute accent key, an Q appears on screen. The
              >>> correct behaviour is waiting for the next key andt hen write the
              >>> proper character. Thus happens in other programs, as gedit, or the
              >>> command shell. It this problem solvable?
              >>>
              >>> Regards,
              >>>
              >>> Rodolfo Valeiras.
              >> I looked at this over the weekend. I think the code handling for
              >> XK_dead_xxxxxxxx needs to be changed in unixterm.c. I got the impression
              >> that these should be treated as prefix keys. I do not fully understand
              >> what is being delivered to ME yet for a given set of key strokes. This
              >> information would be useful to have with the expected key.
              >>
              >> There are some printfs in unixterm.c that are useful to enable, this
              >> will list out what X is delivering.
              >>
              >> Yes it is solvable - just need to understand what is being delivered and
              >> what is expected to be output. Any further information would be useful.
              >>
              >> Jon.
              >>
              >
              >
              > __________________________________________________________________________
              >
              > This is an unmoderated list. JASSPA is not responsible for the content of
              > any material posted to this list.
              >
              > To unsubscribe, send a mail message to
              >
              > mailto:jasspa-unsubscribe@yahoogroups.com
              >
              > or visit http://groups.yahoo.com/group/jasspa and
              > modify your account settings manually.
              >
              >
              >
              > Yahoo! Groups Links
              >
              >
              >
              >
              >
              >
              >
            • Jon Green
              OK after digging into this a bit more then it is the compose that is causing a problem. I m running on Sun and just switched into French, so on the Sun
              Message 6 of 10 , Apr 10, 2006
              • 0 Attachment
                OK after digging into this a bit more then it is the compose that is
                causing a problem. I'm running on Sun and just switched into French, so
                on the Sun keyboard there is a special compose key (not sure what Linux
                does?) so I receive a XK_Multi_key event (xff20) which generates a
                space, then I can enter i' or 'i and get the appropriate accent.

                Tracing the input and using the compose status in the
                XLookupString(&event.xkey,keyStr,20,&keySym,&comp) I get:

                #1 got key ff20, ss=0 comp=0
                Adding ff key to buffer 32(0x0020)
                #1 got key ff20, ss=0 comp=1
                Adding ff key to buffer 32(0x0020)
                #1 got key 69, ss=0 comp=2
                Adding 00 key to buffer 105(0x0069)
                #1 got key ec, ss=0 comp=3
                Adding 00 key to buffer 236(0x00ec)

                So the compose does eventually produce the correct character and comp=0
                when we drop out of compose mode. Digging around the web I found the
                following which is probably what we need to add to process the strings.
                I'll have another play around with this tomorrow night.

                Jon.

                ++

                Some international lang conversion code example:

                case KeyPress:
                {
                Keysym keysym;
                Status status;
                int buflength;
                static int bufsize = 16;
                static char *buf = NULL;
                if (buf == NULL) {
                buf = malloc(bufsize);
                if (buf < 0) StopSequence();
                }
                buflength = XmbLookupString(ic, &event, buf, bufsize,
                &keysym, &status);
                /* first, check to see if that worked */
                if (status == XBufferOverflow) {
                buf = realloc(buf, (bufsize = buflength));
                buflength = XmbLookupString(ic, &event, buf, bufsize,
                &keysym, &status);
                }
                /* We have a valid status. Check that */
                switch(status) {
                case XLookupKeysym:
                DealWithKeysym(keysym);
                break;
                case XLookupBoth:
                DealWithKeysym(keysym);
                /* **FALL INTO** charcter case */
                case XLookupChars:
                DealWithString(buf, buflength);
                case XLookupNone:
                break;
                } /* end switch(status) */
                } /* end case KeyPress segment */
                break; /* we are in a switch(event.type) statement */
              Your message has been successfully submitted and would be delivered to recipients shortly.