sunaku / glove80-keymaps

"Glorious Engrammer" keymap for Glove80 keyboard
https://sunaku.github.io/moergo-glove80-keyboard.html#layers
365 stars 113 forks source link

Feature Request: Switch OS on the fly #14

Open lemmoi opened 7 months ago

lemmoi commented 7 months ago

First of all, thanks for the time and effort you put into designing and maintaining this layout!

My feature request is this: The ability to change the OS configuration at runtime, potentially via some magic key, like how the base typing layer can be changed. I am often switching between Windows and Mac with my glove80, and right now I can only configure one OS to work with reliant keys, especially within the cursor layer. Most of the cursor layer's keys (cut/select word/etc) only work for the OS the layout was configured with. It would be awesome to be able to use the same cursor layer hot keys on both OS's by being able to toggle at runtime.

Thanks again for your work on this layout!

thecouchcoder commented 4 months ago

This is what's stopping me from using the layout. Hopefully we see it soon

richardgill commented 4 months ago

I'm new to the glove80 and this keymap but my plan was to configure the keyboard in windows mode. I'm assuming most things will work on Linux because things are pretty similar.

MacOS is an outliner, so I'm using Karabiner elements to map across some common windows key combos to the mac ones.

e.g. Ctrl + C -> Cmd + C.

I've done this only for certain keyboards (the Glove80!).

This seems to work well with the navigation layer (it's day 1 though, so not battle tested everything)

Here's my fork of another repo that helps me do this: https://github.com/richardgill/karabiner-windows-mode

(My fork removed some remaps I didn't care about and made the rules only apply for certain devices).

sunaku commented 2 months ago

Currently in ZMK, a keymap can have up to a maximum of 32 layers. This is the main limiting factor that makes implementing this feature difficult. Essentially, we would need 3 copies (one per OS: Linux, macOS, Windows) of every layer that contains OS-specific functionality.

I plan to first remove extraneous keyboard alpha layouts from the keymap (you'll instead be able to choose your desired alpha layout at keymap generation time) to make room for OS-specific layers. This will also expand the choice of keyboard alpha layout beyond the sampling of the 6 most popular ones offered as default choices in the current release of this keymap. You'll even be able to define & contribute your own custom keyboard alpha layouts with ease.