mooz/xkeysnail

PRINT key not working in Modmap

DidacGit opened this issue · 6 comments

First of all thanks for the amazing package, it literally feels like using Emacs everywhere. Specially due to the mark-setting commands.

The problem that I'm experiencing is that mapping the PRINT key to any other key doesn't work, as in:

define_modmap({
    Key.PRINT: Key.RIGHT_ALT,
})

I've tried mapping it to other keys but still doesn't work. Also, I've successfully mapped other keys using the same method (e.g. RightAlt to RightCtrl).

I've tested with two different keyboards: the built-in from the Thinkpad T14s and an external Bluetooth Thinkpad keyboard.

Thanks a lot

@DidacGit I haven't dug into xkeysnail on this topic, but I do this after I start xkeysnail to turn PrtSc into a menu key:

 xmodmap -e "add mod4 = Print"

For right alt, I would do:

 xmodmap -e "add mod1 = Print"

Perhaps that helps you.

I actually already have my favorite setup using xmodmap:

! Turn, at the right of the Spacebar: ALT - PRINT - CTRL
! Into: CTRL - ALT - PRINT

! Remove the two modifier keys first from the modifier map.
remove mod5 = ISO_Level3_Shift
remove Control = Control_R

! Change the keys from the global map.
keycode 108 = Control_R
keycode 107 = ISO_Level3_Shift
keycode 105 = Print

! Add again the modifier keys.
add mod5 = ISO_Level3_Shift
add Control = Control_R

But I cannot make it work with xkeysnail. When I run one before the other it stops working and vice versa.
EDIT: Even if I don't use define_modmap with xkeysnail, just one define_keymap statement.

In the end it turns out that the PRINT key in the Thinkpad Wireless keyboard is named Key.SYSRQ instead of Key.PRINT. So changing it worked.

@DidacGit

Considering that thinkPad's Print Screen aka SYSRQ key, how does your final config entry looks after all?

I tried something like:

define_keymap(re.compile(".*"), {
    Key.SYSRQ: Key.RIGHT_ALT,
    K("LSuper-Q") : K("Alt-F4"),
    K("RAlt-SPACE") : K("LSuper-SPACE"),
    K("RShift-SYSRQ"): K("SYSRQ"),
})

But while other mappings work, the very first one fails (my ThinkPad PrtSc button still acts like Print Screen when pressed alone or with some other key).

For remapping keys, not combos, use modmap.

@joshgoebel, I swear I tried that before, too, and it didn't work (probably had some stupid mistake in the config...)

Thanks for insisting on the right solution :) (Even better, I ended with multipurpose_modmap, and what an excellent app xkeysnail is!)