]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
Keymap: Added a keymap like a JIS keyboard for JJ 40. (#3847)
authormarksard <38324387+marksard@users.noreply.github.com>
Tue, 4 Sep 2018 15:52:00 +0000 (00:52 +0900)
committerDrashna Jaelre <drashna@live.com>
Tue, 4 Sep 2018 15:52:00 +0000 (08:52 -0700)
keyboards/jj40/keymaps/like_jis/config.h [new file with mode: 0644]
keyboards/jj40/keymaps/like_jis/keymap.c [new file with mode: 0644]
keyboards/jj40/keymaps/like_jis/rules.mk [new file with mode: 0644]

diff --git a/keyboards/jj40/keymaps/like_jis/config.h b/keyboards/jj40/keymaps/like_jis/config.h
new file mode 100644 (file)
index 0000000..cd97092
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+This is the c configuration file for the keymap
+
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+
+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/>.
+*/
+
+#pragma once
+
+// place overrides here
+
+#define TAPPING_TERM 200
+
+#ifdef MOUSEKEY_ENABLE
+  #undef MOUSEKEY_INTERVAL
+  #define MOUSEKEY_INTERVAL 5
+
+  #undef MOUSEKEY_TIME_TO_MAX
+  #define MOUSEKEY_TIME_TO_MAX 150
+
+  #undef MOUSEKEY_MAX_SPEED
+  #define MOUSEKEY_MAX_SPEED 3
+
+  #undef MOUSEKEY_MOVE_DELTA
+  #define MOUSEKEY_MOVE_DELTA 3
+
+  #undef MOUSEKEY_DELAY
+  #define MOUSEKEY_DELAY 0
+#endif
+
+#undef BACKLIGHT_LEVELS
+#define BACKLIGHT_LEVELS 15
+// #undef BACKLIGHT_LEVELS
+// #define BACKLIGHT_BREATHING
+// #undef BREATHING_PERIOD
+// #define BREATHING_PERIOD 4
diff --git a/keyboards/jj40/keymaps/like_jis/keymap.c b/keyboards/jj40/keymaps/like_jis/keymap.c
new file mode 100644 (file)
index 0000000..4724933
--- /dev/null
@@ -0,0 +1,200 @@
+#include QMK_KEYBOARD_H
+
+#define _QWERTY 0
+#define _LOWER 3
+#define _RAISE 4
+#define _ADJUST 16
+
+enum custom_keycodes {
+  LOWER = SAFE_RANGE,
+  RAISE,
+  ADJUST,
+  RGBRST
+};
+
+#define KC______ KC_TRNS
+#define KC_XXXXX KC_NO
+#define KC_KANJI KC_GRV
+
+#define KC_LOWER LOWER
+#define KC_RAISE RAISE
+#define KC_ADJST ADJUST
+
+#define KC_RST   RESET
+
+#define KC_LRST  RGBRST
+#define KC_LTOG  RGB_TOG
+#define KC_LHUI  RGB_HUI
+#define KC_LHUD  RGB_HUD
+#define KC_LSAI  RGB_SAI
+#define KC_LSAD  RGB_SAD
+#define KC_LVAI  RGB_VAI
+#define KC_LVAD  RGB_VAD
+#define KC_LSMOD RGB_SMOD
+#define KC_BTOG  BL_TOGG
+#define KC_BINC  BL_INC
+#define KC_BDEC  BL_DEC
+// #define KC_BRTG  BL_BRTG
+
+#define KC_KNRM  AG_NORM
+#define KC_KSWP  AG_SWAP
+
+// Layer Mode aliases
+// #define KC_L_LO  MO(_LOWER)
+// #define KC_L_RA  MO(_RAISE)
+// #define KC_L_AD  MO(_ADJUST)
+#define KC_TBSF  LSFT_T(KC_TAB)
+// #define KC_SPSF  LSFT_T(KC_SPC)
+// #define KC_GUAP  LALT_T(KC_APP)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+  [_QWERTY] = KC_LAYOUT_ortho_4x12( \
+  //,-----------------------------------------------------------------------------------.
+        ESC,     Q,     W,     E,     R,     T,     Y,     U,     I,     O,     P,  MINS,\
+  //|------+------+------+------+------+------|------+------+------+------+------+------|
+       TBSF,     A,     S,     D,     F,     G,     H,     J,     K,     L,  SCLN,   ENT,\
+  //|------+------+------+------+------+------|------+------+------+------+------+------|
+       LSFT,     Z,     X,     C,     V,     B,     N,     M,  COMM,   DOT,    UP,  RSFT,\
+  //|------+------+------+------+------+------|------+------+------+------+------+------|
+      LCTRL,  LALT,  LGUI, ADJST, LOWER,  BSPC,   SPC, RAISE,   APP,  LEFT,  DOWN,  RGHT \
+  //|------+------+------+------+------+-------------+------+------+------+------+------|
+  ),
+
+  [_LOWER] = KC_LAYOUT_ortho_4x12( \
+  //,-----------------------------------------------------------------------------------.
+        TAB,    F1,    F2,    F3,    F4,    F5, XXXXX,  MINS,   EQL,  JYEN,  LBRC,  RBRC,\
+  //|------+------+------+------+------+------|------+------+------+------+------+------|
+      _____,    F6,    F7,    F8,    F9,   F10, XXXXX, XXXXX, XXXXX,  SCLN,  QUOT,  BSLS,\
+  //|------+------+------+------+------+------|------+------+------+------+------+------|
+      _____,   F11,   F12, XXXXX, KANJI,   ENT, XXXXX, XXXXX,  COMM,   DOT,  SLSH,    RO,\
+  //|------+------+------+------+------+-------------+------+------+------+------+------|
+      _____, _____, _____, _____, _____,   DEL, _____, _____, _____, _____, _____, _____ \
+  //|------+------+------+------+------+-------------+------+------+------+------+------|
+  ),
+
+  [_RAISE] = KC_LAYOUT_ortho_4x12( \
+  //,-----------------------------------------------------------------------------------.
+      _____,     1,     2,     3,     4,     5,     6,     7,     8,     9,     0,  MINS,\
+  //|------+------+------+------+------+------|------+------+------+------+------+------|
+      _____, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,     4,     5,     6,  QUOT,  PLUS,\
+  //|------+------+------+------+------+------|------+------+------+------+------+------|
+      _____, XXXXX, XXXXX, XXXXX, XXXXX, XXXXX,     0,     1,     2,     3,   DOT,  SLSH,\
+  //|------+------+------+------+------+-------------+------+------+------+------+------|
+      _____, _____, _____, _____, _____,  BSPC, _____, _____, _____, _____, _____, _____ \
+  //|------+------+------+------+------+-------------+------+------+------+------+------|
+  ),
+
+  [_ADJUST] = KC_LAYOUT_ortho_4x12( \
+  //,-----------------------------------------------------------------------------------.
+      XXXXX,   RST,  LRST,  KNRM,  KSWP, XXXXX, XXXXX,  WH_L,  WH_U,  HOME,  PGUP, XXXXX,\
+  //|------+------+------+------+------+------|------+------+------+------+------+------|
+      XXXXX,  LTOG,  LHUI,  LSAI,  LVAI,  BTOG,  BINC,  WH_R,  WH_D,   END,  PGDN, XXXXX,\
+  //|------+------+------+------+------+------|------+------+------+------+------+------|
+      XXXXX, LSMOD,  LHUD,  LSAD,  LVAD, XXXXX,  BDEC, XXXXX,  BTN1,  BTN2,  MS_U, XXXXX,\
+  //|------+------+------+------+------+-------------+------+------+------+------+------|
+      _____, _____, _____, _____, _____, XXXXX, XXXXX, _____, _____,  MS_L,  MS_D,  MS_R \
+  //|------+------+------+------+------+-------------+------+------+------+------+------|
+  )
+};
+
+
+#ifdef BACKLIGHT_ENABLE
+  extern backlight_config_t backlight_config;
+
+  inline void enable_backright(bool on) {
+      backlight_config.enable = on;
+      if (backlight_config.raw == 1) // enabled but level = 0
+          backlight_config.level = 1;
+      eeconfig_update_backlight(backlight_config.raw);
+      // dprintf("backlight toggle: %u\n", backlight_config.enable);
+      backlight_set(backlight_config.enable ? backlight_config.level : 0);
+  }
+
+  uint8_t bl_breath_count;
+  uint8_t bl_breath_speed = 10;
+  int8_t bl_breath_updown = 1;
+  bool bl_breath_on;
+  backlight_config_t bl_breath_backup;
+
+  void bl_breath_start(uint8_t speed) {
+
+    bl_breath_on = true;
+    bl_breath_speed = speed;
+    bl_breath_backup = backlight_config;
+  }
+
+  void bl_breath_end(void) {
+
+    bl_breath_on = false;
+    backlight_config = bl_breath_backup;
+    eeconfig_update_backlight(backlight_config.raw);
+    backlight_set(backlight_config.enable ? backlight_config.level : 0);
+  }
+
+  void bl_breath_update(void) {
+
+    if (bl_breath_on) {
+      ++bl_breath_count;
+      if (bl_breath_count > bl_breath_speed) {
+        bl_breath_count = 0;
+
+        backlight_config.level += bl_breath_updown;
+        bl_breath_updown = (backlight_config.level > BACKLIGHT_LEVELS) ? -1 :
+                          (backlight_config.level <= 0) ? 1 :
+                          bl_breath_updown;
+        enable_backright(true);
+      }
+    }
+  }
+
+  #define BL_BREATH_START bl_breath_start
+  #define BL_BREATH_END bl_breath_end
+  #define BL_BREATH_UPDATE bl_breath_update
+
+#else
+
+  #define BL_BREATH_START(a)
+  #define BL_BREATH_END()
+  #define BL_BREATH_UPDATE()
+#endif
+
+// Loop
+void matrix_scan_user(void) {
+
+  BL_BREATH_UPDATE();
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+
+  switch (keycode) {
+    case LOWER:
+      if (record->event.pressed) {
+        BL_BREATH_START(50);
+        layer_on(_LOWER);
+      } else {
+        BL_BREATH_END();
+        layer_off(_LOWER);
+      }
+      break;
+    case RAISE:
+      if (record->event.pressed) {
+        BL_BREATH_START(100);
+        layer_on(_RAISE);
+      } else {
+        BL_BREATH_END();
+        layer_off(_RAISE);
+      }
+      break;
+    case ADJUST:
+      if (record->event.pressed) {
+        layer_on(_ADJUST);
+      } else {
+        layer_off(_ADJUST);
+      }
+      break;
+    default:
+      return true;
+  }
+
+  return false;
+}
diff --git a/keyboards/jj40/keymaps/like_jis/rules.mk b/keyboards/jj40/keymaps/like_jis/rules.mk
new file mode 100644 (file)
index 0000000..0103be5
--- /dev/null
@@ -0,0 +1,5 @@
+MOUSEKEY_ENABLE = yes
+BACKLIGHT_ENABLE = yes      # Enable keyboard backlight functionality
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend