-- I tried the SpaceFn concept and it did not work very well. In normal typing I would end up hitting Fn keys all the time. Also, it would sometimes miss actually registering a Space sometimes when I tapped. I had to move away from space as a Fn key and change the Fn key to my Caps Lock key.
Ah-ha! You have come across the great dilemma! I could go on for pages about this issue. Give TMK a try, and report back how you feel. In my experience, I cannot use a configuration like that in regular usage.
I originally added the support for that stuff so I could implement Matias Half Keyboard (MHK). The problem is that when Space is a Fn key, it can't immediately send a space, like normal keys. It can only send a space when it has been pressed and un-pressed without being combined with another key. That means that the system has to wait for the button-up before doing the space. It also means that if you press space and another key at the same time, it has no choice but to assume you are combining keys. Finally, you have to account for the case where you start a Fn+key combo, but then decide against it. I did this alot with half-keyboard. In that case, you don't want to send the space. I was always pressing backspace to get rid of unwanted spaces.
So the algorithm is this:
Fn key goes down, nothing happens.
If another key goes down, and Fn is down, immediately send the Fn layer scancode
Fn key comes up:
If a Fn layer key was pressed, do nothing
If the space was held down for a long time, assume this is an aborted Fn combo and do nothing
Otherwise, send space scancode real quick (this is a tap key)
When you are typing fast, you often press the next key before you've removed the last key. That's very bad for the algorithm, because you will get the wrong layer. There is no way around this.
Also, I have to choose a time duration for the length of a "tap" that indicates the user is pressing space and not aborting a Fn combo.
That timing is difficult to tune. If you are hitting Fn keys by accident, it's because you are typing to fast. I don't know of any way around this. If you are not getting spaces when you want them, it probably means that the tap time is too short for you. I did make it kinda short, because I find that it is better than getting spaces when you don't want them.
I'd love to hear your thoughts on this. I may be able to make the tap timing configurable.
-- Without the space being a Fn key, I sometimes get two spaces when I hit the spacebar once.
That's called chattering. I recently moved to a new debounce algorithm that supercharges response time, but seems to be a bit more sensitive. You can increase the debounce value in the settings console. Try setting it to 7 instead of 5. It won't increase the response time but it should clean up any chattering. If it still happens, set it to 9. I have noticed some chattering on my Epsilon that never used to happen. I will revisit the algorithm and increase the robustness by default. I may have used a >= (greater-than-or-equal) where I should have used a > (greater-than) It's overdue.
-- Sometimes when I am typing in a form online, the keyboard stops registering keystrokes in the input field. If I click into the url bar and type, it works and then I go back to the input field and it will type again. I have no idea what is happening there, but that never happened with my Filco controller.
Wow, that is strange. Uh, hard to say what's going on. Obviously, I use the Easy AVR firmware every day and I've never experienced that, but I could get out my Filco and upload the latest firmware to see what happens. (I am probably using an older version) What do you think is happening? Is the cursor getting moved out of the field? I really don't know what to do with that one.