I am sponsoring this fasttrack for myself. This change is being submitted today both to LSARC for review and to the X.Org community for their review, so may be changed due to feedback from either side - it will not be integrated until both reviews are satisfied. If both accept, then this would appear in X11R7.5 and in future releases of OpenSolaris & Solaris.
-Alan Coopersmith- alan.coopersmith at sun.com Sun Microsystems, Inc. - X Window System Engineering Template Version: @(#)sac_nextcase 1.68 02/23/09 SMI This information is Copyright 2009 Sun Microsystems 1. Introduction 1.1. Project/Component Working Name: xset support for XKB indicator names 1.2. Name of Document Author/Supplier: Author: Alan Coopersmith 1.3 Date of This Document: 16 June, 2009 4. Technical Description This case adds support to the xset command to set & get led states using XKB indicator names, in addition to the numbers xset already supports. If the X server supports the XKEYBOARD (XKB) extension, "xset q" is extended to display a list of XKB indicators after the LED mask. Example output when run against the Xnewt server on my desktop Sun Ray: Keyboard Control: auto repeat: on key click percent: 0 LED mask: 00000002 XKB indicators: 00: Caps Lock: off 01: Num Lock: on 02: Scroll Lock: off 03: Compose: off 04: Shift Lock: off 05: Group 2: off 06: Mouse Keys: off auto repeat delay: 600 repeat rate: 30 auto repeating keys: 00ffffffdffffbbf fadfffffffdfe5ff ffffffffffffffff ffffffffffffffff bell percent: 50 bell pitch: 400 bell duration: 100 [...] XKB indicators include both leds physically on a keyboard and virtual state indicators which may be displayed by other clients, such as input method or accessibility helper status displays. To set indicators on or off, the led option to xset is extended to accept the keyword "named" followed by a required argument for the indicator name to set. (Unfortunately due to the existing/historic/horrible xset syntax, and the free-form naming possibility of XKB indicators, the named keyword is necessary to avoid ambiguity if an indicator had a name that could be confused with an existing argument that doesn't begin with a '-'.) Man page diffs: --- a/xset.man +++ b/xset.man @@ -51,8 +51,8 @@ xset - user preference utility for X .br [fp default] [fp rehash] .br -[-led [\fIinteger\fP]] -[led [\fIinteger\fP]] +[-led [\fIinteger\fP|named \fIindicator\fP]] +[led [\fIinteger\fP|named \fIindicator\fP]] .br [led {on|off}] .br @@ -176,10 +176,14 @@ If a preceding dash or the flag 'off' is given, all LEDs are turned off. If a value between 1 and 32 is given, that LED will be turned on or off depending on the existence of a preceding dash. -A common LED which can be controlled is the ``Caps Lock'' LED. ``xset -led 3'' would turn led #3 on. ``xset -led 3'' would turn it off. +``xset led 3'' would turn led #3 on. ``xset -led 3'' would turn it off. The particular LED values may refer to different LEDs on different hardware. +If the X server supports the XKEYBOARD (XKB) extension, leds may be +referenced by the XKB indicator name by specifying the `named' keyword +and the indicator name. For example, to turn on the Scroll Lock LED: +.IP +xset led named "Scroll Lock" .PP .TP 8 .B mouse [Note there is a typo in the currently delivered man page claiming that the argument to turn on leds starts with a + - but the command does not accept that syntax and requires a bare "led" keyword there. That bug in the man page will be fixed along with this change.] Interfaces Exported: -------------------- xset led named <name> Committed xset -led named <name> Committed xset q output format Not-An-Interface 6. Resources and Schedule 6.4. Steering Committee requested information 6.4.1. Consolidation C-team Name: X Consolidation / Desktop C-Team 6.5. ARC review type: FastTrack 6.6. ARC Exposure: open