Skip to content

Instantly share code, notes, and snippets.

@zhlinh
Last active March 9, 2019 12:22
Show Gist options
  • Save zhlinh/9493402e337e03b8a80c4afdfbdf008c to your computer and use it in GitHub Desktop.
Save zhlinh/9493402e337e03b8a80c4afdfbdf008c to your computer and use it in GitHub Desktop.
This AHK script provides an enhancement towards the CapsLock.
;=====================================================================o
; AHK Script |
; CapsLock Enhancement |
;---------------------------------------------------------------------o
;Updated: March 09, 2019 |
;Gist: https://gist.github.com/9493402e337e03b8a80c4afdfbdf008c.git |
;-----------------------o---------------------------------------------o
;Description: |
; This AHK script provides an enhancement towards the 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
;|NOTE: 'Alt + CapsLock' equals 'Shift + CapsLock', for convenient. |
;o----------------------o---------------------------------------------o
;|CapsLock | {ESC} Especially Convient for vim user |
;|CaspLock + ` | {CapsLock}CapsLock Switcher as a Substituent|
;|CapsLock + hjklqwn | Vim-Style Cursor Mover |
;|CaspLock + aefb | Convenient Home/End PageUp/PageDn |
;|CaspLock + ;'yuop | Convenient Delete Controller |
;|CapsLock + Direction | Mouse Move |
;|CapsLock + {Space} | Mouse Click |
;|CapsLock + {Enter} | Create next line |
;|CaspLock + {F1}!{F7} | Media Volume Controller |
;|CapsLock + cvx | Copy/Copy&Paste/Clip(Delete) One Line |
;|CaspLock + qdsr | Frequently Used Programs (Self Defined) |
;|CaspLock + 12...90[] | Dev-Hotkey for IDEA (Self Defined) |
;|CapsLock + z | start/stop Mouse auto click in a period |
;-----------------------o---------------------------------------------o
;|Use it whatever and wherever you like. Hope it help |
;=====================================================================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 ;|
; CapsLock + n | Next search result ;|
; Alt + CapsLock + n | Prev search result ;|
; 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 ;|
CapsLock & n:: ;|
if GetKeyState("control") = 0 { ;|
if GetKeyState("alt") = 0 ;|
Send, {F3} ;|
else ;|
Send, !{F3} ;|
return ;|
} ;|
else { ;|
if GetKeyState("alt") = 0 ;|
Send, ^{F3} ;|
else ;|
Send, !^{F3} ;|
return ;|
} ;|
return ;|
;---------------------------------------------------------------------o
;=====================================================================o
; CapsLock Home/End/Word Navigator ;|
;-----------------------------------o---------------------------------o
; CapsLock + a | Home ;|
; CapsLock + e | End ;|
; Ctrl, Alt Compatible ;|
; CapsLock + w | Ctrl + Right(Move as [vim: w]);|
; CapsLock + q | Ctrl + Left (Move as [vim: b]);|
;-----------------------------------o---------------------------------o
CapsLock & a:: ;|
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 & e:: ;|
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
CapsLock & w:: Send, ^{Right} ;|
CapsLock & q:: Send, ^{Left} ;|
;---------------------------------------------------------------------o
;=====================================================================o
; CapsLock Page Navigator ;|
;-----------------------------------o---------------------------------o
; CapsLock + b | PageUp ;|
; CapsLock + f | PageDown ;|
; Ctrl, Alt Compatible ;|
;-----------------------------------o---------------------------------o
CapsLock & b:: ;|
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 & f:: ;|
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 + {Space}(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 & Space:: ;|
SendEvent {Blind}{LButton down} ;|
KeyWait Space ;|
SendEvent {Blind}{LButton up} ;|
return ;|
;---------------------------------------------------------------------o
;=====================================================================o
; CapsLock Deletor ;|
;-----------------------------------o---------------------------------o
; CapsLock + ; | BackSpace ;|
; CapsLock + ' | Delete ;|
; CapsLock + y | Ctrl + BackSpace (BS a Word) ;|
; CapsLock + u | Delete to begining of the line;|
; CapsLock + p | Ctrl + Delete (Del a Word) ;|
; CapsLock + o | Delete to end of the line ;|
; CapsLock + BackSpace | Delete one line ;|
;-----------------------------------o---------------------------------o
CapsLock & `;:: Send, {BS} ;|
CapsLock & y:: Send, ^{BS} ;|
CapsLock & u:: Send, +{Home}{BS} ;|
CapsLock & ':: Send, {Del} ;|
CapsLock & p:: Send, ^{Del} ;|
CapsLock & o:: Send, +{End}{Del} ;|
CapsLock & BackSpace:: ;|
Send, {home}{shiftdown}{end}{ShiftUp}{Del 2} ;|
return ;|
;---------------------------------------------------------------------o
;=====================================================================o
; CapsLock Media Controller ;|
;-----------------------------------o---------------------------------o
; CapsLock + F1 | Volume_Mute ;|
; CapsLock + F2 | Volume_Down ;|
; CapsLock + F3 | Volume_Up ;|
; CapsLock + F4 | Media_Play_Pause ;|
; CapsLock + F5 | Media_Prev ;|
; CapsLock + F6 | Media_Next ;|
; CapsLock + F7 | 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_Prev} ;|
CapsLock & F6:: Send, {Media_Next} ;|
CapsLock & F7:: Send, {Media_Stop} ;|
;---------------------------------------------------------------------o
;=====================================================================o
; CapsLock Editor ;|
;-----------------------------------o---------------------------------o
; CapsLock + Enter | Create next line ;|
; CapsLock + c | Copy one line ;|
; CapsLock + v | Copy one line and paste ;|
; CapsLock + x | Cut(Delete) one line ;|
; CapsLock + , | Seclect previous word ;|
; Alt + CapsLock + , | Seclect to {Home} ;|
; CapsLock + . | Seclect next word ;|
; Alt + CapsLock + . | Seclect to {End} ;|
;-----------------------------------o---------------------------------o
capsLock & Enter:: ;|
send, {End} ;|
send, {Enter} ;|
return ;|
;-----------------------------------o ;|
capsLock & v:: ;|
send, {Home} ;|
send, +{End} ;|
send, ^c ;|
send, {End} ;|
send, {Enter} ;|
send, ^v ;|
return ;|
;-----------------------------------o ;|
capsLock & c:: Send, {End}{shiftdown}{Home}{ShiftUp}^c{End} ;|
capsLock & x:: Send, {Home}{shiftdown}{end}{ShiftUp}^x{Del} ;|
capsLock & ,:: ;|
if GetKeyState("alt") = 0 ;|
{ ;|
Send, +{Left} ;|
return ;|
} ;|
else { ;|
Send, +{Home} ;|
return ;|
} ;|
return ;|
;-----------------------------------o ;|
capsLock & .:: ;|
if GetKeyState("alt") = 0 ;|
{ ;|
Send, +{Right} ;|
return ;|
} ;|
else { ;|
Send, +{End} ;|
return ;|
} ;|
return ;|
;---------------------------------------------------------------------o
;=====================================================================o
; CapsLock Self Defined App Area ;|
;-----------------------------------o---------------------------------o
; CapsLock + d | Add Bookmark (IDEA) ;|
; CapsLock + s | Open Bookmark (IDEA) ;|
; CapsLock + r | Refactor rename (IDEA) ;|
; CapsLock + t | Open structure (IDEA) ;|
;-----------------------------------o---------------------------------o
capsLock & d:: ;|
d = %A_YYYY%-%A_MM%-%A_DD%
clipboard = %d%
Send ^v
return
CapsLock & s:: Send, +{F11} ;|
CapsLock & r:: Send, +{F10} ;|
CapsLock & t:: Send, ^{F12} ;|
;---------------------------------------------------------------------o
;=====================================================================o
; CapsLock Non Alpha Char Mapping ;|
;-----------------------------------o---------------------------------o
; CapsLock + [ | Goto pre function (IDEA) ;|
; CapsLock + ] | Goto next function (IDEA) ;|
; CapsLock + 1 | Open Object selector (IDEA) ;|
; CapsLock + 2 | Goto next warning (IDEA) ;|
; CapsLock + 3 | Next match (IDEA) ;|
; CapsLock + 4 | Pre match (IDEA) ;|
; CapsLock + 5 | Show warning info (IDEA) ;|
; CapsLock + 6 | Refactor rename (IDEA) ;|
; CapsLock + 7 | Step in (IDEA) ;|
; CapsLock + 8 | Step out (IDEA) ;|
; CapsLock + 9 | Debug ;|
; CapsLock + 0 | Run ;|
;-----------------------------------o---------------------------------o
CapsLock & [:: Send, !{Up} ;|
CapsLock & ]:: Send, !{Down} ;|
;-----------------------------------o ;|
CapsLock & 1:: Send, !{F1} ;|
CapsLock & 2:: Send, +{F2} ;|
CapsLock & 3:: Send, +{F3} ;|
CapsLock & 4:: Send, {F3} ;|
CapsLock & 5:: Send, ^{F1} ;|
;-----------------------------------o ;|
CapsLock & 6:: Send, +{F6} ;|
CapsLock & 7:: Send, +{F7} ;|
CapsLock & 8:: Send, +{F8} ;|
CapsLock & 9:: Send, +{F9} ;|
CapsLock & 0:: Send, +{F10} ;|
;---------------------------------------------------------------------o
;=====================================================================o
; CapsLock Mouse auto click per 4s ;|
;-----------------------------------o---------------------------------o
; CapsLock + z | start/stop mouse auto click ;|
;-----------------------------------o---------------------------------o
v_enable = 0 ;|
CapsLock & z:: ;|
v_enable := !v_enable ;|
if (v_enable = 1) { ;|
SetTimer, run, 3000 ;|
return ;|
} ;|
else { ;|
SetTimer, run, off ;|
return ;|
} ;|
return ;|
;-----------------------------------o ;|
run: ;|
Click ;|
Sleep 1000 ;|
return ;|
;---------------------------------------------------------------------o
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment