It is not very easy to find a good solution, because they are all talking about on screen keyboard. However it is not convinient.
If you have AutoHotkey installed, it is just a problem of writing a proper script to toggle key mapping: https://stackoverflow.com/questions/24389178
Copying the top answer's code:
mode := 0
^!m::
mode:=!mode ;not! toggle
return
#If mode ; All hotkeys below this line will only work if mode is TRUE
j::1
k::2
l::3
u::4
i::5
o::6
#If
ahk
In case you are not familiar with ahk syntax (or I forget in the future):
::
separates the hotkey and the action^!
means Ctrl + Alt, full list of hotkey modifier symbols#If
creates context-sensitive hotkeys and hotstrings. Referencemode := 0
sets the initial mode. Change to1
to enable at start
Notice that the script above does not fully simulate numpad, it is sending normal number keys (keys on top) instead of numpad keys. To send numpad keys:
mode := 0
^!m::
mode:=!mode ;not! toggle
return
#If mode ; All hotkeys below this line will only work if mode is TRUE
j::Numpad1
k::Numpad2
l::Numpad3
u::Numpad4
i::Numpad5
o::Numpad6
7::Numpad7
8::Numpad8
9::Numpad9
0::Numpad0
#If
ahk
But the use case is rare. The first script is enough for me.