Anyway, I just finished a guide to compiling a custom layout for phantoms using Hasu's firmware. While this probably isn't the best place to post this, I'm just going to dump it here anyway.
How to program a custom layout to your Phantom on Windows:
1. Download and Install WinAVR
http://sourceforge.net/projects/winavr/2. Download and extract Hasu’s tmk_keyboard firmware
https://github.com/tmk/tmk_keyboard (Just click on the zip button if you don’t want to learn how to use git). This guide will be using hasu's firmware because it is the most feature rich (has multiple layers, nkro over usb, media keys, mouse keys, ect).
3. browse to keyboard/phantom/ and open up keymap.c with your favorite text editor (WinAVR includes Programmers Notepad, which does a pretty good job).
Now the part you want to look at is this:
/* Layer 0: Default Layer
*
* ANSI:
*
* ,---. ,---------------. ,---------------. ,---------------. ,-----------.
* |Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau|
* `---' `---------------' `---------------' `---------------' `-----------'
* ,-----------------------------------------------------------. ,-----------.
* |~ | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | |Ins|Hom|PgU|
* |-----------------------------------------------------------| |-----------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |Del|End|PgD|
* |-----------------------------------------------------------| |---|---|---|
* |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return | |???|???|???|
* |-----------------------------------------------------------| |---|---|---|
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | |???|Up |???|
* |-----------------------------------------------------------| |-----------|
* |Ctl|Gui|Alt| Space |Alt|Gui|App|Ctl| |Lef|Dow|Rig|
* `-----------------------------------------------------------' `-----------'
*/
KEYMAP(\
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR, SLCK, BRK, \
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, BSPC, INS, HOME, PGUP, \
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, DEL, END, PGDN, \
FN1, A, S, D, F, G, H, J, K, L, SCLN, QUOT, ENT, 0, 0, 0, \
LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, RSFT, 0, UP, 0, \
LCTL, LGUI, LALT, SPC, RALT, RGUI, APP, RCTL, LEFT, DOWN, RGHT),
The top half is just to give an idea of how the layout actually looks, and is not actually used. What you want to edit is the lower half which contains the actual keymap. The various key codes that you can use can be found in common/keycode.h note that you do not need to include the "KC_" as that is automatically added. Note that you can have up to 8 layers which can be added by copy and pasting more KEYMAP()s, and can be accessed by placing FN0-7 in your keymaps.
Additionally, if you want to change what your LEDs show, you can open up led.c and change either "USB_LED_CAPS_LOCK" or "USB_LED_SCROLL_LOCK" to "USB_LED_NUM_LOCK" if you want to track numlock instead.
One more thing to note. The current keymap.c is only configured for ansi layout. If you want 7bit or ISO layout, then some additional changes need to be made. For simplicity's sake, I've attached a separate keymap.c for 7-bit layout to this post. if you want to use ISO layout, then you can probably just use the 7bit layout while ignoring the extra keys. I've also attached the keymap that I am currently using so that you can have a better example of what you can do with the firmware.
4. Now that we have our keymap the way we want it, its time to open up makefile.pjrc. Now scroll down to Build options. If you mapped any mousekeys in your layout then uncomment out "MOUSEKEY_ENABLE = yes # Mouse keys" by deleting the "#" that is in front of the line.
if you want NKRO over usb then you can also uncomment out that line as well (note that to actually enable NKRO you need to hold both shifts and press 'n') Now save your changes.
5. Now its time to actually compile our firmware. First rename Makefile.pjrc to just Makefile. Second, open a command prompt and browse to where your makefile is located (on windows vista and onward you can just hold shift, right click and select "Open command window here". From the command prompt, type "make" (obviously, dont include the ""s). Assuming all goes well, you should now have a compiled firmware hex with your custom layout. You can now program phantom_pjrc.hex to your teensy using the teensy loader
http://www.pjrc.com/teensy/loader.html6. If you wish to rebuild the firmware, then from the command prompt, type "make clean" followed by "make"