Subject: Fvwm bug 1135 keysym documentation, not a bug

From: Dan Espen <[email-masked]>
Date: Fri, 26 Nov 2004 21:35:06 -0500

I've closed this problem as "not a bug".

I found this comment in the keysymdef.h from the current Xorg release:

! The definitions here should match <X11/XF86keysym.h>
XF86AudioLowerVolume	:1008FF11

Therefore I am closing this problem.  The header file should be
updated, not the Fvwm man page.

Date: Fri, 13 Feb 2004 03:37:32 -0600
From: [email-masked]
To: [email-masked]
Subject: XF86 custom keysyms are also usable

Full_Name: Emmanuel Thom..
Version: 2.4.x and 2.5.x
CVS_Date: 
OS: fedora core 1, kernel 2.6
X_Server: XFree86 4.3
Submission from: (NULL) (152.81.8.127)

Excerpt from the fvwm man page:

Key Keyname Context Modifiers Function
       [...]
       The Keyname is one of the entries from
/usr/include/X11/keysymdef.h,
       with the leading XK_ omitted.
       [...]

This is correct, but under XFree86, it turns out that the XF86
vendor-specific keysyms also work. These are defined in
/usr/include/X11/XF86keysym.h (or, as far as Xlib is concerned, in
/usr/X11R6/lib/X11/XKeysymDB). For example, I have successfully set up the
following binding:

Key XF86AudioLowerVolume        A A Function MMK "AudioLowerVolume"

This means that when you read along the lines of XF86keysym.h,
XF86XK_AudioLowerVolume should really be read as XF86AudioLowerVolume ; the
XK_ prefix isn't in XKeysymDB.

Of course, this is only possibly useful if the running X server does
generate such keysyms, which require some configuration work.

In short, I suggest augmenting the quoted sentence above by  the
following:

        Under XFree86, you can also use any of the keysyms listed in
        /usr/X11R6/lib/X11/XKeysymDB. You are responsible of having your X
        server generating such events.

-- 
Dan Espen                               E-mail: [email-masked]
--
Visit the official FVWM web page at <URL:http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [email-masked].
To report problems, send mail to [email-masked]

---

From: Emmanuel Thomé <[email-masked]>
Date: Mon, 29 Nov 2004 10:34:16 +0100

> I've closed this problem as "not a bug".

you seem to miss the point.

> XF86AudioLowerVolume	:1008FF11

This can't be in keysymdef.h ; it's in XKeysymDB. XKeysymDB is a better
reference to look into, IMHO, when looking for keysyms.

The point is that not only the entries from keysymdef.h can be used, but
also those from XF86keysym.h (with XK_ stripped out in the middle) ; The
alternative I suggest is to direct the user to XKeysymDB instead, which
contains all possible keysyms with correct spelling.

Note that as the man page currently contains no reference to XKeysymDB,
it's not obvious that one should look into it.

E.

---

From: Dan Espen <[email-masked]>
Date: Mon, 29 Nov 2004 06:47:16 -0500

> it's not obvious that one should look into it.

I think you missed my point.

From the header file, I surmised that the X developers mean to keep
XKeysymDB and keysymdef.h in sync.

It looks like they've failed.  What you have is a bug in X, not
in Fvwm.

I believe removing the XK_ from the middle is also a bug.

This whole thing with X keysyms is bad enough (using a header file
as documentation).  It shouldn't get any worse than it is.

(Just my opinion.)

---

From: Dan Espen <[email-masked]>
Date: Mon, 29 Nov 2004 07:19:36 -0500

> it's not obvious that one should look into it.

Sorry, the man page for xmodmap explains it this way:

   The KEYSYMNAME on the left hand side is translated
   into matching keycodes used to perform the  corre
   sponding  set of keycode expressions.  The list of
   keysym names may  be  found  in  the  header  file
   <X11/keysymdef.h>  (without the XK_ prefix) or the
   keysym   database    /usr/X11R6/lib/X11/XKeysymDB.
   Note  that if the same keysym is bound to multiple
   keys, the expression is executed for each matching
   keycode.

They still refer to an XK_ prefix, but it looks like
having 2 files to refer to is intentional.

I'll update the man page.