Unix/Linux Go Back    


CentOS 7.0 - man page for xkbkeytypesforcoresymbols (centos section 3)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)


XkbKeyTypesForCoreSymbols(3)		  XKB FUNCTIONS 	     XkbKeyTypesForCoreSymbols(3)

NAME
       XkbKeyTypesForCoreSymbols  - Determine the Xkb key types appropriate for the symbols bound
       to a key in a core keyboard mapping

SYNOPSIS
       int XkbKeyTypesForCoreSymbols (XkbDescPtr xkb, int map_width, KeySym *core_syms,  unsigned
	      int protected, int *types_inout, KeySym *xkb_syms_rtrn);

ARGUMENTS
       - xkb  keyboard description in which to place symbols

       - map_width
	      width of core protocol keymap in xkb_syms_rtrn

       - core_syms
	      core protocol format array of KeySyms

       - protected
	      explicit key types

       - types_inout
	      backfilled with the canonical types bound to groups one and two for the key

       - xkb_syms_rtrn
	      backfilled with symbols bound to the key in the Xkb mapping

DESCRIPTION
       XkbKeyTypesForCoreSymbols  expands the symbols in core_syms and types in types_inout, then
       chooses canonical key types (canonical key types are defined The Canonical Key Types)  for
       groups  1  and  2  using  the  rules  specified	by  the  Xkb  protocol and places them in
       xkb_syms_rtrn, which will be non-NULL.

       The Canonical Key Types

       Xkb allows up to XkbMaxKeyTypes (255) key types to be defined, but requires at least  Xkb-
       NumRequiredTypes  (4)  predefined types to be in a key map. These predefined key types are
       referred to as the canonical key types and describe the types of keys  available  on  most
       keyboards.  The	definitions  for  the canonical key types are held in the first XkbNumRe-
       quiredTypes entries of the types field of the client map and are indexed using the follow-
       ing constants:

	   XkbOneLevelIndex
	   XkbTwoLevelIndex
	   XkbAlphabeticIndex
	   XkbKeypadIndex

       ONE_LEVEL

       The  ONE_LEVEL  key type describes groups that have only one symbol. The default ONE_LEVEL
       key type has no map entries and does not pay attention to any modifiers. A symbolic repre-
       sentation of this key type could look like the following:

	   type "ONE_LEVEL" {
		modifiers = None;
		map[None]= Level1;
		level_name[Level1]= "Any";
	   };

       The  description  of the ONE_LEVEL key type is stored in the types[XkbOneLevelIndex] entry
       of the client key map.

       TWO_LEVEL

       The TWO_LEVEL key type describes groups that consist of two symbols but are neither alpha-
       betic nor numeric keypad keys. The default TWO_LEVEL type uses only the Shift modifier. It
       returns shift level two if Shift is set, and level one if it is not. A symbolic	represen-
       tation of this key type could look like the following:

	   type "TWO_LEVEL" {
	       modifiers = Shift;
	       map[Shift]= Level2;
	       level_name[Level1]= "Base";
	       level_name[Level2]= "Shift";
	   };

       The  description  of the TWO_LEVEL key type is stored in the types[XkbTwoLevelIndex] entry
       of the client key map.

       ALPHABETIC

       The ALPHABETIC key type describes groups consisting of two symbols: the lowercase form  of
       a  symbol  followed by the uppercase form of the same symbol.  The default ALPHABETIC type
       implements locale-sensitive "Shift cancels CapsLock" behavior using  both  the  Shift  and
       Lock modifiers as follows:

       o    If Shift and Lock are both set, the default ALPHABETIC type yields level one.

       o    If Shift alone is set, it yields level two.

       o    If	Lock  alone  is set, it yields level one, but preserves the Lock modifier so Xlib
	    notices and applies the appropriate capitalization	rules.	The  Xlib  functions  are
	    locale-sensitive and apply different capitalization rules for different locales.

       o    If neither Shift nor Lock is set, it yields level one.

	    A symbolic representation of this key type could look like the following:

		type "ALPHABETIC" {
		    modifiers = Shift+Lock;
		    map[Shift]= Level2;
		    preserve[Lock]= Lock;
		    level_name[Level1]= "Base";
		    level_name[Level2]= "Caps";
		};

	    The description of the ALPHABETIC key type is stored in the types[XkbAlphabeticIndex]
	    entry of the client key map.

	    KEYPAD

	    The KEYPAD key type describes groups that consist of two symbols,  at  least  one  of
	    which  is  a numeric keypad symbol. The numeric keypad symbol is assumed to reside at
	    level two. The default KEYPAD key type implements "Shift  cancels  NumLock"  behavior
	    using  the	Shift  modifier and the real modifier bound to the virtual modifier named
	    "NumLock," known as the NumLock modifier, as follows:

       o    If Shift and NumLock are both set, the default KEYPAD type yields level one.

       o    If Shift alone is set, it yields level two.

       o    If NumLock alone is set, it yields level two.

       o    If neither Shift nor NumLock is set, it yields level one.

	    A symbolic representation of this key type could look like the following:

		type "KEYPAD" {
		    modifiers = Shift+NumLock;
		    map[None]= Level1;
		    map[Shift]= Level2;
		    map[NumLock]= Level2;
		    map[Shift+NumLock]= Level1;
		    level_name[Level1]= "Base";
		    level_name[Level2]= "Caps";
		};

	    The description of the KEYPAD key type is stored in the  types[XkbKeypadIndex]  entry
	    of the client key map.

	    A  core  keymap  is  a two-dimensional array of keysyms. It has map_width columns and
	    max_key_code rows.	XkbKeyTypesForCoreSymbols takes a single row from a core  keymap,
	    determines	the  number of groups associated with it, the type of each group, and the
	    symbols bound to each group.  The return value is the number of  groups,  types_inout
	    has  the  types  for each group, and xkb_syms_rtrn has the symbols in Xkb order (that
	    is, groups are contiguous, regardless of size).

	    protected contains the explicitly protected key types. There is one   explicit  over-
	    ride  control  associated  with  each  of  the four possible groups for each Xkb key,
	    ExplicitKeyType1 through ExplicitKeyType4; protected is an inclusive OR of these con-
	    trols.   map_width	is  the  width of the core keymap and is not dependent on any Xkb
	    definitions.  types_inout is an array of four type	indices.  On  input,  types_inout
	    contains  the  indices  of	any  types  already assigned to the key, in case they are
	    explicitly protected from change.

	    Upon return, types_inout contains any automatically  selected  (that  is,  canonical)
	    types  plus  any  protected types. Canonical types are assigned to all four groups if
	    there are enough symbols to do so. The four entries in types_inout correspond to  the
	    four groups for the key in question.

X Version 11				   libX11 1.6.0 	     XkbKeyTypesForCoreSymbols(3)
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums


All times are GMT -4. The time now is 11:59 PM.