One of the easiest options would be to just use TextExpander. You can also configure abbreviations in a text file and then import it as a group.
It is also possible to add characters to the press and hold popovers.
I have used FastScripts to assign a shortcut to this script:
try
set old to the clipboard as record
end try
try
tell application "System Events"
key code 123 using {option down, shift down}
keystroke "c" using command down
end tell
delay 0.05
set input to the clipboard
if input contains return then error
set p1 to read POSIX file "/Users/lauri/Notes/snippets.txt" as «class utf8» using delimiter linefeed
set p2 to read POSIX file "/Users/lauri/Projects/unicode/html_entities.txt" as «class utf8» using delimiter linefeed
repeat with p in p1 & p2
considering case
if p starts with (input & " ") then
set the clipboard to text ((offset of space in p) + 1) thru -1 of p
tell application "System Events" to keystroke "v" using command down
delay 0.05
exit repeat
end if
end considering
end repeat
end try
try
set the clipboard to old
end try
html_entities.txt is a list of abbreviations used for HTML character references.
You could also create ~/Library/KeyBindings/
and save a property list like this as DefaultKeyBinding.dict. After reopening applications, ⌥A should insert α
. insertText:
doesn't seem to work with U+10000
or characters above it though.
{
"~a" = (insertText:, "α");
}