Apple/Cmd Key Modifier in OS X?

Post questions on how to use or achieve an effect in Inkscape.
gaffa
Posts: 4
Joined: Tue Dec 22, 2009 9:09 pm

Apple/Cmd Key Modifier in OS X?

Postby gaffa » Sun Dec 27, 2009 6:08 am

In a question on Amending Modifier Keys on OS X, I was pointed to ~suv's post http://www.inkscapeforum.com/viewtopic.php?f=5&t=3294#p15379.

It appears from this that Inkscape is restricted to the three modifiers Alt/Ctl/Shift. Is there anyway to get Inkscape to recognise four modifiers - those three and whatever you want to call the Apple/Cmd key - if it is possible to get X11 to do so?

I am not looking for the .Xmodmap hack which allows both Ctl and Cmd keys to be used for Ctl. I want four distinct modifiers, please.

~suv
Posts: 2272
Joined: Sun May 10, 2009 2:07 am

Re: Apple/Cmd Key Modifier in OS X?

Postby ~suv » Sun Dec 27, 2009 9:54 am

gaffa wrote:Is there anyway to get Inkscape to recognise four modifiers - those three and whatever you want to call the Apple/Cmd key - if it is possible to get X11 to do so?

I am not aware of any configuration option to override the internal keyboard shortcut implementation based on the three modifiers Shift, Crtl and Alt:
keys/default.xml, wrote:- The "modifiers" attribute contains a comma-separated list of modifiers, which can be
one or more of: "Ctrl", "Shift", "Alt".

The <cmd> key is seen by X11 as 'Meta_L' and 'Meta_R'. Output of 'xev' for key press/release events for both left and right cmd keys (X11/XQuartz 2.4.0 on OS X 10.5.8):

Code: Select all

KeyPress event, serial 29, synthetic NO, window 0xc00001,
    root 0x1fb, subw 0x0, time 3443975988, (373,350), root:(373,372),
    state 0x0, keycode 63 (keysym 0xffe7, Meta_L), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyRelease event, serial 29, synthetic NO, window 0xc00001,
    root 0x1fb, subw 0x0, time 3443976173, (373,350), root:(373,372),
    state 0x10, keycode 63 (keysym 0xffe7, Meta_L), same_screen YES,
    XLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyPress event, serial 29, synthetic NO, window 0xc00001,
    root 0x1fb, subw 0x0, time 3443977885, (373,350), root:(373,372),
    state 0x0, keycode 71 (keysym 0xffe8, Meta_R), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyRelease event, serial 29, synthetic NO, window 0xc00001,
    root 0x1fb, subw 0x0, time 3443978069, (373,350), root:(373,372),
    state 0x10, keycode 71 (keysym 0xffe8, Meta_R), same_screen YES,
    XLookupString gives 0 bytes:
    XFilterEvent returns: False



Trying to use a 'Meta' modifer in keys/default.xml gives this console error:

Code: Select all

** (inkscape-bin:48684): WARNING **: Unknown modifier Meta for ViewModeToggle


gaffa wrote:I want four distinct modifiers, please.
From my understanding you would need to code this - if at all possible. On systems where X11 is not running parallel to a native UI like on Mac OS X I could imagine you'd be glad to have at least one modifier that is _not_ owned by Inkscape... (EDIT: that's a logically flawed argument I figure). But I don't know for sure - I am not a dev. You could file a report in the bug tracker for your wish though.


Return to “Help with using Inkscape”