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.8.12	     XChangeKeyboardControl(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=XQueryKeymap&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help