I've been using
Slickrun (for windows) for a long time. It's as powerful as it looks simple.
You asign a shortcut (mine's alt+space) to the program. It pops up as a single line command line. You then type a name you assigned to any program or an url and enter to launch it.
The big advantage is that you don't have to remember any hotkeys, you just remember a name that's logical for you. You can even assign multiple names to one program and multiple programs to one name.
This program has been my single biggest computer time saver.