-
Notifications
You must be signed in to change notification settings - Fork 8
Description
This is a spinoff issue of a comment in another issue.
Below is the comment from @tremby copy/pasted for convenience:
I also updated the top-level README file to better explain the difference between --keymap and --keymaps. Let me know if that's clearer.
Maybe? Let's see if I understand.
The provided code is relatively compact. In the keymaps directory, you should find familiar files you would edit in QMK or Kaleidoscope projects, respectively. These keymaps are compiled into the flashing scripts provided with this project.
OK, this helps by defining what "compiled into the flashing scripts" means. I wasn't clear on that before. (If you didn't just add that part, I didn't read well enough last time!) So these are "presets" I guess?
For all keyboards, The “shajra” keymap is in its own directory. You can make your own keymap and put it in a sibling directory with the name of your choice, and it will be compiled in as well.
OK, so I can make a mymap directory next to that with my keymap, and that'll be "compiled in". Clear so far.
If you don't want to use keymaps compiled into the flashing scripts, you can point to another directory of keymaps outside the project at runtime with the -K / -keymaps switch.
It raises eyebrows that -keymaps (or is this a typo for --keymaps?) is a different thing from --keymap; IMO this is too similar and if it were my software I'd pick a different name. --external-keymap maybe.
But I think I get it -- without putting a keymap dir next to your one, I could have it elsewhere in the filesystem, and tell the script at runtime where to find it. But am I pointing to the directory with my *.ino file in it, or the directory containing multiple different keymap directories? I think the wording is suggesting the latter, though it's not 100% clear to me.
And then are these merging with the compiled-in ones (what's the priority for collisions if so?) or replacing them?
Whether using the builtin keymaps or pointing to your own directory, you then use the -k / --keymap switch to load your custom keymap by the name you chose for the keymap in the keymaps directory. The scripts should pick up changes, rebuild anything necessary, and flash your keyboard.
So if using a "compiled in" one, I just do -k mymap. If using an external one, I do -K /my/keymaps -k mymap?
I question why one would want to point to a directory of multiple external maps with -K when they're then forced to pick just one with -k anyway. Wouldn't it be simpler for the user to point directly to /my/keymaps/mymap? (Then shell completion is for free too for the full path.)