* Expose unicode_saved_mods
* Add UNICODEMAP shift pair functionality and XS keycode
* Add XS to keycode reference documentation
* Pick pair index based on both Shift and Caps Lock state
* Add XS to Unicode feature docs
* Clean up process_unicode* headers
* Extract unicode_map index calculation into function
* Pick pair index as XOR rather than OR of Shift and Caps states
* unicode_input_start() has to be called before the unicode_map index is calculated
* Replace unicodemap_input_error() with more generic unicode_input_cancel()
* Replace register+tap+unregister with tap_code16(LCTL(LSFT(KC_U)))
* UNICODE_OSX_KEY → UNICODE_KEY_OSX, UNICODE_WINC_KEY → UNICODE_KEY_WINC
* Make keycode range checks more robust
* Fix keycode range checks for different input modes
* Add UNICODE_KEY_LNX, update docs
* QK_UNICODEMAP_SHIFT → QK_UNICODEMAP_PAIR
* XS → XP, update docs
* Tweak Unicode docs
* Use recently added MOD_MASK_SHIFT and IS_HOST_LED_ON helpers
* Update Unicode table in docs/keycodes.md
* Update Unicode docs per review comments
* Replace references to Mac OS X with macOS in Unicode docs
* As of v0.9.0, WinCompose supports all possible code points
* Expand descriptions in XP docs
* Update keycode table and cycling docs
* Further expand cycling docs
* Adding documentation for the LM layer modifier.
This will hopefully clear up some of the confusion around adding this layer modifier. I struggled with this a bit as well at first.
* Removing duplicate table.
* Changed section title to `Changing Layers`
* Retain name
* Remove unused UNICODE(n) macro, update docs
* Add note about max length of unicode_map to docs
* QK_UNICODE_MAP → QK_UNICODEMAP
* Refactor process_unicode_map
* process_unicode_map → process_unicodemap
This is done for consistency: UNICODEMAP is the method (hence UNICODEMAP_ENABLE, process_unicodemap), whereas unicode_map is the mapping table itself.
* Update references and ordering in docs/understanding_qmk
* Add additional note to docs/understanding_qmk
* &unicode_map[index] → unicode_map + index
This avoids the issue of the compiler sometimes complaining about the array index being out of range
* Update docs/getting_started_make_guide
* Update method sections in docs/feature_unicode
* Add standard ALGR defition, remove (re)definitions from language files
* Use ALGR(kc) consistently in ALTGR(kc) aliases
* Non-Nordic keymaps should not use NO_ALGR
* Add standard KC_ALGR definition
* Update docs with ALGR and KC_ALGR
* Update SS_ALGR and ALGR_T aliases
* Adds Audio Keycodes to both the feature page and master list
* Re-orders the keycode list, so it's alphabetical (mostly)
* Add additional (missing) sections to the keycode list
* Add and update links in the keycode page
* Add and reorder links in sidebar's keycode section
* Clean up SEND_STRING keycodes and add media keys
* Remove stray define
* Add missing SEND_STRING keycodes for completeness
Also, add KC_EJCT to the keycode references
* Macro for a momentary layer switch with mods
Passes through to the existing ACTION_LAYER_MODS macro, albeit with more
limited options due to lack of space in the quantum_keycodes enum.
* Add documentation for LM layer-mod macro
* Clean up Tap Toggle documentation