Ukelele is a Unicode Keyboard Layout Editor for Mac OS X. Version 3.3 and later require Mac OS 10.9 (Mavericks) and later.
Beginning with version 10.2 (Jaguar), Mac OS X supports an XML-based format for keyboard layouts (.keylayout files). These may be installed by copying them to the Keyboard Layouts folder within /Library or ~/Library; then they are enabled via the Input Sources (Input in 10.5 and earlier) tab of the Keyboard (Language & Text in 10.9 and earlier, International in 10.5 and earlier) module within System Preferences.
However, modifying keyboard layouts—let alone creating entirely new keyboard layouts, such as for a new script—by directly editing the XML text is tedious and error-prone.
Ukelele aims to simplify keyboard layout editing by providing a graphical interface to .keylayout files, where the desired characters can simply be dragged onto keys as needed. (The Character Viewer or Character Palette, available in the Input menu if it has been enabled in System Preferences, and shown with Show Emoji & Symbols, is a great place to find the characters.)
In addition to simple assignment of single character codes to keys, Ukelele can assign multiple-character strings and can create “dead keys”, where a keystroke sets a new state that modifies the output of the following keystroke.
Free Download: Ukelele 3.5.1