For the left pan, I use the following snippet:
Code: Select all
<!-- Pan left -->
<Axis>
<Enabled>true</Enabled>
<Input>
<ActionID>HIDMultiAxis_X</ActionID>
<!-- move the cap left along the x-axis -->
<Min>-512</Min>
<Max>0</Max>
</Input>
<Output>
<ActionID>KB_Keystroke</ActionID>
<KeyStroke>
<Modifiers>
<Modifier>Control</Modifier>
</Modifiers>
<Key>50</Key> <!-- <LeftArrow> HID scancode -->
<!--
Emitted: <LeftArrow>
Expected: <Ctrl+LeftArrow>
-->
</KeyStroke>
</Output>
</Axis>
I thought to replace the `<Modifiers>` subtree with the `<Key>E0</Key>` element (which represents the `<LeftCtrl>` HID scancode), but in that case the driver emits `<Ctrl>` followed by `<LeftArrow>`, instead of the expected `<Ctrl+LeftArrow>`
I also thought to move the `<KeyStroke>` subtree in a macro and call the macro from the axis by specifying the macro ID in the content of `<ActionID>`, to no avail.
The driver emits `<Ctrl+LeftArrow>` only if any`<Ctrl>` keyboard key is pressed down while moving the cap along the x-axis to the left; this is sub-optimal, because I must use two hands to pan the Inkscape canvas, instead of one.
Is it me, or is the driver not able to emit `<Modifier+Key>` keycodes from axes?
Versions used:
- 3DxWare: 10.8.3.3389
- 3DxWinCore: 17.8.3.18895