The following tutorial session demonstrates the operation of XmetaX the Keymap

XmetaX must be installed totally (Installation).

You must be logged into an X Window environment with XmetaX proxy and the Keymap option must be configured (Options).

You will have to start a terminal emulator like xterm, cmdtool, dtterm, etc. from the command line.

First, change the command path so that the shell can find the XmetaX proxy and the xxmodmap program in the installation directory /opt/XSOXmetaX (Installation directories). Modify the command path accordingly, for instance using the Bourne shell:

export PATH

or with the C shell:

set path=($path /opt/XSOXmetaX/bin)

Then choose a free X Window display number, for instance :1, and set the $DISPLAY environment variable accordingly, using the Bourne shell:

export DISPLAY

or with the C shell:

setenv DISPLAY :1

Now you can start the XmetaX proxy in the background:

xmetax $DISPLAY display :0 accessControl off &

You will change different keyboard mappings affecting already running clients. First store the current mapping into a file, so that you may reset the mapping at any time:

xxmodmap -pke > Reset

You may apply this mapping using one of the following commands:

xxmodmap Reset
xmodmap Reset

Then create two files each containing xmodmap expressions:

echo keysym q = w > Xqw
echo keysym w = q >> Xqw
echo keysym y = z > Xyz
echo keysym z = y >> Xyz

Each pair of expressions exchanges the mapping of two keys.

You may check the effect of a mapping modification by simply typing into a terminal emulator window. Start two terminal emulators from the command line:

xterm -name one &
xterm -name two &

For changing the global mapping execute the command

xxmodmap -global Xqw

This exchanges the (meanings of the) keys q and w for all X Window clients. Applying the same command again restores the normal mapping:

xxmodmap -global Xqw

The command

xxmodmap -name one Xqw

modifies the keyboard mapping of the first of the previously started terminal emulators only. Changing the global mapping again (now exchanging the keys y and z)

xxmodmap -global Xyz

has no effect on this terminal emulator. Restore the global mapping and the client mapping:

xxmodmap -global Xyz
xxmodmap -name one Xqw

Even though the terminal emulator has the normal mapping, its client mapping is defined. Therefore it does not react to a modification of the global mapping:

xxmodmap -global Xyz

Restore the global mapping:

xxmodmap -global Xyz

The client does not respect a global modification until you disable its client mapping:

xxmodmap -name one
xxmodmap -global Xyz

Now the keys y and z are exchanged for all clients, including the first terminal emulator. Restore the normal mappings:

xxmodmap -global Xyz

Changing the default mapping does not affect already running clients:

xxmodmap -default Xqw

Only newly started clients get the modified mapping:

xterm -name three &

Disabling the default mapping does not affect the third terminal emulator:

xxmodmap -default

The third terminal emulator gets the exchanged keys. A newly started client gets the normal mapping:

xterm -name four &

Close the terminal emulator windows and restore the global mapping:

xmodmap Reset

Finally terminate the XmetaX proxy process:

xmetaxtool -terminat 

Copyright © 2018 X-Software GmbH