kimmoli / tohkbd2

28 stars 10 forks source link

More options for modifier locking #43

Closed dryo closed 8 years ago

dryo commented 9 years ago

When I wanted to set up my preferences for modifier locking I asked myself why it was not possible to activate both modes at the same time: hold and lock. (I don't know how it's labelled in English, in German it's "haltend" and "einrastend".) This way I could cycle through the options (holding, locking, nothing) just like with my N900.

But then I came to a (IMO) much better approach to (hopefully) fit everyone's needs:

I thought of having these options for each modifier:

cycle

All of the above should only happen when no other key is pressed (in time, at least for "hold to lock" mode) while the modifier key is held down.

For even more options one could also have "cycle (reversed)" with 1st and 2nd press swapped and "hold down to lock (reversed)" with long/short swapped.

If I did not make any mistake in my thinking all of this should still not interfere with using the modifier keys as normal modifiers (meaning: press and hold modifier -> press and release some key -> release modifier, just as you would do on your favorite personal computer's keyboard). When using as normal modifiers the previous state should be kept instead of deactivating it (IMO, or make this configurable) and when the modifier is locked it should be inverted while holding the modifier key down (IMO, or make this configurable).

I also thought about distinguishing between locked and temporary active state by LED blinking when in locked state (not too quick so it's not that bothering). You then could simplify LED switching in "hold to lock" mode because you no longer need to let the LED light up on key release but rather on key press. But when it comes to multiple active/locked modifiers - what should the LED do then? Probably a bad idea...

I know, this feature request is kind of long. The main thing is the 5 options for each modifier: cycle, one-time only, lock only, hold down to lock, and normal. Everything else can be done later - or not at all.

What do you think?

dryo commented 9 years ago

I'm surprised that nobody chimes in on this discussion. Wait. It's no discussion! Nobody's discussing! :D

kimmoli commented 9 years ago

I think adding the cycle mode to the logic is easiest. it would be enabled when both (current) modes are enabled, and the two modes remain as is.

dryo commented 9 years ago

This is great! Looking forward to the next release!

If I understand it correctly it is now possible to have most of the operation modes I proposed, except "hold down to lock". That's enough for me.

I still propose to change the names of the modifier options and adding a help page explaining what they need.

BTW: I'm happy you seem to like some of my suggestions! And I'm even more happy you are implementing some of them! Thanks, @kimmoli!