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


Reply via email to