I use this autohotkey script to map caps lock to be the left win key, and have pressing both shifts together toggle caps lock...
#NoEnv
SendMode Input
#SingleInstance Force
#HotkeyInterval 999999
#MaxHotkeysPerInterval 9999
#UseHook On
; CapsLock becomes LWin, so use both shifts to toggle CapsLock...
;Lshift & Rshift::Send {CapsLock}
Lshift & Rshift::SetCapsLockState, % GetKeyState("CapsLock", "T")? "Off":"On"
Rshift & Lshift::SetCapsLockState, % GetKeyState("CapsLock", "T")? "Off":"On"
CapsLock::LWin
(ignore the first six lines, they're just stuff you tend to have at the top of each script)