Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
XChangeKeyboardControl(3)	XLIB FUNCTIONS	     XChangeKeyboardControl(3)

NAME
       XChangeKeyboardControl, XGetKeyboardControl, XAutoRepeatOn, XAutoRe-
       peatOff,	XBell, XQueryKeymap, XKeyboardControl -	manipulate keyboard
       settings	and keyboard control structure

SYNTAX
       int XChangeKeyboardControl(Display *display, unsigned long value_mask,
	      XKeyboardControl *values);

       int XGetKeyboardControl(Display *display, XKeyboardState	*values_re-
	      turn);

       int XAutoRepeatOn(Display *display);

       int XAutoRepeatOff(Display *display);

       int XBell(Display *display, int percent);

       int XQueryKeymap(Display	*display, char keys_return[32]);

ARGUMENTS
       display	 Specifies the connection to the X server.

       keys_return
		 Returns an array of bytes that	identifies which keys are
		 pressed down.	Each bit represents one	key of the keyboard.

       percent	 Specifies the volume for the bell, which can range from -100
		 to 100	inclusive.

       value_mask
		 Specifies which controls to change.  This mask	is the bitwise
		 inclusive OR of the valid control mask	bits.

       values	 Specifies one value for each bit set to 1 in the mask.

       values_return
		 Returns the current keyboard controls in the specified	XKey-
		 boardState structure.

DESCRIPTION
       The XChangeKeyboardControl function controls the	keyboard characteris-
       tics defined by the XKeyboardControl structure.	The value_mask argu-
       ment specifies which values are to be changed.

       XChangeKeyboardControl can generate BadMatch and	BadValue errors.

       The XGetKeyboardControl function	returns	the current control values for
       the keyboard to the XKeyboardState structure.

       The XAutoRepeatOn function turns	on auto-repeat for the keyboard	on the
       specified display.

       The XAutoRepeatOff function turns off auto-repeat for the keyboard on
       the specified display.

       The XBell function rings	the bell on the	keyboard on the	specified dis-
       play, if	possible.  The specified volume	is relative to the base	volume
       for the keyboard.  If the value for the percent argument	is not in the
       range -100 to 100 inclusive, a BadValue error results.  The volume at
       which the bell rings when the percent argument is nonnegative is:

	      base - [(base * percent) / 100] +	percent

       The volume at which the bell rings when the percent argument is nega-
       tive is:

	      base + [(base * percent) / 100]

       To change the base volume of the	bell, use XChangeKeyboardControl.

       XBell can generate a BadValue error.

       The XQueryKeymap	function returns a bit vector for the logical state of
       the keyboard, where each	bit set	to 1 indicates that the	corresponding
       key is currently	pressed	down.  The vector is represented as 32 bytes.
       Byte N (from 0) contains	the bits for keys 8N to	8N + 7 with the	least
       significant bit in the byte representing	key 8N.

       Note that the logical state of a	device (as seen	by client applica-
       tions) may lag the physical state if device event processing is frozen.

