Nos ultimos dias estou tentando usar um teclado numérico USB como esse abaixo para ser um teclado de macros/ atalhos, para usar nos programas que trabalho aqui.
Uma das minhas primeiras tentativas foi usar o HID macros, porém ele acaba bugando a tecla ^ deixando ela duplicada e isso faz com que a digitação de palavras com acentuação acabe ficando impossibilitada.
No linux eu não conheço uma solução, mas no windows eu utilizo o AutoHotkey para mapear teclas de atalho e configurar teclas (incluindo as teclas especiais como calculadora, play/pause, vol up, vol down, etc).
Creio que montar um script no autohotkey resolva seu problema, ao menos no windows.
Só como exemplo, esse é o script que montei para mapear a tecla “menu” para abrir o cmder (terminal) e a tecla de “calculadora” para abrir o Speed Crunch.
O AutoHotkey possui uma ferramenta que te indica qual tecla está sendo pressionada para facilitar implementações desse tipo, então, creio que não seja algo tão complicado de remapear as teclas de um teclado numérico externo com ele (só não sei se ele vai reconhecer esse teclado externo como algo extra ou se vai conflitar com o teclado numérico já existente no PC, teria que testar).
#SingleInstance Ignore
AppsKey:: Cmder()
Launch_App2:: SpeedCrunch()
;Coloca o prompt Cmder em foco.
;Caso o processo não esteja aberto, executa o aplicativo antes de colocá-lo em foco.
Cmder() {
ErrorLevel := ProcessExist("ConEmu64.exe")
If ErrorLevel {
try {
if !WinActive("Cmder")
{
Sleep(50)
WinActivate("Cmder")
Return
}
}
catch {
Return
}
}
Else
{
Run("C:\Users\samuel.oliveira\Desktop\Tools\cmder\Cmder.exe")
ErrorLevel := !WinWait("Cmder")
WinActivate("Cmder")
}
}
;Minimiza/Restaura a calculadora SpeedCrunch.
;Caso o processo não esteja aberto, executa a calculadora antes de colocá-la em foco.
SpeedCrunch() {
ErrorLevel := ProcessExist("speedcrunch.exe")
If ErrorLevel
{
if !WinActive("SpeedCrunch")
{
WinShow("SpeedCrunch ahk_pid " ErrorLevel)
Sleep(50)
WinActivate("SpeedCrunch ahk_pid " ErrorLevel)
Return
}
else
{
WinMinimize("SpeedCrunch ahk_pid " ErrorLevel)
Return
}
}
Else
{
Run("C:\Users\samuel.oliveira\Desktop\Tools\SpeedCrunch\speedcrunch.exe")
ErrorLevel := !WinWait("SpeedCrunch")
WinActivate("SpeedCrunch")
}
}
Para linux achei algumas coisas mas não faço ideia se alguma delas vingou ou quão madura/segura é a solução (já que não teste nenhuma pois, para o meu uso, a configuração nativa de teclas de atalho do XFCE já me atende):