Selaa lähdekoodia

Redox custom keymap (jeherve): updates to deprecated code and bugfixes (#12738)

Co-authored-by: Drashna Jael're <drashna@live.com>
Jeremy Herve 4 vuotta sitten
vanhempi
commit
6e5e34662b

+ 9 - 1
keyboards/redox/keymaps/jeherve/config.h

@@ -1,5 +1,5 @@
 /*
-Copyright 2018 Jeremy Herve <jeremy@jeremy.hu>
+Copyright 2021 Jeremy Herve <jeremy@jeremy.hu>
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
@@ -36,3 +36,11 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #define RGBLIGHT_SAT_STEP 8
 #define RGBLIGHT_VAL_STEP 8
 #define RGBLIGHT_SLEEP
+
+/* Set Unicode mode by default */
+#define UNICODE_SELECTED_MODES UC_MAC
+
+/* Custom startup sound */
+#ifdef AUDIO_ENABLE
+#    define STARTUP_SONG SONG(ZELDA_PUZZLE)
+#endif

+ 152 - 143
keyboards/redox/keymaps/jeherve/keymap.c

@@ -1,6 +1,21 @@
-#include QMK_KEYBOARD_H
+/*
+Copyright 2021 Jeremy Herve <jeremy@jeremy.hu>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
 
-extern keymap_config_t keymap_config;
+#include QMK_KEYBOARD_H
 
 // Each layer gets a name for readability, which is then used in the keymap matrix below.
 // The underscores don't mean anything - you can have a layer called STUFF or any other name.
@@ -12,126 +27,127 @@ extern keymap_config_t keymap_config;
 #define _INTER 3
 #define _ADJUST 4
 
+// Define song.
+#ifdef AUDIO_ENABLE
+float tone_zelda[][2] = SONG(ZELDA_TREASURE);
+#endif
+
 enum custom_keycodes {
-	COLEMAK = SAFE_RANGE,
-	SYMB,
-	NAV,
-	INTER,
-	ADJUST,
-	// These use process_record_user()
-	M_BRACKET_LEFT,
-	M_BRACKET_RIGHT,
-	SHRUG,
-	WAVE,
-	YOSHI,
-	THUMB_UP,
-	NBSP,
-  INV_1P,
-  ALFRED
+    COLEMAK = SAFE_RANGE,
+    SYMB,
+    NAV,
+    INTER,
+    ADJUST,
+    // These use process_record_user()
+    M_BRACKET_LEFT,
+    M_BRACKET_RIGHT,
+    SHRUG,
+    WAVE,
+    YOSHI,
+    THUMB_UP,
+    INV_1P,
+    ALFRED
 };
 
 // Is shift being held? Let's store this in a bool.
 static bool shift_held = false;
 
 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-	switch(keycode) {
-		case SHRUG:
-			if (record->event.pressed) {
-				send_unicode_hex_string("00AF 005C 005F 0028 30C4 0029 005F 002F 00AF");
-			}
-			return false;
-			break;
-    case INV_1P:
-      if (record->event.pressed) {
-        SEND_STRING(SS_DOWN(X_LGUI)SS_DOWN(X_LALT)SS_TAP(X_BSLASH)SS_UP(X_LGUI)SS_UP(X_LALT));
-      }
-      return false;
-      break;
-    case ALFRED:
-      if (record->event.pressed) {
-        SEND_STRING(SS_DOWN(X_LALT)SS_TAP(X_SPACE)SS_UP(X_LALT));
-      }
-      return false;
-      break;
-		case YOSHI:
-			if (record->event.pressed) {
-				SEND_STRING(":yellow_yoshi:");
-			}
-			return false;
-			break;
-		case THUMB_UP:
-			if (record->event.pressed) {
-				SEND_STRING(SS_LALT("D83D+DC4D"));
-			}
-			return false;
-			break;
-		case WAVE:
-			if (record->event.pressed) {
-				SEND_STRING(SS_LALT("D83D+DC4B"));
-			}
-			return false;
-			break;
-		case NBSP:
-			if (record->event.pressed) {
-				SEND_STRING("&nbsp;");
-			}
-			return false;
-			break;
-	case KC_LSFT:
-		shift_held = record->event.pressed;
-		return true;
-		break;
-	case KC_RSFT:
-		shift_held = record->event.pressed;
-		return true;
-		break;
-		case M_BRACKET_LEFT: {
-			if (record->event.pressed) {
-				if (shift_held) {
-					unregister_code(KC_LSFT);
-					unregister_code(KC_RSFT);
-					register_code(KC_LBRC);
-				} else {
-					register_code(KC_LSFT);
-					register_code(KC_9);
-				}
-			} else { // Release the key
-				unregister_code(KC_LBRC);
-				unregister_code(KC_LSFT);
-				unregister_code(KC_RSFT);
-				unregister_code(KC_9);
-			}
-			return false;
-			break;
-		}
-		case M_BRACKET_RIGHT: {
-			if (record->event.pressed) {
-				if (shift_held) {
-					unregister_code(KC_LSFT);
-					unregister_code(KC_RSFT);
-					register_code(KC_RBRC);
-				} else {
-					register_code(KC_LSFT);
-					register_code(KC_0);
-				}
-			} else { // Release the key
-				unregister_code(KC_RBRC);
-				unregister_code(KC_LSFT);
-				unregister_code(KC_RSFT);
-				unregister_code(KC_0);
-			}
-			return false;
-			break;
-		}
-	}
-	return true;
+    switch (keycode) {
+        case SHRUG:
+            if (record->event.pressed) {
+                send_unicode_string("¯\\_(ツ)_/¯");
+            }
+            return false;
+            break;
+        case INV_1P:
+            if (record->event.pressed) {
+                SEND_STRING(SS_DOWN(X_LGUI) SS_DOWN(X_LALT) SS_TAP(X_BSLASH) SS_UP(X_LGUI) SS_UP(X_LALT));
+            }
+            return false;
+            break;
+        case ALFRED:
+            if (record->event.pressed) {
+                SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_SPACE) SS_UP(X_LALT));
+            }
+            return false;
+            break;
+        case YOSHI:
+            if (record->event.pressed) {
+#ifdef AUDIO_ENABLE
+                PLAY_SONG(tone_zelda);
+#endif
+                SEND_STRING(":yellow_yoshi:");
+            }
+            return false;
+            break;
+        case THUMB_UP:
+            if (record->event.pressed) {
+                register_unicode(0x1F44D);
+            }
+            return false;
+            break;
+        case WAVE:
+            if (record->event.pressed) {
+                register_unicode(0x1F44B);
+            }
+            return false;
+            break;
+        case KC_LSFT:
+            shift_held = record->event.pressed;
+            return true;
+            break;
+        case KC_RSFT:
+            shift_held = record->event.pressed;
+            return true;
+            break;
+        case M_BRACKET_LEFT: {
+            if (record->event.pressed) {
+                if (shift_held) {
+                    unregister_code(KC_LSFT);
+                    unregister_code(KC_RSFT);
+                    register_code(KC_LBRC);
+                } else {
+                    register_code(KC_LSFT);
+                    register_code(KC_9);
+                }
+            } else {  // Release the key
+                unregister_code(KC_LBRC);
+                unregister_code(KC_LSFT);
+                unregister_code(KC_RSFT);
+                unregister_code(KC_9);
+            }
+            return false;
+            break;
+        }
+        case M_BRACKET_RIGHT: {
+            if (record->event.pressed) {
+                if (shift_held) {
+                    unregister_code(KC_LSFT);
+                    unregister_code(KC_RSFT);
+                    register_code(KC_RBRC);
+                } else {
+                    register_code(KC_LSFT);
+                    register_code(KC_0);
+                }
+            } else {  // Release the key
+                unregister_code(KC_RBRC);
+                unregister_code(KC_LSFT);
+                unregister_code(KC_RSFT);
+                unregister_code(KC_0);
+            }
+            return false;
+            break;
+        }
+    }
+    return true;
 };
 
 // Shortcut to make keymap more readable
-#define KC_SYQT  LT(_SYMB,KC_QUOT)
-#define SYM_L    MO(_SYMB)
-#define MO_INTR  MO(_INTER)
-#define TT_ADJ   TT(_ADJUST)
+#define KC_SYQT LT(_SYMB, KC_QUOT)
+#define SYM_L   MO(_SYMB)
+#define MO_INTR MO(_INTER)
+#define TT_ADJ  TT(_ADJUST)
 
 #define UC_00E0 UC(0x00E0)
 #define UC_00FC UC(0x00FC)
@@ -147,6 +163,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 #define UC_0171 UC(0x0171)
 #define UC_00EA UC(0x00EA)
 #define UC_0151 UC(0x0151)
+// Non-breaking space.
+#define UC_00A0 UC(0x00a0)
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
@@ -202,7 +220,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐       ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
      XXXXXXX ,UC_00E2 ,XXXXXXX ,UC_00E7 ,XXXXXXX ,XXXXXXX ,XXXXXXX ,_______ ,        _______ ,XXXXXXX ,XXXXXXX ,UC_0171 ,UC_00EA ,XXXXXXX ,UC_0151 ,XXXXXXX ,
   //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤       ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤
-     _______ ,XXXXXXX ,XXXXXXX ,XXXXXXX ,     XXXXXXX ,    XXXXXXX ,_______ ,        _______ ,NBSP    ,    XXXXXXX ,     _______ ,XXXXXXX ,XXXXXXX ,_______
+     _______ ,XXXXXXX ,XXXXXXX ,XXXXXXX ,     XXXXXXX ,    XXXXXXX ,_______ ,        _______ ,UC_00A0 ,    XXXXXXX ,     _______ ,XXXXXXX ,XXXXXXX ,_______
   //└────────┴────────┴────────┴────────┘    └────────┘   └────────┴────────┘       └────────┴────────┘   └────────┘    └────────┴────────┴────────┴────────┘
   ),
 
@@ -222,38 +240,29 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
 };
 
-#ifdef AUDIO_ENABLE
-float tone_colemak[][2]     = SONG(ZELDA_TREASURE);
-#endif
-
 void persistent_default_layer_set(uint16_t default_layer) {
-	eeconfig_update_default_layer(default_layer);
-	default_layer_set(default_layer);
+    eeconfig_update_default_layer(default_layer);
+    default_layer_set(default_layer);
 }
 
-// Set unicode in Mac OS.
-void eeconfig_init_user(void) {
-  set_unicode_input_mode(UC_OSX);
-};
-
 // Change LED colors depending on the layer.
-uint32_t layer_state_set_user(uint32_t state) {
-	switch (biton32(state)) {
-		case _SYMB:
-			rgblight_setrgb_orange();
-			break;
-		case _NAV:
-			rgblight_setrgb_springgreen();
-			break;
-		case _INTER:
-			rgblight_setrgb_teal();
-			break;
-		case _ADJUST:
-			rgblight_setrgb_red();
-			break;
-		default: //  for any other layers, or the default layer
-			rgblight_setrgb_yellow();
-			break;
-	}
-	return state;
+layer_state_t layer_state_set_user(layer_state_t state) {
+    switch (get_highest_layer(state)) {
+        case _SYMB:
+            rgblight_setrgb_orange();
+            break;
+        case _NAV:
+            rgblight_setrgb_springgreen();
+            break;
+        case _INTER:
+            rgblight_setrgb_teal();
+            break;
+        case _ADJUST:
+            rgblight_setrgb_red();
+            break;
+        default:  //  for any other layers, or the default layer
+            rgblight_setrgb_yellow();
+            break;
+    }
+    return state;
 };

+ 4 - 1
keyboards/redox/keymaps/jeherve/readme.md

@@ -1,7 +1,7 @@
 # A Colemak keymap for the Redox keyboard
 
 ----
-![jeherve-redox-layout-4](https://user-images.githubusercontent.com/426388/50276398-2664be80-0442-11e9-86b9-fbd0f4275354.png)
+![jeherve-redox-layout-5](https://user-images.githubusercontent.com/426388/116534030-56f67600-a8e2-11eb-9bf3-3ce5362d717a.png)
 
 ----
 
@@ -25,6 +25,9 @@ My keymap uses 5 layers:
 
 ## Changelog
 
+- 2021.04.29
+	- Update code to replace deprecated code.
+	- Fix non-breaking space key.
 - 2018.12.20
 	- 2 new Macro keys, to invoke [Alfred](https://www.alfredapp.com/) and [1Password](https://1password.com/).
 	- No more Right Command key or Expose key, I didn't use those much.