Wow, that's a lot of question, I'll try my best to answer. ;-)
• Can it be powered by the USB connector only, or do you need an extra power supply?
There is no requirement for an external power supply for this particular application.
• Do/could you have LEDs showing what the remapper is up to?
On the standard Arduino boards, they have a built-in LED that you can control. I have mapped it currently now to simply be off when it's qwerty layout and on when it's any of the tarmak or colemak layouts. I had plans to make them blink at various rates for various layouts but did not get down to doing it. On the Arduino boards, there are also multiple digital out pins that you can put various LEDs on for various status updates if you choose to. I even went so far as to explore how to use the capslock, numlock and scrolllock lights to give some feedback on the current status, but based on the existing USB host shield library, the HID address and the locking key status is not passed out to the user-program and hence I dunno how to program the lights (yet). Need to brush up on my programming skills... ;-p
• Is the AltGr modifier supported? I suppose you can't actually send symbols but key presses...
I'm not familiar with the AltGr key, but the modifications that I made to Oleg's host shield library was intended to pass on any key presses that are not remapped transparently to the computer. However, I may need to tweak that part accordingly if I have more info/debugging on it.
BTW, my program currently has a bug (actually it was oversight on my part) that does not pass on more than 2 simultaneous key presses (besides modification keys). I need to find time to correct that part of the program.
• Could your solution support the CapsLock as an Extend modifier (see my sig topic) as well?
- If so, would it be possible to code new modifiers in the Extend mappings
(for instance, type Caps+A+4 to get Alt+F4, or Caps+S+T+N for Shift+Ctrl+Left to select the previous word)?
• Also, another modifier (for instance ScrollLock) to make the current layout Mirrored?
Currently, the host shield library traps the locking keys (caps, num and scroll) and does not pass it on to the user program. I also looked into this briefly just two days ago as I was contemplating mapping the capslock to backspace as per "classical" colemak. The only way now is to address the HID directly without using the library functions, or to change the library functions to pass on locking key presses to the user program for remapping. I have not gone on to explore this area yet.
Actually I have quite a fair bit of ideas right now that I'm thinking of implementing:
- keep track of all keystrokes and map a counter to every keystroke so that it can generate a "heat map" on what keys are most frequently used. I wanted to do this as I know that I almost rarely never use the left shift for shifting (only the right) and hence if I have a log of all the keys that I used, then rarely used keys can potentially be used for me to remap to more useful functions or even macros.
- allow customised remapping of keys (programmable keyboard similar to the Anykey or Typematrix).
However, if this program is only for myself then it may not be too productive to invest too much time on these "fanciful" features and instead I will focus on the core features.