Forráskód Böngészése

Update to drashna keymaps and userspace (#2756)

* Re-add NO_SECRETS option

* Add Thumb Clusters defines for default layout

* Minor tweaks

* More Minor tweaks

* Revert Orthodox layers and move function keys around

* Fix keymap so it will compile under the Infinity

Since I haven't added 'pretty' layouts to it yet

* Cleanup of userspace

* Cleanup keymaps

* OMG fix Workman

* Move mods layer key around

* Reduce debounce in Ergodox EZ

* Fix Infinity layers

* Add list of pins used by Ergdox EZ for easy reference

* Revert "Reduce debounce in Ergodox EZ"

This reverts commit 8a3db2673b419ef8032c40a6d29156cef632f9cd.

* Add Clicky toggle to Orthodox

* Fix Audio Clicky keycode

* Enable Faux Clicky by default

* Add Unicode stuff
Drashna Jaelre 7 éve
szülő
commit
1bb77c0875

+ 7 - 7
keyboards/orthodox/keymaps/drashna/keymap.c

@@ -65,20 +65,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 ),
 
 [_LOWER] = LAYOUT(\
-  KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,                                                                  KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC,
-  KC_DEL,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,            KC_F11,  KC_F12,          _______, _______,          XXXXXXX, KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS,
-  _______, KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  _______, _______, _______,         _______, _______, _______, XXXXXXX, KC_PGUP, KC_COMM, KC_DOT,  KC_PGDN, _______
+  KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC,                                                               KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
+  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,            KC_PGUP, KC_PGDN,         KC_HOME, KC_END,           _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
+  KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  _______, _______, _______,         _______, _______, _______, _______, _______, KC_COMM, KC_DOT,  _______,  _______
 ),
 
 [_RAISE] = LAYOUT(\
-  KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC,                                                               KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
-  KC_DEL,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,            KC_F11,  KC_F12,          _______, KC_RCTL,          XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
-  _______, KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  _______, _______, _______,         _______, _______, _______, XXXXXXX, KC_HOME, KC_COMM, KC_DOT,  KC_END,  _______
+  KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,                                                                  KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC,
+  _______, _______, _______, _______, _______, _______,          KC_PGUP, KC_PGDN,         KC_HOME, KC_END,           _______, KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS,
+  _______, _______, _______, _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, _______, KC_COMM, KC_DOT,  _______, _______
 ),
 
 [_ADJUST] = LAYOUT(\
   KC_MAKE,KC_RESET, EPRM,    _______, _______, _______,                                                               _______, _______, _______, _______, _______, _______,
-  RGB_SMOD,RGB_HUI, KC_FXCL, AUD_ON,  AUD_OFF, AG_NORM,          _______, _______,         _______, _______,          AG_SWAP, KC_QWERTY, KC_COLEMAK, KC_DVORAK, KC_WORKMAN, TG(_MODS),
+  RGB_SMOD,RGB_HUI, CK_TOGG, AUD_ON,  AUD_OFF, AG_NORM,          _______, _______,         _______, _______,          AG_SWAP, KC_QWERTY, KC_COLEMAK, KC_DVORAK, KC_WORKMAN, TG(_MODS),
   KC_RGB_T,RGB_HUD, MU_ON,   MU_OFF,  MU_TOG,  MU_MOD,  _______, _______, _______,         _______, _______, _______, MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY
 )
 

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 25 - 25
layouts/community/ergodox/drashna/keymap.c


+ 6 - 0
layouts/community/ergodox/drashna/notes.txt

@@ -0,0 +1,6 @@
+Pins used by Ergodox EZ
+
+Column Pins:  F0  F1  F4  F5  F6  F7
+Row Pins   :  B0  B1  B2  B3  D2  D3  C6
+LEDs       :  D6  B5  B6  B7
+:

+ 3 - 1
layouts/community/ergodox/drashna/rules.mk

@@ -1,7 +1,9 @@
 TAP_DANCE_ENABLE  = yes
 SLEEP_LED_ENABLE  = no  # Breathing sleep LED during USB suspend
 COMMAND_ENABLE    = yes  # Commands for debug and configuration
