The _x_m_o_d_m_a_p program is used to edit and display the keyboard _m_o_d_i_f_i_e_r _m_a_p and _k_e_y_m_a_p _t_a_b_l_e that are used by client applications to convert event keycodes into keysyms. It is usually run from the user's session startup script to configure the keyboard according to personal tastes.
The following options may be used with _x_m_o_d_m_a_p:
>
TThhee _f_i_l_e_n_a_m_e ssppeecciiffiieess aa ffiillee ccoonnttaaiinniinngg _x_m_o_d_m_a_p eexxpprreessssiioonnss
ttoo bbee eexxeeccuutteedd.. TThhiiss ffiillee iiss uussuuaallllyy kkeepptt iinn tthhee uusseerr''ss hhoommee ddiirreeccttoorryy wwiitthh
aa nnaammee lliikkee _._x_m_o_d_m_a_p_r_c..
< >
TThhee
<>xxmmooddmmaapp</ii>>
pprrooggrraamm rreeaaddss aa lliisstt ooff eexxpprreessssiioonnss aanndd ppaarrsseess tthheemm aallll bbeeffoorree aatttteemmppttiinngg
ttoo eexxeeccuuttee aannyy ooff tthheemm.. TThhiiss mmaakkeess iitt ppoossssiibbllee ttoo rreeffeerr ttoo kkeeyyssyymmss tthhaatt aarree
bbeeiinngg rreeddeeffiinneedd iinn aa nnaattuurraall wwaayy wwiitthhoouutt hhaavviinngg ttoo wwoorrrryy aass mmuucchh aabboouutt nnaammee
ccoonnfflliiccttss..
< >
LLiinneess tthhaatt bbeeggiinn wwiitthh aann eexxccllaammaattiioonn ppooiinntt ((!!)) aarree ttaakkeenn aass ccoommmmeennttss..
< >
IIff yyoouu wwaanntt ttoo cchhaannggee tthhee bbiinnddiinngg ooff aa mmooddiiffiieerr kkeeyy,, yyoouu mmuusstt aallssoo rreemmoovvee iitt
ffrroomm tthhee aapppprroopprriiaattee mmooddiiffiieerr mmaapp..
< >
MMaannyy ppooiinntteerrss aarree ddeessiiggnneedd ssuucchh tthhaatt tthhee ffiirrsstt bbuuttttoonn iiss pprreesssseedd uussiinngg tthhee
iinnddeexx ffiinnggeerr ooff tthhee rriigghhtt hhaanndd.. PPeeooppllee wwhhoo aarree lleefftt--hhaannddeedd ffrreeqquueennttllyy ffiinndd
tthhaatt iitt iiss mmoorree ccoommffoorrttaabbllee ttoo rreevveerrssee tthhee bbuuttttoonn ccooddeess tthhaatt ggeett ggeenneerraatteedd
ssoo tthhaatt tthhee pprriimmaarryy bbuuttttoonn iiss pprreesssseedd uussiinngg tthhee iinnddeexx ffiinnggeerr ooff tthhee lleefftt hhaanndd..
TThhiiss ccoouulldd bbee ddoonnee oonn aa 33 bbuuttttoonn ppooiinntteerr aass ffoolllloowwss::
<><>
<>
< >
%% xxmmooddmmaapp --ee ""ppooiinntteerr == 33 22 11""
</pprree>>
<><>
< >
MMaannyy aapppplliiccaattiioonnss ssuuppppoorrtt tthhee nnoottiioonn ooff MMeettaa kkeeyyss ((ssiimmiillaarr ttoo CCoonnttrrooll
kkeeyyss eexxcceepptt tthhaatt MMeettaa iiss hheelldd ddoowwnn iinnsstteeaadd ooff CCoonnttrrooll)).. HHoowweevveerr,,
ssoommee sseerrvveerrss ddoo nnoott hhaavvee aa MMeettaa kkeeyyssyymm iinn tthhee ddeeffaauulltt kkeeyymmaapp ttaabbllee,, ssoo oonnee
nneeeeddss ttoo bbee aaddddeedd bbyy hhaanndd..
TThhee ffoolllloowwiinngg ccoommmmaanndd wwiillll aattttaacchh MMeettaa ttoo tthhee MMuullttii--llaanngguuaaggee kkeeyy ((ssoommeettiimmeess
llaabbeelleedd CCoommppoossee CChhaarraacctteerr)).. IItt aallssoo ttaakkeess aaddvvaannttaaggee ooff tthhee ffaacctt tthhaatt
aapppplliiccaattiioonnss tthhaatt nneeeedd aa MMeettaa kkeeyy ssiimmppllyy nneeeedd ttoo ggeett tthhee kkeeyyccooddee aanndd ddoonn''tt
rreeqquuiirree tthhee kkeeyyssyymm ttoo bbee iinn tthhee ffiirrsstt ccoolluummnn ooff tthhee kkeeyymmaapp ttaabbllee.. TThhiiss
mmeeaannss tthhaatt aapppplliiccaattiioonnss tthhaatt aarree llooookkiinngg ffoorr aa MMuullttii__kkeeyy ((iinncclluuddiinngg tthhee
ddeeffaauulltt mmooddiiffiieerr mmaapp)) wwoonn''tt nnoottiiccee aannyy cchhaannggee..
<><>
<>
< >
%% xxmmooddmmaapp --ee ""kkeeyyssyymm MMuullttii__kkeeyy == MMuullttii__kkeeyy MMeettaa__LL""
</pprree>>
<><>
< >
SSiimmiillaarrllyy,, ssoommee kkeeyybbooaarrddss hhaavvee aann AAlltt kkeeyy bbuutt nnoo MMeettaa kkeeyy..
IInn tthhaatt ccaassee tthhee ffoolllloowwiinngg mmaayy bbee uusseeffuull::
<><>
<>
< >
%% xxmmooddmmaapp --ee ""kkeeyyssyymm AAlltt__LL == MMeettaa__LL AAlltt__LL""
</pprree>>
<><>
< >
OOnnee ooff tthhee mmoorree ssiimmppllee,, yyeett ccoonnvveenniieenntt,, uusseess ooff _x_m_o_d_m_a_p iiss ttoo sseett tthhee
kkeeyybbooaarrdd''ss ""rruubboouutt"" kkeeyy ttoo ggeenneerraattee aann aalltteerrnnaattee kkeeyyssyymm.. TThhiiss ffrreeqquueennttllyy
iinnvvoollvveess eexxcchhaannggiinngg BBaacckkssppaaccee wwiitthh DDeelleettee ttoo bbee mmoorree ccoommffoorrttaabbllee ttoo tthhee uusseerr..
IIff tthhee _t_t_y_M_o_d_e_s rreessoouurrccee iinn _x_t_e_r_m iiss sseett aass wweellll,, aallll tteerrmmiinnaall
eemmuullaattoorr wwiinnddoowwss wwiillll uussee tthhee ssaammee kkeeyy ffoorr eerraassiinngg cchhaarraacctteerrss::
<><>
<>
< >
%% xxmmooddmmaapp --ee ""kkeeyyssyymm BBaacckkSSppaaccee == DDeelleettee""
%% eecchhoo ""XXTTeerrmm**ttttyyMMooddeess:: eerraassee ^^??"" || xxrrddbb --mmeerrggee
</pprree>>
<><>
< >
SSoommee kkeeyybbooaarrddss ddoo nnoott aauuttoommaattiiccaallllyy ggeenneerraattee lleessss tthhaann aanndd ggrreeaatteerr tthhaann
cchhaarraacctteerrss wwhheenn tthhee ccoommmmaa aanndd ppeerriioodd kkeeyyss aarree sshhiifftteedd.. TThhiiss ccaann bbee rreemmeeddiieedd
wwiitthh _x_m_o_d_m_a_p bbyy rreesseettttiinngg tthhee bbiinnddiinnggss ffoorr tthhee ccoommmmaa aanndd ppeerriioodd wwiitthh
tthhee ffoolllloowwiinngg ssccrriippttss::
<><>
<>
< >
!!
!! mmaakkee sshhiifftt--,, bbee << aanndd sshhiifftt--.. bbee >>
!!
kkeeyyssyymm ccoommmmaa == ccoommmmaa lleessss
kkeeyyssyymm ppeerriioodd == ppeerriioodd ggrreeaatteerr
</pprree>>
<><>
< >
OOnnee ooff tthhee mmoorree iirrrriittaattiinngg ddiiffffeerreenncceess bbeettwweeeenn kkeeyybbooaarrddss iiss tthhee llooccaattiioonn ooff tthhee
CCoonnttrrooll aanndd SShhiifftt LLoocckk kkeeyyss.. AA ccoommmmoonn uussee ooff _x_m_o_d_m_a_p iiss ttoo sswwaapp tthheessee
ttwwoo kkeeyyss aass ffoolllloowwss::
<><>
<>
< >
!!
!! SSwwaapp CCaappss__LLoocckk aanndd CCoonnttrrooll__LL
!!
rreemmoovvee LLoocckk == CCaappss__LLoocckk
rreemmoovvee CCoonnttrrooll == CCoonnttrrooll__LL
kkeeyyssyymm CCoonnttrrooll__LL == CCaappss__LLoocckk
kkeeyyssyymm CCaappss__LLoocckk == CCoonnttrrooll__LL
aadddd LLoocckk == CCaappss__LLoocckk
aadddd CCoonnttrrooll == CCoonnttrrooll__LL
</pprree>>
<><>
< >
TThhiiss eexxaammppllee ccaann bbee rruunn aaggaaiinn ttoo sswwaapp tthhee kkeeyyss bbaacckk ttoo tthheeiirr pprreevviioouuss
aassssiiggnnmmeennttss..
< >
TThhee _k_e_y_c_o_d_e ccoommmmaanndd iiss uusseeffuull ffoorr aassssiiggnniinngg tthhee ssaammee kkeeyyssyymm ttoo
mmuullttiippllee kkeeyyccooddeess.. AAlltthhoouugghh uunnppoorrttaabbllee,, iitt aallssoo mmaakkeess iitt ppoossssiibbllee ttoo wwrriittee
ssccrriippttss tthhaatt ccaann rreesseett tthhee kkeeyybbooaarrdd ttoo aa kknnoowwnn ssttaattee.. TThhee ffoolllloowwiinngg ssccrriipptt
sseettss tthhee bbaacckkssppaaccee kkeeyy ttoo ggeenneerraattee DDeelleettee ((aass sshhoowwnn aabboovvee)),, fflluusshheess aallll
eexxiissttiinngg ccaappss lloocckk bbiinnddiinnggss,, mmaakkeess tthhee CCaappssLLoocckk
kkeeyy bbee aa ccoonnttrrooll kkeeyy,, mmaakkee FF55 ggeenneerraattee EEssccaappee,, aanndd mmaakkeess BBrreeaakk//RReesseett bbee aa
sshhiifftt lloocckk..
<><>
<>
< >
!!
!! OOnn tthhee HHPP,, tthhee ffoolllloowwiinngg kkeeyyccooddeess hhaavvee kkeeyy ccaappss aass lliisstteedd::
!!
!! 110011 BBaacckkssppaaccee
!! 5555 CCaappss
!! 1144 CCttrrll
!! 1155 BBrreeaakk//RReesseett
!! 8866 SSttoopp
!! 8899 FF55
!!
kkeeyyccooddee 110011 == DDeelleettee
kkeeyyccooddee 5555 == CCoonnttrrooll__RR
cclleeaarr LLoocckk
aadddd CCoonnttrrooll == CCoonnttrrooll__RR
kkeeyyccooddee 8899 == EEssccaappee
kkeeyyccooddee 1155 == CCaappss__LLoocckk
aadddd LLoocckk == CCaappss__LLoocckk
</pprree>>
<><>
< >
< >
EEvveerryy ttiimmee aa kkeeyyccooddee eexxpprreessssiioonn iiss eevvaalluuaatteedd,, tthhee sseerrvveerr ggeenneerraatteess
aa _M_a_p_p_i_n_g_N_o_t_i_f_y eevveenntt oonn eevveerryy cclliieenntt.. TThhiiss ccaann ccaauussee ssoommee tthhrraasshhiinngg..
AAllll ooff tthhee cchhaannggeess sshhoouulldd bbee bbaattcchheedd ttooggeetthheerr aanndd ddoonnee aatt oonnccee..
CClliieennttss tthhaatt rreecceeiivvee kkeeyybbooaarrdd iinnppuutt aanndd iiggnnoorree _M_a_p_p_i_n_g_N_o_t_i_f_y eevveennttss
wwiillll nnoott nnoottiiccee aannyy cchhaannggeess mmaaddee ttoo kkeeyybbooaarrdd mmaappppiinnggss..
< >
<>XXmmooddmmaapp</ii>>
sshhoouulldd ggeenneerraattee ""aadddd"" aanndd ""rreemmoovvee"" eexxpprreessssiioonnss aauuttoommaattiiccaallllyy
wwhheenneevveerr aa kkeeyyccooddee tthhaatt iiss aallrreeaaddyy bboouunndd ttoo aa mmooddiiffiieerr iiss cchhaannggeedd..
< >
TThheerree sshhoouulldd bbee aa wwaayy ttoo hhaavvee tthhee
<>rreemmoovvee</ii>>
eexxpprreessssiioonn aacccceepptt kkeeyyccooddeess aass wweellll aass kkeeyyssyymmss ffoorr tthhoossee ttiimmeess wwhheenn yyoouu rreeaallllyy
mmeessss uupp yyoouurr mmaappppiinnggss..
< >
</bbooddyy>>