Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.debian.user > #224662

Re: Using .XCompose

From davidson <davidson@freevolt.org>
Newsgroups linux.debian.user
Subject Re: Using .XCompose
Date 2020-07-09 23:50 +0200
Message-ID <AqMAx-8gV-3@gated-at.bofh.it> (permalink)
References <Aps1b-c3-3@gated-at.bofh.it> <Aps1b-c3-1@gated-at.bofh.it> <ApEOJ-839-3@gated-at.bofh.it> <ApPqO-686-19@gated-at.bofh.it> <ApXy1-2Jo-7@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


[Multipart message — attachments visible in raw view] - view raw

I have conducted an experiment with the following ~/.XCompose file,
and tried to document it relatively thoroughly below.

It is my hope that OP and/or others may find some of this
(unfortunately rather voluminous) information helpful or at least
somewhat interesting, though it is difficult for me to know precisely
whether or how they will be able to use it.

Of course, to interpret any meaning from the results presented here,
the context/environment in which the test was conducted matters
greatly. Details about my system are attached, in the file
"system_synposis_bbhuit.txt". (In case that attachment gets lost
somehow, I will simply post the same information in a follow-up
message.)


%% THREE XCOMPOSE RULES to test

$ cat ~/.XCompose
include "%L"
<U0D19>   : "ങ്ങ" # Ajith's auto-geminate rule, (U0D19) => (U0D19) (U0D4D) (U0D19)
<Multi_key> <s> <x> : "✄"  # (U2704) white scissors, h/t David Wright
<Z>                 : "ARGA WARGA IN THE DARGA instead of Z"

I started an X Window session, and then in a few applications I tested
whether the three custom rules above were effective.

For the tests, I used a couple of terminal emulators for X (xterm and
mlterm) and a couple of graphical web browsers (firefox-esr and
qutebrowser):

davidson@bbhuit:0 ~$ dpkg-query -l --no-pager xterm mlterm firefox-esr qutebrowser 
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version              Architecture Description
+++-==============-====================-============-============================================================
ii  firefox-esr    68.10.0esr-1~deb10u1 amd64        Mozilla Firefox web browser - Extended Support Release (ESR)
ii  mlterm         3.8.6-2              amd64        MultiLingual TERMinal
ii  qutebrowser    1.6.1-2              all          Keyboard-driven, vim-like browser based on PyQt5
ii  xterm          344-1                amd64        X terminal emulator


%% ARGA WARGA

The third rule ('Z' => "ARGA WARGA...Z") was easiest to test:

  1. Open the application. (If necessary, navigate to a text entry field.)
  2. (While under "us" keyboard layout) strike the key labeled "Z" on my
     standard US laptop keyboard
  3. Observe whether

       ARGA WARGA IN THE DARGA instead of Z

     is printed.

The two terminal emulators passed this test. The graphical web browsers failed
in an interesting way. Instead of displaying

      ARGA WARGA IN THE DARGA instead of Z

in the text entry field, they displayed just

      A

Also, upon starting up (but only on the first start-up since
installation of the three rules in ~/.XCompose) , firefox-esr issued
the following errors, which appear to be explanatory:

  (firefox-esr:11619): Gtk-WARNING **: 16:27:05.630: GTK+ supports to output one char only:
  "ങ്ങ" # Ajith's auto-geminate rule, (U0D19) => (U0D19) (U0D4D) (U0D19):
  <U0D19>   : "ങ്ങ" # Ajith's auto-geminate rule, (U0D19) => (U0D19) (U0D4D) (U0D19)

  (firefox-esr:11619): Gtk-WARNING **: 16:27:05.630: GTK+ supports to output one char only:
  "ARGA WARGA IN THE DARGA instead of Z":
  <Z>                 : "ARGA WARGA IN THE DARGA instead of Z"

(I have split each error into three separate lines above to improve legibility.)

Although both web browsers performed identically, failing in the same
way, only firefox-esr issued this explanatory error message.

