键盘映射autohotkey

求知·网络 · 2022-06-11 · 1138 人浏览
键盘映射autohotkey

最近由于封控的原因在家用电脑较多,于是翻出了很早的poker 61键,这个键盘最大的特色就是小巧和宏编程。不过因为主要还是打字,宏并未用到,但是其小巧的尺寸还是很舒服的,鼠标也有充裕的空间,手臂不用张开。
84956864.png
随着封控的结束,poker键盘带来的最大问题就是:因为没有方向键,习惯了fn+wasd来实现上下左右,效率非常高,而且不像vim这类hjkl只有程序有效。于是考虑公司也用wasd来实现上下左右。

摸索了一阵用autohotkey实现了,几个坑记录下:

  1. win10要管理员运行,否则有些程序映射不起作用
  2. 用return来关闭默认的功能,RAlt::return否则原有的alt会触发
  3. 转义符号是',方便映射符号类的按键
  4. alt组合键并不能用于按着连续移动,否则会间歇打出wasd

整个脚本实现右ALT和capslock代替原来右边的Fn键,也是因为AHK不能直接使用Fn,而仅有RAlt单手实现方向不易,有时需要单手capslock & wasd来实现移动。

#NoEnv 
SendMode Input  
SetWorkingDir %A_ScriptDir%  

SetCapsLockState, AlwaysOff            
*Capslock::SetCapsLockState, AlwaysOff 
                              
; 偶尔用到capslock用ctrl组合实现
^Capslock::  
If GetKeyState("CapsLock", "T") = 1
    SetCapsLockState, AlwaysOff
Else 
    SetCapsLockState, AlwaysOn
Return

RAlt::Return
CapsLock & w::Up
CapsLock & s::Down
CapsLock & a::Left
CapsLock & d::Right
CapsLock & Backspace::Delete

RAlt & a::Send {Left}
RAlt & d::Send {Right}
RAlt & s::Send {Down}
RAlt & w::Send {Up}
RAlt & 1::Send, {F1}
RAlt & 2::Send, {F2}
RAlt & 3::Send, {F3}
RAlt & 4::Send, {F4}
RAlt & 5::Send, {F5}
RAlt & 6::Send, {F6}
RAlt & 7::Send, {F7}
RAlt & 8::Send, {F8}
RAlt & 9::Send, {F9}
RAlt & 0::Send, {F10}
RAlt & -::Send, {F11}
RAlt & =::Send, {F12}
RAlt & Backspace::Send, {Delete}
RAlt & `;::Send, {Home}
RAlt & .::Send, {End}
RAlt & "::Send, {PgUp}
RAlt & /::Send, {PgDn}
RAlt & \::Send, ``
RAlt & p::Send, {PrintScreen}
RAlt & ,::Send, {volume_Mute}
RAlt & m::Send, {volume_Down}
RAlt & n::Send, {Volume_Up}


^.::
  clipboard = .
  Send ^v
  return

^,::
  clipboard = ,
  Send ^v
  return

RAlt & Esc::
    ; Sleep/Suspend:
    DllCall("PowrProf\SetSuspendState", "int", 0, "int", 0, "int", 0)
    ; Hibernate:
    ;DllCall("PowrProf\SetSuspendState", "int", 1, "int", 0, "int", 0)
    Return
autohotkey ahk poker61

Buy Me a Coffee

支付宝 支付宝
微信 微信
Theme Jasmine by Kent Liao