--- /dev/null
+#include QMK_KEYBOARD_H
+
+enum layer {
+ LAYER_DEFAULT,
+ LAYER_FUNCTION,
+};
+
+/* Switch to function layer when held. */
+#define LY_FUNC MO(LAYER_FUNCTION)
+
+/* Send Ctrl+Alt+L (Cinnamon screen lock shortcut) when pressed. */
+#define KY_LOCK LCA(KC_L)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [LAYER_DEFAULT] = LAYOUT(
+ KC_MPLY, KC_VOLU, KC_MSTP,
+ KC_MPRV, KC_VOLD, KC_MNXT,
+ KY_LOCK, KC_MUTE, LY_FUNC
+ ),
+
+ [LAYER_FUNCTION] = LAYOUT(
+ EEP_RST, _______, RESET,
+ _______, _______, _______,
+ _______, _______, _______
+ ),
+};
-/* Delay between tap_code register and unregister to fix flaky media keys. */
+/* Wait between tap_code register and unregister to fix flaky media keys. */
#undef TAP_CODE_DELAY
-#define TAP_CODE_DELAY 10
+#define TAP_CODE_DELAY 20
-/* Turn off RGB lighting when the host goes to sleep. */
-#define RGBLIGHT_SLEEP
+#if defined(RGBLIGHT_ENABLE)
+ /* Turn off RGB underglow when the host goes to sleep. */
+ #define RGBLIGHT_SLEEP
-/* Keep backlight and RGB level increments consistent across keyboards. */
-#undef BACKLIGHT_LEVELS
-#undef RGBLIGHT_HUE_STEP
-#undef RGBLIGHT_SAT_STEP
-#undef RGBLIGHT_VAL_STEP
+ /* Keep RGB underglow level increments consistent across keyboards. */
+ #undef RGBLIGHT_HUE_STEP
+ #undef RGBLIGHT_SAT_STEP
+ #undef RGBLIGHT_VAL_STEP
-#define BACKLIGHT_LEVELS 7
-#define RGBLIGHT_HUE_STEP 8
-#define RGBLIGHT_SAT_STEP 17
-#define RGBLIGHT_VAL_STEP 17
+ #define RGBLIGHT_HUE_STEP 8
+ #define RGBLIGHT_SAT_STEP 17
+ #define RGBLIGHT_VAL_STEP 17
+#endif
-/* Make mouse operation smoother. */
-#undef MOUSEKEY_DELAY
-#undef MOUSEKEY_INTERVAL
+#if defined(BACKLIGHT_ENABLE)
+ /* Enable backlight breathing across the board. */
+ #define BACKLIGHT_BREATHING
-#define MOUSEKEY_DELAY 0
-#define MOUSEKEY_INTERVAL 16
+ /* Keep backlight level increments consistent across keyboards. */
+ #undef BACKLIGHT_LEVELS
-/* Lower mouse speed to adjust for reduced MOUSEKEY_INTERVAL. */
-#undef MOUSEKEY_MAX_SPEED
-#undef MOUSEKEY_TIME_TO_MAX
-#undef MOUSEKEY_WHEEL_MAX_SPEED
-#undef MOUSEKEY_WHEEL_TIME_TO_MAX
+ #define BACKLIGHT_LEVELS 7
+#endif
-#define MOUSEKEY_MAX_SPEED 7
-#define MOUSEKEY_TIME_TO_MAX 150
-#define MOUSEKEY_WHEEL_MAX_SPEED 3
-#define MOUSEKEY_WHEEL_TIME_TO_MAX 150
+#if defined(MOUSEKEY_ENABLE)
+ /* Make mouse operation smoother. */
+ #undef MOUSEKEY_DELAY
+ #undef MOUSEKEY_INTERVAL
+
+ #define MOUSEKEY_DELAY 0
+ #define MOUSEKEY_INTERVAL 16
+
+ /* Lower mouse speed to adjust for reduced MOUSEKEY_INTERVAL. */
+ #undef MOUSEKEY_MAX_SPEED
+ #undef MOUSEKEY_TIME_TO_MAX
+ #undef MOUSEKEY_WHEEL_MAX_SPEED
+ #undef MOUSEKEY_WHEEL_TIME_TO_MAX
+
+ #define MOUSEKEY_MAX_SPEED 7
+ #define MOUSEKEY_TIME_TO_MAX 150
+ #define MOUSEKEY_WHEEL_MAX_SPEED 3
+ #define MOUSEKEY_WHEEL_TIME_TO_MAX 150
+#endif
+
+#if defined(KEYBOARD_cannonkeys_instant60)
+ /*
+ * Work around EEPROM incompatibility with VIA:
+ * https://github.com/qmk/qmk_firmware/issues/6589#issuecomment-524042457.
+ */
+ #undef EEPROM_MAGIC_ADDR
+ #undef EEPROM_VERSION_ADDR
+ #undef DYNAMIC_KEYMAP_EEPROM_ADDR
+ #undef EEPROM_CUSTOM_BACKLIGHT
+ #undef DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR
+
+ #define EEPROM_MAGIC_ADDR 34
+ #define EEPROM_VERSION_ADDR 36
+ #define DYNAMIC_KEYMAP_EEPROM_ADDR 37
+ #define EEPROM_CUSTOM_BACKLIGHT 637
+ #define DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR 638
+#endif