Sharing my scripts to be able to use AHK hotkeys in Blender with context and area sensitivity

Sharing my scripts to be able to use AHK hotkeys that are sensitive to Blender areas and contexts. I did this because Blender native hotkey combinations, such as “a & f1”, for example, cause the destination key, in this case f1, to stop working. AHK combinations don’t suffer from this problem and are more versatile, they can include virtual keys, keys that aren’t on your keyboard, such as “F20 & F21”, modifier combinations such as “Lwin & Lshift” or “CapsLock & d”, mouse to keyboard ones, such as “Rbutton & a”, etc. Your workflow gets faster and more ergonomic, in my opinion.

The way this works is via the Blender script outputting a text file with the context and area info periodically, and the AHK script reading that file. It would be more elegant to do it via command line, but I don’t know any cmd programming. The Blender script is a mini addon that you can install.

You need to alter the text file path on lines 862 and 863 on the AHK script, and choose the same path on the Blender script’s addon preferences.

I’m a new user and can’t attach files, so I will be posting the scripts in the comments below.

AHK Script:

#SingleInstance force
SendMode, Input
CoordMode, ToolTip, Screen
SetCapsLockState, AlwaysOff
SetTitleMatchMode, 2
SetDefaultMouseSpeed, 0

#IfWinActive, ahk_exe blender.exe ;████████████████████████████████████████████████████████████████████████████████