STRUCTURES
       The XKeyboardControl structure contains:

       /* Mask bits for	ChangeKeyboardControl */

       #de-    KBKeyClickPercent	   (1L<<0)
       fine
       #de-    KBBellPercent		   (1L<<1)
       fine
       #de-    KBBellPitch		   (1L<<2)
       fine
       #de-    KBBellDuration		   (1L<<3)
       fine
       #de-    KBLed			   (1L<<4)
       fine
       #de-    KBLedMode		   (1L<<5)
       fine
       #de-    KBKey			   (1L<<6)
       fine
       #de-    KBAutoRepeatMode		   (1L<<7)
       fine
       /* Values */

       typedef struct {
	       int key_click_percent;
	       int bell_percent;
	       int bell_pitch;
	       int bell_duration;
	       int led;
	       int led_mode;   /* LedModeOn, LedModeOff	*/
	       int key;
	       int auto_repeat_mode;   /* AutoRepeatModeOff, AutoRepeatModeOn,
				       AutoRepeatModeDefault */
       } XKeyboardControl;

       The key_click_percent member sets the volume for	key clicks between 0
       (off) and 100 (loud) inclusive, if possible.  A setting of -1 restores
       the default.  Other negative values generate a BadValue error.

       The bell_percent	sets the base volume for the bell between 0 (off) and
       100 (loud) inclusive, if	possible.  A setting of	-1 restores the	de-
       fault.  Other negative values generate a	BadValue error.	 The
       bell_pitch member sets the pitch	(specified in Hz) of the bell, if pos-
       sible.  A setting of -1 restores	the default.  Other negative values
       generate	a BadValue error.  The bell_duration member sets the duration
       of the bell specified in	milliseconds, if possible.  A setting of -1
       restores	the default.  Other negative values generate a BadValue	error.

       If both the led_mode and	led members are	specified, the state of	that
       LED is changed, if possible.  The led_mode member can be	set to LedMod-
       eOn or LedModeOff.  If only led_mode is specified, the state of all
       LEDs are	changed, if possible.  At most 32 LEDs numbered	from one are
       supported.  No standard interpretation of LEDs is defined.  If led is
       specified without led_mode, a BadMatch error results.

       If both the auto_repeat_mode and	key members are	specified, the
       auto_repeat_mode	of that	key is changed (according to AutoRepeatModeOn,
       AutoRepeatModeOff, or AutoRepeatModeDefault), if	possible.  If only
       auto_repeat_mode	is specified, the global auto_repeat_mode for the en-
       tire keyboard is	changed, if possible, and does not affect the per-key
       settings.  If a key is specified	without	an auto_repeat_mode, a Bad-
       Match error results.  Each key has an individual	mode of	whether	or not
       it should auto-repeat and a default setting for the mode.  In addition,
       there is	a global mode of whether auto-repeat should be enabled or not
       and a default setting for that mode.  When global mode is AutoRepeat-
       ModeOn, keys should obey	their individual auto-repeat modes.  When
       global mode is AutoRepeatModeOff, no keys should	auto-repeat.  An auto-
       repeating key generates alternating KeyPress and	KeyRelease events.
       When a key is used as a modifier, it is desirable for the key not to
       auto-repeat, regardless of its auto-repeat setting.

       The XKeyboardState structure contains:

       typedef struct {
	       int key_click_percent;
	       int bell_percent;
	       unsigned	int bell_pitch,	bell_duration;
	       unsigned	long led_mask;
	       int global_auto_repeat;
	       char auto_repeats[32];
       } XKeyboardState;

       For the LEDs, the least significant bit of led_mask corresponds to LED
       one, and	each bit set to	1 in led_mask indicates	an LED that is lit.
       The global_auto_repeat member can be set	to AutoRepeatModeOn or AutoRe-
       peatModeOff.  The auto_repeats member is	a bit vector.  Each bit	set to
       1 indicates that	auto-repeat is enabled for the corresponding key.  The
       vector is represented as	32 bytes.  Byte	N (from	0) contains the	bits
       for keys	8N to 8N + 7 with the least significant	bit in the byte	repre-
       senting key 8N.

DIAGNOSTICS
       BadMatch	 Some argument or pair of arguments has	the correct type and
		 range but fails to match in some other	way required by	the
		 request.

       BadValue	 Some numeric value falls outside the range of values accepted
		 by the	request.  Unless a specific range is specified for an
		 argument, the full range defined by the argument's type is
		 accepted.  Any	argument defined as a set of alternatives can
		 generate this error.

SEE ALSO
       XChangeKeyboardMapping(3), XkbChangeEnabledControls(3), XkbBell(3),
       XkbDeviceBell(3), XkbGetMap(3), XSetPointerMapping(3)
       Xlib - C	Language X Interface

X Version 11			 libX11	1.6.5	     XChangeKeyboardControl(3)

NAME | SYNTAX | ARGUMENTS | DESCRIPTION | STRUCTURES | DIAGNOSTICS | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=XChangeKeyboardControl&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help