keyboardio / Kaleidoscope

Firmware for Keyboardio keyboards and other keyboards with AVR or ARM MCUs.
http://keyboard.io
GNU General Public License v3.0
759 stars 258 forks source link

Feature request: Quasi (aka Leep) key #127

Open Pitometsu opened 7 years ago

Pitometsu commented 7 years ago

Universal modifier key (Mod or Quasi, which name would be better?).


Main idea: "press Quasi", "press \ (e.g. Ctrl)", "release \", "press \" (with holden "Quasi") => acts like "modifier key" (from "trigger to modifier map" according to pressed \) plus "\".

It may be convenient when you need to hold few modifiers. Example:

we can customize "trigger to modifier map" to press e.g. "C" key for "Ctrl" modifier.

Here original idea author's blog. I'm not the author. Initially idea based on Jef Raskin's principles from "The Humane Interface".

Pitometsu commented 7 years ago

Also it can help with limitation when we forced to press few modifier keys by single thumb. And thus we can be free from necessity to have all the modifier duplicates for both thumbs.

algernon commented 7 years ago

This sounds very much like One-Shot modifiers, except with one-shots, you do not need the Quasi-key, you just tap Ctrl, Alt, and d to get Alt+Ctrl+D.

Though, reading the original article, it is closer to Leader, the main difference is that for Leader, you don't have to hold the Leader key, either.

Would Leader be a close enough approximation?

Pitometsu commented 7 years ago

Similar, but not the same. According to Jef Raskin's principles, modes are evil, but holding key let our mind keep it explicit (that's where Quasi name from: quasi-modes. Modal editing without modes). With leader key it's pretty simple to forgot that you pressed prefix (any attention refocus). With key holding it's enough just release key - and mode will be forgotten. See "The Humane Interface" for details.

algernon commented 7 years ago

Mhm. I'll see if I can teach Leader to work its magic while held, too... that should do the trick, I hope.

Pitometsu commented 4 years ago

It supposed to work like: