Last active
March 9, 2019 12:22
-
-
Save zhlinh/9493402e337e03b8a80c4afdfbdf008c to your computer and use it in GitHub Desktop.
This AHK script provides an enhancement towards the CapsLock.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;=====================================================================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