So I hacked together a GUI to make remapping the Phantom a little easier. It can handle all the layout possibilities that are available as plates and some that aren't.
Let's start with the options on the right, they should be self explanatory. The top 2 check boxes turn on and off 7bit's F-row (15 1x keys solid), and 7bit's nav block (extra keys over the arrows). The next grouping is basic layout allowing ANSI or ISO or 7bit. The next grouping allows you to specify the modifier row for 1.25x, 1.5x, or 7bit's modifiers. Note that choosing 7bit's layout makes all the extra options disappear since they are extraneous.
On the bottom right you can load or save phantom layout .c file as provided by bpiphany's firmware found at
github.
Underneath your keyboard layout is a single button showing the legend of the current button with the exact key_code underneath. To the right of that is an entry box where you can press any of these keys: [a-z] [0-9], all un-shifted punctuation, spacebar and tab to set the current button. Pushing any of the buttons in the layout will focus the input box so you can easily map all the letters/numbers with a mouse and KB.
To the right of that block are 9 drop-down boxes containing different groupings of key codes. If you need to UNSET a key, select NA in the Special list. Note that I allowed ALL the key codes and do NOT have any idea if they all work. For instance there is a left and right Ctrl keycode, but there is also a non-specific Ctrl keycode.
Please note that the layout settings do not change as you load your layout file. You must select the appropriate layout to see it correctly. Once you have saved your layout loading it again will set the GUI to the layout you saved as.
Now at v.11 of Phantom Remap
Implemented:
v.11 Tracking bpiphany's change to layout files:
Now outputs .c and .h using your filename, does NOT require writing over an existing layout.
v.10 (no version bump) added Colemak and Dvorak ANSI 125x layouts to the zip and separately
v.10 Resize bug fixed, code cleanup
v.9 Saving/loading of layout settings to the phantom.c file
v.8: Window Resizing (2 tiny buttons at top left corner, or Ctrl-MouseWheel)
This change removed Ctrl from the list of keys that can be directly input for code assignments
The program will now save an ini file containing x/y window coords and button size, the button size directly effects window sizing. You can directly edit the ini when the program is not running.
v.7: Additional keys for direct input (every key on my Filco TKL)
v.6: Sorting of the key code lists (remarkably easy since I wasn't using the key:values for anything)
I've included ANSI, ISO, ANSI Colemak, ANSI Dvorak (all in 1.25x) layouts and a 7bit layout in the zip file.
Features I'd like to implement:
Suggest something? Please understand that I won't implement a feature in the GUI that is not present in the master git repo linked above.