Unlike firefox-esr, qutebrowser does not use libgtk (do "apt-cache
depends qutebrowser" to see its dependencies), but both graphical web
browsers failed this test identically.


%% WHITE SCISSORS

The second rule (David Wright's white scissors rule) was tested as
follows:

  1. Open the application. (If necessary, navigate to a text entry field.)

  2. Under "us" keyboard layout, hold down the compose key. Strike the
     key labeled "S" on my standard US laptop keyboard. Release the
     compose key. Strike the key labeled "X".

  3. Observe whether

         ✄

    is printed.

All four applications passed this test. (I should mention that I have
noticed that sometimes when I use the compose key, it seems to get
ignored on the first try. It happens frequently enough that it has
become second nature to me to simply backspace and try again, when
this happens. Whether this is human error, or something else, is not
something I have spent time investigating. Whatever the cause, it does
not trouble me more than other commonly self-inflicted typos do.)

NB: If, like me, you occasionally confuse the Ctrl key with the
compose key, then keep in mind that when testing this rule in a
terminal emulator, that typing Ctrl-s (presumably by accident) may
well stop the terminal from echoing entered characters to the display
until you enter Ctrl-q to resume normal terminal operation. (That is
to say, Ctrl-s doesn't "break your keyboard", it only pauses your
terminal's printout to the display until you resume it with Ctrl-q.)


%% AUTO-GEMINATION

Finally. The first rule in the ~/.XCompose file above

   <U0D19>   : "ങ്ങ" # Ajith's auto-geminate rule, (U0D19) => (U0D19) (U0D4D) (U0D19)

I tested as follows (after installing the "Lohit TrueType font for
Malayalam Language" package, fonts-lohit-mlym):

  1. I opened an xterm (uxterm, actually) and issued the following
     command to alter the X Window display keymap:

     $ setxkbmap -display $DISPLAY -layout us,in -variant ,mal

     This configures --as my alternate keyboard layout in the current X
     display-- the variant "mal" (malayalam) of the "in" (indian)
     keyboard layout, so that switching to the alternate layout will
     permit me to enter malayalam characters.

     On my system, the longer command below is equivalent to the
     command above, because the setting for XKBOPTIONS that the longer
     command specifies (with the -option flag), is already set as a
     default in my /etc/default/keyboard (see attached system synopsis
     for details of this):

     $ setxkbmap -display $DISPLAY -layout us,in -variant ,mal -option grp:caps_toggle

     I mention this equivalence because the longer command makes
     explicit whick key permits me to switch from my main "us" keyboard
     layout to the alternate layout "in.mal" (and back again).

     NB: In these commands, make note of the commas. In particular the
     comma in ",mal" is not a typo.

     NBB: I believe at least one other poster here correctly urged
     caution when experimenting with setxkbmap. You can render your
     keyboard non-functional in the X session. Have a plan for shutting
     down the X session without the use of your keyboard.

  2. To test applications besides xterm itself, I launched the
     application from the xterm just opened. (When testing xterm, I
     skipped this step.)

       $ mlterm # or firefox-esr or qutebrowser

  3. If necessary, navigate to a text entry field.

  4. Strike the capslock key to switch to the alternate keyboard
     layout configured in step 1.

  5. Hold down the shift key. Strike the key labeled "U" on my standard
     US laptop keyboard.

  6. Observe whether

        ങ്ങ

     is printed, according to the custom auto-geminate rule in ~/.XCompose.

The terminal emulators passed this test. The graphical web browsers
failed, instead printing only

        ങ

The error message from firefox-esr above seems to suggest why that is.

Another thing I think is interesting is that while the terminal
emulators did pass this test and the browsers failed, it is only the
graphical web browsers which seem to transform/meld a typed sequence
of

   "ങ" followed by "്" followed by "ങ"

into what appears (to my utterly ignorant eye) to be a "freshly
synthetic" glyph. (That three-character sequence is typed, on my
standard US laptop keyboard under the "in.mal" keyboard layout, by
striking the "U" key while holding down shift, then striking the "D"
key (unshifted), and then again striking the "U" key while holding
down shift.)

Finally, in case it is of interest to anyone, in the attached file
"xev_output_annotated.txt" is some xev(1) output with commentary that
gives a detailed close-up of performing steps 4 through 6 in an
xterm. (As with the system synopsis, if it happens to "get lost" I'll
just post it the message body of a follow-up.)

Back to linux.debian.user | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Using .XCompose Ajith R <ajithramayyan@yahoo.co.in> - 2020-07-06 07:40 +0200
  Re: Using .XCompose Greg Wooledge <wooledg@eeg.ccf.org> - 2020-07-06 14:30 +0200
  Re: Using .XCompose Zenaan Harkness <zenaan@freedbms.net> - 2020-07-06 14:50 +0200
  Re: Using .XCompose davidson <davidson@freevolt.org> - 2020-07-06 21:20 +0200
    Re: Using .XCompose davidson <davidson@freevolt.org> - 2020-07-06 22:40 +0200
      Re: Using .XCompose Ajith R <ajithramayyan@yahoo.co.in> - 2020-07-07 17:20 +0200
    Re: Using .XCompose davidson <davidson@freevolt.org> - 2020-07-07 08:40 +0200
      Re: Using .XCompose Ajith R <ajithramayyan@yahoo.co.in> - 2020-07-07 17:20 +0200
        Re: Using .XCompose davidson <davidson@freevolt.org> - 2020-07-09 23:50 +0200
          Re: Using .XCompose [resend of xev_output_annotated.txt] davidson <davidson@freevolt.org> - 2020-07-10 03:40 +0200
          Using .XCompose Ajith R <ajithramayyan@yahoo.co.in> - 2020-07-10 10:50 +0200
            Re: Using .XCompose davidson <davidson@freevolt.org> - 2020-07-11 10:40 +0200
              Re: Using .XCompose davidson <davidson@freevolt.org> - 2020-07-11 12:30 +0200
                Re: Using .XCompose Ajith R <ajithramayyan@yahoo.co.in> - 2020-07-12 17:00 +0200
                Re: Using .XCompose David Wright <deblis@lionunicorn.co.uk> - 2020-07-13 06:00 +0200
                Re: Using .XCompose Greg Wooledge <wooledg@eeg.ccf.org> - 2020-07-13 14:00 +0200
                Re: Using .XCompose Ajith R <ajithramayyan@yahoo.co.in> - 2020-07-13 20:30 +0200
                Re: Using .XCompose Greg Wooledge <wooledg@eeg.ccf.org> - 2020-07-13 20:40 +0200
                Re: Using .XCompose Ajith R <ajithramayyan@yahoo.co.in> - 2020-07-13 20:50 +0200
                Re: Using .XCompose David Wright <deblis@lionunicorn.co.uk> - 2020-07-13 21:50 +0200
                Re: Using .XCompose Ajith R <ajithramayyan@yahoo.co.in> - 2020-07-14 05:40 +0200
                Fw: Using .XCompose Ajith R <ajithramayyan@yahoo.co.in> - 2020-07-15 16:50 +0200
                Fw: Using .XCompose Ajith R <ajithramayyan@yahoo.co.in> - 2020-07-15 17:10 +0200
                Fw: Using .XCompose Ajith R <ajithramayyan@yahoo.co.in> - 2020-07-15 17:20 +0200
                Re: Using .XCompose davidson <davidson@freevolt.org> - 2020-07-16 01:30 +0200
                Re: Using .XCompose davidson <davidson@freevolt.org> - 2020-07-16 02:40 +0200
                Re: Using .XCompose Ajith R <ajithramayyan@yahoo.co.in> - 2020-07-16 20:40 +0200
                how u mine 4 utf8 [was Re: Using .XCompose] davidson <davidson@freevolt.org> - 2020-07-18 03:20 +0200
                UTF-8 Everywhere -- Re: how u mine 4 utf8 [was Re: Using .XCompose] Zenaan Harkness <zenaan@freedbms.net> - 2020-07-18 07:40 +0200
                Re: how u mine 4 utf8 [was Re: Using .XCompose] davidson <davidson@freevolt.org> - 2020-07-18 09:20 +0200
                Re: how u mine 4 utf8 [was Re: Using .XCompose] Ajith R <ajithramayyan@yahoo.co.in> - 2020-07-19 13:00 +0200
                Fw: how u mine 4 utf8 [was Re: Using .XCompose] Ajith R <ajithramayyan@yahoo.co.in> - 2020-07-19 12:50 +0200
                Re: Fw: how u mine 4 utf8 [was Re: Using .XCompose] Tom Browder <tom.browder@gmail.com> - 2020-07-19 13:10 +0200
                Re: how u mine 4 utf8 [was Re: Using .XCompose] Ajith R <ajithramayyan@yahoo.co.in> - 2020-07-19 13:50 +0200
                sed:awk:perl::rock:paper:chainsaw [was Re: Using .XCompose] davidson <davidson@freevolt.org> - 2020-07-18 12:10 +0200
                Re: sed:awk:perl::rock:paper:chainsaw [was Re: Using .XCompose] Zenaan Harkness <zenaan@freedbms.net> - 2020-07-18 12:50 +0200
                Re: sed:awk:perl::rock:paper:chainsaw [was Re: Using .XCompose] William Michels <wjm1@caa.columbia.edu> - 2020-07-18 22:00 +0200
                Re: sed:awk:perl::rock:paper:chainsaw [was Re: Using .XCompose] Andrei POPESCU <andreimpopescu@gmail.com> - 2020-07-18 13:20 +0200
                Re: sed:awk:perl::rock:paper:chainsaw [was Re: Using .XCompose] songbird <songbird@anthive.com> - 2020-07-18 21:00 +0200
                Re: sed:awk:perl::rock:paper:chainsaw [was Re: Using .XCompose] <tomas@tuxteam.de> - 2020-07-18 16:00 +0200
                Re: sed:awk:perl::rock:paper:chainsaw [was Re: Using .XCompose] mick crane <mick.crane@gmail.com> - 2020-07-18 22:40 +0200
                Re: sed:awk:perl::rock:paper:chainsaw [was Re: Using .XCompose] <tomas@tuxteam.de> - 2020-07-18 23:10 +0200
                Re: sed:awk:perl::rock:paper:chainsaw [was Re: Using .XCompose] mick crane <mick.crane@gmail.com> - 2020-07-18 23:30 +0200
                Re: sed:awk:perl::rock:paper:chainsaw [was Re: Using .XCompose] <tomas@tuxteam.de> - 2020-07-19 10:40 +0200
                Re: sed:awk:perl::rock:paper:chainsaw [was Re: Using .XCompose] mick crane <mick.crane@gmail.com> - 2020-07-20 13:20 +0200
                Re: sed:awk:perl::rock:paper:chainsaw [was Re: Using .XCompose] David Christensen <dpchrist@holgerdanske.com> - 2020-07-19 01:50 +0200
                Re: sed:awk:perl::rock:paper:chainsaw [was Re: Using .XCompose] Ajith R <ajithramayyan@yahoo.co.in> - 2020-07-19 12:50 +0200
                Re: sed:awk:perl::rock:paper:chainsaw [was Re: Using .XCompose] David Christensen <dpchrist@holgerdanske.com> - 2020-07-19 23:30 +0200
                Re: sed:awk:perl::rock:paper:chainsaw [was Re: Using .XCompose] Ajith R <ajithramayyan@yahoo.co.in> - 2020-07-19 13:40 +0200
                Re: sed:awk:perl::rock:paper:chainsaw [was Re: Using .XCompose] William Michels <wjm1@caa.columbia.edu> - 2020-07-19 21:50 +0200
                Re: sed:awk:perl::rock:paper:chainsaw [was Re: Using .XCompose] David Wright <deblis@lionunicorn.co.uk> - 2020-07-23 04:00 +0200
                Re: sed:awk:perl::rock:paper:chainsaw [was Re: Using .XCompose] songbird <songbird@anthive.com> - 2020-07-23 12:50 +0200
                Re: Using .XCompose davidson <davidson@freevolt.org> - 2020-07-16 02:00 +0200
                Re: Using .XCompose Ajith R <ajithramayyan@yahoo.co.in> - 2020-07-16 20:40 +0200
              Re: Using .XCompose David Wright <deblis@lionunicorn.co.uk> - 2020-07-11 17:00 +0200
                Tex characters Teemu Likonen <tlikonen@iki.fi> - 2020-07-11 18:20 +0200
                Re: Using .XCompose davidson <davidson@freevolt.org> - 2020-07-11 22:40 +0200
                Re: Using .XCompose Greg Wooledge <wooledg@eeg.ccf.org> - 2020-07-13 14:00 +0200
                Re: Using .XCompose davidson <davidson@freevolt.org> - 2020-07-16 07:50 +0200
              Re: Using .XCompose davidson <davidson@freevolt.org> - 2020-07-11 18:10 +0200
              Re: Using .XCompose Greg Wooledge <wooledg@eeg.ccf.org> - 2020-07-20 15:30 +0200
              Re: Using .XCompose Ajith R <ajithramayyan@yahoo.co.in> - 2020-07-20 15:30 +0200
                Re: Using .XCompose David Wright <deblis@lionunicorn.co.uk> - 2020-07-20 18:20 +0200
          Re: Using .XCompose davidson <davidson@freevolt.org> - 2020-07-10 12:50 +0200
    Re: [offlist] posting style [was Re: Using .XCompose] Ajith R <ajithramayyan@yahoo.co.in> - 2020-07-08 05:00 +0200
      Re: [offlist] posting style [was Re: Using .XCompose] Andrei POPESCU <andreimpopescu@gmail.com> - 2020-07-08 07:00 +0200
      Re: [not-so-offlist] posting style [was Re: Using .XCompose] davidson <davidson@freevolt.org> - 2020-07-08 07:10 +0200
    Re: [offlist] Re: Using .XCompose Ajith R <ajithramayyan@yahoo.co.in> - 2020-07-08 05:00 +0200
      Re: [offlist] Re: Using .XCompose davidson <davidson@freevolt.org> - 2020-07-08 05:20 +0200
      Re: [offlist] Re: Using .XCompose Zenaan Harkness <zenaan@freedbms.net> - 2020-07-08 05:40 +0200
        Re: [offlist] Re: Using .XCompose davidson <davidson@freevolt.org> - 2020-07-08 08:00 +0200
  Re: Using .XCompose David Wright <deblis@lionunicorn.co.uk> - 2020-07-07 00:40 +0200
    tangent on man page locations [was Re: Using .XCompose] davidson <davidson@freevolt.org> - 2020-07-07 01:10 +0200
      Re: tangent on man page locations [was Re: Using .XCompose] David Wright <deblis@lionunicorn.co.uk> - 2020-07-07 03:50 +0200
    Re: Using .XCompose Ajith R <ajithramayyan@yahoo.co.in> - 2020-07-07 11:50 +0200
      Re: Using .XCompose Greg Wooledge <wooledg@eeg.ccf.org> - 2020-07-07 13:40 +0200
        Re: Using .XCompose Ajith R <ajithramayyan@yahoo.co.in> - 2020-07-08 16:30 +0200
      Re: Using .XCompose David Wright <deblis@lionunicorn.co.uk> - 2020-07-09 02:20 +0200
        Re: Using .XCompose Zenaan Harkness <zenaan@freedbms.net> - 2020-07-09 04:20 +0200
  Re: Using .XCompose Zenaan Harkness <zenaan@freedbms.net> - 2020-07-08 01:50 +0200
    Re: Using .XCompose davidson <davidson@freevolt.org> - 2020-07-08 02:30 +0200
    Fw: Using .XCompose Ajith R <ajithramayyan@yahoo.co.in> - 2020-07-08 05:10 +0200
    Re: Using .XCompose Ajith R <ajithramayyan@yahoo.co.in> - 2020-07-08 18:40 +0200
      Re: Using .XCompose Zenaan Harkness <zenaan@freedbms.net> - 2020-07-09 04:00 +0200
        Re: Using .XCompose Zenaan Harkness <zenaan@freedbms.net> - 2020-07-10 02:40 +0200
          Re: Using .XCompose The Wanderer <wanderer@fastmail.fm> - 2020-07-10 02:50 +0200
      Re: Using .XCompose davidson <davidson@freevolt.org> - 2020-07-10 05:00 +0200

csiph-web