Mac 平台有 Karabiner 和 Raycast ,能很方便的实现改键和自定义组合快捷键。

Windows 上也可以通过 AutoHotKey 来实现同样的效果。

一、安装AutoHotKey

官网:AutoHotkey

文档:Quick Reference | AutoHotkey v2

二、新建配置文件

新建一个记事本缀名改为 .ahk

下面是我的配置文件

; ^ => ctrl
; + => shift
; ! => alt
CapsLock::Ctrl
PgUp::Volume_Up
PgDn::Volume_Down
 
Alt::Return
 
^+i::send {Home}
return
 
^+a::send {End}
return
 
+Esc::send {~}
return
 
^h::send {Left}
return
 
^j::send {Down}
return
 
^k::send {Up}
return
 
^l::send {Right}
return
 
+BackSpace::send {Del}
return
 
;map Mac
;常用功能键映射为 Mac 布局。
;Alt + c => ctrl + c
$!c::
  Send {Ctrl Down}{c}{Ctrl Up}
Return
$!x::
  Send {Ctrl Down}{x}{Ctrl Up}
Return
$!v::
  Send {Ctrl Down}{v}{Ctrl Up}
Return
$!a::
  Send {Ctrl Down}{a}{Ctrl Up}
Return
$!s::
  Send {Ctrl Down}{s}{Ctrl Up}
Return
$!w::
  Send {Ctrl Down}{w}{Ctrl Up}
Return
$!z::
  Send {Ctrl Down}{z}{Ctrl Up}
Return
$!f::
  Send {Ctrl Down}{f}{Ctrl Up}
Return
$!q::
  Send {Alt Down}{F4}{Alt Up}
Return
 
$!Backspace::
  Send {Delete}
Return
 
$!Left::
  Send {Home}
Return
 
$!Right::
  Send {End}
Return
 
$!+Left::
  Send +{Home}
Return
 
$!+Right::
  Send +{End}
Return
 
; 组合键打开特定应用
; VS Code
^!x::
  if WinExist("ahk_exe code.exe")
    WinActivate
  else
    Run "C:\Users\83924\AppData\Local\Programs\Microsoft VS Code\Code.exe"
return
 
; edge
SetTitleMatchMode, RegEx
^!e::
  if WinExist("ahk_exe msedge.exe", ,"(YouTube Music)")
    WinActivate
  else
    Run "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
return
 
; spark
^!b::
  if WinExist("ahk_exe Spark Desktop.exe")
    WinActivate
  else
    Run "C:\Users\83924\AppData\Local\Programs\SparkDesktop\Spark Desktop.exe"
return
 
; Notion
^!n::
  if WinExist("ahk_exe Notion.exe")
    WinActivate
  else
    Run "C:\Users\83924\AppData\Local\Programs\Notion\Notion.exe"
return
 
; spotify
^!m::
  if WinExist("ahk_exe Spotify.exe")
    WinActivate
  else
    Run "C:\Users\83924\AppData\Roaming\Spotify\Spotify.exe"
return
 
; windows terminal
^!i::
  if WinExist("ahk_exe WindowsTerminal.exe")
    WinActivate
  else
    Run "wt.exe"
return
 
; Win+F12 - Sleep
; 系统睡眠
#+F12::
  ; Sleep/Suspend:
  DllCall("PowrProf\SetSuspendState", "int", 0, "int", 0, "int", 0)
Return
按键行为
CapslockCtrl
PageUp增加音量
PageDown减小音量
Alt无(防止触发默认行为)
Ctrl + Shift + IHome
Ctrl + Shift + AEnd
Shift + Esc~ (适合没有波浪键的键盘)
Ctrl + HLeft
Ctrl + JDown
Ctrl + KUp
Ctrl + LRight
Shift + BackSpaceDelete

💡

映射键盘的上下左右是参考的油管博主,Capslock映射成Ctrl后,Ctrl + H/J/K/L 映射成方向键用的很顺手。该组合键为常用键位,有些软件会用到,看个人需求删除或修改

映射Mac键位,适合Mac和win双持选手

按键行为
Alt + CCtrl + C
Alt + XCtrl + X
Alt + VCtrl + V
Alt + ACtrl + A
Alt + SCtrl + S
Alt + WCtrl + W
Alt + ZCtrl + Z
Alt + FCtrl + F
Alt + QAlt + F4
Alt + BackSpaceDelete
Alt + LeftHome
Alt + RightEnd

组合键打开特定应用

💡

除了 Windows Terminal,其他应用的路径需要改成你本地的路径

组合键打开的应用
Ctrl + Alt + XVSCode
Ctrl + Alt + EEdge
Ctrl + Alt + BSpark
Ctrl + Alt + NNotion
Ctrl + Alt + MSpotify
Ctrl + Alt + IWindows Terminal

系统快捷键

组合键行为
Win + Shift + F12睡眠

PC已经养成了睡眠代替关机的习惯,两周到一月重启一次。不需要纠结软件的启动状态,设置一个全局快捷键很方便,使用体验非常赞。

参考文章

做了这几步, Mac 和 Windows 都能更好地满足我的需求了

AutoHotkey如何检测软件是否运行?