qmk-keychron-q3-colemak-dh/keyboards/gmmk/pro/iso/keymaps/vitoni
Victor Toni 6209122213
[Keymap] Add vitoni keymap for GMMK Pro (ISO) (#15006)
* [Keymap] Add vitoni layout for GMMK Pro (ISO)

Keymap has layered cursor keys similar to laptop keyboards.

* Configure RGB defaults for startup

* Configure encoder to change value/brightness on FN layer

* Remove FN layer and add dedicated RGB layer

* Make RGB layer sticky (using TG) to avoid holding FN while configuring RGB

* Add RGB indicators for active layers

* Add RGB indicator for active RESET mode

Signed-off-by: Victor Toni <victor.toni@gmail.com>

* Configure idle / USB suspend settings

* Add RGB fade in when resuming after suspend

* Add RGB fade out before suspend

* Add fade out before idle

* Add breathe effect when idle
2021-12-27 21:13:12 +11:00
..
config.h [Keymap] Add vitoni keymap for GMMK Pro (ISO) (#15006) 2021-12-27 21:13:12 +11:00
keymap.c [Keymap] Add vitoni keymap for GMMK Pro (ISO) (#15006) 2021-12-27 21:13:12 +11:00
readme.adoc [Keymap] Add vitoni keymap for GMMK Pro (ISO) (#15006) 2021-12-27 21:13:12 +11:00

= ViToni's keymap for GMMK Pro ISO

== Layout
Based on the stock layout but making use of CAPS as FN similar to laptop keyboards.
This frees up the left row for other uses (although not remapped yet).
Since both Delete and Insert are used for coding they are part of the CAPS layer as well.

The differences are as follows:

=== Layer 0 (`_BASE`)
Mostly stock + CAPS goes to layer `_MOV`.
FN toggles the layer `_RGB`.

=== Layer 1 (`_MOV`), accessed by pressing `CAPS` on layer `_BASE`
[%header]
|===
| Key / Action          | Mapped to
| ESC                   | _RESET_
| F1                    | KC_MYCM
| F2                    | KC_WHOM
| F3                    | KC_CALC
| F4                    | KC_MSEL
| F5                    | KC_MPRV
| F6                    | KC_MPLY
| F7                    | KC_MSTP
| F8                    | KC_MNXT
| F9                    | KC_MUTE
| F10                   | KC_VOLD
| F11                   | KC_VOLU
| N                     | NK_TOGG
| Delete                | Insert
| Left                  | Home
| Right                 | End
| Up                    | PgUp
| Down                  | PgDn
|===

=== Layer 2 (`_RGB`), accessed by pressing `FN` on layer `_BASE`
Revamped the stock FN layer to focus on RGB only.

[%header]
|===
| Key / Action          | Mapped to
| Knob clockwise        | Value/Brightness up
| Knob anti-clockwise   | Value/Brightness down
| Backspace             | _RESET_
| Enter                 | RGB_TOG
| Del                   | RGB_MOD
| PgUp                  | RGB_RMOD
| PgDn                  | RGB_SPI
| End                   | RGB_SPD
| Left                  | RGB_HUD
| Right                 | RGB_HUI
| Up                    | RGB_SAI
| Down                  | RGB_SAD
|===

No other changes have been made.

== RGB light

The code customizing RGB light usage is decribed here:

* link:../../../../../../users/vitoni/readme.adoc[/users/vitoni/readme.adoc]

When using  `RGB_DISABLE_TIMEOUT` addtional options are available:

* `RGB_FADE_IN` makes the RGB lights fade in instead of setting the value/brightness to 100% (implicitly due to HSV including the brightness) when resuming after RGB lights have been turned off.
Fade in occurs when the keyboard is initialized and when the RGB brightness has been changed (e.g. suspending, fade out, etc.).
* `RGB_DISABLE_WITH_FADE_OUT` activates fade out before the keyboard is disabled by `RGB_DISABLE_TIMEOUT`.

Parameters used to define the behavior are:
[%header]
|===
|Key | Default | Description

| RGB_MATRIX_MAXIMUM_BRIGHTNESS
| 200 (&lt;= UNIT8_MAX)
| Maximum assumed value for brightness.
Used to calculate lead time for fade out before suspend timeout.

|===

`RGB_IDLE_TIMEOUT` enables fading out after being idle for the defined time and allows
* `RGB_IDLE_BREATHE` also activates a brethe effect while idling.

[%header]
|===
|Key | Default | Description

|RGB_IDLE_TIMEOUT
|4500
|Time in milliseconds without activity before considered to be idle.

|RGB_IDLE_MINIMUM_BRIGHTNESS
|`RGB_MATRIX_MAXIMUM_BRIGHTNESS` / 5
|Brightness value RGB is dimmed to when starting to idle. +
When breathing used as the lower bound of the brightness value.

|RGB_IDLE_MAXIMUM_BRIGHTNESS
|`RGB_MATRIX_MAXIMUM_BRIGHTNESS` * 2/5
|Upper bound of brightness value of the RGB light while breathing.

|===