Apart from FARR, I can recommend you two alternatives for shortcut keys:
My first choice was to create an ad-hoc autohotkey script which contained shortcuts defined to launch whatever I wanted. I would then compile it, and put it into start-up. This is also a relatively easy way of assigning new characters to keys. For instance, here is what I use at the moment:
; Minimize Current Window
#Down::WinMinimize,A
; Force current window to stay on top
#Up::WinSet,AlwaysOnTop,Toggle,A
;mouse wheel function with win-pageup-pagedown
#PgDn::Send {WheelDown}
#PgUp::Send {WheelUp}
;Type NumpadDot types "." I hate Turkish keyboard layout, I despise Turkish regional settings.
;win+NumpadDot types ","
#NumpadDot::,
NumpadDot::SendRaw .
;Send alt-insert when alt-NumpadSub is pressed (for trados and stupid stupid logitech keyboard with no separate insert key)
!NumpadSub::!Insert
;Type accented A and a for Turkish
#+a::Â
#a::â
;Save some energy
+F1::
sleep 750
SendMessage,0x112,0xF170,2,,Program Manager
return
The second option is
SecondShell. It's a handy utility to make efficient use of large monitors. When you install it, edit the secondshell.ini to change the custom hotkeys. It lets you assign any application to any win-hotkey.
There are more than one way of doing things, and I love learning others' ways, so thought you might like to hear my way.