;{████████████████████████████████████████████████████████████████████████████████ # Key Recovery

; This guarantees that keys will keep working, even though they are used in combination hotkeys.

$Space:: Send, {Space}
$+Space:: Send, +{Space}
$!Space:: Send, !{Space}
$^Space:: Send, ^{Space}
$+!Space:: Send, +!{Space}
$+^Space:: Send, +^{Space}
$^!Space:: Send, ^!{Space}
$#Space:: Send, #{Space}

$vkdb:: Send, {vkdb}
$vkdd:: Send, {vkdd}
$vkba:: Send, {vkba}
$vkde:: Send, {vkde}
$vkdc:: Send, {vkdc}
$vkbc:: Send, {vkbc}
$vkbe:: Send, {vkbe}
$vkbf:: Send, {vkbf}
$vkc0:: Send, {vkc0}

$+vkdb:: Send, +{vkdb}
$+vkdd:: Send, +{vkdd}
$+vkba:: Send, +{vkba}
$+vkde:: Send, +{vkde}
$+vkdc:: Send, +{vkdc}
$+vkbc:: Send, +{vkbc}
$+vkbe:: Send, +{vkbe}
$+vkbf:: Send, +{vkbf}
$+vkc0:: Send, +{vkc0}

$^vkdb:: Send, ^{vkdb}
$^vkdd:: Send, ^{vkdd}
$^vkba:: Send, ^{vkba}
$^vkde:: Send, ^{vkde}
$^vkdc:: Send, ^{vkdc}
$^vkbc:: Send, ^{vkbc}
$^vkbe:: Send, ^{vkbe}
$^vkbf:: Send, ^{vkbf}
$^vkc0:: Send, ^{vkc0}

$!vkdb:: Send, !{vkdb}
$!vkdd:: Send, !{vkdd}
$!vkba:: Send, !{vkba}
$!vkde:: Send, !{vkde}
$!vkdc:: Send, !{vkdc}
$!vkbc:: Send, !{vkbc}
$!vkbe:: Send, !{vkbe}
$!vkbf:: Send, !{vkbf}
$!vkc0:: Send, !{vkc0}

$+!vkdb:: Send, +!{vkdb}
$+!vkdd:: Send, +!{vkdd}
$+!vkba:: Send, +!{vkba}
$+!vkde:: Send, +!{vkde}
$+!vkdc:: Send, +!{vkdc}
$+!vkbc:: Send, +!{vkbc}
$+!vkbe:: Send, +!{vkbe}
$+!vkbf:: Send, +!{vkbf}
$+!vkc0:: Send, +!{vkc0}

$+^vkdb:: Send, +^{vkdb}
$+^vkdd:: Send, +^{vkdd}
$+^vkba:: Send, +^{vkba}
$+^vkde:: Send, +^{vkde}
$+^vkdc:: Send, +^{vkdc}
$+^vkbc:: Send, +^{vkbc}
$+^vkbe:: Send, +^{vkbe}
$+^vkbf:: Send, +^{vkbf}
$+^vkc0:: Send, +^{vkc0}

$^!vkdb:: Send, ^!{vkdb}
$^!vkdd:: Send, ^!{vkdd}
$^!vkba:: Send, ^!{vkba}
$^!vkde:: Send, ^!{vkde}
$^!vkdc:: Send, ^!{vkdc}
$^!vkbc:: Send, ^!{vkbc}
$^!vkbe:: Send, ^!{vkbe}
$^!vkbf:: Send, ^!{vkbf}
$^!vkc0:: Send, ^!{vkc0}

$a:: Send, a
$b:: Send, b
$c:: Send, c
$d:: Send, d
$e:: Send, e
$f:: Send, f
$g:: Send, g
$h:: Send, h
$i:: Send, i
$j:: Send, j
$k:: Send, k
$l:: Send, l
$m:: Send, m
$n:: Send, n
$o:: Send, o
$p:: Send, p
$q:: Send, q
$r:: Send, r
$s:: Send, s
$t:: Send, t
$u:: Send, u
$v:: Send, v
$w:: Send, w
$x:: Send, x
$y:: Send, y
$z:: Send, z

$#a:: Send, #a
$#b:: Send, #b
$#c:: Send, #c
$#d:: Send, #d
$#e:: Send, #e
$#f:: Send, #f
$#g:: Send, #g
$#h:: Send, #h
$#i:: Send, #i
$#j:: Send, #j
$#k:: Send, #k
$#l:: Send, #l
$#m:: Send, #m
$#n:: Send, #n
$#o:: Send, #o
$#p:: Send, #p
$#q:: Send, #q
$#r:: Send, #r
$#s:: Send, #s
$#t:: Send, #t
$#u:: Send, #u
$#v:: Send, #v
$#w:: Send, #w
$#x:: Send, #x
$#y:: Send, #y
$#z:: Send, #z

$+a:: Send, +a
$+b:: Send, +b
$+c:: Send, +c
$+d:: Send, +d
$+e:: Send, +e
$+f:: Send, +f
$+g:: Send, +g
$+h:: Send, +h
$+i:: Send, +i
$+j:: Send, +j
$+k:: Send, +k
$+l:: Send, +l
$+m:: Send, +m
$+n:: Send, +n
$+o:: Send, +o
$+p:: Send, +p
$+q:: Send, +q
$+r:: Send, +r
$+s:: Send, +s
$+t:: Send, +t
$+u:: Send, +u
$+v:: Send, +v
$+w:: Send, +w
$+x:: Send, +x
$+y:: Send, +y
$+z:: Send, +z

$!a:: Send, !a
$!b:: Send, !b
$!c:: Send, !c
$!d:: Send, !d
$!e:: Send, !e
$!f:: Send, !f
$!g:: Send, !g
$!h:: Send, !h
$!i:: Send, !i
$!j:: Send, !j
$!k:: Send, !k
$!l:: Send, !l
$!m:: Send, !m
$!n:: Send, !n
$!o:: Send, !o
$!p:: Send, !p
$!q:: Send, !q
$!r:: Send, !r
$!s:: Send, !s
$!t:: Send, !t
$!u:: Send, !u
$!v:: Send, !v
$!w:: Send, !w
$!x:: Send, !x
$!y:: Send, !y
$!z:: Send, !z

$^a:: Send, ^a
$^b:: Send, ^b
$^c:: Send, ^c
$^d:: Send, ^d
$^e:: Send, ^e
$^f:: Send, ^f
$^g:: Send, ^g
$^h:: Send, ^h
$^i:: Send, ^i
$^j:: Send, ^j
$^k:: Send, ^k
$^l:: Send, ^l
$^m:: Send, ^m
$^n:: Send, ^n
$^o:: Send, ^o
$^p:: Send, ^p
$^q:: Send, ^q
$^r:: Send, ^r
$^s:: Send, ^s
$^t:: Send, ^t
$^u:: Send, ^u
$^v:: Send, ^v
$^w:: Send, ^w
$^x:: Send, ^x
$^y:: Send, ^y
$^z:: Send, ^z

$+!a:: Send, +!a
$+!b:: Send, +!b
$+!c:: Send, +!c
$+!d:: Send, +!d
$+!e:: Send, +!e
$+!f:: Send, +!f
$+!g:: Send, +!g
$+!h:: Send, +!h
$+!i:: Send, +!i
$+!j:: Send, +!j
$+!k:: Send, +!k
$+!l:: Send, +!l
$+!m:: Send, +!m
$+!n:: Send, +!n
$+!o:: Send, +!o
$+!p:: Send, +!p
$+!q:: Send, +!q
$+!r:: Send, +!r
$+!s:: Send, +!s
$+!t:: Send, +!t
$+!u:: Send, +!u
$+!v:: Send, +!v
$+!w:: Send, +!w
$+!x:: Send, +!x
$+!y:: Send, +!y
$+!z:: Send, +!z

$+^a:: Send, +^a
$+^b:: Send, +^b
$+^c:: Send, +^c
$+^d:: Send, +^d
$+^e:: Send, +^e
$+^f:: Send, +^f
$+^g:: Send, +^g
$+^h:: Send, +^h
$+^i:: Send, +^i
$+^j:: Send, +^j
$+^k:: Send, +^k
$+^l:: Send, +^l
$+^m:: Send, +^m
$+^n:: Send, +^n
$+^o:: Send, +^o
$+^p:: Send, +^p
$+^q:: Send, +^q
$+^r:: Send, +^r
$+^s:: Send, +^s
$+^t:: Send, +^t
$+^u:: Send, +^u
$+^v:: Send, +^v
$+^w:: Send, +^w
$+^x:: Send, +^x
$+^y:: Send, +^y
$+^z:: Send, +^z

$^!a:: Send, ^!a
$^!b:: Send, ^!b
$^!c:: Send, ^!c
$^!d:: Send, ^!d
$^!e:: Send, ^!e
$^!f:: Send, ^!f
$^!g:: Send, ^!g
$^!h:: Send, ^!h
$^!i:: Send, ^!i
$^!j:: Send, ^!j
$^!k:: Send, ^!k
$^!l:: Send, ^!l
$^!m:: Send, ^!m
$^!n:: Send, ^!n
$^!o:: Send, ^!o
$^!p:: Send, ^!p
$^!q:: Send, ^!q
$^!r:: Send, ^!r
$^!s:: Send, ^!s
$^!t:: Send, ^!t
$^!u:: Send, ^!u
$^!v:: Send, ^!v
$^!w:: Send, ^!w
$^!x:: Send, ^!x
$^!y:: Send, ^!y
$^!z:: Send, ^!z

$1:: Send, 1
$2:: Send, 2
$3:: Send, 3
$4:: Send, 4
$5:: Send, 5
$6:: Send, 6
$7:: Send, 7
$8:: Send, 8
$9:: Send, 9
$0:: Send, 0

$#1:: Send, #1
$#2:: Send, #2
$#3:: Send, #3
$#4:: Send, #4
$#5:: Send, #5
$#6:: Send, #6
$#7:: Send, #7
$#8:: Send, #8
$#9:: Send, #9
$#0:: Send, #0

$+1:: Send, +1
$+2:: Send, +2
$+3:: Send, +3
$+4:: Send, +4
$+5:: Send, +5
$+6:: Send, +6
$+7:: Send, +7
$+8:: Send, +8
$+9:: Send, +9
$+0:: Send, +0

$!1:: Send, !1
$!2:: Send, !2
$!3:: Send, !3
$!4:: Send, !4
$!5:: Send, !5
$!6:: Send, !6
$!7:: Send, !7
$!8:: Send, !8
$!9:: Send, !9
$!0:: Send, !0

$^1:: Send, ^1
$^2:: Send, ^2
$^3:: Send, ^3
$^4:: Send, ^4
$^5:: Send, ^5
$^6:: Send, ^6
$^7:: Send, ^7
$^8:: Send, ^8
$^9:: Send, ^9
$^0:: Send, ^0

$+!1:: Send, +!1
$+!2:: Send, +!2
$+!3:: Send, +!3
$+!4:: Send, +!4
$+!5:: Send, +!5
$+!6:: Send, +!6
$+!7:: Send, +!7
$+!8:: Send, +!8
$+!9:: Send, +!9
$+!0:: Send, +!0

$+^1:: Send, +^1
$+^2:: Send, +^2
$+^3:: Send, +^3
$+^4:: Send, +^4
$+^5:: Send, +^5
$+^6:: Send, +^6
$+^7:: Send, +^7
$+^8:: Send, +^8
$+^9:: Send, +^9
$+^0:: Send, +^0

$^!1:: Send, ^!1
$^!2:: Send, ^!2
$^!3:: Send, ^!3
$^!4:: Send, ^!4
$^!5:: Send, ^!5
$^!6:: Send, ^!6
$^!7:: Send, ^!7
$^!8:: Send, ^!8
$^!9:: Send, ^!9
$^!0:: Send, ^!0

;~ $F1:: Send, {F1}
$F2:: Send, {F2}
$F3:: Send, {F3}
$F4:: Send, {F4}
$F5:: Send, {F5}
$F6:: Send, {F6}
$F7:: Send, {F7}
$F8:: Send, {F8}
$F9:: Send, {F9}
$F10:: Send, {F10}
$F11:: Send, {F11}
$F12:: Send, {F12}

$#F1:: Send, #{F1}
$#F2:: Send, #{F2}
$#F3:: Send, #{F3}
$#F4:: Send, #{F4}
$#F5:: Send, #{F5}
$#F6:: Send, #{F6}
$#F7:: Send, #{F7}
$#F8:: Send, #{F8}
$#F9:: Send, #{F9}
$#F10:: Send, #{F10}
$#F11:: Send, #{F11}
$#F12:: Send, #{F12}

$+F1:: Send, +{F1}
$+F2:: Send, +{F2}
$+F3:: Send, +{F3}
$+F4:: Send, +{F4}
$+F5:: Send, +{F5}
$+F6:: Send, +{F6}
$+F7:: Send, +{F7}
$+F8:: Send, +{F8}
$+F9:: Send, +{F9}
$+F10:: Send, +{F10}
$+F11:: Send, +{F11}
$+F12:: Send, +{F12}

$^F1:: Send, ^{F1}
$^F2:: Send, ^{F2}
$^F3:: Send, ^{F3}
$^F4:: Send, ^{F4}
$^F5:: Send, ^{F5}
$^F6:: Send, ^{F6}
$^F7:: Send, ^{F7}
$^F8:: Send, ^{F8}
$^F9:: Send, ^{F9}
$^F10:: Send, ^{F10}
$^F11:: Send, ^{F11}
$^F12:: Send, ^{F12}

$!F1:: Send, !{F1}
$!F2:: Send, !{F2}
$!F3:: Send, !{F3}
$!F4:: Send, !{F4}
$!F5:: Send, !{F5}
$!F6:: Send, !{F6}
$!F7:: Send, !{F7}
$!F8:: Send, !{F8}
$!F9:: Send, !{F9}
$!F10:: Send, !{F10}
$!F11:: Send, !{F11}
$!F12:: Send, !{F12}

$+!F1:: Send, +!{F1}
$+!F2:: Send, +!{F2}
$+!F3:: Send, +!{F3}
$+!F4:: Send, +!{F4}
$+!F5:: Send, +!{F5}
$+!F6:: Send, +!{F6}
$+!F7:: Send, +!{F7}
$+!F8:: Send, +!{F8}
$+!F9:: Send, +!{F9}
$+!F10:: Send, +!{F10}
$+!F11:: Send, +!{F11}
$+!F12:: Send, +!{F12}

$^+F1:: Send, ^+{F1}
$^+F2:: Send, ^+{F2}
$^+F3:: Send, ^+{F3}
$^+F4:: Send, ^+{F4}
$^+F5:: Send, ^+{F5}
$^+F6:: Send, ^+{F6}
$^+F7:: Send, ^+{F7}
$^+F8:: Send, ^+{F8}
$^+F9:: Send, ^+{F9}
$^+F10:: Send, ^+{F10}
$^+F11:: Send, ^+{F11}
$^+F12:: Send, ^+{F12}

$^!F1:: Send, ^!{F1}
$^!F2:: Send, ^!{F2}
$^!F3:: Send, ^!{F3}
$^!F4:: Send, ^!{F4}
$^!F5:: Send, ^!{F5}
$^!F6:: Send, ^!{F6}
$^!F7:: Send, ^!{F7}
$^!F8:: Send, ^!{F8}
$^!F9:: Send, ^!{F9}
$^!F10:: Send, ^!{F10}
$^!F11:: Send, ^!{F11}
$^!F12:: Send, ^!{F12}

$PrintScreen:: Send, {PrintScreen}
$ScrollLock:: Send, {ScrollLock}
$Insert:: Send, {Insert}
$Home:: Send, {Home}
$Delete:: Send, {Delete}
$End:: Send, {End}
$PgUp:: Send, {PgUp}
$PgDn:: Send, {PgDn}
$Up:: Send, {Up}
$Down:: Send, {Down}
$Left:: Send, {Left}
$Right:: Send, {Right}
$Tab:: Send, {Tab}
$Esc:: Send, {Esc}
;~ $AppsKey:: Send, {AppsKey}

$+PrintScreen:: Send, +{PrintScreen}
$+ScrollLock:: Send, +{ScrollLock}
$+Insert:: Send, +{Insert}
$+Home:: Send, +{Home}
$+Delete:: Send, +{Delete}
$+End:: Send, +{End}
$+PgUp:: Send, +{PgUp}
$+PgDn:: Send, +{PgDn}
$+Up:: Send, +{Up}
$+Down:: Send, +{Down}
$+Left:: Send, +{Left}
$+Right:: Send, +{Right}
$+Tab:: Send, +{Tab}
$+Esc:: Send, +{Esc}
$+AppsKey:: Send, +{AppsKey}

$^PrintScreen:: Send, ^{PrintScreen}
$^ScrollLock:: Send, ^{ScrollLock}
$^Insert:: Send, ^{Insert}
$^Home:: Send, ^{Home}
$^Delete:: Send, ^{Delete}
$^End:: Send, ^{End}
$^PgUp:: Send, ^{PgUp}
$^PgDn:: Send, ^{PgDn}
$^Up:: Send, ^{Up}
$^Down:: Send, ^{Down}
$^Left:: Send, ^{Left}
$^Right:: Send, ^{Right}
$^Tab:: Send, ^{Tab}
$^Esc:: Send, ^{Esc}
$^AppsKey:: Send, ^{AppsKey}

$!PrintScreen:: Send, !{PrintScreen}
$!ScrollLock:: Send, !{ScrollLock}
$!Insert:: Send, !{Insert}
$!Home:: Send, !{Home}
$!Delete:: Send, !{Delete}
$!End:: Send, !{End}
$!PgUp:: Send, !{PgUp}
$!PgDn:: Send, !{PgDn}
$!Up:: Send, !{Up}
$!Down:: Send, !{Down}
$!Left:: Send, !{Left}
$!Right:: Send, !{Right}
$!Tab:: Send, !{Tab}
$!Esc:: Send, !{Esc}
$!AppsKey:: Send, !{AppsKey}

$+!PrintScreen:: Send, +!{PrintScreen}
$+!ScrollLock:: Send, +!{ScrollLock}
$+!Insert:: Send, +!{Insert}
$+!Home:: Send, +!{Home}
$+!Delete:: Send, +!{Delete}
$+!End:: Send, +!{End}
$+!PgUp:: Send, +!{PgUp}
$+!PgDn:: Send, +!{PgDn}
$+!Up:: Send, +!{Up}
$+!Down:: Send, +!{Down}
$+!Left:: Send, +!{Left}
$+!Right:: Send, +!{Right}
$+!Tab:: Send, +!{Tab}
$+!Esc:: Send, +!{Esc}
$+!AppsKey:: Send, +!{AppsKey}

$+^PrintScreen:: Send, +^{PrintScreen}
$+^ScrollLock:: Send, +^{ScrollLock}
$+^Insert:: Send, +^{Insert}
$+^Home:: Send, +^{Home}
$+^Delete:: Send, +^{Delete}
$+^End:: Send, +^{End}
$+^PgUp:: Send, +^{PgUp}
$+^PgDn:: Send, +^{PgDn}
$+^Up:: Send, +^{Up}
$+^Down:: Send, +^{Down}
$+^Left:: Send, +^{Left}
$+^Right:: Send, +^{Right}
$+^Tab:: Send, +^{Tab}
$+^Esc:: Send, +^{Esc}
$+^AppsKey:: Send, +^{AppsKey}

$^!PrintScreen:: Send, ^!{PrintScreen}
$^!ScrollLock:: Send, ^!{ScrollLock}
$^!Insert:: Send, ^!{Insert}
$^!Home:: Send, ^!{Home}
$^!Delete:: Send, ^!{Delete}
$^!End:: Send, ^!{End}
$^!PgUp:: Send, ^!{PgUp}
$^!PgDn:: Send, ^!{PgDn}
$^!Up:: Send, ^!{Up}
$^!Down:: Send, ^!{Down}
$^!Left:: Send, ^!{Left}
$^!Right:: Send, ^!{Right}
$^!Tab:: Send, ^!{Tab}
$^!Esc:: Send, ^!{Esc}
$^!AppsKey:: Send, ^!{AppsKey}

$Numpad1:: Send, {Numpad1}
$Numpad2:: Send, {Numpad2}
$Numpad3:: Send, {Numpad3}
$Numpad4:: Send, {Numpad4}
$Numpad5:: Send, {Numpad5}
$Numpad6:: Send, {Numpad6}
$Numpad7:: Send, {Numpad7}
$Numpad8:: Send, {Numpad8}
$Numpad9:: Send, {Numpad9}
$NumpadDot:: Send, {NumpadDot}
$NumpadDel:: Send, {NumpadDel}
$NumpadDiv:: Send, {NumpadDiv}
$NumpadAdd:: Send, {NumpadAdd}
$NumpadSub:: Send, {NumpadSub}
$NumpadMult:: Send, {NumpadMult}
$NumpadClear:: Send, {NumpadClear}
$NumpadLeft:: Send, {NumpadLeft}
$NumpadRight:: Send, {NumpadRight}
$NumpadUp:: Send, {NumpadUp}
$NumpadDown:: Send, {NumpadDown}
$NumpadHome:: Send, {NumpadHome}
$NumpadEnd:: Send, {NumpadEnd}
$NumpadPgDn:: Send, {NumpadPgDn}
$NumpadPgUp:: Send, {NumpadPgUp}
$NumpadEnter:: Send, {NumpadEnter}
;~ $NumLock:: Send, {NumLock}

$+Numpad1:: Send, +{Numpad1}
$+Numpad2:: Send, +{Numpad2}
$+Numpad3:: Send, +{Numpad3}
$+Numpad4:: Send, +{Numpad4}
$+Numpad5:: Send, +{Numpad5}
$+Numpad6:: Send, +{Numpad6}
$+Numpad7:: Send, +{Numpad7}
$+Numpad8:: Send, +{Numpad8}
$+Numpad9:: Send, +{Numpad9}
$+NumpadDot:: Send, +{NumpadDot}
$+NumpadDel:: Send, +{NumpadDel}
$+NumpadDiv:: Send, +{NumpadDiv}
$+NumpadAdd:: Send, +{NumpadAdd}
$+NumpadSub:: Send, +{NumpadSub}
$+NumpadMult:: Send, +{NumpadMult}
$+NumpadClear:: Send, +{NumpadClear}
$+NumpadLeft:: Send, +{NumpadLeft}
$+NumpadRight:: Send, +{NumpadRight}
$+NumpadUp:: Send, +{NumpadUp}
$+NumpadDown:: Send, +{NumpadDown}
$+NumpadHome:: Send, +{NumpadHome}
$+NumpadEnd:: Send, +{NumpadEnd}
$+NumpadPgDn:: Send, +{NumpadPgDn}
$+NumpadPgUp:: Send, +{NumpadPgUp}
$+NumpadEnter:: Send, +{NumpadEnter}
$+NumLock:: Send, +{NumLock}

$^Numpad1:: Send, ^{Numpad1}
$^Numpad2:: Send, ^{Numpad2}
$^Numpad3:: Send, ^{Numpad3}
$^Numpad4:: Send, ^{Numpad4}
$^Numpad5:: Send, ^{Numpad5}
$^Numpad6:: Send, ^{Numpad6}
$^Numpad7:: Send, ^{Numpad7}
$^Numpad8:: Send, ^{Numpad8}
$^Numpad9:: Send, ^{Numpad9}
$^NumpadDot:: Send, ^{NumpadDot}
$^NumpadDel:: Send, ^{NumpadDel}
$^NumpadDiv:: Send, ^{NumpadDiv}
$^NumpadAdd:: Send, ^{NumpadAdd}
$^NumpadSub:: Send, ^{NumpadSub}
$^NumpadMult:: Send, ^{NumpadMult}
$^NumpadClear:: Send, ^{NumpadClear}
$^NumpadLeft:: Send, ^{NumpadLeft}
$^NumpadRight:: Send, ^{NumpadRight}
$^NumpadUp:: Send, ^{NumpadUp}
$^NumpadDown:: Send, ^{NumpadDown}
$^NumpadHome:: Send, ^{NumpadHome}
$^NumpadEnd:: Send, ^{NumpadEnd}
$^NumpadPgDn:: Send, ^{NumpadPgDn}
$^NumpadPgUp:: Send, ^{NumpadPgUp}
$^NumpadEnter:: Send, ^{NumpadEnter}
$^NumLock:: Send, ^{NumLock}

$!Numpad1:: Send, !{Numpad1}
$!Numpad2:: Send, !{Numpad2}
$!Numpad3:: Send, !{Numpad3}
$!Numpad4:: Send, !{Numpad4}
$!Numpad5:: Send, !{Numpad5}
$!Numpad6:: Send, !{Numpad6}
$!Numpad7:: Send, !{Numpad7}
$!Numpad8:: Send, !{Numpad8}
$!Numpad9:: Send, !{Numpad9}
$!NumpadDot:: Send, !{NumpadDot}
$!NumpadDel:: Send, !{NumpadDel}
$!NumpadDiv:: Send, !{NumpadDiv}
$!NumpadAdd:: Send, !{NumpadAdd}
$!NumpadSub:: Send, !{NumpadSub}
$!NumpadMult:: Send, !{NumpadMult}
$!NumpadClear:: Send, !{NumpadClear}
$!NumpadLeft:: Send, !{NumpadLeft}
$!NumpadRight:: Send, !{NumpadRight}
$!NumpadUp:: Send, !{NumpadUp}
$!NumpadDown:: Send, !{NumpadDown}
$!NumpadHome:: Send, !{NumpadHome}
$!NumpadEnd:: Send, !{NumpadEnd}
$!NumpadPgDn:: Send, !{NumpadPgDn}
$!NumpadPgUp:: Send, !{NumpadPgUp}
$!NumpadEnter:: Send, !{NumpadEnter}
$!NumLock:: Send, !{NumLock}


$+^Numpad1:: Send, +^{Numpad1}
$+^Numpad2:: Send, +^{Numpad2}
$+^Numpad3:: Send, +^{Numpad3}
$+^Numpad4:: Send, +^{Numpad4}
$+^Numpad5:: Send, +^{Numpad5}
$+^Numpad6:: Send, +^{Numpad6}
$+^Numpad7:: Send, +^{Numpad7}
$+^Numpad8:: Send, +^{Numpad8}
$+^Numpad9:: Send, +^{Numpad9}
$+^NumpadDot:: Send, +^{NumpadDot}
$+^NumpadDel:: Send, +^{NumpadDel}
$+^NumpadDiv:: Send, +^{NumpadDiv}
$+^NumpadAdd:: Send, +^{NumpadAdd}
$+^NumpadSub:: Send, +^{NumpadSub}
$+^NumpadMult:: Send, +^{NumpadMult}
$+^NumpadClear:: Send, +^{NumpadClear}
$+^NumpadLeft:: Send, +^{NumpadLeft}
$+^NumpadRight:: Send, +^{NumpadRight}
$+^NumpadUp:: Send, +^{NumpadUp}
$+^NumpadDown:: Send, +^{NumpadDown}
$+^NumpadHome:: Send, +^{NumpadHome}
$+^NumpadEnd:: Send, +^{NumpadEnd}
$+^NumpadPgDn:: Send, +^{NumpadPgDn}
$+^NumpadPgUp:: Send, +^{NumpadPgUp}
$+^NumpadEnter:: Send, +^{NumpadEnter}
$+^NumLock:: Send, +^{NumLock}

$+!Numpad1:: Send, +!{Numpad1}
$+!Numpad2:: Send, +!{Numpad2}
$+!Numpad3:: Send, +!{Numpad3}
$+!Numpad4:: Send, +!{Numpad4}
$+!Numpad5:: Send, +!{Numpad5}
$+!Numpad6:: Send, +!{Numpad6}
$+!Numpad7:: Send, +!{Numpad7}
$+!Numpad8:: Send, +!{Numpad8}
$+!Numpad9:: Send, +!{Numpad9}
$+!NumpadDot:: Send, +!{NumpadDot}
$+!NumpadDel:: Send, +!{NumpadDel}
$+!NumpadDiv:: Send, +!{NumpadDiv}
$+!NumpadAdd:: Send, +!{NumpadAdd}
$+!NumpadSub:: Send, +!{NumpadSub}
$+!NumpadMult:: Send, +!{NumpadMult}
$+!NumpadClear:: Send, +!{NumpadClear}
$+!NumpadLeft:: Send, +!{NumpadLeft}
$+!NumpadRight:: Send, +!{NumpadRight}
$+!NumpadUp:: Send, +!{NumpadUp}
$+!NumpadDown:: Send, +!{NumpadDown}
$+!NumpadHome:: Send, +!{NumpadHome}
$+!NumpadEnd:: Send, +!{NumpadEnd}
$+!NumpadPgDn:: Send, +!{NumpadPgDn}
$+!NumpadPgUp:: Send, +!{NumpadPgUp}
$+!NumpadEnter:: Send, +!{NumpadEnter}
$+!NumLock:: Send, +!{NumLock}

$^!Numpad1:: Send, ^!{Numpad1}
$^!Numpad2:: Send, ^!{Numpad2}
$^!Numpad3:: Send, ^!{Numpad3}
$^!Numpad4:: Send, ^!{Numpad4}
$^!Numpad5:: Send, ^!{Numpad5}
$^!Numpad6:: Send, ^!{Numpad6}
$^!Numpad7:: Send, ^!{Numpad7}
$^!Numpad8:: Send, ^!{Numpad8}
$^!Numpad9:: Send, ^!{Numpad9}
$^!NumpadDot:: Send, ^!{NumpadDot}
$^!NumpadDel:: Send, ^!{NumpadDel}
$^!NumpadDiv:: Send, ^!{NumpadDiv}
$^!NumpadAdd:: Send, ^!{NumpadAdd}
$^!NumpadSub:: Send, ^!{NumpadSub}
$^!NumpadMult:: Send, ^!{NumpadMult}
$^!NumpadClear:: Send, ^!{NumpadClear}
$^!NumpadLeft:: Send, ^!{NumpadLeft}
$^!NumpadRight:: Send, ^!{NumpadRight}
$^!NumpadUp:: Send, ^!{NumpadUp}
$^!NumpadDown:: Send, ^!{NumpadDown}
$^!NumpadHome:: Send, ^!{NumpadHome}
$^!NumpadEnd:: Send, ^!{NumpadEnd}
$^!NumpadPgDn:: Send, ^!{NumpadPgDn}
$^!NumpadPgUp:: Send, ^!{NumpadPgUp}
$^!NumpadEnter:: Send, ^!{NumpadEnter}
$^!NumLock:: Send, ^!{NumLock}

;}

