Skip to content

Instantly share code, notes, and snippets.

@laxapple
Last active March 6, 2017 07:18
Show Gist options
  • Save laxapple/b7fa19ad3dceeb954fde to your computer and use it in GitHub Desktop.
Save laxapple/b7fa19ad3dceeb954fde to your computer and use it in GitHub Desktop.
CapsLock enhancement
;=====================================================================o
; Feng Ruohang's AHK Script |
; CapsLock Enhancement |
;---------------------------------------------------------------------o
; Modified by Colin Tang |
;---------------------------------------------------------------------o
;Description: |
; This Script is wrote by Feng Ruohang via AutoHotKey Script. It |
; Provides an enhancement towards the "Useless Key" CapsLock, and |
; turns CapsLock into an useful function Key just like Ctrl and Alt |
; by combining CapsLock with almost all other keys in the keyboard. |
; |
;Summary: |
;o----------------------o---------------------------------------------o
;|CapsLock; | {ESC} Especially convenient for vim user |
;|CaspLock + ` | {CapsLock}CapsLock Switcher as a Substituent|
;|CapsLock + hjklwb | Vim-Style Cursor Mover |
;|CaspLock + uiop | Convenient Home/End PageUp/PageDn |
;|CaspLock + nm,. | Convenient Delete Controller |
;|CapsLock + zxcvay | Windows-Style Editor |
;|CapsLock + Direction | Mouse Move |
;|CapsLock + Enter | Mouse Click |
;|CaspLock + {F1}~{F6} | Media Volume Controller |
;|CapsLock + qs | Windows & Tags Control |
;|CapsLock + ;'[] | Convenient Key Mapping |
;|CaspLock + dfert | Frequently Used Programs (Self Defined) |
;|CaspLock + 123456 | Dev-Hotkey for Visual Studio (Self Defined) |
;|CapsLock + 67890-= | Shifter as Shift |
;-----------------------o---------------------------------------------o
;|Use it whatever and wherever you like. Hope it helps! |
;=====================================================================o
;=====================================================================o
; CapsLock Initializer ;|
;---------------------------------------------------------------------o
SetCapsLockState, AlwaysOff ;|
;---------------------------------------------------------------------o
;=====================================================================o
; CapsLock Switcher: ;|
;---------------------------------o-----------------------------------o
; CapsLock + ` | {CapsLock} ;|
;---------------------------------o-----------------------------------o
CapsLock & `:: ;|
GetKeyState, CapsLockState, CapsLock, T ;|
if CapsLockState = D ;|
SetCapsLockState, AlwaysOff ;|
else ;|
SetCapsLockState, AlwaysOn ;|
KeyWait, `` ;|
return ;|
;---------------------------------------------------------------------o
;=====================================================================o
; CapsLock Escaper: ;|
;----------------------------------o----------------------------------o
; CapsLock | {ESC} ;|
;----------------------------------o----------------------------------o
CapsLock::Send, {ESC} ;|
;---------------------------------------------------------------------o
;=====================================================================o
; CapsLock Direction Navigator ;|
;-----------------------------------o---------------------------------o
; CapsLock + h | Left ;|
; CapsLock + j | Down ;|
; CapsLock + k | Up ;|
; CapsLock + l | Right ;|
; Ctrl, Alt Compatible ;|
;-----------------------------------o---------------------------------o
CapsLock & h:: ;|
if GetKeyState("control") = 0 ;|
{ ;|
if GetKeyState("alt") = 0 ;|
Send, {Left} ;|
else ;|
Send, +{Left} ;|
return ;|
} ;|
else { ;|
if GetKeyState("alt") = 0 ;|
Send, ^{Left} ;|
else ;|
Send, +^{Left} ;|
return ;|
} ;|
return ;|
;-----------------------------------o ;|
CapsLock & j:: ;|
if GetKeyState("control") = 0 ;|
{ ;|
if GetKeyState("alt") = 0 ;|
Send, {Down} ;|
else ;|
Send, +{Down} ;|
return ;|
} ;|
else { ;|
if GetKeyState("alt") = 0 ;|
Send, ^{Down} ;|
else ;|
Send, +^{Down} ;|
return ;|
} ;|
return ;|
;-----------------------------------o ;|
CapsLock & k:: ;|
if GetKeyState("control") = 0 ;|
{ ;|
if GetKeyState("alt") = 0 ;|
Send, {Up} ;|
else ;|
Send, +{Up} ;|
return ;|
} ;|
else { ;|
if GetKeyState("alt") = 0 ;|
Send, ^{Up} ;|
else ;|
Send, +^{Up} ;|
return ;|
} ;|
return ;|
;-----------------------------------o ;|
CapsLock & l:: ;|
if GetKeyState("control") = 0 ;|
{ ;|
if GetKeyState("alt") = 0 ;|
Send, {Right} ;|
else ;|
Send, +{Right} ;|
return ;|
} ;|
else { ;|
if GetKeyState("alt") = 0 ;|
Send, ^{Right} ;|
else ;|
Send, +^{Right} ;|
return ;|
} ;|
return ;|
;---------------------------------------------------------------------o
;=====================================================================o
; CapsLock Home/End Navigator ;|
;-----------------------------------o---------------------------------o
; CapsLock + i | Home ;|
; CapsLock + o | End ;|
; Ctrl, Alt Compatible ;|
;-----------------------------------o---------------------------------o
CapsLock & i:: ;|
if GetKeyState("control") = 0 ;|
{ ;|
if GetKeyState("alt") = 0 ;|
Send, {Home} ;|
else ;|
Send, +{Home} ;|
return ;|
} ;|
else { ;|
if GetKeyState("alt") = 0 ;|
Send, ^{Home} ;|
else ;|
Send, +^{Home} ;|
return ;|
} ;|
return ;|
;-----------------------------------o ;|
CapsLock & o:: ;|
if GetKeyState("control") = 0 ;|
{ ;|
if GetKeyState("alt") = 0 ;|
Send, {End} ;|
else ;|
Send, +{End} ;|
return ;|
} ;|
else { ;|
if GetKeyState("alt") = 0 ;|
Send, ^{End} ;|
else ;|
Send, +^{End} ;|
return ;|
} ;|
return ;|
;---------------------------------------------------------------------o
;=====================================================================o
; CapsLock Page Navigator ;|
;-----------------------------------o---------------------------------o
; CapsLock + u | PageUp ;|
; CapsLock + p | PageDown ;|
; Ctrl, Alt Compatible ;|
;-----------------------------------o---------------------------------o
CapsLock & u:: ;|
if GetKeyState("control") = 0 ;|
{ ;|
if GetKeyState("alt") = 0 ;|
Send, {PgUp} ;|
else ;|
Send, +{PgUp} ;|
return ;|
} ;|
else { ;|
if GetKeyState("alt") = 0 ;|
Send, ^{PgUp} ;|
else ;|
Send, +^{PgUp} ;|
return ;|
} ;|
return ;|
;-----------------------------------o ;|
CapsLock & p:: ;|
if GetKeyState("control") = 0 ;|
{ ;|
if GetKeyState("alt") = 0 ;|
Send, {PgDn} ;|
else ;|
Send, +{PgDn} ;|
return ;|
} ;|
else { ;|
if GetKeyState("alt") = 0 ;|
Send, ^{PgDn} ;|
else ;|
Send, +^{PgDn} ;|
return ;|
} ;|
return ;|
;---------------------------------------------------------------------o
;=====================================================================o
; CapsLock Mouse Controller ;|
;-----------------------------------o---------------------------------o
; CapsLock + Up | Mouse Up ;|
; CapsLock + Down | Mouse Down ;|
; CapsLock + Left | Mouse Left ;|
; CapsLock + Right | Mouse Right ;|
; CapsLock + Enter(Push Release) | Mouse Left Push(Release) ;|
;-----------------------------------o---------------------------------o
CapsLock & Up:: MouseMove, 0, -10, 0, R ;|
CapsLock & Down:: MouseMove, 0, 10, 0, R ;|
CapsLock & Left:: MouseMove, -10, 0, 0, R ;|
CapsLock & Right:: MouseMove, 10, 0, 0, R ;|
;-----------------------------------o ;|
CapsLock & Enter:: ;|
SendEvent {Blind}{LButton down} ;|
KeyWait Enter ;|
SendEvent {Blind}{LButton up} ;|
return ;|
;---------------------------------------------------------------------o
;=====================================================================o
; CapsLock Deletor ;|
;-----------------------------------o---------------------------------o
; CapsLock + n | Ctrl + Delete (Delete a Word) ;|
; CapsLock + m | Delete ;|
; CapsLock + , | BackSpace ;|
; CapsLock + . | Ctrl + BackSpace ;|
;-----------------------------------o---------------------------------o
CapsLock & ,:: Send, {Del} ;|
CapsLock & .:: Send, ^{Del} ;|
CapsLock & m:: Send, {BS} ;|
CapsLock & n:: Send, ^{BS} ;|
;---------------------------------------------------------------------o
;=====================================================================o
; CapsLock Editor ;|
;-----------------------------------o---------------------------------o
; CapsLock + z | Ctrl + z (Cancel) ;|
; CapsLock + x | Ctrl + x (Cut) ;|
; CapsLock + c | Ctrl + c (Copy) ;|
; CapsLock + v | Ctrl + z (Paste) ;|
; CapsLock + a | Ctrl + a (Select All) ;|
; CapsLock + y | Ctrl + z (Yeild) ;|
; CapsLock + w | Ctrl + Right(Move as [vim: w]);|
; CapsLock + b | Ctrl + Left (Move as [vim: b]);|
;-----------------------------------o---------------------------------o
CapsLock & z:: Send, ^z ;|
CapsLock & x:: Send, ^x ;|
CapsLock & c:: Send, ^c ;|
CapsLock & v:: Send, ^v ;|
CapsLock & a:: Send, ^a ;|
CapsLock & y:: Send, ^y ;|
CapsLock & w:: Send, ^{Right} ;|
CapsLock & b:: Send, ^{Left} ;|
;---------------------------------------------------------------------o
;=====================================================================o
; CapsLock Media Controller ;|
;-----------------------------------o---------------------------------o
; CapsLock + F1 | Volume_Mute ;|
; CapsLock + F2 | Volume_Down ;|
; CapsLock + F3 | Volume_Up ;|
; CapsLock + F3 | Media_Play_Pause ;|
; CapsLock + F5 | Media_Next ;|
; CapsLock + F6 | Media_Stop ;|
;-----------------------------------o---------------------------------o
CapsLock & F1:: Send, {Volume_Mute} ;|
CapsLock & F2:: Send, {Volume_Down} ;|
CapsLock & F3:: Send, {Volume_Up} ;|
CapsLock & F4:: Send, {Media_Play_Pause} ;|
CapsLock & F5:: Send, {Media_Next} ;|
CapsLock & F6:: Send, {Media_Stop} ;|
;---------------------------------------------------------------------o
;=====================================================================o
; CapsLock Window Controller ;|
;-----------------------------------o---------------------------------o
; CapsLock + s | Ctrl + Tab (Swith Tag) ;|
; CapsLock + q | Ctrl + W (Close Tag) ;|
; (Disabled) Alt + CapsLock + s | AltTab (Switch Windows) ;|
; Alt + CapsLock + q | Ctrl + Tab (Close Windows) ;|
; CapsLock + g | AppsKey (Menu Key) ;|
;-----------------------------------o---------------------------------o
CapsLock & s::Send, ^{Tab} ;|
;-----------------------------------o ;|
CapsLock & q:: ;|
if GetKeyState("alt") = 0 ;|
{ ;|
Send, ^w ;|
} ;|
else { ;|
Send, !{F4} ;|
return ;|
} ;|
return ;|
;-----------------------------------o ;|
CapsLock & g:: Send, {AppsKey} ;|
;---------------------------------------------------------------------o
;=====================================================================o
; CapsLock Self Defined Area ;|
;-----------------------------------o---------------------------------o
; CapsLock + d | Alt + d(Dictionary) ;|
; CapsLock + f | Alt + f(Search via Everything);|
; CapsLock + e | Open Search Engine ;|
; CapsLock + r | Open Shell ;|
; CapsLock + t | Open Text Editor ;|
;-----------------------------------o---------------------------------o
CapsLock & d:: Send, !d ;|
CapsLock & f:: Send, !f ;|
CapsLock & e:: Run http://cn.bing.com/ ;|
CapsLock & r:: Run Powershell ;|
CapsLock & t:: Run C:\Program Files (x86)\Notepad++\notepad++.exe ;|
;---------------------------------------------------------------------o
;=====================================================================o
; CapsLock Char Mapping ;|
;-----------------------------------o---------------------------------o
; CapsLock + ; | Enter (Cancel) ;|
; CapsLock + ' | = ;|
; CapsLock + [ | Back (Visual Studio) ;|
; CapsLock + ] | Goto Define (Visual Studio) ;|
; CapsLock + / | Comment (Visual Studio) ;|
; CapsLock + \ | Uncomment (Visual Studio) ;|
; CapsLock + 1 | Build and Run(Visual Studio) ;|
; CapsLock + 2 | Debuging (Visual Studio) ;|
; CapsLock + 3 | Step Over (Visual Studio) ;|
; CapsLock + 4 | Step In (Visual Studio) ;|
; CapsLock + 5 | Stop Debuging(Visual Studio) ;|
; CapsLock + 6 | Shift + 6 ^ ;|
; CapsLock + 7 | Shift + 7 & ;|
; CapsLock + 8 | Shift + 8 * ;|
; CapsLock + 9 | Shift + 9 ( ;|
; CapsLock + 0 | Shift + 0 ) ;|
;-----------------------------------o---------------------------------o
CapsLock & `;:: Send, {Enter} ;|
CapsLock & ':: Send, = ;|
CapsLock & [:: Send, ^- ;|
CapsLock & ]:: Send, {F12} ;|
;-----------------------------------o ;|
CapsLock & /:: ;|
Send, ^e ;|
Send, c ;|
return ;|
;-----------------------------------o ;|
CapsLock & \:: ;|
Send, ^e ;|
Send, u ;|
return ;|
;-----------------------------------o ;|
CapsLock & 1:: Send,{F1} ;|
CapsLock & 2:: Send,{F2} ;|
CapsLock & 3:: Send,{F3} ;|
CapsLock & 4:: Send,{F4} ;|
CapsLock & 5:: Send,{F5} ;|
CapsLock & 6:: Send,{F6} ;|
CapsLock & 7:: Send,{F7} ;|
CapsLock & 8:: Send,{F8} ;|
CapsLock & 9:: Send,{F9} ;|
CapsLock & 0:: Send,{F10} ;|
;---------------------------------------------------------------------o
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment