5.5 Categorizing Layers
Last updated
Last updated
Layers can be categorized into 3 types; Root, Application and System layers.
The root layers is the starting point to get to most other layers. This is typically the default layer but can also be a gaming layer that has additional game specific layers. In the root layer, you want to be able to easily access all other layers.
An application layer allows one modifier layer to act as multiple layers by using an application aware program to trigger application specific layers. The diagram first shows on the left column a modifier layer like a hyperkey layer created from keyboard specific software/firmware.
In the middle middle is an application aware program that looks at the front-most application and calls an application layer. An application aware programs includes Karabiner-Elements, Keyboard Maestro and Auto Hotkeys. There can only be 1 front-most application at any time, meaning only a single modifier layer activator is needed to trigger as many applications layers that are defined.
The right column are application layers. Application layers have application specific hotkeys or macros such as a VS code, discord, slack and a browser. The Application aware program acts as a giant switch case with multiple conditions, and when triggered will activate the application layer.
A hyper layer is a modifier layer that consist of all keys having a shift+ctrl+option+command + original qwerty key. This however won't work practically for all keys though for couple reasons:
Keys like caps, modifiers or thumb keys need a different key
Mac has a sysdiagnose hotkey on the hyper , . keys.
Applications don't trigger when certain pairing are held.
For these reasons, the application layer does not look as cleanly as I would like. I created an application layer for my keyboard using F1-24 keys
Not all applications work well with karabiner-elements. VS code can not trigger application shortcuts, so this is actually a VS code layer that happens to have hyper keys.
Notice how each "from" key is hyper+k key in the karabiner-elements snippet above. Then each condition has a different "bundle_identifiers" that look for specific programs. And finally, the "to" is mapped to a hotkey for the application.
System layers are layers that you will want to access within any application. They require a dedicated layer and should not be made into an application layer because you would want to use a system layer while another application layer is in front.
Some examples of system layers are shift, numpad, media, mouse and screen manipulation layers