My new laptop (Dell Inspiron 5578) has no numeric pad.
Many laptops without dedicated numpad keys have numpad accessible through Fn, but not this one. When I run xev
and try to use traditional Fn combos (e.g., Fn+J for 1), it sees no event. And the numbers are not even on the labels.
AFAIU, I cannot create any shortcut with the Fn key, because Fn is not passed to the OS.
But I could theoretically use Alt_L+Super_L instead. The question is how to do it properly. I'd prefer to do it on a lower level than keyboard layout in order to work well with all the VMs, even with non-Linux ones.
Environment: Qubes OS. The host part is based on Fedora.
I've tried:
- Bind an xdotool command via Xfce key shortcut. This produces various weird results: The command (xdotool key KP_1 and variations) usually works OK, but not when invoked by shortcut. When invoked by shortcut, the problem probably is that modifier keys are pressed at the time. I've tried various modifications (
--clearmodifiers
, keyup for modifiers etc.), none of them works well. - Do the same with autokey. I got some freezes of autokey.
Non-solutions:
- Use external numpad/keyboard: While I have a numpad (sort of) on my external keyboard, I'd like to have one even on the internal one, e.g., when travelling and it is impossible or at least uncomfortable to use the external keyboard.
- Use number row: In Czech layout, the number row is used primarily for accented letters. The layout I use (extracs variant of CShack) does not have numbers in the “number row” at all.
- Buy a different laptop: It was hard to find a laptop satisfying my various requirements.
Best Answer
You could try
kbindkeys
,numlockx
and a slightly customized keyboard.Once you install xbindkeys, you have to run it. It will tell you what to do to create the basic configuration.
Then you use
xbindkeys -k
to identify the key and modify the configuration file (it's all documented in the default configuration file).At last, I suggest you run
xbindkeys -v -n
to see if everything works. If it does, you can runxbindkeys
for that session and maybe add it to your startup scripts.In my case, the Windows key (right) does the binding, and my
~/.xbindkeysrc
is:Now you can add the mappings. You will use the fifth and sixth levels (numlock and shift+numlock).
At the top of /usr/share/X11/xkb/symbols/cz, right after:
add this snippet:
Now, when you press the window key (right), xkeybind will set numlock, which in turn will make J,K,L and so on return 1,2,3.
Last step, set the new keyboard with: