-
Notifications
You must be signed in to change notification settings - Fork 0
/
CapsLock_Modifier.ahk
132 lines (106 loc) · 3.92 KB
/
CapsLock_Modifier.ahk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn ; Enable warnings to assist with detecting common errors.
#SingleInstance FORCE ; Skip invocation dialog box and silently replace previously executing instance of this script.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
;================================================================================================
; CapsLock processing. Must double tap CapsLock to toggle CapsLock mode on or off.
;================================================================================================
; Must double tap CapsLock to toggle CapsLock mode on or off.
CapsLock::
KeyWait, CapsLock ; Wait forever until Capslock is released.
KeyWait, CapsLock, D T0.2 ; ErrorLevel = 1 if CapsLock not down within 0.2 seconds.
if ((ErrorLevel = 0) && (A_PriorKey = "CapsLock") ) ; Is a double tap on CapsLock?
{
SetCapsLockState, % GetKeyState("CapsLock","T") ? "Off" : "On" ; Toggle the state of CapsLock LED
}
return
;================================================================================================
; Hot keys with CapsLock modifier. See https://autohotkey.com/docs/Hotkeys.htm#combo
;================================================================================================
;================================================================================================
; Vim-like navigation arrows
;================================================================================================
;Down key
CapsLock & j::
Send {Down}
Return
;Up key
CapsLock & k::
Send {Up}
Return
;Right key
CapsLock & l::
Send {Right}
Return
;Left key
CapsLock & h::
Send {Left}
Return
;================================================================================================
; Easy virtual desktop switching
;================================================================================================
;Right desktop
CapsLock & i::
Send #^{Right}
Return
;Left desktop
CapsLock & u::
Send #^{Left}
Return
;================================================================================================
; Miscellanous
;================================================================================================
;Compile & Run project for Visual Studio & alike
CapsLock & r::
Send {F5}
Return
;Quit app
CapsLock & q::
Send !{F4}
Return
;Open Windows Terminal
CapsLock & t::
Run, wt
Return
;Easy access to escape key
CapsLock & [::
Send, {Esc}
Return
; GOOGLE the selected text.
CapsLock & g::
ClipboardGet()
Run, http://www.google.com/search?q=%clipboard% ; Launch with contents of clipboard
ClipboardRestore()
Return
;================================================================================================
; Media Controls
;================================================================================================
; Mute
CapsLock & m::
Send {Volume_Mute}
Return
; Pause
CapsLock & Space::
Send {Media_Play_Pause}
Return
;++++++++++++++++++++++++++++++++++++++++++++++++++++
;================================================================================================
; Clipboard helper functions.
;================================================================================================
ClipboardGet()
{
OldClipboard:= ClipboardAll ;Save existing clipboard.
Clipboard:= ""
Send, ^c ;Copy selected test to clipboard
ClipWait 0
If ErrorLevel
{
MsgBox, No Text Selected!
Return
}
}
ClipboardRestore()
{
Clipboard:= OldClipboard
}