It's quite easy in OS X 10.6 Snow Leopard, by creating a new service. This is not supported in earlier versions of OS X. For example:
- Start Applications » Automator.
- Select "Service" for the template of the new Automator workflow.
- In the top of the right pane, select "Service receives no input in any application".
- Drag action "Run AppleScript" from the left pane into the workflow on the right pane.
Replace the default with:
on run {input, parameters}
tell application "Safari"
activate
open location "http://superuser.com/"
end tell
return input
end run

Optional: click the Run button to test.
- Hit Cmd-S to save. The name you type will be the name in the Services menu. The workflow will be saved in
~/Library/Services
.
Or, to have the default application open the file or location†:
To assign a keyboard shortcut, in 10.6:
- Open System Preferences » Keyboard » pane Keyboard Shortcuts.
- Select "Services" in the left pane.
- Scroll down to General in the right pane.
- Double-click to the right of the Automator workflow you just created.
- Press the keys you want to use (and if applicable, remove existing associations if you get a warning "Shortcut used by another action"), and switch panes to ensure the new shortcut is saved.
Unfortunately, it seems that this way Services cannot be assigned a function key (the key is displayed but remains in "edit mode", and when clicking elsewhere, it's lost, which is different from assigning function keys to built-in things like Exposé, or when adding an application shortcut).
To assign a function key, there are two options:
Assume that most applications have a Services menu, and hence will find the name like it appears there. So, if the service is named "Open Super User" then map the menu item Services » Open Super User:
- Open System Preferences » Keyboard » pane Keyboard Shortcuts.
- Select "Application Shortcuts" in the left pane.
- Select "All Applications" in the right pane.
- Add an entry for the exact name "Open Super User" and assign some function key.
Or, use the command line:
- Find its hexadecimal keycode: F1 =
\UF704
, F2 = \UF705
, ..., F6 = \UF709
, F7 = \UF70A
, etc.
- Prefix that with any combination of
@
for Command, ^
for Ctrl, ~
for Option, and $
for Shift.
Open Terminal. If the name of the service is Open Super User
, then to map that service to F1, run:
defaults write pbs NSServicesStatus -dict-add \
'"(null) - Open Super User - runWorkflowAsService"' \
'{ "key_equivalent" = "\UF704"; }'
Or for Command-Shift-F12:
'{ "key_equivalent" = "@$\UF70F"; }'
To make all running applications aware of the change you made using Terminal:
- Close System Preferences if that was already running.
- Find your new service in System Preferences » Keyboard » pane Keyboard Shortcuts like described above.
- Disable and re-enable its checkbox to make every application aware of the change.
† There must be some AppleScript version of this as well, but I'm no expert... Anyone?