Here is what i have so far.
The bottom call is giving me issues, as well as the mappings for > and ` shown at the bottom of the second to last mapping. The caps lock bit should be easy too I was just using that for testing and killed it because i never user caps lock anyway.
;Black keys ;Top row q::p e::r w::w r::a t::f ;Middle row a::d s::t d::h f::e g::o ;Bottom row z::y x::s c::n v::i b::u ;Green keys ;Top row space & q::Send, j space & w::Send, m space & e::Send, b space & r::Send, ' space & t::Send, {Tab} ;Middle row space & a::Send, v space & s::Send, c space & d::Send, l space & f::Send, z space & g::Send, q ;Bottom row space & z::Send, x space & x::Send, g space & c::Send, k space & v::Send, {AppsKey} space & b::Send, {RWin} ;On release of space type a space $space::Send, {space} ;Left control is enter and period lctrl::enter space & lctrl::Send, . ;Left windows key is comma with space space & lwin::Send, , ;Left shift and space turn on caps lock ;I left this block comented out as I found no use for the capslock key as I have it disabbled in the OS anyway. ;space & lshift:: ;GetKeyState, state, capslock,T ;send %state% ;Maps left shift to temp shift lock ;Press shift and the next key hit will be in capitals (only applies to letters a-z) LShift:: Input, SingleKey,L1 if SingleKey = a Send, A if SingleKey = b Send, B if SingleKey = c Send, C if SingleKey = d Send, D if SingleKey = e Send, E if SingleKey = f Send, F if SingleKey = g Send, G if SingleKey = h Send, H if SingleKey = i Send, I if SingleKey = j Send, J if SingleKey = k Send, K if SingleKey = l Send, L if SingleKey = m Send, M if SingleKey = n Send, N if SingleKey = o Send, O if SingleKey = p Send, P if SingleKey = q Send, Q if SingleKey = r Send, R if SingleKey = s Send, S if SingleKey = t Send, T if SingleKey = u Send, U if SingleKey = v Send, V if SingleKey = w Send, W if SingleKey = x Send, X if SingleKey = y Send, Y if SingleKey = z Send, Z return ;Maps left windows key to symbol lock ;Press left windows key next key will map to symbol LWin:: Input, SingleKey,L1 if SingleKey = a SendRaw, & if SingleKey = b SendRaw, = if SingleKey = c SendRaw, ~ if SingleKey = d SendRaw, _ if SingleKey = e SendRaw, ! if SingleKey = f SendRaw, ? if SingleKey = g SendRaw, ] if SingleKey = h SendRaw, - if SingleKey = i SendRaw, < if SingleKey = j SendRaw, # if SingleKey = k SendRaw, ) if SingleKey = l SendRaw, | if SingleKey = m SendRaw, $ if SingleKey = n SendRaw, ( if SingleKey = o SendRaw, / if SingleKey = p SendRaw, `; if SingleKey = q SendRaw, \ if SingleKey = r SendRaw, * if SingleKey = s SendRaw, [ if SingleKey = t SendRaw, @ if SingleKey = u SendRaw, " if SingleKey = v SendRaw, ^ if SingleKey = w SendRaw, : if SingleKey = x SendRaw, } if SingleKey = y SendRaw, { if SingleKey = z SendRaw, `% if SingleKey = ' SendRaw, + ;if SingleKey = Tab ; Tab::> ;if SingleKey = RWin ; RWin::` return ;Maps left alt key to number lock ;Press left alt key next key to map to number pad as a lock ;Press again to return to normal $LAlt:: KeyWait, LAlt Loop { Input, SingleKey,L1,{LAlt} GetKeyState, state, LAlt, P if state = D if SingleKey = p SendRaw, - if SingleKey = w Send, 7 if SingleKey = r Send, 8 if SingleKey = a Send, 9 if SingleKey = f SendRaw, * if SingleKey = d SendRaw, + if SingleKey = t Send, 4 if SingleKey = h Send, 5 if SingleKey = e Send, 6 if SingleKey = o SendRaw, / if SingleKey = y Send, 0 if SingleKey = s Send, 1 if SingleKey = n Send, 2 if SingleKey = i Send, 3 if SingleKey = u SendRaw, . } return