Conversation
c35dbf4 to
d7bfba2
Compare
d7bfba2 to
ad7955b
Compare
|
Hmm. I think in order to get the "desktop keys" that I have, this would require "conditional layers" in addition to this "set layers (with mask)" functionality. -- Which then means each layered key is that much larger. (Albeit, this would be less of a problem with "sparse layered key"). Hmm. |
|
RE: Conditional Layers. It's tempting to think about abstractions like a full-on Kirei-style "key expression". -- I think with careful design, that might be an interesting abstraction to try, but I'm not sure it's a good fit for smart keymap. (For example, in my mind: smart keymap keeps each key system separate (layered doesn't know about tap hold, etc.; whereas, querying would either depend on a common central system or, involve some kind of way to refer to state of other system?). Conditional layers are a generalisation of tri-layer. My motivating use case is 'desktop keys'; keys which behave differently depending on condition/context. I recall some keyboards even have external DIP switches. Smart-keymap wouldn't really support these external conditions. Perhaps what I want is: keymap has some kind of config registry. Each config register supports 32 bits (say). Perhaps at Keymap scope. (System-specific 'registers' can be implemented as contexts). So, this condition key would behave differently depending on how the register is set; like layers, it could support variants, but would have keys to manipulate the registers directly. (Again, though: having a key that's similar to layers but not layers... smart-keymap smells like it has some redundancy in its key systems). |
|
Ah. Another thought: If could have e.g. the "layers" layer state, "desktop" layer state, then the layered keys could borrow from this. May-be also in miryoku style keymaps: the left hand layers are practically separate from the right hand layers. ("fallthrough"/"transparent" is practically the same as "not affected by that layer state"). -- Though I suspect this gets tricky: e.g. if there are base layers (qwerty, dvorak, ...), then it's not as simple as "left hand layer state, right hand layer state". Hmm. -- In which case, then having "Set Active Layers" have a layerset mask makes sense. And perhaps it makes sense for other operations to operate using a layerset, too. For "desktop keys", these could be just implemented in keymap-ncl-to-json as additional layers. |
No description provided.