;████████████████████████████████████████████████████████████████████████████████ # Context and Area Sensitive Hotkeys for Blender

/* ;[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][] Reference Areas and Contexts

;[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][] AREAS

EMPTY: Empty. General
VIEW_3D: 3D Viewport. Manipulate objects in a 3D environment.
IMAGE_EDITOR: UV/Image Editor. View and edit images and UV Maps.
NODE_EDITOR: Node Editor. Editor for node-based shading and compositing tools.
SEQUENCE_EDITOR: Video Sequencer. Video editing tools.
CLIP_EDITOR: Movie Clip Editor. Motion tracking tools. Animation
DOPESHEET_EDITOR: Dope Sheet. AdBundle timing of keyframes.
GRAPH_EDITOR: Graph Editor. Edit drivers and keyframe interpolation.
NLA_EDITOR: Nonlinear Animation. Combine and layer Actions. Scripting
TEXT_EDITOR: Text Editor. Edit scripts and in-file documentation.
CONSOLE: Python Console. Interactive programmatic console for advanced editing and script development.
INFO: Info. Log of operations, warnings and error messages.
TOPBAR: Top Bar. Global bar at the top of the screen for global per-window settings.
STATUSBAR: Status Bar. Global bar at the bottom of the screen for general status information. Data
OUTLINER: Outliner. Overview of scene graph and all available data-blocks.
PROPERTIES: Properties. Edit properties of active object and related data-blocks.
FILE_BROWSER: File Browser. Browse for files and assets.
SPREADSHEET: Spreadsheet. Explore geometry data in a table.
PREFERENCES: Preferences. Edit persistent configuration settings.

;[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][] Context

EDIT_MESH: Mesh Edit.
EDIT_CURVE: Curve Edit.
EDIT_CURVES: Curves Edit.
EDIT_SURFACE: Surface Edit.
EDIT_TEXT: Text Edit.
EDIT_ARMATURE: Armature Edit.
EDIT_METABALL: Metaball Edit.
EDIT_LATTICE: Lattice Edit.
EDIT_GREASE_PENCIL: Grease Pencil Edit.
EDIT_POINT_CLOUD: Point Cloud Edit.
POSE: Pose.
SCULPT: Sculpt.
PAINT_WEIGHT: Weight Paint.
PAINT_VERTEX: Vertex Paint.
PAINT_TEXTURE: Texture Paint.
PARTICLE: Particle.
OBJECT: Object.
PAINT_GPENCIL: Grease Pencil Paint.
EDIT_GPENCIL: Grease Pencil Edit.
SCULPT_GPENCIL: Grease Pencil Sculpt.
WEIGHT_GPENCIL: Grease Pencil Weight Paint.
VERTEX_GPENCIL: Grease Pencil Vertex Paint.
SCULPT_CURVES: Curves Sculpt.
PAINT_GREASE_PENCIL: Grease Pencil Paint.

*/

