Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ VirtualBindings(3X) — IRIX 6.5.3f

Media Vault

Software Library

Restoration Projects

Artifacts Sought



     VirtualBindings(3X)       UNIX System V       VirtualBindings(3X)



     NAME
          VirtualBindings - Bindings for virtual mouse and key events

     VERSION
          This page documents version 1.2 of the Motif library.

     DESCRIPTION
          The 1/Motif manual pages describe translations in terms of
          virtual bindings, based on those described in the OSF/Motif
          Style Guide.  Mouse events are described in terms of virtual
          buttons, and key events are described in terms of virtual
          keys.  The term virtual implies that the events as described
          do not necessarily correspond to a fixed set of X Window
          System events.  Instead, virtual buttons and keys are linked
          to actual events by means of virtual bindings.

        Virtual Modifiers
          Both virtual buttons and virtual keys may contain virtual
          modifiers.  Each virtual modifier corresponds to one or more
          actual modifiers.  The following table lists the bindings of
          virtual modifiers to actual modifiers in 1/Motif:

                           Virtual Modifier Bindings
                      Virtual Modifier   Actual Modifiers
                      ___________________________________
                      MAlt               Mod1
                      MCopy              Ctrl
                      MCtrl              Ctrl
                      MLink              Ctrl Shift
                      MMove              Shift
                      MShift             Shift

          Mod1 refers to the first modifier key.  1/Motif requires
          that it correspond to either Alt or Meta.

          The virtual modifier MAny indicates that any modifier can be
          used.  If MAny is not specified and the user presses an
          actual modifier that is not explicitly included in a
          translation, that modifier may prevent the translation from
          being matched.

        Virtual Buttons
          Each virtual button corresponds to one or more actual button
          event descriptions.  Each button event description contains
          a button name and possibly modifiers.  These button event
          descriptions, appropriately ordered and possibly further
          modified, are used in translation tables.  The following
          table lists the bindings of virtual buttons to actual button
          event descriptions in 1/Motif:

                            Virtual Button Bindings
                     Virtual Button   Actual Button Events



     Page 1                                          (printed 4/30/98)





     VirtualBindings(3X)       UNIX System V       VirtualBindings(3X)



                     _____________________________________
                     BCustom          <Btn3>
                     BDrag            <Btn2>
                     BExtend          Shift<Btn1>
                     BMenu            <Btn3>
                     BSelect          <Btn1>
                     BToggle          Ctrl<Btn1>

        Virtual Keys
          Each virtual key corresponds to one or more actual key event
          descriptions.  Each key event description contains a keysym
          name and possibly modifiers.  These key event descriptions,
          appropriately ordered and possibly further modified, are
          used in translation tables.  The following table lists the
          bindings of virtual keys to actual key event descriptions in
          1/Motif:

                              Virtual Key Bindings
                      ____________________________________
                      Virtual Key    Actual Key Events
                      
                      KActivate      <Key>Return
                                     Ctrl<Key>Return
                                     <Key>osfActivate
                      ____________________________________
                      KAddMode       <Key>osfAddMode
                      ____________________________________
                      KBackSpace     <Key>osfBackSpace
                      ____________________________________
                      KBackTab       Shift<Key>Tab
                      ____________________________________
                      KBeginData     Ctrl<Key>osfBeginLine
                      ____________________________________
                      KBeginLine     <Key>osfBeginLine
                      ____________________________________
                      KCancel        <Key>osfCancel
                      ____________________________________
                      KClear         <Key>osfClear
                      ____________________________________
                      KCopy          <Key>osfCopy
                                     Ctrl<Key>osfInsert
                      ____________________________________
                      KCut           <Key>osfCut
                                     Shift<Key>osfDelete
                      ____________________________________
                      KDelete        <Key>osfDelete
                      ____________________________________
                      KDeselectAll   Ctrl<Key>backslash
                      ____________________________________
                      KDown          <Key>osfDown





     Page 2                                          (printed 4/30/98)





     VirtualBindings(3X)       UNIX System V       VirtualBindings(3X)



                      ____________________________________
                      KEndData       Ctrl<Key>osfEndLine
                      ____________________________________
                      KEndLine       <Key>osfEndLine
                      ____________________________________
                      KEnter         <Key>Return
                      ____________________________________
                      KEscape        <Key>Escape
                      ____________________________________
                      KExtend        Ctrl Shift<Key>space
                                     Shift<Key>osfSelect
                      ____________________________________
                      KHelp          <Key>osfHelp
                      ____________________________________
                      KInsert        <Key>osfInsert
                      ____________________________________







































     Page 3                                          (printed 4/30/98)





     VirtualBindings(3X)       UNIX System V       VirtualBindings(3X)



                        Virtual Key Bindings (Continued)
                    ________________________________________
                    Virtual Key     Actual Key Events
                    
                    KLeft           <Key>osfLeft
                    ________________________________________
                    KMenu           <Key>osfMenu
                    ________________________________________
                    KMenuBar        <Key>osfMenuBar
                    ________________________________________
                    KNextField      <Key>Tab
                                    Ctrl<Key>Tab
                    ________________________________________
                    KNextMenu       Ctrl<Key>osfDown
                                    Ctrl<Key>osfRight
                    ________________________________________
                    KPageDown       <Key>osfPageDown
                    ________________________________________
                    KPageLeft       Ctrl<Key>osfPageUp
                                    <Key>osfPageLeft
                    ________________________________________
                    KPageRight      Ctrl<Key>osfPageDown
                                    <Key>osfPageRight
                    ________________________________________
                    KPageUp         <Key>osfPageUp
                    ________________________________________
                    KPaste          <Key>osfPaste
                                    Shift<Key>osfInsert
                    ________________________________________
                    KPrevField      Shift<Key>Tab
                                    Ctrl Shift<Key>Tab
                    ________________________________________
                    KPrevMenu       Ctrl<Key>osfUp
                                    Ctrl<Key>osfLeft
                    ________________________________________
                    KPrimaryCopy    Ctrl<Key>osfPrimaryPaste
                                    Mod1<Key>osfCopy
                                    Mod1 Ctrl<Key>osfInsert
                    ________________________________________
                    KPrimaryCut     Mod1<Key>osfPrimaryPaste
                                    Mod1<Key>osfCut
                                    Mod1 Shift<Key>osfDelete
                    ________________________________________
                    KPrimaryPaste   <Key>osfPrimaryPaste
                    ________________________________________
                    KQuickCopy      Ctrl<Key>osfQuickPaste
                    ________________________________________
                    KQuickCut       Mod1<Key>osfQuickPaste
                    ________________________________________
                    KQuickExtend    Shift<Key>osfQuickPaste





     Page 4                                          (printed 4/30/98)





     VirtualBindings(3X)       UNIX System V       VirtualBindings(3X)



                    ________________________________________
                        Virtual Key Bindings (Continued)
                     ______________________________________
                     Virtual Key   Actual Key Events
                     
                     KQuickPaste   <Key>osfQuickPaste
                     ______________________________________
                     KReselect     Ctrl Shift<Key>osfSelect
                     ______________________________________
                     KRestore      Ctrl Shift<Key>osfInsert
                     ______________________________________
                     KRight        <Key>osfRight
                     ______________________________________
                     KSelect       <Key>space
                                   Ctrl<Key>space
                                   <Key>osfSelect
                     ______________________________________
                     KSelectAll    Ctrl<Key>slash
                     ______________________________________
                     KSpace        <Key>space
                     ______________________________________
                     KTab          <Key>Tab
                     ______________________________________
                     KUndo         <Key>osfUndo
                                   Mod1<Key>osfBackSpace
                     ______________________________________
                     KUp           <Key>osfUp
                     ______________________________________
                     KAny          <Key>
                     ______________________________________

        Bindings for osf Keysyms
          Keysym strings that begin with "osf" are not part of the X
          server's keyboard mapping.  Instead, these keysyms are
          produced on the client side at run time.  They are
          interpreted by the routine XmTranslateKey, and are used by
          the translation manager when the server delivers an actual
          key event.  For each application, a mapping is maintained
          between "osf" keysyms and keysyms that correspond to actual
          keys.  This mapping is based on information obtained at
          application startup from one of the following sources,
          listed in order of precedence:


            ⊕  A defaultVirtualBindings application resource in the
               resource database.

            ⊕  A property on the root window, which can be set by mwm
               on startup, or by the xmbind client, or on prior
               startup of a Motif application.

            ⊕  The file .motifbind in the user's home directory.



     Page 5                                          (printed 4/30/98)





     VirtualBindings(3X)       UNIX System V       VirtualBindings(3X)



            ⊕  A set of bindings based on the vendor string and
               optionally the vendor release of the X server.  Motif
               searches for these bindings in the following steps:


                 -- If the file xmbind.alias exists in the user's home
                    directory, Motif searches this file for a pathname
                    associated with the vendor string or with the
                    vendor string and vendor release.  If it finds
                    such a pathname and if that file exists, Motif
                    loads the bindings contained in that file.

                 -- If it has found no bindings, Motif next looks for
                    the file xmbind.alias in the directory specified
                    by the environment variable XMBINDDIR, if
                    XMBINDDIR is set, or in the directory
                    /usr/lib/Xm/bindings if XMBINDDIR is not set.  If
                    this file exists Motif searches it for a pathname
                    associated with the vendor string or with the
                    vendor string and vendor release.  If it finds
                    such a pathname and if that file exists, Motif
                    loads the bindings contained in that file.

                 -- If it still has found no bindings, Motif loads a
                    set of hard-coded fallback bindings.


          The xmbind.alias file contains zero or more lines of the
          form:

          "vendor_string[ vendor_release]"bindings_file

          where vendor_string is the X server vendor name as  returned
          by the X client xdpyinfo or the Xlib function XServerVendor,
          and must appear in  double  quotes.   If  vendor_release  is
          included,  it  is  the  X  server  vendor  release number as
          returned by the X  client  xdpyinfo  or  the  Xlib  function
          XVendorRelease, and must also be contained within the double
          quotes  separated   by   one   space   from   vendor_string.
          vendor_release  is  provided  to allow support of changes in
          keyboard hardware from a vendor, assuming  that  the  vendor
          increments   the   release  number  to  flag  such  changes.
          Alternatively, the vendor may simply  use  a  unique  vendor
          string for each different keyboard.

          bindings_file is the pathname of  the  file  containing  the
          bindings  themselves.   It  can  be  a  relative or absolute
          pathname.  If it it is a relative pathname, it  is  relative
          to the location of the xmbind.alias file.

          Comment lines in the xmbind.alias file begin with !.




     Page 6                                          (printed 4/30/98)





     VirtualBindings(3X)       UNIX System V       VirtualBindings(3X)



          The bindings found in either  the  .motifbind  file  or  the
          vendor  mapping are placed in a property on the root window.
          This  property  is  used  to  determine  the  bindings   for
          subsequent Motif applications.

          On startup mwm attempts to load the file .motifbind  in  the
          user's  home  directory.   If this is unsuccessful, it loads
          the vendor bindings  as  described  above.   It  places  the
          bindings  it  loads in a property on the root window for use
          by subsequent Motif applications.

          xmbind loads bindings from a file if that file is  specified
          on the command line.  If no file is specified on the command
          line, it attempts to load the file .motifbind in the  user's
          home directory.  If this fails, it loads the vendor bindings
          as described above.  It places the bindings it  loads  in  a
          property  on  the  root  window  for use by subsequent Motif
          applications.

          The format of the specification for mapping "osf" keysyms to
          actual  keysyms is similar to that of a specification for an
          event translation.  The syntax is  specified  here  in  EBNF
          notation using the following conventions:

          [a]       Means either nothing or a
          {a}       Means zero or more occurrences of a

          Terminals are enclosed in double quotation marks.

          The syntax of an "osf" keysym binding  specification  is  as
          follows:

          binding_spec   = {line "\n"} [line]
          line           = virtual_keysym ":" key_event
          key_event      = {modifier_name} "<Key>" actual_keysym
          virtual_keysym = keysym
          actual_keysym  = keysym
          keysym         = A valid X11 keysym name that is
                           mapped by XStringToKeysym

          As with event translations, more specific event descriptions
          must  precede  less  specific descriptions.  For example, an
          event description for a key with a modifier must  precede  a
          description for the same key without the same modifier.

          Following  is  an  example  of  a  specification   for   the
          defaultVirtualBindings resource in a resource file:

          *defaultVirtualBindings: \
               osfBackSpace   :    <Key>BackSpace\n\
               osfInsert      :    <Key>InsertChar\n\
          ...



     Page 7                                          (printed 4/30/98)





     VirtualBindings(3X)       UNIX System V       VirtualBindings(3X)



               osfDelete      :    <Key>DeleteChar


          The format of a .motifbind file  or  of  a  file  containing
          vendor  bindings  is  the  same,  except  that  the  binding
          specification for each keysym is placed on a separate  line.
          The  example  specification  above  appears  as follows in a
          .motifbind or vendor bindings file:

          osfBackSpace   :    <Key>BackSpace
          osfInsert      :    <Key>InsertChar
          ...
          osfDelete      :    <Key>DeleteChar


          The  following  table  lists  the  fixed  fallback   default
          bindings for "osf" keysyms:

                  Fallback Default Bindings for "osf" Keysyms
                  "osf" Keysym       Fallback Default Binding
                  ____________________________________________
                  osfActivate        <unbound>
                  osfAddMode         Shift F8
                  osfBackSpace       Backspace
                  osfBeginLine       Home
                  osfClear           Clear
                  osfCopy            <unbound>
                  osfCut             <unbound>
                  osfDelete          Delete
                  osfDown            Down
                  osfEndLine         End
                  osfCancel          Escape
                  osfHelp            F1
                  osfInsert          Insert
                  osfLeft            Left
                  osfMenu            F4
                  osfMenuBar         F10
                  osfPageDown        Next
                  osfPageLeft        <unbound>
                  osfPageRight       <unbound>
                  osfPageUp          Prior
                  osfPaste           <unbound>
                  osfPrimaryPaste    <unbound>
                  osfQuickPaste      <unbound>
                  osfRight           Right
                  osfSelect          Select
                  osfUndo            Undo
                  osfUp              Up

     RELATED INFORMATION
          xmbind(1X)




     Page 8                                          (printed 4/30/98)



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026