|
Packit |
b099d7 |
'\" t
|
|
Packit |
b099d7 |
...\" VirtBind.sgm /main/12 1996/09/08 21:43:15 rws $
|
|
Packit |
b099d7 |
.de P!
|
|
Packit |
b099d7 |
.fl
|
|
Packit |
b099d7 |
\!!1 setgray
|
|
Packit |
b099d7 |
.fl
|
|
Packit |
b099d7 |
\\&.\"
|
|
Packit |
b099d7 |
.fl
|
|
Packit |
b099d7 |
\!!0 setgray
|
|
Packit |
b099d7 |
.fl \" force out current output buffer
|
|
Packit |
b099d7 |
\!!save /psv exch def currentpoint translate 0 0 moveto
|
|
Packit |
b099d7 |
\!!/showpage{}def
|
|
Packit |
b099d7 |
.fl \" prolog
|
|
Packit |
b099d7 |
.sy sed -e 's/^/!/' \\$1\" bring in postscript file
|
|
Packit |
b099d7 |
\!!psv restore
|
|
Packit |
b099d7 |
.
|
|
Packit |
b099d7 |
.de pF
|
|
Packit |
b099d7 |
.ie ?\\*(f1?? .ds f1 \\n(.f
|
|
Packit |
b099d7 |
.el .ie ?\\*(f2?? .ds f2 \\n(.f
|
|
Packit |
b099d7 |
.el .ie ?\\*(f3?? .ds f3 \\n(.f
|
|
Packit |
b099d7 |
.el .ie ?\\*(f4?? .ds f4 \\n(.f
|
|
Packit |
b099d7 |
.el .tm ? font overflow
|
|
Packit |
b099d7 |
.ft \\$1
|
|
Packit |
b099d7 |
..
|
|
Packit |
b099d7 |
.de fP
|
|
Packit |
b099d7 |
.ie !?\\*(f4?? \{\
|
|
Packit |
b099d7 |
. ft \\*(f4
|
|
Packit |
b099d7 |
. ds f4\"
|
|
Packit |
b099d7 |
' br \}
|
|
Packit |
b099d7 |
.el .ie !?\\*(f3?? \{\
|
|
Packit |
b099d7 |
. ft \\*(f3
|
|
Packit |
b099d7 |
. ds f3\"
|
|
Packit |
b099d7 |
' br \}
|
|
Packit |
b099d7 |
.el .ie !?\\*(f2?? \{\
|
|
Packit |
b099d7 |
. ft \\*(f2
|
|
Packit |
b099d7 |
. ds f2\"
|
|
Packit |
b099d7 |
' br \}
|
|
Packit |
b099d7 |
.el .ie !?\\*(f1?? \{\
|
|
Packit |
b099d7 |
. ft \\*(f1
|
|
Packit |
b099d7 |
. ds f1\"
|
|
Packit |
b099d7 |
' br \}
|
|
Packit |
b099d7 |
.el .tm ? font underflow
|
|
Packit |
b099d7 |
..
|
|
Packit |
b099d7 |
.ds f1\"
|
|
Packit |
b099d7 |
.ds f2\"
|
|
Packit |
b099d7 |
.ds f3\"
|
|
Packit |
b099d7 |
.ds f4\"
|
|
Packit |
b099d7 |
.ta 8n 16n 24n 32n 40n 48n 56n 64n 72n
|
|
Packit |
b099d7 |
.TH "VirtualBindings" "library call"
|
|
Packit |
b099d7 |
.SH "NAME"
|
|
Packit |
b099d7 |
\fBVirtualBindings\fP \(em Bindings for virtual mouse and key events
|
|
Packit |
b099d7 |
.iX "VirtualBindings"
|
|
Packit |
b099d7 |
.iX "default bindings" "VirtualBindings"
|
|
Packit |
b099d7 |
.SH "DESCRIPTION"
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
The Motif reference pages describe key translations in terms of
|
|
Packit |
b099d7 |
\fIvirtual bindings\fP, based on those described in the \fIMotif Style Guide\fP\&.
|
|
Packit |
b099d7 |
.SS "Bindings for osf Keysyms"
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
Keysym strings that begin with \fB<osf>\fP are not part of the X server\&'s
|
|
Packit |
b099d7 |
keyboard mapping\&.
|
|
Packit |
b099d7 |
Instead, these keysyms are produced on the client side at run time\&.
|
|
Packit |
b099d7 |
They are interpreted by the routine \fBXmTranslateKey\fP, and
|
|
Packit |
b099d7 |
are used by the translation manager when the server delivers an actual
|
|
Packit |
b099d7 |
key event\&.
|
|
Packit |
b099d7 |
For each application, a mapping is maintained between \fB<osf>\fP keysyms and
|
|
Packit |
b099d7 |
keysyms that correspond to actual keys\&.
|
|
Packit |
b099d7 |
This mapping is based on information obtained at application startup
|
|
Packit |
b099d7 |
from one of the following sources, listed in order of precedence:
|
|
Packit |
b099d7 |
.IP " \(bu" 6
|
|
Packit |
b099d7 |
The \fBXmNdefaultVirtualBindings\fP resource from Display\&.
|
|
Packit |
b099d7 |
.IP " \(bu" 6
|
|
Packit |
b099d7 |
A property on the root window, which can be set by \fBmwm\fP on startup,
|
|
Packit |
b099d7 |
or by the \fBxmbind\fP client, or on prior startup of a Motif
|
|
Packit |
b099d7 |
application\&.
|
|
Packit |
b099d7 |
.IP " \(bu" 6
|
|
Packit |
b099d7 |
The file \fB\&.motifbind\fP in the user\&'s home directory\&.
|
|
Packit |
b099d7 |
.IP " \(bu" 6
|
|
Packit |
b099d7 |
A set of bindings based on the vendor string and optionally the vendor
|
|
Packit |
b099d7 |
release of the X server\&.
|
|
Packit |
b099d7 |
Motif searches for these bindings in the following steps:
|
|
Packit |
b099d7 |
.RS
|
|
Packit |
b099d7 |
.IP " 0." 6
|
|
Packit |
b099d7 |
If the file \fBxmbind\&.alias\fP exists in the user\&'s home directory,
|
|
Packit |
b099d7 |
Motif searches this file for a pathname associated with the vendor
|
|
Packit |
b099d7 |
string or with the vendor string and vendor release\&.
|
|
Packit |
b099d7 |
If it finds such a pathname and if that file exists, Motif loads the
|
|
Packit |
b099d7 |
bindings contained in that file\&.
|
|
Packit |
b099d7 |
.IP " 1." 6
|
|
Packit |
b099d7 |
If it has found no bindings, Motif next looks for the file
|
|
Packit |
b099d7 |
\fBxmbind\&.alias\fP in the directory specified by the environment
|
|
Packit |
b099d7 |
variable \fBXMBINDDIR\fP, if \fBXMBINDDIR\fP is set, or in the directory
|
|
Packit Service |
1f15c3 |
\fB/usr/lib/Xm/bindings\fP if \fBXMBINDDIR\fP is not set\&.
|
|
Packit |
b099d7 |
If this file exists Motif searches it for a pathname associated with the
|
|
Packit |
b099d7 |
vendor string or with the vendor string and vendor release\&.
|
|
Packit |
b099d7 |
If it finds such a pathname and if that file exists, Motif loads the
|
|
Packit |
b099d7 |
bindings contained in that file\&.
|
|
Packit |
b099d7 |
.IP " 2." 6
|
|
Packit |
b099d7 |
If it still has found no bindings, Motif loads a set of hard-coded
|
|
Packit |
b099d7 |
fallback bindings\&.
|
|
Packit |
b099d7 |
.RE
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
The \fBxmbind\&.alias\fP file contains zero or more lines of the following form:
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
.nf
|
|
Packit |
b099d7 |
\f(CW"\fIvendor_string\fP[ \fIvendor_release\fP]" \fIbindings_file\fP\fR
|
|
Packit |
b099d7 |
.fi
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
where \fIvendor_string\fP is the X server vendor name as returned by the
|
|
Packit |
b099d7 |
X client \fBxdpyinfo\fP or the Xlib function \fBXServerVendor\fP, and
|
|
Packit |
b099d7 |
must appear in double quotes\&.
|
|
Packit |
b099d7 |
If \fIvendor_release\fP is included, it is the X server vendor release
|
|
Packit |
b099d7 |
number as returned by the X client \fBxdpyinfo\fP or the Xlib function
|
|
Packit |
b099d7 |
\fBXVendorRelease\fP, and must also be contained within the double
|
|
Packit |
b099d7 |
quotes separated by one space from \fIvendor_string\fP\&.
|
|
Packit |
b099d7 |
The \fIvendor_release\fP argument is provided to allow support
|
|
Packit |
b099d7 |
of changes in keyboard
|
|
Packit |
b099d7 |
hardware from a vendor, assuming that the vendor increments the release
|
|
Packit |
b099d7 |
number to flag such changes\&.
|
|
Packit |
b099d7 |
Alternatively, the vendor may simply use a unique vendor string for each
|
|
Packit |
b099d7 |
different keyboard\&.
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
The \fIbindings_file\fP argument is the pathname of
|
|
Packit |
b099d7 |
the file containing the bindings
|
|
Packit |
b099d7 |
themselves\&.
|
|
Packit |
b099d7 |
It can be a relative or absolute pathname\&.
|
|
Packit |
b099d7 |
If it it is a relative pathname, it is relative to the location of the
|
|
Packit |
b099d7 |
\fBxmbind\&.alias\fP file\&.
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
Comment lines in the \fBxmbind\&.alias\fP file begin with ! (exclamation
|
|
Packit |
b099d7 |
point)\&.
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
The bindings found in either the \fB\&.motifbind\fP file or the vendor
|
|
Packit |
b099d7 |
mapping are placed in a property on the root window\&.
|
|
Packit |
b099d7 |
This property is used to determine the bindings for subsequent Motif
|
|
Packit |
b099d7 |
applications\&.
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
On startup \fBmwm\fP attempts to load the file \fB\&.motifbind\fP in the
|
|
Packit |
b099d7 |
user\&'s home directory\&.
|
|
Packit |
b099d7 |
If this is unsuccessful, it loads the vendor bindings as described
|
|
Packit |
b099d7 |
previously\&.
|
|
Packit |
b099d7 |
It places the bindings it loads in a property on the root window for use
|
|
Packit |
b099d7 |
by subsequent Motif applications\&.
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
The \fBxmbind\fP function loads bindings
|
|
Packit |
b099d7 |
from a file if that file is specified on the
|
|
Packit |
b099d7 |
command line\&.
|
|
Packit |
b099d7 |
If no file is specified on the command line, it attempts to load the
|
|
Packit |
b099d7 |
file \fB\&.motifbind\fP in the user\&'s home directory\&.
|
|
Packit |
b099d7 |
If this fails, it loads the vendor bindings as described previously\&.
|
|
Packit |
b099d7 |
It places the bindings it loads in a property on the root window for use
|
|
Packit |
b099d7 |
by subsequent Motif applications\&.
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
The format of the specification for mapping \fB<osf>\fP keysyms to
|
|
Packit |
b099d7 |
actual keysyms is similar to that of a specification for an event
|
|
Packit |
b099d7 |
translation\&. (See below) The syntax is specified (and below) here in
|
|
Packit |
b099d7 |
EBNF notation using the following conventions:
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
.nf
|
|
Packit |
b099d7 |
\f(CW[\fIa\fP] Means either nothing or \fIa\fP
|
|
Packit |
b099d7 |
{\fIa\fP} Means zero or more occurrences of \fIa\fP
|
|
Packit |
b099d7 |
(\fIa\fP|\fIb\fP) Means either \fIa\fP or \fIb\fP\&.\fR
|
|
Packit |
b099d7 |
.fi
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
Terminals are enclosed in double quotation marks\&.
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
The syntax of an \fB<osf>\fP keysym binding specification is as follows:
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
.nf
|
|
Packit |
b099d7 |
\f(CWbinding_spec = {line "\en"} [line]
|
|
Packit |
b099d7 |
line = virtual_keysym ":" list_of_key_event
|
|
Packit |
b099d7 |
list_of_key_event= key_event { "," key_event}
|
|
Packit |
b099d7 |
key_event = {modifier_name} "<Key>" actual_keysym
|
|
Packit |
b099d7 |
virtual_keysym = keysym
|
|
Packit |
b099d7 |
actual_keysym = keysym
|
|
Packit |
b099d7 |
keysym = A valid X11 keysym name that is
|
|
Packit |
b099d7 |
mapped by \fBXStringToKeysym\fP\fR
|
|
Packit |
b099d7 |
.fi
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
As with event translations, more specific event descriptions must
|
|
Packit |
b099d7 |
precede less specific descriptions\&.
|
|
Packit |
b099d7 |
For example, an event description for a key with a modifier must precede
|
|
Packit |
b099d7 |
a description for the same key without the same modifier\&.
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
Following is an example of a specification for the
|
|
Packit |
b099d7 |
\fBdefaultVirtualBindings\fP resource in a resource file:
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
.nf
|
|
Packit |
b099d7 |
\f(CW*defaultVirtualBindings: \e
|
|
Packit |
b099d7 |
osfBackSpace: <Key>BackSpace \en\e
|
|
Packit |
b099d7 |
osfInsert: <Key>InsertChar \en\e
|
|
Packit |
b099d7 |
osfDelete: <Key>DeleteChar \en\e
|
|
Packit |
b099d7 |
\&.\&.\&.
|
|
Packit |
b099d7 |
osfLeft: <Key>left, Ctrl<Key>H\fR
|
|
Packit |
b099d7 |
.fi
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
The format of a \fB\&.motifbind\fP file or of a file containing vendor
|
|
Packit |
b099d7 |
bindings is the same, except that the binding specification for each
|
|
Packit |
b099d7 |
keysym is placed on a separate line\&.
|
|
Packit |
b099d7 |
The previous example specification appears as follows in a
|
|
Packit |
b099d7 |
\fB\&.motifbind\fP or vendor bindings file:
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
.nf
|
|
Packit |
b099d7 |
\f(CWosfBackSpace: <Key>BackSpace
|
|
Packit |
b099d7 |
osfInsert: <Key>InsertChar
|
|
Packit |
b099d7 |
osfDelete: <Key>DeleteChar
|
|
Packit |
b099d7 |
\&.\&.\&.
|
|
Packit |
b099d7 |
osfLeft: <Key>left, Ctrl<Key>H\fR
|
|
Packit |
b099d7 |
.fi
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
The following table lists the fixed fallback default bindings for
|
|
Packit |
b099d7 |
\fB<osf>\fP keysyms\&.
|
|
Packit |
b099d7 |
.TS
|
|
Packit |
b099d7 |
tab(?) box;
|
|
Packit |
b099d7 |
c s
|
|
Packit |
b099d7 |
l| l.
|
|
Packit |
b099d7 |
T{
|
|
Packit |
b099d7 |
\fBFallback Default Bindings for osf Keysyms\fP
|
|
Packit |
b099d7 |
T}
|
|
Packit |
b099d7 |
\fB<osf Keysym>\fP?\fBFallback Default Binding\fP
|
|
Packit |
b099d7 |
_?_?
|
|
Packit |
b099d7 |
\fB<osfActivate>\fP\fB:\fP?\fB<Key>KP_Enter\fP, \fB<Key>Execute\fP
|
|
Packit |
b099d7 |
_?_?
|
|
Packit |
b099d7 |
\fB<osfAddMode>\fP\fB:\fP?\fBShift<Key>F8\fP
|
|
Packit |
b099d7 |
_?_?
|
|
Packit |
b099d7 |
\fB<osfBackSpace>\fP\fB:\fP?\fB<Key>\fP\fBBackSpace\fP
|
|
Packit |
b099d7 |
_?_?
|
|
Packit |
b099d7 |
\fB<osfBeginLine>\fP\fB:\fP?\fB<Key>Home\fP, \fB<Key>Begin\fP
|
|
Packit |
b099d7 |
_?_?
|
|
Packit |
b099d7 |
\fB<osfCancel>\fP\fB:\fP?\fB<Key>Escape\fP, \fB<Key>Cancel\fP
|
|
Packit |
b099d7 |
_?_?
|
|
Packit |
b099d7 |
\fB<osfClear>\fP\fB:\fP?\fB<Key>\fP\fBClear\fP
|
|
Packit |
b099d7 |
_?_?
|
|
Packit |
b099d7 |
\fB<osfCopy>\fP\fB:\fP?\fIunbound\fP
|
|
Packit |
b099d7 |
_?_?
|
|
Packit |
b099d7 |
\fB<osfCut>\fP\fB:\fP?\fIunbound\fP
|
|
Packit |
b099d7 |
_?_?
|
|
Packit |
b099d7 |
\fB<osfDelete>\fP\fB:\fP?\fB<Key>\fP\fBDelete\fP
|
|
Packit |
b099d7 |
_?_?
|
|
Packit |
b099d7 |
\fB<osfDeselectAll>\fP\fB:\fP?\fIunbound\fP
|
|
Packit |
b099d7 |
_?_?
|
|
Packit |
b099d7 |
\fB<osfDown>\fP\fB:\fP?\fB<Key>\fP\fBDown\fP
|
|
Packit |
b099d7 |
_?_?
|
|
Packit |
b099d7 |
\fB<osfEndLine>\fP\fB:\fP?\fB<Key>\fP\fBEnd\fP
|
|
Packit |
b099d7 |
_?_?
|
|
Packit |
b099d7 |
\fB<osfHelp>\fP\fB:\fP?\fB<Key>F1\fP, \fB<Key>Help\fP
|
|
Packit |
b099d7 |
_?_?
|
|
Packit |
b099d7 |
\fB<osfInsert>\fP\fB:\fP?\fB<Key>\fP\fBInsert\fP
|
|
Packit |
b099d7 |
_?_?
|
|
Packit |
b099d7 |
\fB<osfLeft>\fP\fB:\fP?\fB<Key>\fP\fBLeft\fP
|
|
Packit |
b099d7 |
_?_?
|
|
Packit |
b099d7 |
\fB<osfLeftLine>\fP\fB:\fP?\fIunbound\fP
|
|
Packit |
b099d7 |
_?_?
|
|
Packit |
b099d7 |
\fB<osfMenu>\fP\fB:\fP?\fBShift\fP\fB<Key>F10\fP, \fB<Key>Menu\fP
|
|
Packit |
b099d7 |
_?_?
|
|
Packit |
b099d7 |
\fB<osfMenuBar>\fP\fB:\fP?\fB<Key>F10\fP, \fBShift<Key>\fP\fBMenu\fP
|
|
Packit |
b099d7 |
_?_?
|
|
Packit |
b099d7 |
\fB<osfNextMinor>\fP\fB:\fP?\fIunbound\fP
|
|
Packit |
b099d7 |
_?_?
|
|
Packit |
b099d7 |
\fB<osfPageDown>\fP\fB:\fP?\fB<Key>\fP\fBNext\fP
|
|
Packit |
b099d7 |
_?_?
|
|
Packit |
b099d7 |
\fB<osfPageLeft>\fP\fB:\fP?\fIunbound\fP
|
|
Packit |
b099d7 |
_?_?
|
|
Packit |
b099d7 |
\fB<osfPageRight>\fP\fB:\fP?\fIunbound\fP
|
|
Packit |
b099d7 |
_?_?
|
|
Packit |
b099d7 |
\fB<osfPageUp>\fP\fB:\fP?\fB<Key>\fP\fBPrior\fP
|
|
Packit |
b099d7 |
_?_?
|
|
Packit |
b099d7 |
\fB<osfPaste>\fP\fB:\fP?\fIunbound\fP
|
|
Packit |
b099d7 |
_?_?
|
|
Packit |
b099d7 |
\fB<osfPrimaryPaste>\fP\fB:\fP?\fIunbound\fP
|
|
Packit |
b099d7 |
_?_?
|
|
Packit |
b099d7 |
\fB<osfPriorMinor>\fP\fB:\fP?\fIunbound\fP
|
|
Packit |
b099d7 |
_?_?
|
|
Packit |
b099d7 |
\fB<osfReselect>\fP\fB:\fP?\fIunbound\fP
|
|
Packit |
b099d7 |
_?_?
|
|
Packit |
b099d7 |
\fB<osfRestore>\fP\fB:\fP?\fIunbound\fP
|
|
Packit |
b099d7 |
_?_?
|
|
Packit |
b099d7 |
\fB<osfRight>\fP\fB:\fP?\fB<Key>\fP\fBRight\fP
|
|
Packit |
b099d7 |
_?_?
|
|
Packit |
b099d7 |
\fB<osfRightLine>\fP\fB:\fP?\fIunbound\fP
|
|
Packit |
b099d7 |
_?_?
|
|
Packit |
b099d7 |
\fB<osfSelect>\fP\fB:\fP?\fB<Key>\fP\fBSelect\fP
|
|
Packit |
b099d7 |
_?_?
|
|
Packit |
b099d7 |
\fB<osfSelectAll>\fP\fB:\fP?\fIunbound\fP
|
|
Packit |
b099d7 |
_?_?
|
|
Packit |
b099d7 |
\fB<osfSwitchDirection>\fP\fB:\fP?\fBAlt<Key>Return\fP, \fBAlt<Key>KP_Enter\fP
|
|
Packit |
b099d7 |
_?_?
|
|
Packit |
b099d7 |
\fB<osfUndo>\fP\fB:\fP?\fB<Key>\fP\fBUndo\fP
|
|
Packit |
b099d7 |
_?_?
|
|
Packit |
b099d7 |
\fB<osfUp>\fP\fB:\fP?\fB<Key>\fP\fBUp\fP
|
|
Packit |
b099d7 |
_?_?
|
|
Packit |
b099d7 |
.TE
|
|
Packit |
b099d7 |
.SS "Changes in the Handling of Shifted Keys"
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
In conjunction with MIT X11R5 Patch 24, this version of Motif
|
|
Packit |
b099d7 |
introduces a change in the way that keys involving the <Shift>
|
|
Packit |
b099d7 |
modifier are processed\&. This change allows the numeric keypad to be
|
|
Packit |
b099d7 |
used to generate numbers using the standard X mechanisms\&. Since the
|
|
Packit |
b099d7 |
default behavior is now to honor the xmodmap keymap bindings,
|
|
Packit |
b099d7 |
translations and virtual key bindings that use <Shift> may behave
|
|
Packit |
b099d7 |
differently\&. A common symptom is that unshifted keypad and function
|
|
Packit |
b099d7 |
keys (with or without other modifiers) produce the expected results,
|
|
Packit |
b099d7 |
but shifted ones do not\&.
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
To obtain the old behavior you can remove the shifted interpretation
|
|
Packit |
b099d7 |
from problematic keys using the \fBxmodmap\fP utility\&. Each entry in
|
|
Packit |
b099d7 |
a \fBxmodmap\fP keymap table contains up to four keysym bindings\&. The
|
|
Packit |
b099d7 |
second and fourth keysyms are for shifted keys\&. If an expression
|
|
Packit |
b099d7 |
contains only two keysyms, simply remove the second keysym\&. If
|
|
Packit |
b099d7 |
an entry contains three or more keysyms, replace the second keysym
|
|
Packit |
b099d7 |
with \fBNoSymbol\fP and remove the fourth keysym\&.
|
|
Packit |
b099d7 |
.SS "Action Translations"
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
The translation table syntax used by Motif is completely specified
|
|
Packit |
b099d7 |
in the X11R5 Toolkit Intrinsics Documentation\&. For the complete syntax
|
|
Packit |
b099d7 |
description, and for general instructions about writing or modifying a
|
|
Packit |
b099d7 |
translation table, please refer to this document\&. A brief summary of the
|
|
Packit |
b099d7 |
translation table format, however, is included below\&.
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
The syntax is defined as in the binding syntax specification above\&.
|
|
Packit |
b099d7 |
Informal descriptions are contained in angle brackets (<>)\&.
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
.nf
|
|
Packit |
b099d7 |
\f(CWTranslationTable= [ directive ] { production }
|
|
Packit |
b099d7 |
directive = ( "#replace" | "#override" | "#augment") "\en"
|
|
Packit |
b099d7 |
production = lhs ":" rhs "\en"
|
|
Packit |
b099d7 |
lhs = ( event | keyseq) {"," ( event | keyseq) }
|
|
Packit |
b099d7 |
keyseq = """ keychar { keychar } """
|
|
Packit |
b099d7 |
keychar = ( "^" | "$" | "\e\e") <ISO Latin 1 character>
|
|
Packit |
b099d7 |
event = [ modifier_list ] "<" event_type ">" [ count ] {detail}
|
|
Packit |
b099d7 |
modifier_list = ( ["!"][":"] { modifier } | "None")
|
|
Packit |
b099d7 |
modifier = [ "~" ] ( "@" <keysym> | <name from table below>)
|
|
Packit |
b099d7 |
count = "(" <positive integer> [ "+" ] ")"
|
|
Packit |
b099d7 |
rhs = { action_name "(" [params] ")" }
|
|
Packit |
b099d7 |
params = string { "," string }\fR
|
|
Packit |
b099d7 |
.fi
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
The \fIstring\fP field need not be quoted unless it includes a space
|
|
Packit |
b099d7 |
or tab character, or any comma, newline, or parenthesis\&. The entire
|
|
Packit |
b099d7 |
list of string values making up the \fIparams\fP field will ba passed
|
|
Packit |
b099d7 |
to the named action routine\&.
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
The \fIdetails\fP field may be used to specify a keysym that will
|
|
Packit |
b099d7 |
identify a particular key event\&. For example, \fB<Key>\fP is the name
|
|
Packit |
b099d7 |
of a type of event, but it must be modified by the \fIdetails\fP field
|
|
Packit |
b099d7 |
to name a specific event, such as \fB<Key>\fP\fBA\fP\&.
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
\fBModifier Names\fP
|
|
Packit |
b099d7 |
The modifier list, which may be empty, consists of a list of modifier
|
|
Packit |
b099d7 |
keys that must be pressed with the key sequence\&. The modifier keys
|
|
Packit |
b099d7 |
may abbreviated with single letters, as in the following list of the
|
|
Packit |
b099d7 |
familiar modifiers:
|
|
Packit |
b099d7 |
.IP "s" 10
|
|
Packit |
b099d7 |
Shift
|
|
Packit |
b099d7 |
.IP "c\ or\ ^" 10
|
|
Packit |
b099d7 |
Ctrl (Control)
|
|
Packit |
b099d7 |
.IP "m\ or\ $" 10
|
|
Packit |
b099d7 |
Meta
|
|
Packit |
b099d7 |
.IP "a" 10
|
|
Packit |
b099d7 |
Alt
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
Other modifiers are available, such as "Mod5" and "Button2\&." These
|
|
Packit |
b099d7 |
have no abbreviation (although the "Button" modifiers may be
|
|
Packit |
b099d7 |
abbreviated in combination with events, as outlined below)\&. If a
|
|
Packit |
b099d7 |
modifier list has no entries, and is not "None", it means the position
|
|
Packit |
b099d7 |
of the modifier keys is irrelevant\&. If modifiers are listed, the
|
|
Packit |
b099d7 |
designated keys must be in the specified position, but the unlisted
|
|
Packit |
b099d7 |
modifier keys are irrelevant\&. If the list begins with an exclamation
|
|
Packit |
b099d7 |
point (!), however, the unlisted modifiers may not be asserted\&. In
|
|
Packit |
b099d7 |
addition, if a modifier name is preceded by a tilde (~), the
|
|
Packit |
b099d7 |
corresponding key must \fInot\fP be pressed\&.
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
If a modifier list begins with a colon (:), X tries to use the
|
|
Packit |
b099d7 |
standard modifiers (Shift and Lock), if present, to map the key event
|
|
Packit |
b099d7 |
code into a recognized keysym\&.
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
Event Types
|
|
Packit |
b099d7 |
These are a few of the recognized event types\&.
|
|
Packit |
b099d7 |
.IP "Key or KeyDown" 10
|
|
Packit |
b099d7 |
A keyboard key was pressed\&.
|
|
Packit |
b099d7 |
.IP "KeyUp" 10
|
|
Packit |
b099d7 |
A keyboard key was released\&.
|
|
Packit |
b099d7 |
.IP "BtnDown" 10
|
|
Packit |
b099d7 |
A mouse button was pressed\&.
|
|
Packit |
b099d7 |
.IP "BtnUp" 10
|
|
Packit |
b099d7 |
A mouse button was released\&.
|
|
Packit |
b099d7 |
.IP "Motion" 10
|
|
Packit |
b099d7 |
The mouse pointer moved\&.
|
|
Packit |
b099d7 |
.IP "Enter" 10
|
|
Packit |
b099d7 |
The pointer entered the widget\&'s window\&.
|
|
Packit |
b099d7 |
.IP "Leave" 10
|
|
Packit |
b099d7 |
The pointer left the widget\&'s window\&.
|
|
Packit |
b099d7 |
.IP "FocusIn" 10
|
|
Packit |
b099d7 |
The widget has received focus\&.
|
|
Packit |
b099d7 |
.IP "FocusOut" 10
|
|
Packit |
b099d7 |
The widget has lost focus\&.
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
There are some event abbreviations available\&. For example,
|
|
Packit |
b099d7 |
\fB<Btn1Motion>\fP is actually a "Motion" event, modified with the
|
|
Packit |
b099d7 |
"Button1" modifier (\fBButton1<Motion>\fP)\&. Similarly, \fB<Btn3Up>\fP
|
|
Packit |
b099d7 |
is actually a "BtnUp" event with the "Button3" modifier\&. These
|
|
Packit |
b099d7 |
abbreviations are used extensively in the Motif translation
|
|
Packit |
b099d7 |
tables\&.
|
|
Packit |
b099d7 |
.SH "RELATED"
|
|
Packit |
b099d7 |
.PP
|
|
Packit |
b099d7 |
\fBxmbind\fP(1)
|
|
Packit |
b099d7 |
...\" created by instant / docbook-to-man, Sun 22 Dec 1996, 20:16
|