Trigger_Label_Sensitive_Key(Sensitive_Key, Multiple_Context)
{
	FileReadLine, Blender_Context, C:\Blender External Scripts\Context and Area of Current Blender Window\Context_and_Area_Log.txt, 1 ; Alter location of text file here. Must match Blender addon.
	FileReadLine, Blender_Area, C:\Blender External Scripts\Context and Area of Current Blender Window\Context_and_Area_Log.txt, 2 ; Alter location of text file here. Must match Blender addon.
	Try
	{
		If (Blender_Area = "CLIP_EDITOR")
			{
			Target_Label := "CLIP_EDITOR_"Sensitive_Key
			Gosub %Target_Label%
			return
			}
		If (Blender_Area = "CONSOLE_EDITOR")
			{
			Target_Label := "CONSOLE_EDITOR_"Sensitive_Key
			Gosub %Target_Label%
			return
			}
		If (Blender_Area = "DOPESHEET_EDITOR")
			{
			Target_Label := "DOPESHEET_EDITOR_"Sensitive_Key
			Gosub %Target_Label%
			return
			}
		If (Blender_Area = "FILE_BROWSER")
			{
			Target_Label := "FILE_BROWSER_"Sensitive_Key
			Gosub %Target_Label%
			return
			}
		If (Blender_Area = "GRAPH_EDITOR")
			{
			Target_Label := "GRAPH_EDITOR_"Sensitive_Key
			Gosub %Target_Label%
			return
			}
		If (Blender_Area = "IMAGE_EDITOR")
			{
			Target_Label := "IMAGE_EDITOR_"Sensitive_Key
			Gosub %Target_Label%
			return
			}
		If (Blender_Area = "INFO_EDITOR")
			{
			Target_Label := "INFO_EDITOR_"Sensitive_Key
			Gosub %Target_Label%
			return
			}
		If (Blender_Area = "NLA_EDITOR")
			{
			Target_Label := "NLA_EDITOR_"Sensitive_Key
			Gosub %Target_Label%
			return
			}
		If (Blender_Area = "NODE_EDITOR")
			{
			Target_Label := "NODE_EDITOR_"Sensitive_Key
			Gosub %Target_Label%
			return
			}
		If (Blender_Area = "OUTLINER")
			{
			Target_Label := "OUTLINER_"Sensitive_Key
			Gosub %Target_Label%
			return
			}
		If (Blender_Area = "PREFERENCES")
			{
			Target_Label := "PREFERENCES_"Sensitive_Key
			Gosub %Target_Label%
			return
			}
		If (Blender_Area = "PROPERTIES")
			{
			Target_Label := "PROPERTIES_"Sensitive_Key
			Gosub %Target_Label%
			return
			}
		If (Blender_Area = "SEQUENCE_EDITOR")
			{
			Target_Label := "SEQUENCE_EDITOR_"Sensitive_Key
			Gosub %Target_Label%
			return
			}
		If (Blender_Area = "SPREADSHEET")
			{
			Target_Label := "SPREADSHEET_"Sensitive_Key
			Gosub %Target_Label%
			return
			}
		If (Blender_Area = "STATUSBAR_EDITOR")
			{
			Target_Label := "STATUSBAR_EDITOR_"Sensitive_Key
			Gosub %Target_Label%
			return
			}
		If (Blender_Area = "TEXT_EDITOR")
			{
			Target_Label := "TEXT_EDITOR_"Sensitive_Key
			Gosub %Target_Label%
			return
			}
		If (Blender_Area = "TOPBAR_EDITOR")
			{
			Target_Label := "TOPBAR_EDITOR_"Sensitive_Key
			Gosub %Target_Label%
			return
			}

;--------------------------------------------------------------------------------

		If (Multiple_Context = "Whole_Viewport") ; Used for VIEW_3D without segregating by Context
			{
				Target_Label := "VIEW_Whole_Viewport_"Sensitive_Key
				Gosub %Target_Label%
				return
			}
		If (Multiple_Context = "Except_Paint") AND (Blender_Context = "OBJECT" OR Blender_Context = "PARTICLE" OR Blender_Context = "POSE" OR Blender_Context = "SCULPT_CURVES" OR Blender_Context = "SCULPT" OR Blender_Context = "EDIT_MESH" OR Blender_Context = "EDIT_CURVE" OR Blender_Context = "EDIT_CURVES" OR Blender_Context = "EDIT_SURFACE" OR Blender_Context = "EDIT_TEXT" OR Blender_Context = "EDIT_ARMATURE" OR Blender_Context = "EDIT_METABALL" OR Blender_Context = "EDIT_LATTICE" OR Blender_Context = "EDIT_GREASE_PENCIL" OR Blender_Context = "EDIT_POINT_CLOUD")
			{
				Target_Label := "VIEW_Except_Paint_"Sensitive_Key
				Gosub %Target_Label%
				return
			}
		If (Multiple_Context = "Bundle_Transform") AND (Blender_Context = "POSE" OR Blender_Context = "OBJECT" OR Blender_Context = "SCULPT" OR Blender_Context = "EDIT_MESH" OR Blender_Context = "EDIT_CURVE" OR Blender_Context = "EDIT_CURVES" OR Blender_Context = "EDIT_SURFACE" OR Blender_Context = "EDIT_TEXT" OR Blender_Context = "EDIT_ARMATURE" OR Blender_Context = "EDIT_METABALL" OR Blender_Context = "EDIT_LATTICE" OR Blender_Context = "EDIT_GREASE_PENCIL" OR Blender_Context = "EDIT_POINT_CLOUD")
			{
				Target_Label := "VIEW_Bundle_Transform_"Sensitive_Key
				Gosub %Target_Label%
				return
			}
		If (Multiple_Context = "Bundle_Editing") AND (Blender_Context = "EDIT_MESH" OR Blender_Context = "EDIT_CURVE" OR Blender_Context = "EDIT_CURVES" OR Blender_Context = "EDIT_SURFACE" OR Blender_Context = "EDIT_TEXT" OR Blender_Context = "EDIT_ARMATURE" OR Blender_Context = "EDIT_METABALL" OR Blender_Context = "EDIT_LATTICE" OR Blender_Context = "EDIT_GREASE_PENCIL" OR Blender_Context = "EDIT_POINT_CLOUD")
			{
				Target_Label := "VIEW_Bundle_Editing_"Sensitive_Key
				Gosub %Target_Label%
				return
			}
		If (Multiple_Context = "Bundle_Painting") AND (Blender_Context = "PAINT_GREASE_PENCIL" OR Blender_Context = "VERTEX_GPENCIL" OR Blender_Context = "VERTEX_GPENCIL" OR Blender_Context = "WEIGHT_GPENCIL" OR Blender_Context = "PAINT_TEXTURE" OR Blender_Context = "PAINT_VERTEX" OR Blender_Context = "PAINT_WEIGHT")
			{
				Target_Label := "VIEW_Bundle_Painting_"Sensitive_Key
				Gosub %Target_Label%
				return
			}

;--------------------------------------------------------------------------------

		If (Blender_Context = "EDIT_MESH")
			{
				Target_Label := "EDIT_MESH_"Sensitive_Key
				Gosub %Target_Label%
				return
			}
		If (Blender_Context = "EDIT_CURVE")
			{
				Target_Label := "EDIT_CURVE_"Sensitive_Key
				Gosub %Target_Label%
				return
			}
		If (Blender_Context = "EDIT_CURVES")
			{
				Target_Label := "EDIT_CURVES_"Sensitive_Key
				Gosub %Target_Label%
				return
			}
		If (Blender_Context = "EDIT_SURFACE")
			{
				Target_Label := "EDIT_SURFACE_"Sensitive_Key
				Gosub %Target_Label%
				return
			}
		If (Blender_Context = "EDIT_TEXT")
			{
				Target_Label := "EDIT_TEXT_"Sensitive_Key
				Gosub %Target_Label%
				return
			}
		If (Blender_Context = "EDIT_ARMATURE")
			{
				Target_Label := "EDIT_ARMATURE_"Sensitive_Key
				Gosub %Target_Label%
				return
			}
		If (Blender_Context = "EDIT_METABALL")
			{
				Target_Label := "EDIT_METABALL_"Sensitive_Key
				Gosub %Target_Label%
				return
			}
		If (Blender_Context = "EDIT_LATTICE")
			{
				Target_Label := "EDIT_LATTICE_"Sensitive_Key
				Gosub %Target_Label%
				return
			}
		If (Blender_Context = "EDIT_GREASE_PENCIL")
			{
				Target_Label := "EDIT_GREASE_PENCIL_"Sensitive_Key
				Gosub %Target_Label%
				return
			}
		If (Blender_Context = "EDIT_POINT_CLOUD")
			{
				Target_Label := "EDIT_POINT_CLOUD_"Sensitive_Key
				Gosub %Target_Label%
				return
			}
		If (Blender_Context = "POSE")
			{
				Target_Label := "POSE_"Sensitive_Key
				Gosub %Target_Label%
				return
			}
		If (Blender_Context = "SCULPT")
			{
				Target_Label := "SCULPT_"Sensitive_Key
				Gosub %Target_Label%
				return
			}
		If (Blender_Context = "PAINT_WEIGHT")
			{
				Target_Label := "PAINT_WEIGHT_"Sensitive_Key
				Gosub %Target_Label%
				return
			}
		If (Blender_Context = "PAINT_VERTEX")
			{
				Target_Label := "PAINT_VERTEX_"Sensitive_Key
				Gosub %Target_Label%
				return
			}
		If (Blender_Context = "PAINT_TEXTURE")
			{
				Target_Label := "PAINT_TEXTURE_"Sensitive_Key
				Gosub %Target_Label%
				return
			}
		If (Blender_Context = "PARTICLE")
			{
				Target_Label := "PARTICLE_"Sensitive_Key
				Gosub %Target_Label%
				return
			}
		If (Blender_Context = "OBJECT")
			{
				Target_Label := "OBJECT_"Sensitive_Key
				Gosub %Target_Label%
				return
			}
		If (Blender_Context = "PAINT_GPENCIL")
			{
				Target_Label := "PAINT_GPENCIL_"Sensitive_Key
				Gosub %Target_Label%
				return
			}
		If (Blender_Context = "EDIT_GPENCIL")
			{
				Target_Label := "EDIT_GPENCIL_"Sensitive_Key
				Gosub %Target_Label%
				return
			}
		If (Blender_Context = "SCULPT_GPENCIL")
			{
				Target_Label := "SCULPT_GPENCIL_"Sensitive_Key
				Gosub %Target_Label%
				return
			}
		If (Blender_Context = "WEIGHT_GPENCIL")
			{
				Target_Label := "WEIGHT_GPENCIL_"Sensitive_Key
				Gosub %Target_Label%
				return
			}
		If (Blender_Context = "VERTEX_GPENCIL")
			{
				Target_Label := "VERTEX_GPENCIL_"Sensitive_Key
				Gosub %Target_Label%
				return
			}
		If (Blender_Context = "SCULPT_CURVES")
			{
				Target_Label := "SCULPT_CURVES_"Sensitive_Key
				Gosub %Target_Label%
				return
			}
		If (Blender_Context = "PAINT_GREASE_PENCIL")
			{
				Target_Label := "PAINT_GREASE_PENCIL_"Sensitive_Key
				Gosub %Target_Label%
				return
			}
	}
	Catch
	{
		ToolTip, Target label for sensitive key not found.`nTARGET LABEL = %Target_Label%`nCONTEXT = %Blender_Context%`nAREA = %Blender_Area%`nSensitive Key = %Sensitive_Key%`nMultiple_Context = %Multiple_Context%
		SetTimer, RemoveToolTip, -8000
	}
return
}

;████████████████████████████████████████████████████████████████████████████████ Regiter Context and Area Sensitive Keys Here

; This is where the triggering hotkeys are registered. Each hotkey below will execute a different action depending on the current area and context in Blender according to the text file produced by the addon.

; Use All_Contexts for the 3D View to be segregated in all individual contexts, such as edit mode, object mode, etc. Doesn't affect other editors or modes.
; Use Whole_Viewport for the 3D View Editor not being segregated by the current mode. Doesn't affect other editors or modes.
; Use Except_Paint for activating on all modes, while on the 3D View Editor, except paint modes. Doesn't affect other editors or modes.
; Use Bundle_Transform for activating on all modes of the 3D View Editor, where you can move, scale and rotate an item. Doesn't affect other editors or modes.
; Use Bundle_Editing for just editing modes on the 3D View Editor. Doesn't affect other editors or modes.
; Use Bundle_Painting for just painting modes on the 3D View Editor. Doesn't affect other editors or modes.

1 & Space:: Trigger_Label_Sensitive_Key("1_Space", "All_Contexts")
2 & Space:: Trigger_Label_Sensitive_Key("2_Space", "All_Contexts")
3 & Space:: Trigger_Label_Sensitive_Key("3_Space", "All_Contexts")
4 & Space:: Trigger_Label_Sensitive_Key("4_Space", "All_Contexts")
5 & Space:: Trigger_Label_Sensitive_Key("5_Space", "All_Contexts")
6 & Space:: Trigger_Label_Sensitive_Key("6_Space", "All_Contexts")
7 & Space:: Trigger_Label_Sensitive_Key("7_Space", "All_Contexts")
8 & Space:: Trigger_Label_Sensitive_Key("8_Space", "All_Contexts")
9 & Space:: Trigger_Label_Sensitive_Key("9_Space", "All_Contexts")
0 & Space:: Trigger_Label_Sensitive_Key("0_Space", "All_Contexts")

CapsLock & Esc:: Trigger_Label_Sensitive_Key("Capslock_Esc", "All_Contexts")
CapsLock & vkc0:: Trigger_Label_Sensitive_Key("Capslock_vkc0", "All_Contexts")
CapsLock & Tab:: Trigger_Label_Sensitive_Key("Capslock_Tab", "All_Contexts")
CapsLock & Lshift:: Trigger_Label_Sensitive_Key("Capslock_Lshift", "All_Contexts")
CapsLock & Lctrl:: Trigger_Label_Sensitive_Key("Capslock_Lctrl", "All_Contexts")
CapsLock & Lwin:: Trigger_Label_Sensitive_Key("CapsLock_Lwin", "All_Contexts")

vkc0 & Esc:: Trigger_Label_Sensitive_Key("vkc0_Esc", "All_Contexts")
vkc0 & Tab:: Trigger_Label_Sensitive_Key("vkc0_Tab", "All_Contexts")
vkc0 & Lshift:: Trigger_Label_Sensitive_Key("vkc0_Lshift", "All_Contexts")
vkc0 & Lctrl:: Trigger_Label_Sensitive_Key("vkc0_Lctrl", "All_Contexts")
vkc0 & Lalt:: Trigger_Label_Sensitive_Key("vkc0_Lalt", "All_Contexts")
vkc0 & Lwin:: Trigger_Label_Sensitive_Key("vkc0_Lwin", "All_Contexts")

Lalt & CapsLock:: Trigger_Label_Sensitive_Key("Lalt_CapsLock", "All_Contexts")
Lalt & vkc0:: Trigger_Label_Sensitive_Key("Lalt_vkc0", "All_Contexts")

Lshift & CapsLock:: Trigger_Label_Sensitive_Key("Lshift_CapsLock", "Bundle_Transform")
Lshift & vkc0:: Trigger_Label_Sensitive_Key("Lshift_vkc0", "All_Contexts")

Lctrl & CapsLock:: Trigger_Label_Sensitive_Key("Lctrl_CapsLock", "All_Contexts")
Lctrl & vkc0:: Trigger_Label_Sensitive_Key("Lctrl_vkc0", "All_Contexts")

Lwin & vkc0:: Trigger_Label_Sensitive_Key("Lwin_vkc0", "All_Contexts")

Tab & Lalt:: Trigger_Label_Sensitive_Key("Tab_Lalt", "All_Contexts")
Tab & Lwin:: Trigger_Label_Sensitive_Key("Tab_Lwin", "All_Contexts")

Tab & 1:: Trigger_Label_Sensitive_Key("Tab_1", "Bundle_Transform")
Tab & 2:: Trigger_Label_Sensitive_Key("Tab_2", "Bundle_Transform")
Tab & 3:: Trigger_Label_Sensitive_Key("Tab_3", "Bundle_Transform")
Tab & 4:: Trigger_Label_Sensitive_Key("Tab_4", "All_Contexts")
Tab & 5:: Trigger_Label_Sensitive_Key("Tab_5", "All_Contexts")

Tab & q:: Trigger_Label_Sensitive_Key("Tab_q", "All_Contexts")
Tab & a:: Trigger_Label_Sensitive_Key("Tab_a", "All_Contexts")
Tab & z:: Trigger_Label_Sensitive_Key("Tab_z", "Bundle_Transform")
Tab & w:: Trigger_Label_Sensitive_Key("Tab_w", "All_Contexts")
Tab & s:: Trigger_Label_Sensitive_Key("Tab_s", "All_Contexts")
Tab & x:: Trigger_Label_Sensitive_Key("Tab_x", "Bundle_Transform")
Tab & e:: Trigger_Label_Sensitive_Key("Tab_e", "All_Contexts")
Tab & d:: Trigger_Label_Sensitive_Key("Tab_d", "All_Contexts")
Tab & c:: Trigger_Label_Sensitive_Key("Tab_c", "Bundle_Editing")
Tab & r:: Trigger_Label_Sensitive_Key("Tab_r", "All_Contexts")
Tab & f:: Trigger_Label_Sensitive_Key("Tab_f", "All_Contexts")
Tab & v:: Trigger_Label_Sensitive_Key("Tab_v", "All_Contexts")

Tab & t:: Trigger_Label_Sensitive_Key("Tab_t", "All_Contexts")
Tab & g:: Trigger_Label_Sensitive_Key("Tab_g", "All_Contexts")
Tab & b:: Trigger_Label_Sensitive_Key("Tab_b", "All_Contexts")
Tab & y:: Trigger_Label_Sensitive_Key("Tab_y", "All_Contexts")
Tab & h:: Trigger_Label_Sensitive_Key("Tab_h", "All_Contexts")
Tab & n:: Trigger_Label_Sensitive_Key("Tab_n", "All_Contexts")

1 & q:: Trigger_Label_Sensitive_Key("1_q", "All_Contexts")
1 & a:: Trigger_Label_Sensitive_Key("1_a", "All_Contexts")
1 & z:: Trigger_Label_Sensitive_Key("1_z", "All_Contexts")
1 & w:: Trigger_Label_Sensitive_Key("1_w", "All_Contexts")
1 & s:: Trigger_Label_Sensitive_Key("1_s", "All_Contexts")
1 & x:: Trigger_Label_Sensitive_Key("1_x", "Bundle_Editing")
1 & e:: Trigger_Label_Sensitive_Key("1_e", "All_Contexts")
1 & d:: Trigger_Label_Sensitive_Key("1_d", "All_Contexts")
1 & c:: Trigger_Label_Sensitive_Key("1_c", "Bundle_Transform")
1 & r:: Trigger_Label_Sensitive_Key("1_r", "All_Contexts")
1 & f:: Trigger_Label_Sensitive_Key("1_f", "All_Contexts")
1 & v:: Trigger_Label_Sensitive_Key("1_v", "Bundle_Transform")

1 & t:: Trigger_Label_Sensitive_Key("1_t", "All_Contexts")
1 & g:: Trigger_Label_Sensitive_Key("1_g", "All_Contexts")
1 & b:: Trigger_Label_Sensitive_Key("1_b", "All_Contexts")
1 & y:: Trigger_Label_Sensitive_Key("1_y", "Bundle_Transform")
1 & h:: Trigger_Label_Sensitive_Key("1_h", "All_Contexts")
1 & n:: Trigger_Label_Sensitive_Key("1_n", "All_Contexts")

2 & q:: Trigger_Label_Sensitive_Key("2_q", "All_Contexts")
2 & a:: Trigger_Label_Sensitive_Key("2_a", "All_Contexts")
2 & z:: Trigger_Label_Sensitive_Key("2_z", "All_Contexts")
2 & w:: Trigger_Label_Sensitive_Key("2_w", "All_Contexts")
2 & s:: Trigger_Label_Sensitive_Key("2_s", "All_Contexts")
2 & x:: Trigger_Label_Sensitive_Key("2_x", "Bundle_Editing")
2 & e:: Trigger_Label_Sensitive_Key("2_e", "All_Contexts")
2 & d:: Trigger_Label_Sensitive_Key("2_d", "All_Contexts")
2 & c:: Trigger_Label_Sensitive_Key("2_c", "Bundle_Transform")
2 & r:: Trigger_Label_Sensitive_Key("2_r", "All_Contexts")
2 & f:: Trigger_Label_Sensitive_Key("2_f", "All_Contexts")
2 & v:: Trigger_Label_Sensitive_Key("2_v", "Bundle_Transform")
2 & t:: Trigger_Label_Sensitive_Key("2_t", "All_Contexts")
2 & g:: Trigger_Label_Sensitive_Key("2_g", "All_Contexts")
2 & b:: Trigger_Label_Sensitive_Key("2_b", "All_Contexts")
2 & y:: Trigger_Label_Sensitive_Key("2_y", "Bundle_Transform")
2 & h:: Trigger_Label_Sensitive_Key("2_h", "All_Contexts")
2 & n:: Trigger_Label_Sensitive_Key("2_n", "All_Contexts")
3 & q:: Trigger_Label_Sensitive_Key("3_q", "All_Contexts")
3 & a:: Trigger_Label_Sensitive_Key("3_a", "All_Contexts")
3 & z:: Trigger_Label_Sensitive_Key("3_z", "All_Contexts")
3 & w:: Trigger_Label_Sensitive_Key("3_w", "All_Contexts")
3 & s:: Trigger_Label_Sensitive_Key("3_s", "All_Contexts")
3 & x:: Trigger_Label_Sensitive_Key("3_x", "Bundle_Editing")
3 & e:: Trigger_Label_Sensitive_Key("3_e", "All_Contexts")
3 & d:: Trigger_Label_Sensitive_Key("3_d", "All_Contexts")
3 & c:: Trigger_Label_Sensitive_Key("3_c", "Bundle_Transform")
3 & r:: Trigger_Label_Sensitive_Key("3_r", "All_Contexts")
3 & f:: Trigger_Label_Sensitive_Key("3_f", "All_Contexts")
3 & v:: Trigger_Label_Sensitive_Key("3_v", "Bundle_Transform")
3 & t:: Trigger_Label_Sensitive_Key("3_t", "All_Contexts")
3 & g:: Trigger_Label_Sensitive_Key("3_g", "All_Contexts")
3 & b:: Trigger_Label_Sensitive_Key("3_b", "All_Contexts")
3 & y:: Trigger_Label_Sensitive_Key("3_y", "Bundle_Transform")
3 & h:: Trigger_Label_Sensitive_Key("3_h", "All_Contexts")
3 & n:: Trigger_Label_Sensitive_Key("3_n", "All_Contexts")

4 & q:: Trigger_Label_Sensitive_Key("4_q", "All_Contexts")
4 & a:: Trigger_Label_Sensitive_Key("4_a", "All_Contexts")
4 & z:: Trigger_Label_Sensitive_Key("4_z", "All_Contexts")
4 & w:: Trigger_Label_Sensitive_Key("4_w", "All_Contexts")
4 & s:: Trigger_Label_Sensitive_Key("4_s", "All_Contexts")
4 & x:: Trigger_Label_Sensitive_Key("4_x", "Bundle_Editing")
4 & e:: Trigger_Label_Sensitive_Key("4_e", "All_Contexts")
4 & d:: Trigger_Label_Sensitive_Key("4_d", "All_Contexts")
4 & c:: Trigger_Label_Sensitive_Key("4_c", "Bundle_Transform")
4 & r:: Trigger_Label_Sensitive_Key("4_r", "All_Contexts")
4 & f:: Trigger_Label_Sensitive_Key("4_f", "All_Contexts")
4 & v:: Trigger_Label_Sensitive_Key("4_v", "Bundle_Transform")
4 & t:: Trigger_Label_Sensitive_Key("4_t", "All_Contexts")
4 & g:: Trigger_Label_Sensitive_Key("4_g", "All_Contexts")
4 & b:: Trigger_Label_Sensitive_Key("4_b", "All_Contexts")
4 & y:: Trigger_Label_Sensitive_Key("4_y", "Bundle_Transform")
4 & h:: Trigger_Label_Sensitive_Key("4_h", "All_Contexts")
4 & n:: Trigger_Label_Sensitive_Key("4_n", "All_Contexts")

Rbutton & 1:: Trigger_Label_Sensitive_Key("Rbutton_1", "All_Contexts")
Rbutton & 2:: Trigger_Label_Sensitive_Key("Rbutton_2", "All_Contexts")
Rbutton & 3:: Trigger_Label_Sensitive_Key("Rbutton_3", "All_Contexts")
Rbutton & 4:: Trigger_Label_Sensitive_Key("Rbutton_4", "All_Contexts")
Rbutton & 5:: Trigger_Label_Sensitive_Key("Rbutton_5", "All_Contexts")

Rbutton & F1:: Trigger_Label_Sensitive_Key("Rbutton_F1", "All_Contexts")
Rbutton & F2:: Trigger_Label_Sensitive_Key("Rbutton_F2", "All_Contexts")
Rbutton & F3:: Trigger_Label_Sensitive_Key("Rbutton_F3", "All_Contexts")
Rbutton & F4:: Trigger_Label_Sensitive_Key("Rbutton_F4", "All_Contexts")
Rbutton & F5:: Trigger_Label_Sensitive_Key("Rbutton_F5", "All_Contexts")

Rbutton & q:: Trigger_Label_Sensitive_Key("Rbutton_q", "All_Contexts")
Rbutton & a:: Trigger_Label_Sensitive_Key("Rbutton_a", "All_Contexts")
Rbutton & z:: Trigger_Label_Sensitive_Key("Rbutton_z", "All_Contexts")
Rbutton & w:: Trigger_Label_Sensitive_Key("Rbutton_w", "All_Contexts")
Rbutton & s:: Trigger_Label_Sensitive_Key("Rbutton_s", "All_Contexts")
Rbutton & x:: Trigger_Label_Sensitive_Key("Rbutton_x", "All_Contexts")
Rbutton & e:: Trigger_Label_Sensitive_Key("Rbutton_e", "All_Contexts")
Rbutton & d:: Trigger_Label_Sensitive_Key("Rbutton_d", "All_Contexts")
Rbutton & c:: Trigger_Label_Sensitive_Key("Rbutton_c", "All_Contexts")
Rbutton & r:: Trigger_Label_Sensitive_Key("Rbutton_r", "All_Contexts")
Rbutton & f:: Trigger_Label_Sensitive_Key("Rbutton_f", "All_Contexts")
Rbutton & v:: Trigger_Label_Sensitive_Key("Rbutton_v", "All_Contexts")
Rbutton & t:: Trigger_Label_Sensitive_Key("Rbutton_t", "All_Contexts")
Rbutton & g:: Trigger_Label_Sensitive_Key("Rbutton_g", "All_Contexts")
Rbutton & b:: Trigger_Label_Sensitive_Key("Rbutton_b", "All_Contexts")
Rbutton & y:: Trigger_Label_Sensitive_Key("Rbutton_y", "All_Contexts")
Rbutton & h:: Trigger_Label_Sensitive_Key("Rbutton_h", "All_Contexts")
Rbutton & n:: Trigger_Label_Sensitive_Key("Rbutton_n", "All_Contexts")

Rbutton & CapsLock:: Trigger_Label_Sensitive_Key("Rbutton_CapsLock", "All_Contexts")
Rbutton & Tab:: Trigger_Label_Sensitive_Key("Rbutton_Tab", "All_Contexts")

Lwin & r:: Trigger_Label_Sensitive_Key("Lwin_r", "All_Contexts")
Lwin & f:: Trigger_Label_Sensitive_Key("Lwin_f", "All_Contexts")
;~ Lwin & v:: Trigger_Label_Sensitive_Key("Lwin_v", "All_Contexts")
Lwin & t:: Trigger_Label_Sensitive_Key("Lwin_t", "All_Contexts")
Lwin & g:: Trigger_Label_Sensitive_Key("Lwin_g", "All_Contexts")
Lwin & b:: Trigger_Label_Sensitive_Key("Lwin_b", "All_Contexts")
Lwin & y:: Trigger_Label_Sensitive_Key("Lwin_y", "All_Contexts")
Lwin & h:: Trigger_Label_Sensitive_Key("Lwin_h", "All_Contexts")
Lwin & n:: Trigger_Label_Sensitive_Key("Lwin_n", "All_Contexts")

1 & Rbutton:: Trigger_Label_Sensitive_Key("1_Rbutton", "All_Contexts")
2 & Rbutton:: Trigger_Label_Sensitive_Key("2_Rbutton", "All_Contexts")
3 & Rbutton:: Trigger_Label_Sensitive_Key("3_Rbutton", "All_Contexts")
4 & Rbutton:: Trigger_Label_Sensitive_Key("4_Rbutton", "All_Contexts")
5 & Rbutton:: Trigger_Label_Sensitive_Key("5_Rbutton", "All_Contexts")

F1 & Rbutton:: Trigger_Label_Sensitive_Key("F1_Rbutton", "All_Contexts")
F2 & Rbutton:: Trigger_Label_Sensitive_Key("F2_Rbutton", "All_Contexts")
F3 & Rbutton:: Trigger_Label_Sensitive_Key("F3_Rbutton", "All_Contexts")
F4 & Rbutton:: Trigger_Label_Sensitive_Key("F4_Rbutton", "All_Contexts")
F5 & Rbutton:: Trigger_Label_Sensitive_Key("F5_Rbutton", "All_Contexts")

q & Rbutton:: Trigger_Label_Sensitive_Key("q_Rbutton", "All_Contexts")
a & Rbutton:: Trigger_Label_Sensitive_Key("a_Rbutton", "All_Contexts")
z & Rbutton:: Trigger_Label_Sensitive_Key("z_Rbutton", "All_Contexts")
w & Rbutton:: Trigger_Label_Sensitive_Key("w_Rbutton", "All_Contexts")
s & Rbutton:: Trigger_Label_Sensitive_Key("s_Rbutton", "All_Contexts")
x & Rbutton:: Trigger_Label_Sensitive_Key("x_Rbutton", "All_Contexts")
e & Rbutton:: Trigger_Label_Sensitive_Key("e_Rbutton", "All_Contexts")
d & Rbutton:: Trigger_Label_Sensitive_Key("d_Rbutton", "All_Contexts")
c & Rbutton:: Trigger_Label_Sensitive_Key("c_Rbutton", "All_Contexts")
r & Rbutton:: Trigger_Label_Sensitive_Key("r_Rbutton", "All_Contexts")
f & Rbutton:: Trigger_Label_Sensitive_Key("f_Rbutton", "All_Contexts")
v & Rbutton:: Trigger_Label_Sensitive_Key("v_Rbutton", "All_Contexts")
t & Rbutton:: Trigger_Label_Sensitive_Key("t_Rbutton", "All_Contexts")
g & Rbutton:: Trigger_Label_Sensitive_Key("g_Rbutton", "All_Contexts")
b & Rbutton:: Trigger_Label_Sensitive_Key("b_Rbutton", "All_Contexts")
y & Rbutton:: Trigger_Label_Sensitive_Key("y_Rbutton", "All_Contexts")
h & Rbutton:: Trigger_Label_Sensitive_Key("h_Rbutton", "All_Contexts")
n & Rbutton:: Trigger_Label_Sensitive_Key("n_Rbutton", "All_Contexts")

q & 1:: Trigger_Label_Sensitive_Key("q_1", "Bundle_Transform")
q & 2:: Trigger_Label_Sensitive_Key("q_2", "Bundle_Transform")
q & 3:: Trigger_Label_Sensitive_Key("q_3", "Bundle_Transform")
q & 4:: Trigger_Label_Sensitive_Key("q_4", "Bundle_Transform")
q & 5:: Trigger_Label_Sensitive_Key("q_5", "Bundle_Transform")
q & F1:: Trigger_Label_Sensitive_Key("q_F1", "Bundle_Transform")
q & F2:: Trigger_Label_Sensitive_Key("q_F2", "Bundle_Transform")
q & F3:: Trigger_Label_Sensitive_Key("q_F3", "Bundle_Transform")
q & F4:: Trigger_Label_Sensitive_Key("q_F4", "Bundle_Transform")
q & F5:: Trigger_Label_Sensitive_Key("q_F5", "Bundle_Transform")

a & 1:: Trigger_Label_Sensitive_Key("a_1", "Bundle_Transform")
a & 2:: Trigger_Label_Sensitive_Key("a_2", "Bundle_Transform")
a & 3:: Trigger_Label_Sensitive_Key("a_3", "Bundle_Transform")
a & 4:: Trigger_Label_Sensitive_Key("a_4", "Bundle_Transform")
a & 5:: Trigger_Label_Sensitive_Key("a_5", "Bundle_Transform")
a & F1:: Trigger_Label_Sensitive_Key("a_F1", "Bundle_Transform")
a & F2:: Trigger_Label_Sensitive_Key("a_F2", "Bundle_Transform")
a & F3:: Trigger_Label_Sensitive_Key("a_F3", "Bundle_Transform")
a & F4:: Trigger_Label_Sensitive_Key("a_F4", "Bundle_Transform")
a & F5:: Trigger_Label_Sensitive_Key("a_F5", "Bundle_Transform")

z & 1:: Trigger_Label_Sensitive_Key("z_1", "Bundle_Transform")
z & 2:: Trigger_Label_Sensitive_Key("z_2", "Bundle_Transform")
z & 3:: Trigger_Label_Sensitive_Key("z_3", "Bundle_Transform")
z & 4:: Trigger_Label_Sensitive_Key("z_4", "Bundle_Transform")
z & 5:: Trigger_Label_Sensitive_Key("z_5", "Bundle_Transform")
z & F1:: Trigger_Label_Sensitive_Key("z_F1", "Bundle_Transform")
z & F2:: Trigger_Label_Sensitive_Key("z_F2", "Bundle_Transform")
z & F3:: Trigger_Label_Sensitive_Key("z_F3", "Bundle_Transform")
z & F4:: Trigger_Label_Sensitive_Key("z_F4", "Bundle_Transform")
z & F5:: Trigger_Label_Sensitive_Key("z_F5", "Bundle_Transform")

w & 1:: Trigger_Label_Sensitive_Key("w_1", "Bundle_Transform")
w & 2:: Trigger_Label_Sensitive_Key("w_2", "Bundle_Transform")
w & 3:: Trigger_Label_Sensitive_Key("w_3", "Bundle_Transform")
w & 4:: Trigger_Label_Sensitive_Key("w_4", "Bundle_Transform")
w & 5:: Trigger_Label_Sensitive_Key("w_5", "Bundle_Transform")
w & F1:: Trigger_Label_Sensitive_Key("w_F1", "Bundle_Transform")
w & F2:: Trigger_Label_Sensitive_Key("w_F2", "Bundle_Transform")
w & F3:: Trigger_Label_Sensitive_Key("w_F3", "Bundle_Transform")
w & F4:: Trigger_Label_Sensitive_Key("w_F4", "Bundle_Transform")
w & F5:: Trigger_Label_Sensitive_Key("w_F5", "Bundle_Transform")

s & 1:: Trigger_Label_Sensitive_Key("s_1", "Bundle_Transform")
s & 2:: Trigger_Label_Sensitive_Key("s_2", "Bundle_Transform")
s & 3:: Trigger_Label_Sensitive_Key("s_3", "Bundle_Transform")
s & 4:: Trigger_Label_Sensitive_Key("s_4", "Bundle_Transform")
s & 5:: Trigger_Label_Sensitive_Key("s_5", "Bundle_Transform")
s & F1:: Trigger_Label_Sensitive_Key("s_F1", "Bundle_Transform")
s & F2:: Trigger_Label_Sensitive_Key("s_F2", "Bundle_Transform")
s & F3:: Trigger_Label_Sensitive_Key("s_F3", "Bundle_Transform")
s & F4:: Trigger_Label_Sensitive_Key("s_F4", "Bundle_Transform")
s & F5:: Trigger_Label_Sensitive_Key("s_F5", "Bundle_Transform")

x & 1:: Trigger_Label_Sensitive_Key("x_1", "Bundle_Transform")
x & 2:: Trigger_Label_Sensitive_Key("x_2", "Bundle_Transform")
x & 3:: Trigger_Label_Sensitive_Key("x_3", "Bundle_Transform")
x & 4:: Trigger_Label_Sensitive_Key("x_4", "Bundle_Transform")
x & 5:: Trigger_Label_Sensitive_Key("x_5", "Bundle_Transform")
x & F1:: Trigger_Label_Sensitive_Key("x_F1", "Bundle_Transform")
x & F2:: Trigger_Label_Sensitive_Key("x_F2", "Bundle_Transform")
x & F3:: Trigger_Label_Sensitive_Key("x_F3", "Bundle_Transform")
x & F4:: Trigger_Label_Sensitive_Key("x_F4", "Bundle_Transform")
x & F5:: Trigger_Label_Sensitive_Key("x_F5", "Bundle_Transform")

e & 1:: Trigger_Label_Sensitive_Key("e_1", "Bundle_Transform")
e & 2:: Trigger_Label_Sensitive_Key("e_2", "Bundle_Transform")
e & 3:: Trigger_Label_Sensitive_Key("e_3", "Bundle_Transform")
e & 4:: Trigger_Label_Sensitive_Key("e_4", "Bundle_Transform")
e & 5:: Trigger_Label_Sensitive_Key("e_5", "Bundle_Transform")
e & F1:: Trigger_Label_Sensitive_Key("e_F1", "Bundle_Transform")
e & F2:: Trigger_Label_Sensitive_Key("e_F2", "Bundle_Transform")
e & F3:: Trigger_Label_Sensitive_Key("e_F3", "Bundle_Transform")
e & F4:: Trigger_Label_Sensitive_Key("e_F4", "Bundle_Transform")
e & F5:: Trigger_Label_Sensitive_Key("e_F5", "Bundle_Transform")

d & 1:: Trigger_Label_Sensitive_Key("d_1", "Bundle_Transform")
d & 2:: Trigger_Label_Sensitive_Key("d_2", "Bundle_Transform")
d & 3:: Trigger_Label_Sensitive_Key("d_3", "Bundle_Transform")
d & 4:: Trigger_Label_Sensitive_Key("d_4", "Bundle_Transform")
d & 5:: Trigger_Label_Sensitive_Key("d_5", "Bundle_Transform")
d & F1:: Trigger_Label_Sensitive_Key("d_F1", "Bundle_Transform")
d & F2:: Trigger_Label_Sensitive_Key("d_F2", "Bundle_Transform")
d & F3:: Trigger_Label_Sensitive_Key("d_F3", "Bundle_Transform")
d & F4:: Trigger_Label_Sensitive_Key("d_F4", "Bundle_Transform")
d & F5:: Trigger_Label_Sensitive_Key("d_F5", "Bundle_Transform")

c & 1:: Trigger_Label_Sensitive_Key("c_1", "Bundle_Transform")
c & 2:: Trigger_Label_Sensitive_Key("c_2", "Bundle_Transform")
c & 3:: Trigger_Label_Sensitive_Key("c_3", "Bundle_Transform")
c & 4:: Trigger_Label_Sensitive_Key("c_4", "Bundle_Transform")
c & 5:: Trigger_Label_Sensitive_Key("c_5", "Bundle_Transform")
c & F1:: Trigger_Label_Sensitive_Key("c_F1", "Bundle_Transform")
c & F2:: Trigger_Label_Sensitive_Key("c_F2", "Bundle_Transform")
c & F3:: Trigger_Label_Sensitive_Key("c_F3", "Bundle_Transform")
c & F4:: Trigger_Label_Sensitive_Key("c_F4", "Bundle_Transform")
c & F5:: Trigger_Label_Sensitive_Key("c_F5", "Bundle_Transform")

r & 1:: Trigger_Label_Sensitive_Key("r_1", "Bundle_Transform")
r & 2:: Trigger_Label_Sensitive_Key("r_2", "Bundle_Transform")
r & 3:: Trigger_Label_Sensitive_Key("r_3", "Bundle_Transform")
r & 4:: Trigger_Label_Sensitive_Key("r_4", "All_Contexts")
r & 5:: Trigger_Label_Sensitive_Key("r_5", "All_Contexts")
r & F1:: Trigger_Label_Sensitive_Key("r_F1", "Bundle_Transform")
r & F2:: Trigger_Label_Sensitive_Key("r_F2", "Bundle_Transform")
r & F3:: Trigger_Label_Sensitive_Key("r_F3", "Bundle_Transform")
r & F4:: Trigger_Label_Sensitive_Key("r_F4", "All_Contexts")
r & F5:: Trigger_Label_Sensitive_Key("r_F5", "All_Contexts")

f & 1:: Trigger_Label_Sensitive_Key("f_1", "All_Contexts")
f & 2:: Trigger_Label_Sensitive_Key("f_2", "All_Contexts")
f & 3:: Trigger_Label_Sensitive_Key("f_3", "All_Contexts")
f & 4:: Trigger_Label_Sensitive_Key("f_4", "All_Contexts")
f & 5:: Trigger_Label_Sensitive_Key("f_5", "All_Contexts")
f & F1:: Trigger_Label_Sensitive_Key("f_F1", "All_Contexts")
f & F2:: Trigger_Label_Sensitive_Key("f_F2", "All_Contexts")
f & F3:: Trigger_Label_Sensitive_Key("f_F3", "All_Contexts")
f & F4:: Trigger_Label_Sensitive_Key("f_F4", "All_Contexts")
f & F5:: Trigger_Label_Sensitive_Key("f_F5", "All_Contexts")

v & 1:: Trigger_Label_Sensitive_Key("v_1", "All_Contexts")
v & 2:: Trigger_Label_Sensitive_Key("v_2", "All_Contexts")
v & 3:: Trigger_Label_Sensitive_Key("v_3", "All_Contexts")
v & 4:: Trigger_Label_Sensitive_Key("v_4", "All_Contexts")
v & 5:: Trigger_Label_Sensitive_Key("v_5", "All_Contexts")
v & F1:: Trigger_Label_Sensitive_Key("v_F1", "All_Contexts")
v & F2:: Trigger_Label_Sensitive_Key("v_F2", "All_Contexts")
v & F3:: Trigger_Label_Sensitive_Key("v_F3", "All_Contexts")
v & F4:: Trigger_Label_Sensitive_Key("v_F4", "All_Contexts")
v & F5:: Trigger_Label_Sensitive_Key("v_F5", "All_Contexts")

t & F1:: Trigger_Label_Sensitive_Key("t_F1", "All_Contexts")
t & F2:: Trigger_Label_Sensitive_Key("t_F2", "All_Contexts")
t & F3:: Trigger_Label_Sensitive_Key("t_F3", "All_Contexts")
t & F4:: Trigger_Label_Sensitive_Key("t_F4", "All_Contexts")
t & F5:: Trigger_Label_Sensitive_Key("t_F5", "All_Contexts")

g & F1:: Trigger_Label_Sensitive_Key("g_F1", "All_Contexts")
g & F2:: Trigger_Label_Sensitive_Key("g_F2", "All_Contexts")
g & F3:: Trigger_Label_Sensitive_Key("g_F3", "All_Contexts")
g & F4:: Trigger_Label_Sensitive_Key("g_F4", "All_Contexts")
g & F5:: Trigger_Label_Sensitive_Key("g_F5", "All_Contexts")

b & F1:: Trigger_Label_Sensitive_Key("b_F1", "All_Contexts")
b & F2:: Trigger_Label_Sensitive_Key("b_F2", "All_Contexts")
b & F3:: Trigger_Label_Sensitive_Key("b_F3", "All_Contexts")
b & F4:: Trigger_Label_Sensitive_Key("b_F4", "All_Contexts")
b & F5:: Trigger_Label_Sensitive_Key("b_F5", "All_Contexts")

;

;{████████████████████████████████████████████████████████████████████████████████ # Example Sensitive Hotkeys

; Use All_Contexts for the 3D View to be segregated in all individual contexts, such as edit mode, object mode, etc. Doesn't affect other editors or modes.
; Use Whole_Viewport for the 3D View Editor not being segregated by the current mode. Doesn't affect other editors or modes.
; Use Except_Paint for activating on all modes, while on the 3D View Editor, except paint modes. Doesn't affect other editors or modes.
; Use Bundle_Transform for activating on all modes of the 3D View Editor, where you can move, scale and rotate an item. Doesn't affect other editors or modes.
; Use Bundle_Editing for just editing modes on the 3D View Editor. Doesn't affect other editors or modes.
; Use Bundle_Painting for just painting modes on the 3D View Editor. Doesn't affect other editors or modes.

NODE_EDITOR_Tab_Lalt:
Send, !p ; Remove from frame
return

NODE_EDITOR_Tab_Lwin:
Send, +{=} ; Arrange Nodes
return

VIEW_Whole_Viewport_t_F1:
Send, +{Numpad6} ; Roll view right
return

VIEW_Whole_Viewport_t_F2:
Send, +{Numpad4} ; Roll view left
return

VIEW_Bundle_Transform_f_3:
Send, +{Numpad7} ; Align camera with normal of Selected
return

;--------------------------------------------------------------------------------

VIEW_Bundle_Transform_Tab_1:
Send, {,} ; Transform Orientation
return

VIEW_Bundle_Transform_Tab_2:
Send, {.} ; Transform Pivot Point
return

VIEW_Bundle_Transform_Tab_z:
Send, {.}2 ; Transform Pivot Point Individual Origins
return

VIEW_Bundle_Transform_Tab_x:
Send, {.}6 ; Transform Pivot Point 3D Cursor
return

VIEW_Bundle_Transform_1_v:
Send, sx0{Enter} ; Align selected on X axis.
return

VIEW_Bundle_Transform_2_v:
Send, sy0{Enter} ; Align selected on Y axis.
return

VIEW_Bundle_Transform_3_v:
Send, sz0{Enter} ; Align selected on Z axis.
return

NODE_EDITOR_1_v:
Send, sx0{Enter} ; Align selected on X axis.
return

NODE_EDITOR_2_v:
Send, sy0{Enter} ; Align selected on Y axis.
return

VIEW_Bundle_Transform_1_y:
Send, sx-1{Enter} ; Invert geometry on X axis.
return

VIEW_Bundle_Transform_2_y:
Send, sy-1{Enter} ; Invert geometry on Y axis.
return

VIEW_Bundle_Transform_3_y:
Send, sz-1{Enter} ; Invert geometry on Z axis.
return

VIEW_Bundle_Transform_1_c:
Send, +s8 ; Snap Selection to Cursor
return

VIEW_Bundle_Transform_2_c:
Send, +s2 ; Snap Cursor to Selected
return

VIEW_Bundle_Transform_3_c:
Send, +s9 ; Snap Selection to Active
return

;--------------------------------------------------------------------------------

IMAGE_EDITOR_1_v:
Send, sx0{Enter} ; Align selected on X axis.
return

IMAGE_EDITOR_2_v:
Send, sy0{Enter} ; Align selected on Y axis.
return

IMAGE_EDITOR_3_v:
Send, sz0{Enter} ; Align selected on Z axis.
return

IMAGE_EDITOR_1_y:
Send, sx-1{Enter} ; Invert geometry on X axis.
return

IMAGE_EDITOR_2_y:
Send, sy-1{Enter} ; Invert geometry on Y axis.
return

IMAGE_EDITOR_3_y:
Send, sz-1{Enter} ; Invert geometry on Z axis.
return

;--------------------------------------------------------------------------------

NLA_EDITOR_1_Space:
DOPESHEET_EDITOR_1_Space:
GRAPH_EDITOR_1_Space:
Send, s0{Enter} ; Snap Selected Keyframes to Current Frame
return

NLA_EDITOR_2_Space:
DOPESHEET_EDITOR_2_Space:
GRAPH_EDITOR_2_Space:
Send, ^g ; Snap Current Frame to Selection
return

NLA_EDITOR_Tab_2:
DOPESHEET_EDITOR_Tab_2:
GRAPH_EDITOR_Tab_2:
Send, {.} ; Transform Pivot Point
return

NLA_EDITOR_1_v:
DOPESHEET_EDITOR_1_v:
GRAPH_EDITOR_1_v:
Send, sx0{Enter} ; Align selected on X axis.
return

NLA_EDITOR_2_v:
DOPESHEET_EDITOR_2_v:
GRAPH_EDITOR_2_v:
Send, sy0{Enter} ; Align selected on Y axis.
return

NLA_EDITOR_3_v:
DOPESHEET_EDITOR_3_v:
GRAPH_EDITOR_3_v:
Send, sz0{Enter} ; Align selected on Z axis.
return

NLA_EDITOR_1_y:
DOPESHEET_EDITOR_1_y:
GRAPH_EDITOR_1_y:
Send, sx-1{Enter} ; Invert geometry on X axis.
return

NLA_EDITOR_2_y:
DOPESHEET_EDITOR_2_y:
GRAPH_EDITOR_2_y:
Send, sy-1{Enter} ; Invert geometry on Y axis.
return

NLA_EDITOR_3_y:
DOPESHEET_EDITOR_3_y:
GRAPH_EDITOR_3_y:
Send, sz-1{Enter} ; Invert geometry on Z axis.
return

;--------------------------------------------------------------------------------

VIEW_Bundle_Transform_4_c:
Send, +s1 ; Snap Cursor to World Origin
return

VIEW_Bundle_Editing_1_x:
Send, ^f2 ; Extrude along normals
return

VIEW_Bundle_Editing_2_x:
Send, i, ; Inset
return

VIEW_Bundle_Editing_3_x:
Send, ^b, ; Bevel
return

VIEW_Bundle_Editing_Tab_c:
Send, k ; Knife Tool
return

Blender script (mini addon):

import bpy
import os

bl_info = {
    "name": "Continuous Area and Context Logger",
    "blender": (4, 00, 0),
    "category": "System",
    "version": (1, 0, 0),
    "author": "Greenface",
    "description": "Logs the current area and context to a file continuously",
}

class AreaContextLoggerPreferences(bpy.types.AddonPreferences):
    bl_idname = __name__

    log_directory: bpy.props.StringProperty(
        name="Log Directory",
        subtype='DIR_PATH',
        default="C:\\Blender External Scripts\\Context and Area of Current Blender Window\\",
        description="Directory where the log file will be saved"
    )

    print_console: bpy.props.BoolProperty(
        name="Print to Console",
        default=True,
        description="Print the current context and area type to the console"
    )

    def draw(self, context):
        layout = self.layout
        layout.prop(self, "log_directory")
        layout.prop(self, "print_console")
        layout.operator("wm.restart_addon")

class WM_OT_RestartAddon(bpy.types.Operator):
    bl_idname = "wm.restart_addon"
    bl_label = "Restart Addon"

    def execute(self, context):
        unregister()
        register()
        return {'FINISHED'}

class WM_OT_WriteAreaAndContext(bpy.types.Operator):
    bl_idname = "wm.write_area_and_context"
    bl_label = "Write Area and Context"

    def __init__(self):
        self._timer = None
        self._last_area_type = None
        self._last_context = None

    def modal(self, context, event):
        if event.type == 'TIMER':
            for area in bpy.context.screen.areas:
                if area.x < event.mouse_x < area.x + area.width and area.y < event.mouse_y < area.y + area.height:
                    area_type = area.type
                    current_context = context.mode
                    if area_type != self._last_area_type or current_context != self._last_context:
                        self._last_area_type = area_type
                        self._last_context = current_context
                        prefs = context.preferences.addons[__name__].preferences
                        file_path = os.path.join(prefs.log_directory, "Context_and_Area_Log.txt")
                        with open(file_path, "w") as file:
                            file.write(f"{current_context}\n{area_type}")
                        if prefs.print_console:
                            print(f"{current_context}\n{area_type}\n----")
                    break
        return {'PASS_THROUGH'}

    def execute(self, context):
        wm = context.window_manager
        self._timer = wm.event_timer_add(0.1, window=context.window)
        wm.modal_handler_add(self)
        return {'RUNNING_MODAL'}

    def cancel(self, context):
        wm = context.window_manager
        wm.event_timer_remove(self._timer)

def register():
    bpy.utils.register_class(AreaContextLoggerPreferences)
    bpy.utils.register_class(WM_OT_WriteAreaAndContext)
    bpy.utils.register_class(WM_OT_RestartAddon)
    bpy.app.timers.register(lambda: bpy.ops.wm.write_area_and_context() or 1, first_interval=1)

def unregister():
    bpy.utils.unregister_class(AreaContextLoggerPreferences)
    bpy.utils.unregister_class(WM_OT_WriteAreaAndContext)
    bpy.utils.unregister_class(WM_OT_RestartAddon)

if __name__ == "__main__":
    register()

On the AHK script, you will use a label to designate hotkeys and their area and context, instead of using the ordinary hotkey syntax.

So instead of something like this:

Tab & Space::
Send, k
return

You will write something like this:

EDIT_MESH_Tab_Space:
Send, k
return

This will send k only while your mouse is hovering in the 3D view, and only in the Edit mode of a mesh object.

But before, you need to register the Tab & Space trigger, like so:
Tab & Space:: Trigger_Label_Sensitive_Key(“Tab_Space”, “All_Contexts”)

The second parameter bundles several modes together for convenience, follow the comments on the AHK script for guidance.

Note: The script seems to stop working when you open a new instance of Blender. To solve it, just restart the addon. There is a dedicated button for that in the addon preferences, that you can assign a shortcut for.