-RGBLIGHT_ENABLE   = yes
+ifeq ($(strip $(KEYBOARD)), ergodox_ez)
+  RGBLIGHT_ENABLE   = yes
+endif
 CONSOLE_ENABLE    = no
 BOOTMAGIC_ENABLE  = yes
 

+ 1 - 1
quantum/process_keycode/process_audio.c

@@ -108,7 +108,7 @@ bool process_audio(uint16_t keycode, keyrecord_t *record) {
       }
 
 
-    if ( (clicky_enable && keycode != CLICKY_TOGGLE) || (!clicky_enable && keycode == CLICKY_TOGGLE) ) {
+    if ( clicky_enable ) {
       if (record->event.pressed) {
         stop_all_notes();
         clicky_play();;

+ 4 - 3
users/drashna/config.h

@@ -4,6 +4,7 @@
 
 #ifdef AUDIO_ENABLE
 #define AUDIO_CLICKY
+#define AUDIO_CLICKY_ON
 #define STARTUP_SONG SONG(E1M1_DOOM)
 #define GOODBYE_SONG  SONG(SONIC_RING)
 #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
@@ -16,7 +17,7 @@
 #ifdef RGBLIGHT_ENABLE
   #ifndef KEYBOARD_ergodox_ez
     #define RGBLIGHT_SLEEP
-  #endif
+  #endif // !KEYBOARD_ergodox_ez
 #endif // RGBLIGHT_ENABLE
 
 
@@ -51,8 +52,8 @@
 
 #ifdef TAPPING_TERM
 #undef TAPPING_TERM
-#endif
-#define TAPPING_TERM 160
+#endif // TAPPING_TERM
+#define TAPPING_TERM 176
 
 
 // Disable action_get_macro and fn_actions, since we don't use these

+ 64 - 4
users/drashna/drashna.c

@@ -41,8 +41,13 @@ float fauxclicky_pressed[][2]             = SONG(S__NOTE(_A6)); // change to you
 float fauxclicky_released[][2]             = SONG(S__NOTE(_A6)); // change to your tastes
 #endif // FAUXCLICKY_ENABLE
 
+float tone_copy[][2]            = SONG(SCROLL_LOCK_ON_SOUND);
+float tone_paste[][2]           = SONG(SCROLL_LOCK_OFF_SOUND);
+
+
 bool faux_click_enabled = false;
 bool is_overwatch = false;
+static uint16_t copy_paste_timer;
 #ifdef RGBLIGHT_ENABLE
 bool rgb_layer_change = true;
 #endif
@@ -198,17 +203,21 @@ void matrix_scan_user(void) {
   matrix_scan_keymap();
 }
 
+void tap(uint16_t keycode){
+    register_code(keycode);
+    unregister_code(keycode);
+};
+
 // This block is for all of the gaming macros, as they were all doing
 // the same thing, but with differring text sent.
 bool send_game_macro(const char *str, keyrecord_t *record, bool override) {
   if (!record->event.pressed || override) {
     clear_keyboard();
-    register_code(is_overwatch ? KC_BSPC : KC_ENTER);
-    unregister_code(is_overwatch ? KC_BSPC : KC_ENTER);
+    tap(is_overwatch ? KC_BSPC : KC_ENTER);
     wait_ms(50);
     send_string(str);
-    register_code(KC_ENTER);
-    unregister_code(KC_ENTER);
+    wait_ms(50);
+    tap(KC_ENTER);
   }
   if (override) wait_ms(3000);
   return false;
@@ -402,6 +411,56 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
     }
     return true; break;
 #endif // RGBLIGHT_ENABLE
+
+
+  case KC_CCCV:                                    // One key copy/paste
+    if(record->event.pressed){
+      copy_paste_timer = timer_read();
+    } else {
+      if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) {   // Hold, copy
+        register_code(KC_LCTL);
+        tap(KC_C);
+        unregister_code(KC_LCTL);
+#ifdef AUDIO_ENABLE
+        PLAY_SONG(tone_copy);
+#endif
+      } else {                                // Tap, paste
+        register_code(KC_LCTL);
+        tap(KC_V);
+        unregister_code(KC_LCTL);
+#ifdef AUDIO_ENABLE
+        PLAY_SONG(tone_paste);
+#endif
+      }
+    }
+    return false;
+    break;
+
+#ifdef UNICODE_ENABLE
+  case UC_FLIP: // (╯°□°)╯ ︵ ┻━┻
+    if (record->event.pressed) {
+      register_code(KC_RSFT);
+      tap(KC_9);
+      unregister_code(KC_RSFT);
+      process_unicode((0x256F | QK_UNICODE), record); // Arm
+      process_unicode((0x00B0 | QK_UNICODE), record); // Eye
+      process_unicode((0x25A1 | QK_UNICODE), record); // Mouth
+      process_unicode((0x00B0 | QK_UNICODE), record); // Eye
+      register_code(KC_RSFT);
+      tap(KC_0);
+      unregister_code(KC_RSFT);
+      process_unicode((0x256F | QK_UNICODE), record); // Arm
+      tap(KC_SPC);
+      process_unicode((0x0361 | QK_UNICODE), record); // Flippy
+      tap(KC_SPC);
+      process_unicode((0x253B | QK_UNICODE), record); // Table
+      process_unicode((0x2501 | QK_UNICODE), record); // Table
+      process_unicode((0x253B | QK_UNICODE), record); // Table
+    }
+    return false;
+    break;
+#endif // UNICODE_ENABLE
+
   }
   return process_record_keymap(keycode, record);
 }
