keychron_qmk_firmware/keyboards/crkbd/keymaps/nimishgautam
Ryan 5974d989fe
Normalise Unicode keycodes (#18898)
* `UC_MOD`/`UC_RMOD` -> `UC_NEXT`/`UC_PREV`

* `UNICODE_MODE_*` -> `QK_UNICODE_MODE_*`

* `UC_MAC` -> `UNICODE_MODE_MACOS`

* `UC_LNX` -> `UNICODE_MODE_LINUX`

* `UC_WIN` -> `UNICODE_MODE_WINDOWS`

* `UC_BSD` -> `UNICODE_MODE_BSD`

* `UC_WINC` -> `UNICODE_MODE_WINCOMPOSE`

* `UC_EMACS` -> `UNICODE_MODE_EMACS`

* `UC__COUNT` -> `UNICODE_MODE_COUNT`

* `UC_M_MA` -> `UC_MAC`

* `UC_M_LN` -> `UC_LINX`

* `UC_M_WI` -> `UC_WIN`

* `UC_M_BS` -> `UC_BSD`

* `UC_M_WC` -> `UC_WINC`

* `UC_M_EM` -> `UC_EMAC`

* Docs

* Update quantum/unicode/unicode.h
2022-10-31 21:15:12 +00:00
..
config.h Normalise Unicode keycodes (#18898) 2022-10-31 21:15:12 +00:00
keymap.c Remove legacy sendstring keycodes (#18749) 2022-10-17 13:45:23 +01:00
readme.md
rules.mk

Full-featured Corne layout for Linux and MacOS

This is a generic layout for Corne, especially for someone who:

  • has to type in English
  • occasionally has to type in Swedish
  • Switches regularly between Linux and MacOS
  • Prioritizes text navigation
    • This includes selecting whole lines and deleting words
  • uses VIM or VIM bindings for text navigation
  • uses the 'compose' feature in Linux and uses the 'mac user dictionary' trick for getting compose features
  • Home row modifiers for optimal ergo (hopefully optimal)

This also features:

  • OLED displays:
  • indicating OS and LED status (scroll lock, numlock, caps, compose) on the master side
  • layer and modifiers on the slave side
  • LED lights:
  • color changes to indicate layer and modifier status
  • LED matrix effects around keypresses

Major notes

OS 'detection'

  • I assume MacOS as the default. Using the ctrl/gui swap magic keycode switches everything to Linux
  • Most of the Linux codes should work in Windows
  • Yes, there are lots of if-statements around which key code to send here... this isn't the most sustainable way to do it, but is the most memory-efficient way I could come up with

RGB matrix effects

  • Not all RGB matrix effects are compatible with changing the color on layer/mod change. Some of them get caught in a loop and freeze half of the keyboard, so beware of which ones you activate
  • Some RGB settings are stored in eeprom (despite me using the noeeprom() version of functions) If something is weird, try clearing eeprom
  • The color-changing function probably should be in the layer_state_set_user function, except that function doesn't give the state of the modifiers. So instead I have it done in a call that updates the OLEDs

LED state explicitly not shared

  • For some reason, sharing the LED state (as a split keyboard function) will cause the slave side of the keyboard to freeze up if you type too fast. Don't do it!

Windowing shortcuts

  • Again, MacOS is assumed to be the default so I changed as many Linux shortcuts as I could to make them compatible with MacOS. Some of them don't have default shortcuts defined (such as 'move window left' or 'launch calculator') so I just made those as needed

Right-shift preferred

  • At the time of this writing, left-shift wasn't always being registered as a modifier key when checking modmasks, so I stuck with everything using right-shift as it had the expected effects

Compose key