Bug 65683 - Non standard keys do not work
Summary: Non standard keys do not work
Status: RESOLVED UNMAINTAINED
Alias: None
Product: kcontrol
Classification: Miscellaneous
Component: kcmkeys (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: Ellis Whitehead
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-10-08 05:08 UTC by Jesse
Modified: 2018-09-04 18:08 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jesse 2003-10-08 05:08:30 UTC
Version:            (using KDE Devel)
Installed from:    Compiled sources
OS:          Linux

My various extra keys were working before the new khotkeys2 was added but I haven't had my logitech keys ever since.

I went through the standard process of modifying some X files and adding it to my local .Xmodmap and the keys show up when I press them -- in the define keystroke dialog.  However, when I close the key box (essentially happens after I hit a key) the keystrokes do not get saved?!  Again this worked before and has not worked since khotkeys2 was added.  I also tried setting my keyboard layout in the Reginal and Accessibility kcm but that didn't work as my model isn't listed (it's not new or anything either -- Logitech USB Elite Pro)

I tried with a normal key sequence and it works but nothing else. Also, this is using just plain extra keys... no modifiers like alt, ctrl, or shift were involved ... but those don't work either :(
Comment 1 Jesse 2003-10-08 06:40:57 UTC
Also something to note: I just tried again and khotkeys seems to get the keystroke just 
fine but the key just doesn't work.  In the above case I was trying a "Generic" action 
type and after the define shortcut dialog correctly picked up my key in the Triggers 
tab ... it did not show in the output area.  So I selected a "Keyboard Shortcut -> 
Command/URL" action instead.  Here the key is seemingly remembered and I can 
even apply my changes and click ok to close the kcm KHotKeys.  But it still does not 
work. 
 
  So I try to start it again and I select the "Home" action I created before and ... crash!  
I have to move khotkeysrc out of the way before it starts again. 
 
Here's what my config looks like; first is the bad config and the second is a successful 
mapping of 'normal' keys "alt-ctrl-shift-z" -- the bad seems to be completely missing a 
[Data_1Triggers0] group and its subsequent triggers altogether :( 
-----BAD------ 
[Data] 
DataCount=1 
 
[Data_1] 
Comment=Starts Konq in home directory 
Enabled=true 
Name=Home 
Type=COMMAND_URL_SHORTCUT_ACTION_DATA 
 
[Data_1Actions] 
ActionsCount=1 
 
[Data_1Actions0] 
CommandURL=kfmclient openProfile filemanagement 
Type=COMMAND_URL 
 
[Data_1Conditions] 
Comment= 
ConditionsCount=0 
 
[Data_1Triggers] 
Comment=Simple_action 
TriggersCount=0 
 
[Main] 
Autostart=true 
Version=2 
 
-----GOOD------ 
[Data] 
DataCount=1 
 
[Data_1] 
Comment=Starts Konq in home directory 
Enabled=true 
Name=Home 
Type=COMMAND_URL_SHORTCUT_ACTION_DATA 
 
[Data_1Actions] 
ActionsCount=1 
 
[Data_1Actions0] 
CommandURL=kfmclient openProfile filemanagement 
Type=COMMAND_URL 
 
[Data_1Conditions] 
Comment= 
ConditionsCount=0 
 
[Data_1Triggers] 
Comment=Simple_action 
TriggersCount=1 
 
[Data_1Triggers0] 
Key=Alt+Ctrl+Shift+Z 
Type=SHORTCUT 
 
[Main] 
Autostart=true 
Version=2 
Comment 2 Lubos Lunak 2003-10-08 13:42:15 UTC
If you run xev and press those keys, does it report them properly, including a valid keysym and 
name? I.e. including something like "keycode 223 (keysym 0x1008ff10, XF86Standby)", and 
NOT "keycode 223 (keysym 0x0, NoSymbol)". If you get NoSymbol, you need to setup your 
keyboard layout, and if your model isn't listed, just try to find one that does work (my model is 
microsoftpro, and I bet this keyboard has never seen anybody from Microsoft on its way from 
China). If none of the layouts in XFree-4.3 works, complain to them. 
 
 
Comment 3 Jesse 2003-10-08 18:40:44 UTC
Yes I get a valid xev output.  That's how I got it working before. Currently my xev 
output not only gives me a proper keycode (130 in my case) but my symbolic name as 
well (LMyHome -- for the Logitech My Home key) 
 
I'd rather shoot myself than complain to X as it'll be years before an additionaly 
keyboard is supported but since it worked before I don't think it's an issue with X. 
Comment 4 Lubos Lunak 2003-10-10 11:06:41 UTC
'LMyHome'? I didn't know there was such key name. Why is not the name XF86HomePage, 
just like with everyone elses XFree86? 
 
Comment 5 Jesse 2003-10-10 15:55:22 UTC
Well, correct.  If you look at my initial description I said I added this key 
among others. These keys do work, for instance, in gtk applications if you 
hover over a menu entry and hit the key -- thereby changing the key binding.
I do this with my logitech multimedia keys to control xmms when it has the 
focus and I _used_ to be able to use them in KDE before the change.

I've never had to play around with keyboard layouts before but I faintly 
remember someone mentioning it on a mailing list somewhere. That's why I 
brought it up in the description.

For my added keys, /usr/X11R6/lib/X11/XKeysymDB has this at the end of it:
! Logitech Elite USB Pro
LTrackPrev              :100A0000
LTrackNext              :100A0001
LTrackPlay              :100A0002
LTrackStop              :100A0003
LMyHome                 :100A0004
LUser                   :100A0005
LMedia                  :100A0006

And then my ~/.Xmodmap file has:
keycode 144 = LTrackPrev
keycode 153 = LTrackNext
keycode 162 = LTrackPlay
keycode 164 = LTrackStop
keycode 130 = LMyHome
keycode 223 = LUser
keycode 129 = LMedia

Those numbers in the XKeysymDB should be unique as well as I'm pretty confident 
I've verified they are not duplicates -- if that would matter.
Comment 6 Jesse 2003-10-18 06:52:30 UTC
More uncertainty.  I started playing around with the keyboard layouts in KControl and have gotten more confusing results.

Through the menu editor, and using a keyboard layout that mostly works, I can successfully set my hotkey for 'Home' to be either of XF86Standby or XF86Mail ... however, my 'My Home' key maps to XF86WWW.  If I try to use XF86WWW as the hotkey, it doesn't work again!!

I also don't see why my above setup wouldn't work either when it did before :-/

Comment 7 Krishna Sethuraman 2005-08-13 05:39:52 UTC
I'm also noticing something strange with the XF86WWW keysym (unassignable under Application Shortcuts, but Global Shortcuts and Shortcut Sequences have no problems).  I had edited my X server to recognize the 'Search' key by doing the following:

Created new entry in
/etc/X11/xkb/symbols/inet:

partial alphanumeric_keys
xkb_symbols "logickyrc14" {
    name[Group1]= "Logitech Cordless Keyboard (Model Y-RC14, USB)";

    key <I02>   {       [ XF86WWW               ]       };
    key <I6C>   {       [ XF86Mail              ]       };
    key <FK17>  {       [ XF86Search            ]       };
};

and added it to /etc/X11/xkb/rules/xfree86:

! $inetkbds = airkey acpi scorpius \
...
              oretec logickyrc14 \
              propeller \
...

I then logged out of KDE and restarted the X server.  Then I ran:

setxkbmap -model logickyrc14 -layout dvorak -variant basic -option

I then ran xev, pressed the 'WWW' button, the 'Mail' button, and the 'Search' buttons, and they reported the output attached at the bottom.
So X looks like it's seeing all these keys properly.

I then start up kcontrol->Regional and Accessibility->Keyboard Shortcuts->Shortcut Schemes, and notice the following:

Assigning XF86Mail and XF86Search to any shortcut works -- select a command, click on the magic shortcut button, it pops up the little primary shortcut/alternate shortcut dialog.  I can then click on either shortcut button and hit the 'WWW' key, and it will assign 'XF86WWW' into the entry.  This is the case for 'Global Shortcuts' or 'Shortcut Sequences', for either primary or alternate shortcuts (and the shortcuts actually work when I press the button).

However, with 'Application Shortcuts', when I press 'XF86WWW' in the same context, I get a blank.  The keypress makes the dialog go away, but XF86WWW doesn't appear there.  I haven't tried KHotKeys.

I also tried swapping the keycode->keysym mapping (so the 'Search' button on my keyboard actually generates XF86WWW instead):

partial alphanumeric_keys
xkb_symbols "logickyrc14" {
    name[Group1]= "Logitech Cordless Keyboard (Model Y-RC14, USB)";

    key <I02>   {       [ XF86Search            ]       };
    key <I6C>   {       [ XF86Mail              ]       };
    key <FK17>  {       [ XF86WWW               ]       };
};

and XF86WWW still doesn't get recognized.  So I suspect it's the keysym, not the keycode, that kcontrol's Application Shortcuts section doesn't like.

If this belongs in a different bug, let me know and I'll refile it.

Thanks,
Krishna Sethuraman

Running KDE 3.4 from Debian Sarge as of 2005-Aug-12.
Keyboard: cordless Logitech keyboard, model Y-RC14 (from a surplus store), plugged in via usb (also optionally plugs in via ps/2).

xev output:
KeyPress event, serial 23, synthetic NO, window 0x3200001,
    root 0x40, subw 0x0, time 750314, (-1053,620), root:(365,651),
    state 0x0, keycode 130 (keysym 0x1008ff2e, XF86WWW), same_screen YES,
    XLookupString gives 0 bytes:  ""

KeyRelease event, serial 26, synthetic NO, window 0x3200001,
    root 0x40, subw 0x0, time 750418, (-1053,620), root:(365,651),
    state 0x0, keycode 130 (keysym 0x1008ff2e, XF86WWW), same_screen YES,
    XLookupString gives 0 bytes:  ""

KeyPress event, serial 28, synthetic NO, window 0x3200001,
    root 0x40, subw 0x0, time 751090, (-1053,620), root:(365,651),
    state 0x0, keycode 236 (keysym 0x1008ff19, XF86Mail), same_screen YES,
    XLookupString gives 0 bytes:  ""

KeyRelease event, serial 28, synthetic NO, window 0x3200001,
    root 0x40, subw 0x0, time 751226, (-1053,620), root:(365,651),
    state 0x0, keycode 236 (keysym 0x1008ff19, XF86Mail), same_screen YES,
    XLookupString gives 0 bytes:  ""

KeyPress event, serial 28, synthetic NO, window 0x3200001,
    root 0x40, subw 0x0, time 751698, (-1053,620), root:(365,651),
    state 0x0, keycode 122 (keysym 0x1008ff1b, XF86Search), same_screen YES,
    XLookupString gives 0 bytes:  ""

KeyRelease event, serial 28, synthetic NO, window 0x3200001,
    root 0x40, subw 0x0, time 751810, (-1053,620), root:(365,651),
    state 0x0, keycode 122 (keysym 0x1008ff1b, XF86Search), same_screen YES,
    XLookupString gives 0 bytes:  ""
Comment 8 Michael Schnake 2005-12-22 10:54:50 UTC
The following is a list of the (shortened) events that xev shows for my additional keys (on a Cherry CyMotion Master Linux keyboard). All of them are assignable via kcontrol for "Global Shortcuts" and "Shortcut Sequences", but some of them (marked with "NA ->") can not be used for "Application Shortcuts", where the "Configure Shortcut"-Dialog closes on keypress (so the key seems recognized), but the shortcut "key-button" says "None" afterwards, and indeed no key is bound.

      keycode 234 (keysym 0x1008ff26, XF86Back)
      keycode 233 (keysym 0x1008ff27, XF86Forward)
      keycode 232 (keysym 0x1008ff28, XF86Stop)
NA -> keycode 231 (keysym 0x1008ff73, XF86Reload)
      keycode 122 (keysym 0x1008ff1b, XF86Search)
      keycode 162 (keysym 0x1008ff14, XF86AudioPlay)
      keycode 164 (keysym 0x1008ff15, XF86AudioStop)
      keycode 144 (keysym 0x1008ff16, XF86AudioPrev)
      keycode 153 (keysym 0x1008ff17, XF86AudioNext)
NA -> keycode 204 (keysym 0x1008ff2c, XF86Eject)
      keycode 129 (keysym 0x1008ff32, XF86AudioMedia)
      keycode 160 (keysym 0x1008ff12, XF86AudioMute)
      keycode 176 (keysym 0x1008ff13, XF86AudioRaiseVolume)
      keycode 174 (keysym 0x1008ff11, XF86AudioLowerVolume)
NA -> keycode 220 (keysym 0x1008ff78, XF86ScrollUp)
NA -> keycode 143 (keysym 0x1008ff79, XF86ScrollDown)
NA -> keycode 188 (keysym 0x1008ff58, XF86Cut)
NA -> keycode 192 (keysym 0x1008ff57, XF86Copy)
NA -> keycode 248 (keysym 0x1008ff6d, XF86Paste)
      keycode 159 (keysym 0x1008ff41, XF86Launch1)
      keycode 151 (keysym 0x1008ff42, XF86Launch2)
      keycode 171 (keysym 0x1008ff43, XF86Launch3)
NA -> keycode 138 (keysym 0xff66, Redo)
NA -> keycode 135 (keysym 0xff65, Undo)
      keycode 117 (keysym 0xff67, Menu)
NA -> keycode 116 (keysym 0x1008ff51, XF86ApplicationRight)
NA -> keycode 115 (keysym 0x1008ff50, XF86ApplicationLeft)

Judging from the keycode and keysym values I do not see any "logical" rule why some keys fail and the others work.
Comment 9 Michael Schnake 2005-12-22 11:01:53 UTC
Sorry, forgot to state that the comment above applies to KDE 3.5.0 (on Gentoo Linux, ~x86).
Comment 10 Krishna Sethuraman 2006-05-16 02:17:43 UTC
I tried this again; on changing the entry in 
partial alphanumeric_keys
xkb_symbols "logickyrc14" {
etc...
    key <I02>   {       [ XF86WWW               ]       };
etc...
}; 

to read 
    key <I02>   {       [ XF86HomePage               ]       };

allows the button to be recognized/bound under Application shortcuts.  Hence, I suspect the 'XF86WWW' keysym is not valid in the Application shortcuts page (although it seems to be ok in the General shortcuts per my previous testing).  Both keysyms are listed in many keyboards under /etc/X11/xkb/symbols/inet, and I have to wonder if the button is dead (for use in 'application shortcuts') on all of the ones having it listed as XF86WWW.

Perhaps there's a hardcoded list somewhere within the KDE source that is inconsistent between global shortcuts and application shortcuts?

I'm very pleased with the binding mechanism in KDE, in light of my preference to use the keyboard over the mouse for navigation and control.  I have three precious internet buttons on my cheapie wireless keyboard, and being able to bind two of them to 'previous tab' and 'next tab' in all apps at one stroke, well, rocks.
Comment 11 Michael Helmling 2008-01-09 07:40:37 UTC
I've found a workaround here:
http://lists.opensuse.org/opensuse-de/2006-10/msg01597.html

Use an xmodmap file to rename the keys that don't work to higher number F-keys (I tried F20, F21, ...). These now work in KDE applications.

! keycode 174 = XF86AudioLowerVolume
keycode 174 = F20
! keycode 176 = XF86AudioRaiseVolume
keycode 176 = F21
Comment 12 Andrew Crouthamel 2018-09-04 18:08:51 UTC
Hello! Sorry to be the bearer of bad news, but this project has been unmaintained for many years so I am closing this bug. Kcontrol has been replaced by System Settings in Plasma. Please give the latest version of that a try, and open a new bug in "systemsettings" if you continue to have an issue. Thank you!