@@ -413,6 +472,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 uint32_t layer_state_set_user(uint32_t state) {
 #ifdef RGBLIGHT_ENABLE
   uint8_t default_layer = eeconfig_read_default_layer();
+
   if (rgb_layer_change) {
     switch (biton32(state)) {
     case _NAV:

+ 100 - 25
users/drashna/drashna.h

@@ -20,25 +20,25 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #include "quantum.h"
 
 // Define layer names
-#define _QWERTY 0
-#define _NUMLOCK 0
-#define _COLEMAK 1
-#define _DVORAK 2
-#define _WORKMAN 3
-#define _MODS 4
-//#define _MISC 5
-#define _NAV 6
-#define _COVECUBE 7
-#define _SYMB 8
-#define _GAMEPAD 9
-#define _DIABLO 10
-#define _MOUS 11
-#define _MACROS 12
-#define _MEDIA 13
-#define _LOWER 14
-#define _RAISE 15
-#define _ADJUST 16
-
+enum userspace_layers {
+  _QWERTY = 0,
+  _NUMLOCK = 0,
+  _COLEMAK,
+  _DVORAK,
+  _WORKMAN,
+  _MODS,
+  _NAV,
+  _COVECUBE,
+  _SYMB,
+  _GAMEPAD,
+  _DIABLO,
+  _MOUS,
+  _MACROS,
+  _MEDIA,
+  _LOWER,
+  _RAISE,
+  _ADJUST,
+};
 
 //define modifiers
 #define MODS_SHIFT_MASK  (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
@@ -83,6 +83,10 @@ enum userspace_custom_keycodes {
   KC_SECRET_3,
   KC_SECRET_4,
   KC_SECRET_5,
+  KC_CCCV,
+#ifdef UNICODE_ENABLE
+  UC_FLIP,
+#endif //UNICODE_ENABLE
   NEW_SAFE_RANGE //use "NEWPLACEHOLDER for keymap specific codes
 };
 
@@ -107,6 +111,72 @@ enum {
 };
 #endif // TAP_DANCE_ENABLE
 
+#ifdef UNICODEMAP_ENABLE
+
+/* use X(n) to call the  */
+
+
+enum unicode_name {
+  THINK, // thinking face 🤔
+  GRIN, // grinning face 😊
+  SMRK, // smirk 😏
+  WEARY, // good shit 😩
+  UNAMU, // unamused 😒
+
+  SNEK, // snke 🐍
+  PENGUIN, // 🐧
+  DRAGON, // 🐉
+  MONKEY, // 🐒
+  CHICK, // 🐥
+
+  OKOK, // 👌
+  EFFU, // 🖕
+  INUP, // 👆
+  THUP, // 👍
+  THDN, // 👎
+
+  BBB, // dat B 🅱
+  POO, // poop 💩
+  HUNDR, // 100 💯
+  EGGPL, // EGGPLANT 🍆
+  WATER, // wet 💦
+  TUMBLER, // 🥃
+
+  LIT, // fire 🔥
+  IRONY, // ‽
+  DEGREE, // °
+};
+
+
+const uint32_t PROGMEM unicode_map[] = {
+  [THINK]     = 0x1F914,
+  [GRIN]      = 0x1F600,
+  [BBB]       = 0x1F171,
+  [POO]       = 0x1F4A9,
+  [HUNDR]     = 0x1F4AF,
+  [SMRK]      = 0x1F60F,
+  [WEARY]     = 0x1F629,
+  [EGGPL]     = 0x1F346,
+  [WATER]     = 0x1F4A6,
+  [LIT]       = 0x1F525,
+  [UNAMU]     = 0x1F612,
+  [SNEK]      = 0x1F40D,
+  [PENGUIN]   = 0x1F427,
+  [BOAR]      = 0x1F417,
+  [MONKEY]    = 0x1F412,
+  [CHICK]     = 0x1F425,
+  [DRAGON]    = 0x1F409,
+  [OKOK]      = 0x1F44C,
+  [EFFU]      = 0x1F595,
+  [INUP]      = 0x1F446,
+  [THDN]      = 0x1F44E,
+  [THUP]      = 0x1F44D,
+  [TUMBLER]   = 0x1F943,
+  [IRONY]     = 0x0203D,
+  [DEGREE]    = 0x000B0,
+ };
+
+#endif //UNICODEMAP_ENABLE
 
 // Custom Keycodes for Diablo 3 layer
 // But since TD() doesn't work when tap dance is disabled
@@ -199,13 +269,13 @@ enum {
 #define _________________DVORAK_R3_________________        KC_B,    KC_M,    KC_W,    KC_V,    CTL_T(KC_Z)
 
 
-#define _________________WORKMAN_L1________________       KC_QUOT, KC_COMM, KC_DOT, KC_P,     KC_Y
-#define _________________WORKMAN_L2________________       KC_A,    KC_O,    KC_E,   KC_U,     KC_I
-#define _________________WORKMAN_L3________________ CTL_T(KC_SCLN),KC_Q,    KC_J,   KC_K,     KC_X
+#define _________________WORKMAN_L1________________       KC_Q,    KC_D,    KC_R,   KC_W,     KC_B
+#define _________________WORKMAN_L2________________       KC_A,    KC_S,    KC_H,   KC_T,     KC_G
+#define _________________WORKMAN_L3________________ CTL_T(KC_Z),   KC_X,    KC_M,   KC_C,     KC_V
 
-#define _________________WORKMAN_R1________________       KC_F,    KC_G,    KC_C,    KC_R,    KC_L
-#define _________________WORKMAN_R2________________       KC_D,    KC_H,    KC_T,    KC_N,    KC_S
-#define _________________WORKMAN_R3________________       KC_B,    KC_M,    KC_W,    KC_V,    CTL_T(KC_Z)
+#define _________________WORKMAN_R1________________       KC_J,    KC_F,    KC_U,    KC_P,    KC_SCLN
+#define _________________WORKMAN_R2________________       KC_Y,    KC_N,    KC_E,    KC_O,    KC_I
+#define _________________WORKMAN_R3________________       KC_K,    KC_L,    KC_COMM, KC_DOT,    CTL_T(KC_SLASH)
 
 
 #define _________________NORMAN_L1_________________       KC_Q,    KC_W,    KC_D,    KC_F,    KC_K
@@ -226,4 +296,9 @@ enum {
 #define ___________ERGODOX_BOTTOM_RIGHT____________       KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT
 
 
+#define __________________ERGODOX_THUMB_CLUSTER_____________________       ALT_T(KC_APP), KC_LGUI,                 KC_RGUI, CTL_T(KC_ESCAPE), \
+                                                                                              KC_HOME,                 KC_PGUP, \
+                                                                            KC_SPACE,KC_BSPC, KC_END,                  KC_PGDN, KC_DEL,  KC_ENTER
+
+
 #endif

+ 3 - 1
users/drashna/rules.mk

@@ -2,4 +2,6 @@
 SRC += drashna.c
 EXTRAFLAGS        += -flto
 
-
+ifeq ($(strip $(NO_SECRETS)), yes)
+    OPT_DEFS += -DNO_SECRETS
+endif