Skip to content

Instantly share code, notes, and snippets.

@hnsol
Last active June 25, 2024 20:57

Revisions

  1. hnsol revised this gist Jun 25, 2024. No changes.
  2. hnsol revised this gist Jun 25, 2024. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion Atreus.ino
    Original file line number Diff line number Diff line change
    @@ -90,7 +90,7 @@ KEYMAPS(
    * | ESC | W | E | R | T | | Y | U | I | O | P |
    * | A/(3)| S | D/(2)| F | G +-------------+ H | J | K | L | ; |
    * | Z | X | C | V | B | BS | TAB | N | M | , | Up | / |
    * | TAB | Q | ALT |英LGui|英LCtl|Spc(2)|Ent/SH|か/(1)|か/(1)| Left | Down | Right|
    * | Shift| Q | ALT |英LGui|英LCtl|Spc(2)|Ent/SH|か/(1)|か/(1)| Left | Down | Right|
    * +-----------------------------------------------------------------------------------+
    */
    [BASE] = KEYMAP_STACKED
  3. hnsol revised this gist Jun 25, 2024. 1 changed file with 43 additions and 35 deletions.
    78 changes: 43 additions & 35 deletions Atreus.ino
    Original file line number Diff line number Diff line change
    @@ -57,6 +57,7 @@ enum {
    };

    #define Key_Numpad MO(NUMPAD)
    #define Key_Symbol MO(SYMBOL)

    // for macro
    enum {
    @@ -69,6 +70,7 @@ enum {
    MACRO_LR_CBRACKET,
    MACRO_TAP_Q,
    MACRO_EISU_MONUMPAD,
    MACRO_KANA_MOSYMBOL,
    MACRO_CMD_ENTER,
    };

    @@ -85,10 +87,10 @@ enum {
    KEYMAPS(
    /* BASE
    * +----------------------------------+ +----------------------------------+
    * | ESC/Q| W | E | R | T | | Y | U | I | O | P |
    * | ESC | W | E | R | T | | Y | U | I | O | P |
    * | A/(3)| S | D/(2)| F | G +-------------+ H | J | K | L | ; |
    * | Z/SHF| X | C | V | B | BS | TAB | N | M | , | Up | / |
    * | TAB | Q | ALT |英LGui|英LCtl|Spc(2)|Ent/SH|か/(1)|かRGui| Left | Down | Right|
    * | Z | X | C | V | B | BS | TAB | N | M | , | Up | / |
    * | TAB | Q | ALT |英LGui|英LCtl|Spc(2)|Ent/SH|か/(1)|か/(1)| Left | Down | Right|
    * +-----------------------------------------------------------------------------------+
    */
    [BASE] = KEYMAP_STACKED
    @@ -109,15 +111,15 @@ KEYMAPS(
    * | ! | @ | # | $ | % | | ^ | & | * | (/() | ) |
    * | 1/(3)| 2 | 3 | 4 | 5 +-------------+ 6 | 7 | 8 | 9 | 0 |
    * | XXX | XXX | XXX | XXX | [/[] | (/() | ) | ] | XXX | XXX | XXX | \ |
    * | ___ | ___ | ___ | ___ | ___ | TG(2)| ___ | ___ | XXX | XXX | XXX | = |
    * | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ | XXX | XXX | XXX | = |
    * +-----------------------------------------------------------------------------------+
    */
    [SYMBOL] = KEYMAP_STACKED
    (
    Key_Exclamation ,Key_At ,Key_Hash ,Key_Dollar ,Key_Percent
    ,Key_1 ,Key_2 ,Key_3 ,Key_4 ,Key_5
    ,XXX ,XXX ,XXX ,XXX ,TD(TD_BRACKET) ,TD(TD_PAREN)
    ,___ ,___ ,___ ,___ ,___ ,TG(NUMPAD)
    ,___ ,___ ,___ ,___ ,___ ,___

    ,Key_Caret ,Key_And ,Key_Star ,TD(TD_PAREN) ,Key_RightParen
    ,Key_6 ,Key_7 ,Key_8 ,Key_9 ,Key_0
    @@ -127,44 +129,44 @@ KEYMAPS(

    /* NUMPAD
    * +----------------------------------+ +----------------------------------+
    * | TG(0)| BriUp| ___ | ___ | ___ | | = | 7 | 8 | 9 | | |
    * | /(3)| BriDn| ___ | ___ | ___ +-------------+ - | 4 | 5 | 6 | : |
    * | ⌘S-5 | VolUp| ___ | ___ | Up | ___ | ___ | + | 1 | 2 | 3 | / |
    * | ⌘S-4 | VolDn| ___ | Left | Down | Right| ___ | TG(2)| 0 | , | . | * |
    * | TG(0)| BriUp| ___ | ___ | ___ | | = | KP7 | KP8 | KP9 | | |
    * | /(3)| BriDn| ___ | ___ | ___ +-------------+ - | KP4 | KP5 | KP6 | : |
    * | ⌘S-5 | VolUp| ___ | ___ | ___ | ___ | ___ | + | KP1 | KP2 | KP3 | / |
    * | ⌘S-4 | VolDn| ___ | ___ | ___ | ___ | ___ | ___ | 0 | , | . | * |
    * +-----------------------------------------------------------------------------------+
    */
    [NUMPAD] = KEYMAP_STACKED
    (
    TG(BASE) ,Consumer_DisplayBrightnessIncrement ,___ ,___ ,___
    ,___ ,Consumer_DisplayBrightnessDecrement ,___ ,___ ,___
    ,M(MACRO_SCM_5) ,Consumer_VolumeIncrement ,___ ,___ ,Key_UpArrow ,___
    ,M(MACRO_SCM_4) ,Consumer_VolumeDecrement ,___ ,Key_LeftArrow ,Key_DownArrow ,Key_RightArrow

    ,Key_Equals ,Key_7 ,Key_8 ,Key_9 ,Key_Pipe
    ,Key_Minus ,Key_4 ,Key_5 ,Key_6 ,Key_Colon
    ,___ ,Key_Plus ,Key_1 ,Key_2 ,Key_3 ,Key_Slash
    ,___ ,TG(NUMPAD) ,Key_0 ,Key_Comma ,Key_Period ,Key_Star
    TG(BASE) ,Consumer_DisplayBrightnessIncrement ,___ ,___ ,___
    ,___ ,Consumer_DisplayBrightnessDecrement ,___ ,___ ,___
    ,M(MACRO_SCM_5) ,Consumer_VolumeIncrement ,___ ,___ ,___ ,___
    ,M(MACRO_SCM_4) ,Consumer_VolumeDecrement ,___ ,___ ,___ ,___

    ,Key_Equals ,Key_Keypad7 ,Key_Keypad8 ,Key_Keypad9 ,Key_Pipe
    ,Key_Minus ,Key_Keypad4 ,Key_Keypad5 ,Key_Keypad6 ,Key_Colon
    ,___ ,Key_Plus ,Key_Keypad1 ,Key_Keypad2 ,Key_Keypad3 ,Key_Slash
    ,___ ,___ ,Key_0 ,Key_Comma ,Key_Period ,Key_Star
    ),

    /* EMACS
    * +----------------------------------+ +----------------------------------+
    * | XXX | XXX | C-e | XXX | XXX | | XXX | XXX | TAB | XXX | Up |
    * | C-Esc| XXX | C-e | XXX | XXX | | XXX | XXX | TAB | XXX | Up |
    * | XXX | C-a | DEL | Right| ESC +-------------+ BS | C-j | C-k | - | XXX |
    * | XXX | XXX | XXX | XXX | Left | XXX | XXX | Down | Enter| , | . | XXX |
    * | XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX | - | ' | ` |
    * +-----------------------------------------------------------------------------------+
    */
    [EMACS] = KEYMAP_STACKED
    (
    XXX ,XXX ,LCTRL(Key_E) ,XXX ,XXX
    ,XXX ,LCTRL(Key_A) ,Key_Delete ,Key_RightArrow ,Key_Escape
    ,XXX ,XXX ,XXX ,XXX ,Key_LeftArrow ,XXX
    ,XXX ,XXX ,XXX ,XXX ,XXX ,XXX

    ,XXX ,XXX ,Key_Tab ,XXX ,Key_UpArrow
    ,Key_Backspace ,LCTRL(Key_J) ,LCTRL(Key_K) ,Key_Minus ,XXX
    ,XXX ,Key_DownArrow ,Key_Enter ,Key_Comma ,Key_Period ,XXX
    ,XXX ,XXX ,XXX ,Key_Minus ,Key_Quote ,Key_Backtick
    LCTRL(Key_Esc) ,XXX ,LCTRL(Key_E) ,XXX ,XXX
    ,XXX ,LCTRL(Key_A) ,Key_Delete ,Key_RightArrow ,Key_Escape
    ,XXX ,XXX ,XXX ,XXX ,Key_LeftArrow ,XXX
    ,XXX ,XXX ,XXX ,XXX ,XXX ,XXX

    ,XXX ,XXX ,Key_Tab ,XXX ,Key_UpArrow
    ,Key_Backspace ,LCTRL(Key_J) ,LCTRL(Key_K) ,Key_Minus ,XXX
    ,XXX ,Key_DownArrow ,Key_Enter ,Key_Comma ,Key_Period ,XXX
    ,XXX ,XXX ,XXX ,Key_Minus ,Key_Quote ,Key_Backtick
    )
    )
    // clang-format on
    @@ -283,6 +285,9 @@ const macro_t *macroAction(uint8_t macro_id, KeyEvent &event) {
    case MACRO_EISU_MONUMPAD:
    Macros.play(MACRO(T(Lang2), D(Numpad)));
    break;
    case MACRO_KANA_MOSYMBOL:
    Macros.play(MACRO(T(Lang1), D(Symbol)));
    break;
    case MACRO_CMD_ENTER:
    Macros.play(MACRO(D(LeftGui), T(Enter)));
    break;
    @@ -295,23 +300,26 @@ const macro_t *macroAction(uint8_t macro_id, KeyEvent &event) {

    void setup() {
    QUKEYS(
    kaleidoscope::plugin::Qukey(0, KeyAddr(0, 0), M(MACRO_TAP_Q)), // ESC/Q(just 1 time)
    kaleidoscope::plugin::Qukey(0, KeyAddr(1, 2), M(MACRO_EISU_MONUMPAD)), // D/英数+NUMPAD
    kaleidoscope::plugin::Qukey(0, KeyAddr(2, 0), Key_LeftShift), // Z/Shift
    // kaleidoscope::plugin::Qukey(0, KeyAddr(2, 11), Key_LeftShift), // //Shift
    // kaleidoscope::plugin::Qukey(0, KeyAddr(1, 2), M(MACRO_EISU_MONUMPAD)), // D/英数+NUMPAD
    kaleidoscope::plugin::Qukey(0, KeyAddr(1, 2), MO(NUMPAD)), // D/NUMPAD
    // kaleidoscope::plugin::Qukey(0, KeyAddr(2, 0), Key_LeftShift), // Z/Shift
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 3), Key_LeftGui), // 英数/LGui
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 4), Key_LeftControl), // 英数/LControl
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 5), MO(NUMPAD)), // Space/NUMPAD
    // kaleidoscope::plugin::Qukey(0, KeyAddr(3, 5), MO(NUMPAD)), // Space/NUMPAD
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 5), M(MACRO_EISU_MONUMPAD)), // Space/英数+NUMPAD
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 6), Key_RightShift), // Enter/Shift
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 7), MO(SYMBOL)), // かな/SYMBOL
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 8), Key_RightGui), // かな/RGui
    // kaleidoscope::plugin::Qukey(0, KeyAddr(3, 8), M(MACRO_KANA_MOSYMBOL)), // かな/かな+SYMBOL
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 8), MO(SYMBOL)), // かな/SYMBOL
    kaleidoscope::plugin::Qukey(0, KeyAddr(1, 0), MO(EMACS)), // A/EMACS at (0)
    kaleidoscope::plugin::Qukey(1, KeyAddr(1, 0), MO(EMACS)), // A/EMACS at (1)
    kaleidoscope::plugin::Qukey(2, KeyAddr(1, 0), MO(EMACS)), // A/EMACS at (2)
    )
    // Qukeys.setHoldTimeout(250); // this is not the primary determining factor for a qukey’s state
    Qukeys.setOverlapThreshold(65); // default:80
    // Qukeys.setOverlapThreshold(65); // default:80
    Qukeys.setOverlapThreshold(60); // default:80
    Qukeys.setMaxIntervalForTapRepeat(0);
    // Qukeys.setMinimumPriorInterval(100); // default:75
    // Qukeys.activate();

    // milliseconds to wait before a tap-dance sequence times out
  4. hnsol revised this gist Mar 24, 2024. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions Atreus.ino
    Original file line number Diff line number Diff line change
    @@ -150,7 +150,7 @@ KEYMAPS(
    * +----------------------------------+ +----------------------------------+
    * | XXX | XXX | C-e | XXX | XXX | | XXX | XXX | TAB | XXX | Up |
    * | XXX | C-a | DEL | Right| ESC +-------------+ BS | C-j | C-k | - | XXX |
    * | XXX | XXX | XXX | XXX | Left | XXX | XXX | Down | Enter| XXX | . | XXX |
    * | XXX | XXX | XXX | XXX | Left | XXX | XXX | Down | Enter| , | . | XXX |
    * | XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX | - | ' | ` |
    * +-----------------------------------------------------------------------------------+
    */
    @@ -163,7 +163,7 @@ KEYMAPS(

    ,XXX ,XXX ,Key_Tab ,XXX ,Key_UpArrow
    ,Key_Backspace ,LCTRL(Key_J) ,LCTRL(Key_K) ,Key_Minus ,XXX
    ,XXX ,Key_DownArrow ,Key_Enter ,XXX ,Key_Period ,XXX
    ,XXX ,Key_DownArrow ,Key_Enter ,Key_Comma ,Key_Period ,XXX
    ,XXX ,XXX ,XXX ,Key_Minus ,Key_Quote ,Key_Backtick
    )
    )
  5. hnsol revised this gist Mar 23, 2024. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions Atreus.ino
    Original file line number Diff line number Diff line change
    @@ -150,7 +150,7 @@ KEYMAPS(
    * +----------------------------------+ +----------------------------------+
    * | XXX | XXX | C-e | XXX | XXX | | XXX | XXX | TAB | XXX | Up |
    * | XXX | C-a | DEL | Right| ESC +-------------+ BS | C-j | C-k | - | XXX |
    * | XXX | XXX | XXX | XXX | Left | XXX | XXX | Down | Enter| XXX | XXX | XXX |
    * | XXX | XXX | XXX | XXX | Left | XXX | XXX | Down | Enter| XXX | . | XXX |
    * | XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX | - | ' | ` |
    * +-----------------------------------------------------------------------------------+
    */
    @@ -163,7 +163,7 @@ KEYMAPS(

    ,XXX ,XXX ,Key_Tab ,XXX ,Key_UpArrow
    ,Key_Backspace ,LCTRL(Key_J) ,LCTRL(Key_K) ,Key_Minus ,XXX
    ,XXX ,Key_DownArrow ,Key_Enter ,XXX ,XXX ,XXX
    ,XXX ,Key_DownArrow ,Key_Enter ,XXX ,Key_Period ,XXX
    ,XXX ,XXX ,XXX ,Key_Minus ,Key_Quote ,Key_Backtick
    )
    )
  6. hnsol revised this gist Mar 23, 2024. 1 changed file with 9 additions and 9 deletions.
    18 changes: 9 additions & 9 deletions Atreus.ino
    Original file line number Diff line number Diff line change
    @@ -86,9 +86,9 @@ KEYMAPS(
    /* BASE
    * +----------------------------------+ +----------------------------------+
    * | ESC/Q| W | E | R | T | | Y | U | I | O | P |
    * | A/(3)| S | D/(2)| F | G +-------------+ H | J | K | L/- | ; |
    * | Z/SHF| X | C | V | B | BS | TAB | N | M | , | . | / |
    * | TAB | Q | ALT |英LGui|英LCtl|Spc(2)|Ent/SH|か/(1)| Left | Down | Up | Right|
    * | A/(3)| S | D/(2)| F | G +-------------+ H | J | K | L | ; |
    * | Z/SHF| X | C | V | B | BS | TAB | N | M | , | Up | / |
    * | TAB | Q | ALT |英LGui|英LCtl|Spc(2)|Ent/SH|か/(1)|かRGui| Left | Down | Right|
    * +-----------------------------------------------------------------------------------+
    */
    [BASE] = KEYMAP_STACKED
    @@ -98,10 +98,10 @@ KEYMAPS(
    ,Key_Z ,Key_X ,Key_C ,Key_V ,Key_B ,Key_Backspace
    ,Key_LeftShift ,Key_Q ,Key_LeftAlt ,Key_Lang2 ,Key_Lang2 ,Key_Space

    ,Key_Y ,Key_U ,Key_I ,Key_O ,Key_P
    ,Key_H ,Key_J ,Key_K ,TD(TD_MINUS) ,Key_Semicolon
    ,Key_Tab ,Key_N ,Key_M ,Key_Comma ,Key_Period ,Key_Slash
    ,Key_Enter ,Key_Lang1 ,Key_LeftArrow ,Key_DownArrow ,Key_UpArrow ,Key_RightArrow
    ,Key_Y ,Key_U ,Key_I ,Key_O ,Key_P
    ,Key_H ,Key_J ,Key_K ,Key_L ,Key_Semicolon
    ,Key_Tab ,Key_N ,Key_M ,Key_Comma ,Key_UpArrow ,Key_Slash
    ,Key_Enter ,Key_Lang1 ,Key_Lang1 ,Key_LeftArrow ,Key_DownArrow ,Key_RightArrow
    ),

    /* SYMBOL
    @@ -149,7 +149,7 @@ KEYMAPS(
    /* EMACS
    * +----------------------------------+ +----------------------------------+
    * | XXX | XXX | C-e | XXX | XXX | | XXX | XXX | TAB | XXX | Up |
    * | XXX | C-a | DEL | Right| ESC +-------------+ BS | C-j | C-k | XXX | XXX |
    * | XXX | C-a | DEL | Right| ESC +-------------+ BS | C-j | C-k | - | XXX |
    * | XXX | XXX | XXX | XXX | Left | XXX | XXX | Down | Enter| XXX | XXX | XXX |
    * | XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX | - | ' | ` |
    * +-----------------------------------------------------------------------------------+
    @@ -162,7 +162,7 @@ KEYMAPS(
    ,XXX ,XXX ,XXX ,XXX ,XXX ,XXX

    ,XXX ,XXX ,Key_Tab ,XXX ,Key_UpArrow
    ,Key_Backspace ,LCTRL(Key_J) ,LCTRL(Key_K) ,XXX ,XXX
    ,Key_Backspace ,LCTRL(Key_J) ,LCTRL(Key_K) ,Key_Minus ,XXX
    ,XXX ,Key_DownArrow ,Key_Enter ,XXX ,XXX ,XXX
    ,XXX ,XXX ,XXX ,Key_Minus ,Key_Quote ,Key_Backtick
    )
  7. hnsol revised this gist Mar 23, 2024. 1 changed file with 36 additions and 38 deletions.
    74 changes: 36 additions & 38 deletions Atreus.ino
    Original file line number Diff line number Diff line change
    @@ -49,6 +49,7 @@
    #define Key_Star LSHIFT(Key_8)
    #define Key_Plus LSHIFT(Key_Equals)
    #define Key_Colon LSHIFT(Key_Semicolon)
    #define Key_Pipe LSHIFT(Key_Backslash)

    // for layer
    enum {
    @@ -77,37 +78,38 @@ enum {
    TD_PAREN,
    TD_BRACKET,
    TD_CBRACKET,
    TD_MINUS,
    };

    // clang-format off
    KEYMAPS(
    /* BASE
    * +----------------------------------+ +----------------------------------+
    * | ESC/Q| W | E | R | T | | Y | U | I | O | P |
    * | A/(3)| S | D(2) | F | G +-------------+ H | J(1) | K | L | ; |
    * | Z/SHF| X | C | V | B | BS | TAB | N | M | , | . | / SHF|
    * | TAB | XXX | ALT |英LGui|英LCtl|Spc(2)|Ent/SH|か/(1)|かRGui| - | ' | ` |
    * | A/(3)| S | D/(2)| F | G +-------------+ H | J | K | L/- | ; |
    * | Z/SHF| X | C | V | B | BS | TAB | N | M | , | . | / |
    * | TAB | Q | ALT |英LGui|英LCtl|Spc(2)|Ent/SH|か/(1)| Left | Down | Up | Right|
    * +-----------------------------------------------------------------------------------+
    */
    [BASE] = KEYMAP_STACKED
    (
    Key_Esc ,Key_W ,Key_E ,Key_R ,Key_T
    ,Key_A ,Key_S ,Key_D ,Key_F ,Key_G
    ,Key_Z ,Key_X ,Key_C ,Key_V ,Key_B ,Key_Backspace
    ,Key_LeftShift ,XXX ,Key_LeftAlt ,Key_Lang2 ,Key_Lang2 ,Key_Space

    ,Key_Y ,Key_U ,Key_I ,Key_O ,Key_P
    ,Key_H ,Key_J ,Key_K ,Key_L ,Key_Semicolon
    ,Key_Tab ,Key_N ,Key_M ,Key_Comma ,Key_Period ,Key_Slash
    ,Key_Enter ,Key_Lang1 ,Key_Lang1 ,Key_Minus ,Key_Quote ,Key_Backtick
    Key_Esc ,Key_W ,Key_E ,Key_R ,Key_T
    ,Key_A ,Key_S ,Key_D ,Key_F ,Key_G
    ,Key_Z ,Key_X ,Key_C ,Key_V ,Key_B ,Key_Backspace
    ,Key_LeftShift ,Key_Q ,Key_LeftAlt ,Key_Lang2 ,Key_Lang2 ,Key_Space

    ,Key_Y ,Key_U ,Key_I ,Key_O ,Key_P
    ,Key_H ,Key_J ,Key_K ,TD(TD_MINUS) ,Key_Semicolon
    ,Key_Tab ,Key_N ,Key_M ,Key_Comma ,Key_Period ,Key_Slash
    ,Key_Enter ,Key_Lang1 ,Key_LeftArrow ,Key_DownArrow ,Key_UpArrow ,Key_RightArrow
    ),

    /* SYMBOL
    * +----------------------------------+ +----------------------------------+
    * | ! | @ | # | $ | % | | ^ | & | * | (/() | ) |
    * | 1/(3)| 2 | 3 | 4 | 5 +-------------+ 6 | 7 | 8 | 9 | 0 |
    * | XXX | XXX | XXX | XXX | [/[] | (/() | ) | ] | XXX | XXX | XXX | \ |
    * | ___ | ___ | ___ | ___ | ___ | TG(2)|CMDEnt| ___ | XXX | XXX | XXX | = |
    * | ___ | ___ | ___ | ___ | ___ | TG(2)| ___ | ___ | XXX | XXX | XXX | = |
    * +-----------------------------------------------------------------------------------+
    */
    [SYMBOL] = KEYMAP_STACKED
    @@ -117,28 +119,28 @@ KEYMAPS(
    ,XXX ,XXX ,XXX ,XXX ,TD(TD_BRACKET) ,TD(TD_PAREN)
    ,___ ,___ ,___ ,___ ,___ ,TG(NUMPAD)

    ,Key_Caret ,Key_And ,Key_Star ,TD(TD_PAREN) ,Key_RightParen
    ,Key_6 ,Key_7 ,Key_8 ,Key_9 ,Key_0
    ,Key_RightParen ,Key_RightBracket ,XXX ,XXX ,XXX ,Key_Backslash
    ,M(MACRO_CMD_ENTER) ,___ ,XXX ,XXX ,XXX ,Key_Equals
    ,Key_Caret ,Key_And ,Key_Star ,TD(TD_PAREN) ,Key_RightParen
    ,Key_6 ,Key_7 ,Key_8 ,Key_9 ,Key_0
    ,Key_RightParen ,Key_RightBracket ,XXX ,XXX ,XXX ,Key_Backslash
    ,___ ,___ ,XXX ,XXX ,XXX ,Key_Equals
    ),

    /* NUMPAD
    * +----------------------------------+ +----------------------------------+
    * | TG(0)| ___ | ___ | ___ | ___ | | = | 7 | 8 | 9 | BS |
    * | /(3)| ___ | ___ | ___ | ___ +-------------+ - | 4 | 5 | 6 | : |
    * | ⌘S-5 | VolUp| BriUp| ___ | Up | ___ | ___ | + | 1 | 2 | 3 | / |
    * | ⌘S-4 | VolDn| BriDn| Left | Down | Right| ___ | TG(2)| 0 | , | . | * |
    * | TG(0)| BriUp| ___ | ___ | ___ | | = | 7 | 8 | 9 | | |
    * | /(3)| BriDn| ___ | ___ | ___ +-------------+ - | 4 | 5 | 6 | : |
    * | ⌘S-5 | VolUp| ___ | ___ | Up | ___ | ___ | + | 1 | 2 | 3 | / |
    * | ⌘S-4 | VolDn| ___ | Left | Down | Right| ___ | TG(2)| 0 | , | . | * |
    * +-----------------------------------------------------------------------------------+
    */
    [NUMPAD] = KEYMAP_STACKED
    (
    TG(BASE) ,___ ,___ ,___ ,___
    ,___ ,___ ,___ ,___ ,___
    ,M(MACRO_SCM_5) ,Consumer_VolumeIncrement ,Consumer_DisplayBrightnessIncrement ,___ ,Key_UpArrow ,___
    ,M(MACRO_SCM_4) ,Consumer_VolumeDecrement ,Consumer_DisplayBrightnessDecrement ,Key_LeftArrow ,Key_DownArrow ,Key_RightArrow
    TG(BASE) ,Consumer_DisplayBrightnessIncrement ,___ ,___ ,___
    ,___ ,Consumer_DisplayBrightnessDecrement ,___ ,___ ,___
    ,M(MACRO_SCM_5) ,Consumer_VolumeIncrement ,___ ,___ ,Key_UpArrow ,___
    ,M(MACRO_SCM_4) ,Consumer_VolumeDecrement ,___ ,Key_LeftArrow ,Key_DownArrow ,Key_RightArrow

    ,Key_Equals ,Key_7 ,Key_8 ,Key_9 ,Key_Backspace
    ,Key_Equals ,Key_7 ,Key_8 ,Key_9 ,Key_Pipe
    ,Key_Minus ,Key_4 ,Key_5 ,Key_6 ,Key_Colon
    ,___ ,Key_Plus ,Key_1 ,Key_2 ,Key_3 ,Key_Slash
    ,___ ,TG(NUMPAD) ,Key_0 ,Key_Comma ,Key_Period ,Key_Star
    @@ -147,9 +149,9 @@ KEYMAPS(
    /* EMACS
    * +----------------------------------+ +----------------------------------+
    * | XXX | XXX | C-e | XXX | XXX | | XXX | XXX | TAB | XXX | Up |
    * | XXX | C-a | DEL | Right| ESC +-------------+ BS | Enter| C-k | XXX | XXX |
    * | XXX | C-a | DEL | Right| ESC +-------------+ BS | C-j | C-k | XXX | XXX |
    * | XXX | XXX | XXX | XXX | Left | XXX | XXX | Down | Enter| XXX | XXX | XXX |
    * | XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX |
    * | XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX | - | ' | ` |
    * +-----------------------------------------------------------------------------------+
    */
    [EMACS] = KEYMAP_STACKED
    @@ -160,9 +162,9 @@ KEYMAPS(
    ,XXX ,XXX ,XXX ,XXX ,XXX ,XXX

    ,XXX ,XXX ,Key_Tab ,XXX ,Key_UpArrow
    ,Key_Backspace ,Key_Enter ,LCTRL(Key_K) ,XXX ,XXX
    ,Key_Backspace ,LCTRL(Key_J) ,LCTRL(Key_K) ,XXX ,XXX
    ,XXX ,Key_DownArrow ,Key_Enter ,XXX ,XXX ,XXX
    ,XXX ,XXX ,XXX ,XXX ,XXX ,XXX
    ,XXX ,XXX ,XXX ,Key_Minus ,Key_Quote ,Key_Backtick
    )
    )
    // clang-format on
    @@ -187,6 +189,8 @@ void tapDanceAction(uint8_t tap_dance_index,
    return tapDanceActionKeys(tap_count, tap_dance_action, Key_LeftBracket, M(MACRO_LR_BRACKET));
    case TD_CBRACKET:
    return tapDanceActionKeys(tap_count, tap_dance_action, Key_LeftCurlyBracket, M(MACRO_LR_CBRACKET));
    case TD_MINUS:
    return tapDanceActionKeys(tap_count, tap_dance_action, Key_L, Key_Minus);
    }
    }

    @@ -293,26 +297,20 @@ void setup() {
    QUKEYS(
    kaleidoscope::plugin::Qukey(0, KeyAddr(0, 0), M(MACRO_TAP_Q)), // ESC/Q(just 1 time)
    kaleidoscope::plugin::Qukey(0, KeyAddr(1, 2), M(MACRO_EISU_MONUMPAD)), // D/英数+NUMPAD
    // kaleidoscope::plugin::Qukey(0, KeyAddr(1, 9), MO(SYMBOL)), // K/SYMBOL
    kaleidoscope::plugin::Qukey(0, KeyAddr(1, 8), MO(SYMBOL)), // J/SYMBOL
    kaleidoscope::plugin::Qukey(0, KeyAddr(2, 0), Key_LeftShift), // Z/Shift
    kaleidoscope::plugin::Qukey(0, KeyAddr(2, 11), Key_LeftShift), // //Shift
    // kaleidoscope::plugin::Qukey(0, KeyAddr(3, 0), Key_LeftShift), // TAB/Shift
    // kaleidoscope::plugin::Qukey(0, KeyAddr(2, 11), Key_LeftShift), // //Shift
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 3), Key_LeftGui), // 英数/LGui
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 4), Key_LeftControl), // 英数/LControl
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 5), MO(NUMPAD)), // Space/NUMPAD
    // kaleidoscope::plugin::Qukey(0, KeyAddr(3, 6), MO(SYMBOL)), // Enter/SYMBOL
    // kaleidoscope::plugin::Qukey(0, KeyAddr(3, 7), Key_RightShift), // かな/Shift
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 6), Key_RightShift), // Enter/Shift
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 7), MO(SYMBOL)), // かな/SYMBOL
    // kaleidoscope::plugin::Qukey(0, KeyAddr(3, 8), Key_RightAlt), // かな/Alt
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 8), Key_RightGui), // かな/RGui
    kaleidoscope::plugin::Qukey(0, KeyAddr(1, 0), MO(EMACS)), // A/EMACS at (0)
    kaleidoscope::plugin::Qukey(1, KeyAddr(1, 0), MO(EMACS)), // A/EMACS at (1)
    kaleidoscope::plugin::Qukey(2, KeyAddr(1, 0), MO(EMACS)), // A/EMACS at (2)
    )
    // Qukeys.setHoldTimeout(250); // this is not the primary determining factor for a qukey’s state
    // Qukeys.setOverlapThreshold(80);
    Qukeys.setOverlapThreshold(65); // default:80
    Qukeys.setMaxIntervalForTapRepeat(0);
    // Qukeys.activate();

  8. hnsol revised this gist Feb 19, 2024. 1 changed file with 38 additions and 28 deletions.
    66 changes: 38 additions & 28 deletions Atreus.ino
    Original file line number Diff line number Diff line change
    @@ -68,6 +68,7 @@ enum {
    MACRO_LR_CBRACKET,
    MACRO_TAP_Q,
    MACRO_EISU_MONUMPAD,
    MACRO_CMD_ENTER,
    };

    // for tapdance
    @@ -83,30 +84,30 @@ KEYMAPS(
    /* BASE
    * +----------------------------------+ +----------------------------------+
    * | ESC/Q| W | E | R | T | | Y | U | I | O | P |
    * | A/(3)| S | D(2) | F | G +-------------+ H | J | K | L | ; |
    * | Z/SHF| X | C | V | B | BS |TAB/SH| N | M | , | . | / |
    * |LShift| XXX | XXX |英LGui|英LCtl|Spc(2)|Ent(1)|か/SHF|かRALT| - | ' | ` |
    * | A/(3)| S | D(2) | F | G +-------------+ H | J(1) | K | L | ; |
    * | Z/SHF| X | C | V | B | BS | TAB | N | M | , | . | / SHF|
    * | TAB | XXX | ALT |英LGui|英LCtl|Spc(2)|Ent/SH|か/(1)|かRGui| - | ' | ` |
    * +-----------------------------------------------------------------------------------+
    */
    [BASE] = KEYMAP_STACKED
    (
    Key_Esc ,Key_W ,Key_E ,Key_R ,Key_T
    ,Key_A ,Key_S ,Key_D ,Key_F ,Key_G
    ,Key_Z ,Key_X ,Key_C ,Key_V ,Key_B ,Key_Backspace
    ,Key_LeftShift ,XXX ,XXX ,Key_Lang2 ,Key_Lang2 ,Key_Space

    ,Key_Y ,Key_U ,Key_I ,Key_O ,Key_P
    ,Key_H ,Key_J ,Key_K ,Key_L ,Key_Semicolon
    ,Key_Tab ,Key_N ,Key_M ,Key_Comma ,Key_Period ,Key_Slash
    ,Key_Enter ,Key_Lang1 ,Key_Lang1 ,Key_Minus ,Key_Quote ,Key_Backtick
    Key_Esc ,Key_W ,Key_E ,Key_R ,Key_T
    ,Key_A ,Key_S ,Key_D ,Key_F ,Key_G
    ,Key_Z ,Key_X ,Key_C ,Key_V ,Key_B ,Key_Backspace
    ,Key_LeftShift ,XXX ,Key_LeftAlt ,Key_Lang2 ,Key_Lang2 ,Key_Space

    ,Key_Y ,Key_U ,Key_I ,Key_O ,Key_P
    ,Key_H ,Key_J ,Key_K ,Key_L ,Key_Semicolon
    ,Key_Tab ,Key_N ,Key_M ,Key_Comma ,Key_Period ,Key_Slash
    ,Key_Enter ,Key_Lang1 ,Key_Lang1 ,Key_Minus ,Key_Quote ,Key_Backtick
    ),

    /* SYMBOL
    * +----------------------------------+ +----------------------------------+
    * | ! | @ | # | $ | % | | ^ | & | * | ( | ) |
    * | ! | @ | # | $ | % | | ^ | & | * | (/() | ) |
    * | 1/(3)| 2 | 3 | 4 | 5 +-------------+ 6 | 7 | 8 | 9 | 0 |
    * | XXX | XXX | XXX | XXX | [/[] | (/() | ) | ] | XXX | XXX | XXX | \ |
    * | ___ | ___ | ___ | ___ | ___ | TG(2)| ___ | ___ | XXX | XXX | XXX | = |
    * | ___ | ___ | ___ | ___ | ___ | TG(2)|CMDEnt| ___ | XXX | XXX | XXX | = |
    * +-----------------------------------------------------------------------------------+
    */
    [SYMBOL] = KEYMAP_STACKED
    @@ -116,18 +117,18 @@ KEYMAPS(
    ,XXX ,XXX ,XXX ,XXX ,TD(TD_BRACKET) ,TD(TD_PAREN)
    ,___ ,___ ,___ ,___ ,___ ,TG(NUMPAD)

    ,Key_Caret ,Key_And ,Key_Star ,Key_LeftParen ,Key_RightParen
    ,Key_6 ,Key_7 ,Key_8 ,Key_9 ,Key_0
    ,Key_RightParen ,Key_RightBracket ,XXX ,XXX ,XXX ,Key_Backslash
    ,___ ,___ ,XXX ,XXX ,XXX ,Key_Equals
    ,Key_Caret ,Key_And ,Key_Star ,TD(TD_PAREN) ,Key_RightParen
    ,Key_6 ,Key_7 ,Key_8 ,Key_9 ,Key_0
    ,Key_RightParen ,Key_RightBracket ,XXX ,XXX ,XXX ,Key_Backslash
    ,M(MACRO_CMD_ENTER) ,___ ,XXX ,XXX ,XXX ,Key_Equals
    ),

    /* NUMPAD
    * +----------------------------------+ +----------------------------------+
    * | TG(0)| ___ | ___ | ___ | ___ | | = | 7 | 8 | 9 | BS |
    * | /(3)| ___ | ___ | ___ | ___ +-------------+ - | 4 | 5 | 6 | : |
    * | ⌘S-5 | VolUp| BriUp| ___ | Up | ___ | ___ | + | 1 | 2 | 3 | / |
    * | ⌘S-4 | VolDn| BriDn| Left | Down | Right| TG(2)| ___ | 0 | , | . | * |
    * | ⌘S-4 | VolDn| BriDn| Left | Down | Right| ___ | TG(2)| 0 | , | . | * |
    * +-----------------------------------------------------------------------------------+
    */
    [NUMPAD] = KEYMAP_STACKED
    @@ -137,10 +138,10 @@ KEYMAPS(
    ,M(MACRO_SCM_5) ,Consumer_VolumeIncrement ,Consumer_DisplayBrightnessIncrement ,___ ,Key_UpArrow ,___
    ,M(MACRO_SCM_4) ,Consumer_VolumeDecrement ,Consumer_DisplayBrightnessDecrement ,Key_LeftArrow ,Key_DownArrow ,Key_RightArrow

    ,Key_Equals ,Key_7 ,Key_8 ,Key_9 ,Key_Backspace
    ,Key_Minus ,Key_4 ,Key_5 ,Key_6 ,Key_Colon
    ,___ ,Key_Plus ,Key_1 ,Key_2 ,Key_3 ,Key_Slash
    ,TG(NUMPAD) ,___ ,Key_0 ,Key_Comma ,Key_Period ,Key_Star
    ,Key_Equals ,Key_7 ,Key_8 ,Key_9 ,Key_Backspace
    ,Key_Minus ,Key_4 ,Key_5 ,Key_6 ,Key_Colon
    ,___ ,Key_Plus ,Key_1 ,Key_2 ,Key_3 ,Key_Slash
    ,___ ,TG(NUMPAD) ,Key_0 ,Key_Comma ,Key_Period ,Key_Star
    ),

    /* EMACS
    @@ -275,9 +276,12 @@ const macro_t *macroAction(uint8_t macro_id, KeyEvent &event) {
    case MACRO_TAP_Q:
    Macros.play(MACRO(T(Q)));
    break;
    case MACRO_EISU_MONUMPAD:
    case MACRO_EISU_MONUMPAD:
    Macros.play(MACRO(T(Lang2), D(Numpad)));
    break;
    case MACRO_CMD_ENTER:
    Macros.play(MACRO(D(LeftGui), T(Enter)));
    break;
    default:
    break;
    }
    @@ -289,14 +293,20 @@ void setup() {
    QUKEYS(
    kaleidoscope::plugin::Qukey(0, KeyAddr(0, 0), M(MACRO_TAP_Q)), // ESC/Q(just 1 time)
    kaleidoscope::plugin::Qukey(0, KeyAddr(1, 2), M(MACRO_EISU_MONUMPAD)), // D/英数+NUMPAD
    // kaleidoscope::plugin::Qukey(0, KeyAddr(1, 9), MO(SYMBOL)), // K/SYMBOL
    kaleidoscope::plugin::Qukey(0, KeyAddr(1, 8), MO(SYMBOL)), // J/SYMBOL
    kaleidoscope::plugin::Qukey(0, KeyAddr(2, 0), Key_LeftShift), // Z/Shift
    kaleidoscope::plugin::Qukey(0, KeyAddr(2, 6), Key_RightShift), // TAB/Shift
    kaleidoscope::plugin::Qukey(0, KeyAddr(2, 11), Key_LeftShift), // //Shift
    // kaleidoscope::plugin::Qukey(0, KeyAddr(3, 0), Key_LeftShift), // TAB/Shift
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 3), Key_LeftGui), // 英数/LGui
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 4), Key_LeftControl), // 英数/LControl
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 5), MO(NUMPAD)), // Space/NUMPAD
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 6), MO(SYMBOL)), // Enter/SYMBOL
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 7), Key_RightShift), // かな/Shift
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 8), Key_RightAlt), // かな/Alt
    // kaleidoscope::plugin::Qukey(0, KeyAddr(3, 6), MO(SYMBOL)), // Enter/SYMBOL
    // kaleidoscope::plugin::Qukey(0, KeyAddr(3, 7), Key_RightShift), // かな/Shift
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 6), Key_RightShift), // Enter/Shift
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 7), MO(SYMBOL)), // かな/SYMBOL
    // kaleidoscope::plugin::Qukey(0, KeyAddr(3, 8), Key_RightAlt), // かな/Alt
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 8), Key_RightGui), // かな/RGui
    kaleidoscope::plugin::Qukey(0, KeyAddr(1, 0), MO(EMACS)), // A/EMACS at (0)
    kaleidoscope::plugin::Qukey(1, KeyAddr(1, 0), MO(EMACS)), // A/EMACS at (1)
    kaleidoscope::plugin::Qukey(2, KeyAddr(1, 0), MO(EMACS)), // A/EMACS at (2)
  9. hnsol revised this gist Feb 14, 2024. 1 changed file with 54 additions and 66 deletions.
    120 changes: 54 additions & 66 deletions Atreus.ino
    Original file line number Diff line number Diff line change
    @@ -55,6 +55,8 @@ enum {
    BASE, SYMBOL, NUMPAD, EMACS
    };

    #define Key_Numpad MO(NUMPAD)

    // for macro
    enum {
    MACRO_BASE,
    @@ -65,6 +67,7 @@ enum {
    MACRO_LR_BRACKET,
    MACRO_LR_CBRACKET,
    MACRO_TAP_Q,
    MACRO_EISU_MONUMPAD,
    };

    // for tapdance
    @@ -80,64 +83,64 @@ KEYMAPS(
    /* BASE
    * +----------------------------------+ +----------------------------------+
    * | ESC/Q| W | E | R | T | | Y | U | I | O | P |
    * | A/(3)| S | D | F | G +-------------+ H | J | K | L | ; |
    * | Z/SHF| X | C | V | B | XXX | BS | N | M | , | . | / |
    * |LShift| XXX | LAlt |英LGui| LCtrl|Spc(2)|Ent(1)|かRGui| かTAB| - | ' | ` |
    * | A/(3)| S | D(2) | F | G +-------------+ H | J | K | L | ; |
    * | Z/SHF| X | C | V | B | BS |TAB/SH| N | M | , | . | / |
    * |LShift| XXX | XXX |英LGui|英LCtl|Spc(2)|Ent(1)|か/SHF|かRALT| - | ' | ` |
    * +-----------------------------------------------------------------------------------+
    */
    [BASE] = KEYMAP_STACKED
    (
    Key_Esc ,Key_W ,Key_E ,Key_R ,Key_T
    ,Key_A ,Key_S ,Key_D ,Key_F ,Key_G
    ,Key_Z ,Key_X ,Key_C ,Key_V ,Key_B ,XXX
    ,Key_LeftShift ,XXX ,Key_LeftAlt ,Key_Lang2 ,Key_LeftControl ,Key_Space

    ,Key_Y ,Key_U ,Key_I ,Key_O ,Key_P
    ,Key_H ,Key_J ,Key_K ,Key_L ,Key_Semicolon
    ,Key_Backspace ,Key_N ,Key_M ,Key_Comma ,Key_Period ,Key_Slash
    ,Key_Enter ,Key_Lang1 ,Key_Lang1 ,Key_Minus ,Key_Quote ,Key_Backtick
    Key_Esc ,Key_W ,Key_E ,Key_R ,Key_T
    ,Key_A ,Key_S ,Key_D ,Key_F ,Key_G
    ,Key_Z ,Key_X ,Key_C ,Key_V ,Key_B ,Key_Backspace
    ,Key_LeftShift ,XXX ,XXX ,Key_Lang2 ,Key_Lang2 ,Key_Space

    ,Key_Y ,Key_U ,Key_I ,Key_O ,Key_P
    ,Key_H ,Key_J ,Key_K ,Key_L ,Key_Semicolon
    ,Key_Tab ,Key_N ,Key_M ,Key_Comma ,Key_Period ,Key_Slash
    ,Key_Enter ,Key_Lang1 ,Key_Lang1 ,Key_Minus ,Key_Quote ,Key_Backtick
    ),

    /* SYMBOL
    * +----------------------------------+ +----------------------------------+
    * | ! | @ | # | $ | % | | ^ | & | * | ( | ) |
    * | 1/(3)| 2 | 3 | 4 | 5 +-------------+ 6 | 7 | 8 | 9 | 0 |
    * | XXX | XXX | XXX | XXX | [/[] | (/() | ) | ] | XXX | Up | XXX | \ |
    * | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ | Left | Down | Right| = |
    * | XXX | XXX | XXX | XXX | [/[] | (/() | ) | ] | XXX | XXX | XXX | \ |
    * | ___ | ___ | ___ | ___ | ___ | TG(2)| ___ | ___ | XXX | XXX | XXX | = |
    * +-----------------------------------------------------------------------------------+
    */
    [SYMBOL] = KEYMAP_STACKED
    (
    Key_Exclamation ,Key_At ,Key_Hash ,Key_Dollar ,Key_Percent
    ,Key_1 ,Key_2 ,Key_3 ,Key_4 ,Key_5
    ,XXX ,XXX ,XXX ,XXX ,TD(TD_BRACKET) ,TD(TD_PAREN)
    ,___ ,___ ,___ ,___ ,___ ,___

    ,Key_Caret ,Key_And ,Key_Star ,Key_LeftParen ,Key_RightParen
    ,Key_6 ,Key_7 ,Key_8 ,Key_9 ,Key_0
    ,Key_RightParen ,Key_RightBracket ,___ ,Key_UpArrow ,XXX ,Key_Backslash
    ,___ ,___ ,Key_LeftArrow ,Key_DownArrow ,Key_RightArrow ,Key_Equals
    Key_Exclamation ,Key_At ,Key_Hash ,Key_Dollar ,Key_Percent
    ,Key_1 ,Key_2 ,Key_3 ,Key_4 ,Key_5
    ,XXX ,XXX ,XXX ,XXX ,TD(TD_BRACKET) ,TD(TD_PAREN)
    ,___ ,___ ,___ ,___ ,___ ,TG(NUMPAD)

    ,Key_Caret ,Key_And ,Key_Star ,Key_LeftParen ,Key_RightParen
    ,Key_6 ,Key_7 ,Key_8 ,Key_9 ,Key_0
    ,Key_RightParen ,Key_RightBracket ,XXX ,XXX ,XXX ,Key_Backslash
    ,___ ,___ ,XXX ,XXX ,XXX ,Key_Equals
    ),

    /* NUMPAD
    * +----------------------------------+ +----------------------------------+
    * | ___ | ___ | ___ | ___ | ___ | | = | 7 | 8 | 9 | BS |
    * | TG(0)| ___ | ___ | ___ | ___ | | = | 7 | 8 | 9 | BS |
    * | /(3)| ___ | ___ | ___ | ___ +-------------+ - | 4 | 5 | 6 | : |
    * | ___ | ___ | ___ | ___ | ___ | ___ | ___ | + | 1 | 2 | 3 | / |
    * | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ | 0 | , | . | * |
    * | ⌘S-5 | VolUp| BriUp| ___ | Up | ___ | ___ | + | 1 | 2 | 3 | / |
    * | ⌘S-4 | VolDn| BriDn| Left | Down | Right| TG(2)| ___ | 0 | , | . | * |
    * +-----------------------------------------------------------------------------------+
    */
    [NUMPAD] = KEYMAP_STACKED
    (
    ___ ,___ ,___ ,___ ,___
    ,___ ,___ ,___ ,___ ,___
    ,___ ,___ ,___ ,___ ,___ ,___
    ,___ ,___ ,___ ,___ ,___ ,___

    ,Key_Equals ,Key_7 ,Key_8 ,Key_9 ,Key_Backspace
    ,Key_Minus ,Key_4 ,Key_5 ,Key_6 ,Key_Colon
    ,___ ,Key_Plus ,Key_1 ,Key_2 ,Key_3 ,Key_Slash
    ,___ ,___ ,Key_0 ,Key_Comma ,Key_Period ,Key_Star
    TG(BASE) ,___ ,___ ,___ ,___
    ,___ ,___ ,___ ,___ ,___
    ,M(MACRO_SCM_5) ,Consumer_VolumeIncrement ,Consumer_DisplayBrightnessIncrement ,___ ,Key_UpArrow ,___
    ,M(MACRO_SCM_4) ,Consumer_VolumeDecrement ,Consumer_DisplayBrightnessDecrement ,Key_LeftArrow ,Key_DownArrow ,Key_RightArrow

    ,Key_Equals ,Key_7 ,Key_8 ,Key_9 ,Key_Backspace
    ,Key_Minus ,Key_4 ,Key_5 ,Key_6 ,Key_Colon
    ,___ ,Key_Plus ,Key_1 ,Key_2 ,Key_3 ,Key_Slash
    ,TG(NUMPAD) ,___ ,Key_0 ,Key_Comma ,Key_Period ,Key_Star
    ),

    /* EMACS
    @@ -228,19 +231,6 @@ KALEIDOSCOPE_INIT_PLUGINS(
    // TapDance Plugin
    TapDance,

    // SpaceCadet can turn your shifts into parens on tap, while keeping them as
    // Shifts when held. SpaceCadetConfig lets Chrysalis configure some aspects of
    // the plugin.
    // SpaceCadet,
    // SpaceCadetConfig,

    // Enables the "Sticky" behavior for modifiers, and the "Layer shift when
    // held" functionality for layer keys.
    // OneShot,
    // OneShotConfig,
    // EscapeOneShot,
    // EscapeOneShotConfig,

    // The macros plugin adds support for macros
    Macros,

    @@ -251,14 +241,6 @@ KALEIDOSCOPE_INIT_PLUGINS(
    MouseKeys,
    MouseKeysConfig //,

    // The MagicCombo plugin lets you use key combinations to trigger custom
    // actions - a bit like Macros, but triggered by pressing multiple keys at the
    // same time.
    // MagicCombo,

    // Enables the GeminiPR Stenography protocol. Unused by default, but with the
    // plugin enabled, it becomes configurable - and then usable - via Chrysalis.
    // GeminiPR,
    );

    const macro_t *macroAction(uint8_t macro_id, KeyEvent &event) {
    @@ -293,6 +275,9 @@ const macro_t *macroAction(uint8_t macro_id, KeyEvent &event) {
    case MACRO_TAP_Q:
    Macros.play(MACRO(T(Q)));
    break;
    case MACRO_EISU_MONUMPAD:
    Macros.play(MACRO(T(Lang2), D(Numpad)));
    break;
    default:
    break;
    }
    @@ -302,16 +287,19 @@ const macro_t *macroAction(uint8_t macro_id, KeyEvent &event) {

    void setup() {
    QUKEYS(
    kaleidoscope::plugin::Qukey(0, KeyAddr(0, 0), M(MACRO_TAP_Q)), // ESC/Q(just 1 time)
    kaleidoscope::plugin::Qukey(0, KeyAddr(2, 0), Key_LeftShift), // Z/Shift
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 3), Key_LeftGui), // 英数/LGui
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 5), MO(NUMPAD)), // Space/SYMBOL
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 6), MO(SYMBOL)), // Enter/NUMPAD
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 7), Key_RightGui), // かな/RGui
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 8), Key_Tab), // かな/TAB
    kaleidoscope::plugin::Qukey(0, KeyAddr(1, 0), MO(EMACS)), // A/EMACS at (0)
    kaleidoscope::plugin::Qukey(1, KeyAddr(1, 0), MO(EMACS)), // A/EMACS at (1)
    kaleidoscope::plugin::Qukey(2, KeyAddr(1, 0), MO(EMACS)), // A/EMACS at (2)
    kaleidoscope::plugin::Qukey(0, KeyAddr(0, 0), M(MACRO_TAP_Q)), // ESC/Q(just 1 time)
    kaleidoscope::plugin::Qukey(0, KeyAddr(1, 2), M(MACRO_EISU_MONUMPAD)), // D/英数+NUMPAD
    kaleidoscope::plugin::Qukey(0, KeyAddr(2, 0), Key_LeftShift), // Z/Shift
    kaleidoscope::plugin::Qukey(0, KeyAddr(2, 6), Key_RightShift), // TAB/Shift
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 3), Key_LeftGui), // 英数/LGui
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 4), Key_LeftControl), // 英数/LControl
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 5), MO(NUMPAD)), // Space/NUMPAD
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 6), MO(SYMBOL)), // Enter/SYMBOL
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 7), Key_RightShift), // かな/Shift
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 8), Key_RightAlt), // かな/Alt
    kaleidoscope::plugin::Qukey(0, KeyAddr(1, 0), MO(EMACS)), // A/EMACS at (0)
    kaleidoscope::plugin::Qukey(1, KeyAddr(1, 0), MO(EMACS)), // A/EMACS at (1)
    kaleidoscope::plugin::Qukey(2, KeyAddr(1, 0), MO(EMACS)), // A/EMACS at (2)
    )
    // Qukeys.setHoldTimeout(250); // this is not the primary determining factor for a qukey’s state
    // Qukeys.setOverlapThreshold(80);
  10. hnsol revised this gist Feb 4, 2024. 1 changed file with 72 additions and 85 deletions.
    157 changes: 72 additions & 85 deletions Atreus.ino
    Original file line number Diff line number Diff line change
    @@ -19,7 +19,6 @@

    #ifndef BUILD_INFORMATION
    #define BUILD_INFORMATION "locally built on " __DATE__ " at " __TIME__
    #define KALEIDOSCOPE_FIRMWARE_VERSION "0.1.2-mid230116"
    #endif

    #include "Kaleidoscope.h"
    @@ -53,14 +52,13 @@

    // for layer
    enum {
    BASE, LOWER, RAISE, ADJUST
    BASE, SYMBOL, NUMPAD, EMACS
    };

    // for macro
    enum {
    MACRO_BASE,
    MACRO_VERSION_INFO,
    MACRO_CMD_TAB,
    MACRO_SCM_4,
    MACRO_SCM_5,
    MACRO_LR_PAREN,
    @@ -75,105 +73,92 @@ enum {
    TD_PAREN,
    TD_BRACKET,
    TD_CBRACKET,
    TD_Q_ESC
    };

    // clang-format off
    KEYMAPS(
    /* BASE
    * +----------------------------------+ +----------------------------------+
    * | ESC | W | E | R | T | | Y | U | I | O | P |
    * |------+------+------+------+------| +------+------+------+------+------|
    * | A | S | D | F | G | | H | J | K | L | ; |
    * |------+------+------+------+------+------+------+------+------+------+------+------|
    * | Z | X | C | V | B | XXX/Q| TAB | N | M | , | . | / |
    * |------+------+------+------+------+------+------+------+------+------+------+------|
    * |LShift| LAlt | LGui |英/(2)| LCtrl| Space| Enter| RGui |か/(1)| - | ' | ` |
    * | ESC/Q| W | E | R | T | | Y | U | I | O | P |
    * | A/(3)| S | D | F | G +-------------+ H | J | K | L | ; |
    * | Z/SHF| X | C | V | B | XXX | BS | N | M | , | . | / |
    * |LShift| XXX | LAlt |英LGui| LCtrl|Spc(2)|Ent(1)|かRGui| かTAB| - | ' | ` |
    * +-----------------------------------------------------------------------------------+
    */
    [BASE] = KEYMAP_STACKED
    (
    Key_Esc ,Key_W ,Key_E ,Key_R ,Key_T
    ,Key_A ,Key_S ,Key_D ,Key_F ,Key_G
    ,Key_Z ,Key_X ,Key_C ,Key_V ,Key_B ,XXX
    ,Key_LeftShift ,Key_LeftAlt ,Key_LeftGui ,Key_Lang2 ,Key_LeftControl ,Key_Space

    ,Key_Y ,Key_U ,Key_I ,Key_O ,Key_P
    ,Key_H ,Key_J ,Key_K ,Key_L ,Key_Semicolon
    ,Key_Tab ,Key_N ,Key_M ,Key_Comma ,Key_Period ,Key_Slash
    ,Key_Enter ,Key_RightGui ,Key_Lang1 ,Key_Minus ,Key_Quote ,Key_Backtick
    Key_Esc ,Key_W ,Key_E ,Key_R ,Key_T
    ,Key_A ,Key_S ,Key_D ,Key_F ,Key_G
    ,Key_Z ,Key_X ,Key_C ,Key_V ,Key_B ,XXX
    ,Key_LeftShift ,XXX ,Key_LeftAlt ,Key_Lang2 ,Key_LeftControl ,Key_Space

    ,Key_Y ,Key_U ,Key_I ,Key_O ,Key_P
    ,Key_H ,Key_J ,Key_K ,Key_L ,Key_Semicolon
    ,Key_Backspace ,Key_N ,Key_M ,Key_Comma ,Key_Period ,Key_Slash
    ,Key_Enter ,Key_Lang1 ,Key_Lang1 ,Key_Minus ,Key_Quote ,Key_Backtick
    ),

    /* LOWER
    /* SYMBOL
    * +----------------------------------+ +----------------------------------+
    * | ^ | & | Up | XXX | {/{} | | + | 7 | 8 | 9 | Bksp |
    * |------+------+------+------+------| +------+------+------+------+------|
    * | 1 | Left | Down | Right| [/[] | | Bksp | 4 | 5 | 6 | : |
    * |------+------+------+------+------+------+------+------+------+------+------+------|
    * | ! | @ | # | $ | % | (/() | ! | * | 1 | 2 | 3 | \ |
    * |------+------+------+------+------+------+------+------+------+------+------+------|
    * | ___ | ___ | ___ | TG(3)| ___ | ___ | ___ | ___ | ___ | 0 | . | = |
    * | ! | @ | # | $ | % | | ^ | & | * | ( | ) |
    * | 1/(3)| 2 | 3 | 4 | 5 +-------------+ 6 | 7 | 8 | 9 | 0 |
    * | XXX | XXX | XXX | XXX | [/[] | (/() | ) | ] | XXX | Up | XXX | \ |
    * | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ | Left | Down | Right| = |
    * +-----------------------------------------------------------------------------------+
    */
    [LOWER] = KEYMAP_STACKED
    [SYMBOL] = KEYMAP_STACKED
    (
    Key_Caret ,Key_And ,Key_UpArrow ,XXX ,TD(TD_CBRACKET)
    ,Key_1 ,Key_LeftArrow ,Key_DownArrow ,Key_RightArrow ,TD(TD_BRACKET)
    ,Key_Exclamation ,Key_At ,Key_Hash ,Key_Dollar ,Key_Percent ,TD(TD_PAREN)
    ,___ ,___ ,___ ,TG(ADJUST) ,___ ,___

    ,Key_Plus ,Key_7 ,Key_8 ,Key_9 ,Key_Backspace
    ,Key_Backspace ,Key_4 ,Key_5 ,Key_6 ,Key_Colon
    ,Key_Exclamation ,Key_Star ,Key_1 ,Key_2 ,Key_3 ,Key_Backslash
    ,___ ,___ ,___ ,Key_0 ,Key_Period ,Key_Equals
    Key_Exclamation ,Key_At ,Key_Hash ,Key_Dollar ,Key_Percent
    ,Key_1 ,Key_2 ,Key_3 ,Key_4 ,Key_5
    ,XXX ,XXX ,XXX ,XXX ,TD(TD_BRACKET) ,TD(TD_PAREN)
    ,___ ,___ ,___ ,___ ,___ ,___

    ,Key_Caret ,Key_And ,Key_Star ,Key_LeftParen ,Key_RightParen
    ,Key_6 ,Key_7 ,Key_8 ,Key_9 ,Key_0
    ,Key_RightParen ,Key_RightBracket ,___ ,Key_UpArrow ,XXX ,Key_Backslash
    ,___ ,___ ,Key_LeftArrow ,Key_DownArrow ,Key_RightArrow ,Key_Equals
    ),

    /* RAISE
    /* NUMPAD
    * +----------------------------------+ +----------------------------------+
    * |CmdTab| Home | Up | End | { | | } | F7 | F8 | F9 | F10 |
    * |------+------+------+------+------| +------+------+------+------+------|
    * | 2 | Left | Down | Right| [ | | ] | F4 | F5 | F6 | F11 |
    * |------+------+------+------+------+------+------+------+------+------+------+------|
    * |S+Cm+5| VolUp| BrgUp| XXX | XXX | ( | ) | XXX | F1 | F2 | F3 | F12 |
    * |------+------+------+------+------+------+------+------+------+------+------+------|
    * |S+Cm+4| VolDn| BrgDn| XXX | XXX | XXX | XXX | XXX | TG(3)| XXX | XXX | XXX |
    * | ___ | ___ | ___ | ___ | ___ | | = | 7 | 8 | 9 | BS |
    * | /(3)| ___ | ___ | ___ | ___ +-------------+ - | 4 | 5 | 6 | : |
    * | ___ | ___ | ___ | ___ | ___ | ___ | ___ | + | 1 | 2 | 3 | / |
    * | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ | 0 | , | . | * |
    * +-----------------------------------------------------------------------------------+
    */
    [RAISE] = KEYMAP_STACKED
    [NUMPAD] = KEYMAP_STACKED
    (
    M(MACRO_CMD_TAB) ,Key_Home ,Key_UpArrow ,Key_End ,Key_LeftCurlyBracket
    ,Key_2 ,Key_LeftArrow ,Key_DownArrow ,Key_RightArrow ,Key_LeftBracket
    ,M(MACRO_SCM_5) ,Consumer_VolumeIncrement ,Consumer_DisplayBrightnessIncrement ,XXX ,XXX ,Key_LeftParen
    ,M(MACRO_SCM_4) ,Consumer_VolumeDecrement ,Consumer_DisplayBrightnessDecrement ,XXX ,XXX ,XXX

    ,Key_RightCurlyBracket ,Key_F7 ,Key_F8 ,Key_F9 ,Key_F10
    ,Key_RightBracket ,Key_F4 ,Key_F5 ,Key_F6 ,Key_F11
    ,Key_RightParen ,XXX ,Key_F1 ,Key_F2 ,Key_F3 ,Key_F12
    ,XXX ,XXX ,TG(ADJUST) ,XXX ,XXX ,XXX
    ___ ,___ ,___ ,___ ,___
    ,___ ,___ ,___ ,___ ,___
    ,___ ,___ ,___ ,___ ,___ ,___
    ,___ ,___ ,___ ,___ ,___ ,___

    ,Key_Equals ,Key_7 ,Key_8 ,Key_9 ,Key_Backspace
    ,Key_Minus ,Key_4 ,Key_5 ,Key_6 ,Key_Colon
    ,___ ,Key_Plus ,Key_1 ,Key_2 ,Key_3 ,Key_Slash
    ,___ ,___ ,Key_0 ,Key_Comma ,Key_Period ,Key_Star
    ),

    /* ADJUST
    /* EMACS
    * +----------------------------------+ +----------------------------------+
    * | ___ | ___ | Up | ___ | ___ | | ___ | ___ | Up | ___ | ___ |
    * |------+------+------+------+------| +------+------+------+------+------|
    * | 3 | Left | Down | Right| ___ | | ___ | Left | Down | Right| ___ |
    * |------+------+------+------+------+------+------+------+------+------+------+------|
    * | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ |
    * |------+------+------+------+------+------+------+------+------+------+------+------|
    * | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ |
    * | XXX | XXX | C-e | XXX | XXX | | XXX | XXX | TAB | XXX | Up |
    * | XXX | C-a | DEL | Right| ESC +-------------+ BS | Enter| C-k | XXX | XXX |
    * | XXX | XXX | XXX | XXX | Left | XXX | XXX | Down | Enter| XXX | XXX | XXX |
    * | XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX |
    * +-----------------------------------------------------------------------------------+
    */
    [ADJUST] = KEYMAP_STACKED
    [EMACS] = KEYMAP_STACKED
    (
    ___ ,___ ,Key_UpArrow ,___ ,___
    ,Key_3 ,Key_LeftArrow ,Key_DownArrow ,Key_RightArrow ,___
    ,___ ,___ ,___ ,___ ,___ ,___
    ,___ ,___ ,___ ,___ ,___ ,___

    ,___ ,___ ,Key_UpArrow ,___ ,___
    ,___ ,Key_LeftArrow ,Key_DownArrow ,Key_RightArrow ,___
    ,___ ,___ ,___ ,___ ,___ ,___
    ,___ ,___ ,___ ,___ ,___ ,___
    XXX ,XXX ,LCTRL(Key_E) ,XXX ,XXX
    ,XXX ,LCTRL(Key_A) ,Key_Delete ,Key_RightArrow ,Key_Escape
    ,XXX ,XXX ,XXX ,XXX ,Key_LeftArrow ,XXX
    ,XXX ,XXX ,XXX ,XXX ,XXX ,XXX

    ,XXX ,XXX ,Key_Tab ,XXX ,Key_UpArrow
    ,Key_Backspace ,Key_Enter ,LCTRL(Key_K) ,XXX ,XXX
    ,XXX ,Key_DownArrow ,Key_Enter ,XXX ,XXX ,XXX
    ,XXX ,XXX ,XXX ,XXX ,XXX ,XXX
    )
    )
    // clang-format on
    @@ -198,8 +183,6 @@ void tapDanceAction(uint8_t tap_dance_index,
    return tapDanceActionKeys(tap_count, tap_dance_action, Key_LeftBracket, M(MACRO_LR_BRACKET));
    case TD_CBRACKET:
    return tapDanceActionKeys(tap_count, tap_dance_action, Key_LeftCurlyBracket, M(MACRO_LR_CBRACKET));
    case TD_Q_ESC:
    return tapDanceActionKeys(tap_count, tap_dance_action, Key_Q, Key_Esc);
    }
    }

    @@ -228,7 +211,7 @@ KALEIDOSCOPE_INIT_PLUGINS(

    // The FirmwareVersion plugin lets Chrysalis query the version of the firmware
    // programmatically.
    FirmwareVersion,
    // FirmwareVersion,

    // The LayerNames plugin allows Chrysalis to display - and edit - custom layer
    // names, to be shown instead of the default indexes.
    @@ -292,9 +275,6 @@ const macro_t *macroAction(uint8_t macro_id, KeyEvent &event) {
    Macros.type(PSTR("Keyboardio Atreus - Kaleidoscope "));
    Macros.type(PSTR(BUILD_INFORMATION));
    break;
    case MACRO_CMD_TAB:
    Macros.play(MACRO(D(LeftGui), T(Tab)));
    break;
    case MACRO_SCM_4:
    Macros.play(MACRO(D(LeftShift), D(LeftGui), T(4), U(LeftGui), U(LeftShift)));
    break;
    @@ -322,14 +302,21 @@ const macro_t *macroAction(uint8_t macro_id, KeyEvent &event) {

    void setup() {
    QUKEYS(
    kaleidoscope::plugin::Qukey(0, KeyAddr(1, 0), Key_LeftControl), // A/Ctrl
    kaleidoscope::plugin::Qukey(0, KeyAddr(0, 0), M(MACRO_TAP_Q)), // ESC/Q(just 1 time)
    kaleidoscope::plugin::Qukey(0, KeyAddr(2, 0), Key_LeftShift), // Z/Shift
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 5), Key_LeftShift), // Space/Shift
    kaleidoscope::plugin::Qukey(0, KeyAddr(2, 5), M(MACRO_TAP_Q)), // XXX/Q(just 1 time)
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 3), MO(RAISE)), // lang2(eisu)/RAISE
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 8), MO(LOWER)), // lang1(kana)/LOWER
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 3), Key_LeftGui), // 英数/LGui
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 5), MO(NUMPAD)), // Space/SYMBOL
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 6), MO(SYMBOL)), // Enter/NUMPAD
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 7), Key_RightGui), // かな/RGui
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 8), Key_Tab), // かな/TAB
    kaleidoscope::plugin::Qukey(0, KeyAddr(1, 0), MO(EMACS)), // A/EMACS at (0)
    kaleidoscope::plugin::Qukey(1, KeyAddr(1, 0), MO(EMACS)), // A/EMACS at (1)
    kaleidoscope::plugin::Qukey(2, KeyAddr(1, 0), MO(EMACS)), // A/EMACS at (2)
    )
    // Qukeys.setHoldTimeout(250); // this is not the primary determining factor for a qukey’s state
    // Qukeys.setOverlapThreshold(80);
    Qukeys.setMaxIntervalForTapRepeat(0);
    // Qukeys.activate();

    // milliseconds to wait before a tap-dance sequence times out
    TapDance.setTimeout(250);
  11. hnsol revised this gist Jan 30, 2024. 1 changed file with 0 additions and 3 deletions.
    3 changes: 0 additions & 3 deletions Atreus.ino
    Original file line number Diff line number Diff line change
    @@ -293,8 +293,6 @@ const macro_t *macroAction(uint8_t macro_id, KeyEvent &event) {
    Macros.type(PSTR(BUILD_INFORMATION));
    break;
    case MACRO_CMD_TAB:
    // Macros.play(MACRO(D(LeftGui), T(Tab), U(LeftGui)));
    // Macros.play(MACRO(D(LeftGui), D(Tab)));
    Macros.play(MACRO(D(LeftGui), T(Tab)));
    break;
    case MACRO_SCM_4:
    @@ -313,7 +311,6 @@ const macro_t *macroAction(uint8_t macro_id, KeyEvent &event) {
    Macros.play(MACRO(T(LeftCurlyBracket), T(RightCurlyBracket), T(LeftArrow)));
    break;
    case MACRO_TAP_Q:
    // Macros.play(MACRO(T(Q), I(500)));
    Macros.play(MACRO(T(Q)));
    break;
    default:
  12. hnsol revised this gist Jan 30, 2024. 1 changed file with 0 additions and 7 deletions.
    7 changes: 0 additions & 7 deletions Atreus.ino
    Original file line number Diff line number Diff line change
    @@ -332,14 +332,7 @@ void setup() {
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 3), MO(RAISE)), // lang2(eisu)/RAISE
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 8), MO(LOWER)), // lang1(kana)/LOWER
    )
    // Qukeys.setHoldTimeout(250); // this is not the primary determining factor for a qukey’s state
    Qukeys.setHoldTimeout(200); // this is not the primary determining factor for a qukey’s state
    // Qukeys.setOverlapThreshold(1);
    Qukeys.setOverlapThreshold(90);
    Qukeys.setMaxIntervalForTapRepeat(0);
    // Qukeys.setMinimumHoldTime(1);
    // Qukeys.setMinimumPriorInterval(1);
    // Qukeys.activate();

    // milliseconds to wait before a tap-dance sequence times out
    TapDance.setTimeout(250);
  13. hnsol revised this gist Jan 22, 2024. 1 changed file with 14 additions and 7 deletions.
    21 changes: 14 additions & 7 deletions Atreus.ino
    Original file line number Diff line number Diff line change
    @@ -66,6 +66,7 @@ enum {
    MACRO_LR_PAREN,
    MACRO_LR_BRACKET,
    MACRO_LR_CBRACKET,
    MACRO_TAP_Q,
    };

    // for tapdance
    @@ -81,20 +82,20 @@ enum {
    KEYMAPS(
    /* BASE
    * +----------------------------------+ +----------------------------------+
    * | Q/ESC| W | E | R | T | | Y | U | I | O | P |
    * | ESC | W | E | R | T | | Y | U | I | O | P |
    * |------+------+------+------+------| +------+------+------+------+------|
    * | A | S | D | F | G | | H | J | K | L | ; |
    * |------+------+------+------+------+------+------+------+------+------+------+------|
    * | Z | X | C | V | B | ESC | TAB | N | M | , | . | / |
    * | Z | X | C | V | B | XXX/Q| TAB | N | M | , | . | / |
    * |------+------+------+------+------+------+------+------+------+------+------+------|
    * |LShift| LAlt | LGui |英/(2)| LCtrl| Space| Enter| RGui |か/(1)| - | ' | ` |
    * +-----------------------------------------------------------------------------------+
    */
    [BASE] = KEYMAP_STACKED
    (
    TD(TD_Q_ESC) ,Key_W ,Key_E ,Key_R ,Key_T
    Key_Esc ,Key_W ,Key_E ,Key_R ,Key_T
    ,Key_A ,Key_S ,Key_D ,Key_F ,Key_G
    ,Key_Z ,Key_X ,Key_C ,Key_V ,Key_B ,Key_Esc
    ,Key_Z ,Key_X ,Key_C ,Key_V ,Key_B ,XXX
    ,Key_LeftShift ,Key_LeftAlt ,Key_LeftGui ,Key_Lang2 ,Key_LeftControl ,Key_Space

    ,Key_Y ,Key_U ,Key_I ,Key_O ,Key_P
    @@ -109,7 +110,7 @@ KEYMAPS(
    * |------+------+------+------+------| +------+------+------+------+------|
    * | 1 | Left | Down | Right| [/[] | | Bksp | 4 | 5 | 6 | : |
    * |------+------+------+------+------+------+------+------+------+------+------+------|
    * | ! | @ | # | $ | % | (/() | XXX | * | 1 | 2 | 3 | \ |
    * | ! | @ | # | $ | % | (/() | ! | * | 1 | 2 | 3 | \ |
    * |------+------+------+------+------+------+------+------+------+------+------+------|
    * | ___ | ___ | ___ | TG(3)| ___ | ___ | ___ | ___ | ___ | 0 | . | = |
    * +-----------------------------------------------------------------------------------+
    @@ -123,7 +124,7 @@ KEYMAPS(

    ,Key_Plus ,Key_7 ,Key_8 ,Key_9 ,Key_Backspace
    ,Key_Backspace ,Key_4 ,Key_5 ,Key_6 ,Key_Colon
    ,XXX ,Key_Star ,Key_1 ,Key_2 ,Key_3 ,Key_Backslash
    ,Key_Exclamation ,Key_Star ,Key_1 ,Key_2 ,Key_3 ,Key_Backslash
    ,___ ,___ ,___ ,Key_0 ,Key_Period ,Key_Equals
    ),

    @@ -311,6 +312,10 @@ const macro_t *macroAction(uint8_t macro_id, KeyEvent &event) {
    case MACRO_LR_CBRACKET:
    Macros.play(MACRO(T(LeftCurlyBracket), T(RightCurlyBracket), T(LeftArrow)));
    break;
    case MACRO_TAP_Q:
    // Macros.play(MACRO(T(Q), I(500)));
    Macros.play(MACRO(T(Q)));
    break;
    default:
    break;
    }
    @@ -322,14 +327,16 @@ void setup() {
    QUKEYS(
    kaleidoscope::plugin::Qukey(0, KeyAddr(1, 0), Key_LeftControl), // A/Ctrl
    kaleidoscope::plugin::Qukey(0, KeyAddr(2, 0), Key_LeftShift), // Z/Shift
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 5), Key_LeftShift), // Space/Shift
    kaleidoscope::plugin::Qukey(0, KeyAddr(2, 5), M(MACRO_TAP_Q)), // XXX/Q(just 1 time)
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 3), MO(RAISE)), // lang2(eisu)/RAISE
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 8), MO(LOWER)), // lang1(kana)/LOWER
    )
    // Qukeys.setHoldTimeout(250); // this is not the primary determining factor for a qukey’s state
    Qukeys.setHoldTimeout(200); // this is not the primary determining factor for a qukey’s state
    // Qukeys.setOverlapThreshold(1);
    Qukeys.setOverlapThreshold(90);
    // Qukeys.setMaxIntervalForTapRepeat(0);
    Qukeys.setMaxIntervalForTapRepeat(0);
    // Qukeys.setMinimumHoldTime(1);
    // Qukeys.setMinimumPriorInterval(1);
    // Qukeys.activate();
  14. hnsol revised this gist Jan 18, 2024. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion Atreus.ino
    Original file line number Diff line number Diff line change
    @@ -19,7 +19,7 @@

    #ifndef BUILD_INFORMATION
    #define BUILD_INFORMATION "locally built on " __DATE__ " at " __TIME__
    #define KALEIDOSCOPE_FIRMWARE_VERSION "0.1.1-mid230116"
    #define KALEIDOSCOPE_FIRMWARE_VERSION "0.1.2-mid230116"
    #endif

    #include "Kaleidoscope.h"
  15. hnsol revised this gist Jan 18, 2024. 1 changed file with 56 additions and 36 deletions.
    92 changes: 56 additions & 36 deletions Atreus.ino
    Original file line number Diff line number Diff line change
    @@ -40,6 +40,23 @@
    #define MO(n) ShiftToLayer(n)
    #define TG(n) LockLayer(n)

    #define Key_Exclamation LSHIFT(Key_1)
    #define Key_At LSHIFT(Key_2)
    #define Key_Hash LSHIFT(Key_3)
    #define Key_Dollar LSHIFT(Key_4)
    #define Key_Percent LSHIFT(Key_5)
    #define Key_Caret LSHIFT(Key_6)
    #define Key_And LSHIFT(Key_7)
    #define Key_Star LSHIFT(Key_8)
    #define Key_Plus LSHIFT(Key_Equals)
    #define Key_Colon LSHIFT(Key_Semicolon)

    // for layer
    enum {
    BASE, LOWER, RAISE, ADJUST
    };

    // for macro
    enum {
    MACRO_BASE,
    MACRO_VERSION_INFO,
    @@ -51,41 +68,33 @@ enum {
    MACRO_LR_CBRACKET,
    };

    #define Key_Exclamation LSHIFT(Key_1)
    #define Key_At LSHIFT(Key_2)
    #define Key_Hash LSHIFT(Key_3)
    #define Key_Dollar LSHIFT(Key_4)
    #define Key_Percent LSHIFT(Key_5)
    #define Key_Caret LSHIFT(Key_6)
    #define Key_And LSHIFT(Key_7)
    #define Key_Star LSHIFT(Key_8)
    #define Key_Plus LSHIFT(Key_Equals)

    // for tapdance
    enum {
    BASE,
    LOWER,
    RAISE,
    ADJUST
    TD_SAMPLE,
    TD_PAREN,
    TD_BRACKET,
    TD_CBRACKET,
    TD_Q_ESC
    };

    // clang-format off
    KEYMAPS(
    /* BASE
    * +----------------------------------+ +----------------------------------+
    * | ESC | W | E | R | T | | Y | U | I | O | P |
    * | Q/ESC| W | E | R | T | | Y | U | I | O | P |
    * |------+------+------+------+------| +------+------+------+------+------|
    * | A | S | D | F | G | | H | J | K | L | ; |
    * |------+------+------+------+------+------+------+------+------+------+------+------|
    * | Z | X | C | V | B | Q | TAB | N | M | , | . | / |
    * | Z | X | C | V | B | ESC | TAB | N | M | , | . | / |
    * |------+------+------+------+------+------+------+------+------+------+------+------|
    * |LShift| LAlt | LGui | eisu | LCtrl| Space| Enter| RGui | kana | - | ' | ` |
    * |LShift| LAlt | LGui |英/(2)| LCtrl| Space| Enter| RGui |か/(1)| - | ' | ` |
    * +-----------------------------------------------------------------------------------+
    */
    [BASE] = KEYMAP_STACKED
    (
    Key_Esc ,Key_W ,Key_E ,Key_R ,Key_T
    TD(TD_Q_ESC) ,Key_W ,Key_E ,Key_R ,Key_T
    ,Key_A ,Key_S ,Key_D ,Key_F ,Key_G
    ,Key_Z ,Key_X ,Key_C ,Key_V ,Key_B ,Key_Q
    ,Key_Z ,Key_X ,Key_C ,Key_V ,Key_B ,Key_Esc
    ,Key_LeftShift ,Key_LeftAlt ,Key_LeftGui ,Key_Lang2 ,Key_LeftControl ,Key_Space

    ,Key_Y ,Key_U ,Key_I ,Key_O ,Key_P
    @@ -96,9 +105,9 @@ KEYMAPS(

    /* LOWER
    * +----------------------------------+ +----------------------------------+
    * | ^ | & | Up | XXX | {/{} | | XXX | 7 | 8 | 9 | Bksp |
    * | ^ | & | Up | XXX | {/{} | | + | 7 | 8 | 9 | Bksp |
    * |------+------+------+------+------| +------+------+------+------+------|
    * | 1 | Left | Down | Right| [/[] | | Bksp | 4 | 5 | 6 | + |
    * | 1 | Left | Down | Right| [/[] | | Bksp | 4 | 5 | 6 | : |
    * |------+------+------+------+------+------+------+------+------+------+------+------|
    * | ! | @ | # | $ | % | (/() | XXX | * | 1 | 2 | 3 | \ |
    * |------+------+------+------+------+------+------+------+------+------+------+------|
    @@ -107,13 +116,13 @@ KEYMAPS(
    */
    [LOWER] = KEYMAP_STACKED
    (
    Key_Caret ,Key_And ,Key_UpArrow ,XXX ,TD(3)
    ,Key_1 ,Key_LeftArrow ,Key_DownArrow ,Key_RightArrow ,TD(2)
    ,Key_Exclamation ,Key_At ,Key_Hash ,Key_Dollar ,Key_Percent ,TD(1)
    Key_Caret ,Key_And ,Key_UpArrow ,XXX ,TD(TD_CBRACKET)
    ,Key_1 ,Key_LeftArrow ,Key_DownArrow ,Key_RightArrow ,TD(TD_BRACKET)
    ,Key_Exclamation ,Key_At ,Key_Hash ,Key_Dollar ,Key_Percent ,TD(TD_PAREN)
    ,___ ,___ ,___ ,TG(ADJUST) ,___ ,___

    ,XXX ,Key_7 ,Key_8 ,Key_9 ,Key_Backspace
    ,Key_Backspace ,Key_4 ,Key_5 ,Key_6 ,Key_Plus
    ,Key_Plus ,Key_7 ,Key_8 ,Key_9 ,Key_Backspace
    ,Key_Backspace ,Key_4 ,Key_5 ,Key_6 ,Key_Colon
    ,XXX ,Key_Star ,Key_1 ,Key_2 ,Key_3 ,Key_Backslash
    ,___ ,___ ,___ ,Key_0 ,Key_Period ,Key_Equals
    ),
    @@ -124,9 +133,9 @@ KEYMAPS(
    * |------+------+------+------+------| +------+------+------+------+------|
    * | 2 | Left | Down | Right| [ | | ] | F4 | F5 | F6 | F11 |
    * |------+------+------+------+------+------+------+------+------+------+------+------|
    * |S+Cm+5| VolUp| BrtUp| XXX | XXX | (/() | XXX | XXX | F1 | F2 | F3 | F12 |
    * |S+Cm+5| VolUp| BrgUp| XXX | XXX | ( | ) | XXX | F1 | F2 | F3 | F12 |
    * |------+------+------+------+------+------+------+------+------+------+------+------|
    * |S+Cm+4| VolDn| BrtDn| XXX | XXX | XXX | XXX | XXX | TG(3)| XXX | XXX | XXX |
    * |S+Cm+4| VolDn| BrgDn| XXX | XXX | XXX | XXX | XXX | TG(3)| XXX | XXX | XXX |
    * +-----------------------------------------------------------------------------------+
    */
    [RAISE] = KEYMAP_STACKED
    @@ -168,22 +177,28 @@ KEYMAPS(
    )
    // clang-format on

    static void tapDanceEsc(uint8_t tap_dance_index, uint8_t tap_count, kaleidoscope::plugin::TapDance::ActionType tap_dance_action) {
    static void tapDanceEsc(uint8_t tap_dance_index,
    uint8_t tap_count,
    kaleidoscope::plugin::TapDance::ActionType tap_dance_action) {
    tapDanceActionKeys(tap_count, tap_dance_action, Key_Escape, Key_Tab);
    }

    void tapDanceAction(uint8_t tap_dance_index, KeyAddr key_addr, uint8_t tap_count, kaleidoscope::plugin::TapDance::ActionType tap_dance_action) {
    void tapDanceAction(uint8_t tap_dance_index,
    KeyAddr key_addr, uint8_t tap_count,
    kaleidoscope::plugin::TapDance::ActionType tap_dance_action) {
    switch (tap_dance_index) {
    // this is sample code
    case 0:
    case TD_SAMPLE:
    return tapDanceEsc(tap_dance_index, tap_count, tap_dance_action);
    // my tapdanve
    case 1:
    // my tapdance
    case TD_PAREN:
    return tapDanceActionKeys(tap_count, tap_dance_action, Key_LeftParen, M(MACRO_LR_PAREN));
    case 2:
    case TD_BRACKET:
    return tapDanceActionKeys(tap_count, tap_dance_action, Key_LeftBracket, M(MACRO_LR_BRACKET));
    case 3:
    case TD_CBRACKET:
    return tapDanceActionKeys(tap_count, tap_dance_action, Key_LeftCurlyBracket, M(MACRO_LR_CBRACKET));
    case TD_Q_ESC:
    return tapDanceActionKeys(tap_count, tap_dance_action, Key_Q, Key_Esc);
    }
    }

    @@ -277,6 +292,8 @@ const macro_t *macroAction(uint8_t macro_id, KeyEvent &event) {
    Macros.type(PSTR(BUILD_INFORMATION));
    break;
    case MACRO_CMD_TAB:
    // Macros.play(MACRO(D(LeftGui), T(Tab), U(LeftGui)));
    // Macros.play(MACRO(D(LeftGui), D(Tab)));
    Macros.play(MACRO(D(LeftGui), T(Tab)));
    break;
    case MACRO_SCM_4:
    @@ -311,12 +328,15 @@ void setup() {
    // Qukeys.setHoldTimeout(250); // this is not the primary determining factor for a qukey’s state
    Qukeys.setHoldTimeout(200); // this is not the primary determining factor for a qukey’s state
    // Qukeys.setOverlapThreshold(1);
    Qukeys.setOverlapThreshold(75);
    Qukeys.setOverlapThreshold(90);
    // Qukeys.setMaxIntervalForTapRepeat(0);
    // Qukeys.setMinimumHoldTime(1);
    // Qukeys.setMinimumPriorInterval(1);
    // Qukeys.activate();

    // milliseconds to wait before a tap-dance sequence times out
    TapDance.setTimeout(250);

    Kaleidoscope.setup();
    EEPROMKeymap.setup(9);

  16. hnsol created this gist Jan 16, 2024.
    337 changes: 337 additions & 0 deletions Atreus.ino
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,337 @@
    /* -*- mode: c++ -*-
    * Atreus -- Chrysalis-enabled Sketch for the Keyboardio Atreus
    * Copyright (C) 2018-2022 Keyboard.io, Inc
    *
    * 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, write to the Free Software Foundation, Inc.,
    * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
    */

    #ifndef BUILD_INFORMATION
    #define BUILD_INFORMATION "locally built on " __DATE__ " at " __TIME__
    #define KALEIDOSCOPE_FIRMWARE_VERSION "0.1.1-mid230116"
    #endif

    #include "Kaleidoscope.h"
    #include "Kaleidoscope-EEPROM-Settings.h"
    #include "Kaleidoscope-EEPROM-Keymap.h"
    #include "Kaleidoscope-Escape-OneShot.h"
    #include "Kaleidoscope-FirmwareVersion.h"
    #include "Kaleidoscope-FocusSerial.h"
    #include "Kaleidoscope-Macros.h"
    #include "Kaleidoscope-MouseKeys.h"
    #include "Kaleidoscope-OneShot.h"
    #include "Kaleidoscope-Qukeys.h"
    #include "Kaleidoscope-SpaceCadet.h"
    #include "Kaleidoscope-DynamicMacros.h"
    #include "Kaleidoscope-LayerNames.h"
    #include <Kaleidoscope-TapDance.h>

    #define MO(n) ShiftToLayer(n)
    #define TG(n) LockLayer(n)

    enum {
    MACRO_BASE,
    MACRO_VERSION_INFO,
    MACRO_CMD_TAB,
    MACRO_SCM_4,
    MACRO_SCM_5,
    MACRO_LR_PAREN,
    MACRO_LR_BRACKET,
    MACRO_LR_CBRACKET,
    };

    #define Key_Exclamation LSHIFT(Key_1)
    #define Key_At LSHIFT(Key_2)
    #define Key_Hash LSHIFT(Key_3)
    #define Key_Dollar LSHIFT(Key_4)
    #define Key_Percent LSHIFT(Key_5)
    #define Key_Caret LSHIFT(Key_6)
    #define Key_And LSHIFT(Key_7)
    #define Key_Star LSHIFT(Key_8)
    #define Key_Plus LSHIFT(Key_Equals)

    enum {
    BASE,
    LOWER,
    RAISE,
    ADJUST
    };

    // clang-format off
    KEYMAPS(
    /* BASE
    * +----------------------------------+ +----------------------------------+
    * | ESC | W | E | R | T | | Y | U | I | O | P |
    * |------+------+------+------+------| +------+------+------+------+------|
    * | A | S | D | F | G | | H | J | K | L | ; |
    * |------+------+------+------+------+------+------+------+------+------+------+------|
    * | Z | X | C | V | B | Q | TAB | N | M | , | . | / |
    * |------+------+------+------+------+------+------+------+------+------+------+------|
    * |LShift| LAlt | LGui | eisu | LCtrl| Space| Enter| RGui | kana | - | ' | ` |
    * +-----------------------------------------------------------------------------------+
    */
    [BASE] = KEYMAP_STACKED
    (
    Key_Esc ,Key_W ,Key_E ,Key_R ,Key_T
    ,Key_A ,Key_S ,Key_D ,Key_F ,Key_G
    ,Key_Z ,Key_X ,Key_C ,Key_V ,Key_B ,Key_Q
    ,Key_LeftShift ,Key_LeftAlt ,Key_LeftGui ,Key_Lang2 ,Key_LeftControl ,Key_Space

    ,Key_Y ,Key_U ,Key_I ,Key_O ,Key_P
    ,Key_H ,Key_J ,Key_K ,Key_L ,Key_Semicolon
    ,Key_Tab ,Key_N ,Key_M ,Key_Comma ,Key_Period ,Key_Slash
    ,Key_Enter ,Key_RightGui ,Key_Lang1 ,Key_Minus ,Key_Quote ,Key_Backtick
    ),

    /* LOWER
    * +----------------------------------+ +----------------------------------+
    * | ^ | & | Up | XXX | {/{} | | XXX | 7 | 8 | 9 | Bksp |
    * |------+------+------+------+------| +------+------+------+------+------|
    * | 1 | Left | Down | Right| [/[] | | Bksp | 4 | 5 | 6 | + |
    * |------+------+------+------+------+------+------+------+------+------+------+------|
    * | ! | @ | # | $ | % | (/() | XXX | * | 1 | 2 | 3 | \ |
    * |------+------+------+------+------+------+------+------+------+------+------+------|
    * | ___ | ___ | ___ | TG(3)| ___ | ___ | ___ | ___ | ___ | 0 | . | = |
    * +-----------------------------------------------------------------------------------+
    */
    [LOWER] = KEYMAP_STACKED
    (
    Key_Caret ,Key_And ,Key_UpArrow ,XXX ,TD(3)
    ,Key_1 ,Key_LeftArrow ,Key_DownArrow ,Key_RightArrow ,TD(2)
    ,Key_Exclamation ,Key_At ,Key_Hash ,Key_Dollar ,Key_Percent ,TD(1)
    ,___ ,___ ,___ ,TG(ADJUST) ,___ ,___

    ,XXX ,Key_7 ,Key_8 ,Key_9 ,Key_Backspace
    ,Key_Backspace ,Key_4 ,Key_5 ,Key_6 ,Key_Plus
    ,XXX ,Key_Star ,Key_1 ,Key_2 ,Key_3 ,Key_Backslash
    ,___ ,___ ,___ ,Key_0 ,Key_Period ,Key_Equals
    ),

    /* RAISE
    * +----------------------------------+ +----------------------------------+
    * |CmdTab| Home | Up | End | { | | } | F7 | F8 | F9 | F10 |
    * |------+------+------+------+------| +------+------+------+------+------|
    * | 2 | Left | Down | Right| [ | | ] | F4 | F5 | F6 | F11 |
    * |------+------+------+------+------+------+------+------+------+------+------+------|
    * |S+Cm+5| VolUp| BrtUp| XXX | XXX | (/() | XXX | XXX | F1 | F2 | F3 | F12 |
    * |------+------+------+------+------+------+------+------+------+------+------+------|
    * |S+Cm+4| VolDn| BrtDn| XXX | XXX | XXX | XXX | XXX | TG(3)| XXX | XXX | XXX |
    * +-----------------------------------------------------------------------------------+
    */
    [RAISE] = KEYMAP_STACKED
    (
    M(MACRO_CMD_TAB) ,Key_Home ,Key_UpArrow ,Key_End ,Key_LeftCurlyBracket
    ,Key_2 ,Key_LeftArrow ,Key_DownArrow ,Key_RightArrow ,Key_LeftBracket
    ,M(MACRO_SCM_5) ,Consumer_VolumeIncrement ,Consumer_DisplayBrightnessIncrement ,XXX ,XXX ,Key_LeftParen
    ,M(MACRO_SCM_4) ,Consumer_VolumeDecrement ,Consumer_DisplayBrightnessDecrement ,XXX ,XXX ,XXX

    ,Key_RightCurlyBracket ,Key_F7 ,Key_F8 ,Key_F9 ,Key_F10
    ,Key_RightBracket ,Key_F4 ,Key_F5 ,Key_F6 ,Key_F11
    ,Key_RightParen ,XXX ,Key_F1 ,Key_F2 ,Key_F3 ,Key_F12
    ,XXX ,XXX ,TG(ADJUST) ,XXX ,XXX ,XXX
    ),

    /* ADJUST
    * +----------------------------------+ +----------------------------------+
    * | ___ | ___ | Up | ___ | ___ | | ___ | ___ | Up | ___ | ___ |
    * |------+------+------+------+------| +------+------+------+------+------|
    * | 3 | Left | Down | Right| ___ | | ___ | Left | Down | Right| ___ |
    * |------+------+------+------+------+------+------+------+------+------+------+------|
    * | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ |
    * |------+------+------+------+------+------+------+------+------+------+------+------|
    * | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ | ___ |
    * +-----------------------------------------------------------------------------------+
    */
    [ADJUST] = KEYMAP_STACKED
    (
    ___ ,___ ,Key_UpArrow ,___ ,___
    ,Key_3 ,Key_LeftArrow ,Key_DownArrow ,Key_RightArrow ,___
    ,___ ,___ ,___ ,___ ,___ ,___
    ,___ ,___ ,___ ,___ ,___ ,___

    ,___ ,___ ,Key_UpArrow ,___ ,___
    ,___ ,Key_LeftArrow ,Key_DownArrow ,Key_RightArrow ,___
    ,___ ,___ ,___ ,___ ,___ ,___
    ,___ ,___ ,___ ,___ ,___ ,___
    )
    )
    // clang-format on

    static void tapDanceEsc(uint8_t tap_dance_index, uint8_t tap_count, kaleidoscope::plugin::TapDance::ActionType tap_dance_action) {
    tapDanceActionKeys(tap_count, tap_dance_action, Key_Escape, Key_Tab);
    }

    void tapDanceAction(uint8_t tap_dance_index, KeyAddr key_addr, uint8_t tap_count, kaleidoscope::plugin::TapDance::ActionType tap_dance_action) {
    switch (tap_dance_index) {
    // this is sample code
    case 0:
    return tapDanceEsc(tap_dance_index, tap_count, tap_dance_action);
    // my tapdanve
    case 1:
    return tapDanceActionKeys(tap_count, tap_dance_action, Key_LeftParen, M(MACRO_LR_PAREN));
    case 2:
    return tapDanceActionKeys(tap_count, tap_dance_action, Key_LeftBracket, M(MACRO_LR_BRACKET));
    case 3:
    return tapDanceActionKeys(tap_count, tap_dance_action, Key_LeftCurlyBracket, M(MACRO_LR_CBRACKET));
    }
    }


    KALEIDOSCOPE_INIT_PLUGINS(
    // ----------------------------------------------------------------------
    // Chrysalis plugins

    // The EEPROMSettings & EEPROMKeymap plugins make it possible to have an
    // editable keymap in EEPROM.
    EEPROMSettings,
    EEPROMKeymap,

    // Focus allows bi-directional communication with the host, and is the
    // interface through which the keymap in EEPROM can be edited.
    Focus,

    // FocusSettingsCommand adds a few Focus commands, intended to aid in
    // changing some settings of the keyboard, such as the default layer (via the
    // `settings.defaultLayer` command)
    FocusSettingsCommand,

    // FocusEEPROMCommand adds a set of Focus commands, which are very helpful in
    // both debugging, and in backing up one's EEPROM contents.
    FocusEEPROMCommand,

    // The FirmwareVersion plugin lets Chrysalis query the version of the firmware
    // programmatically.
    FirmwareVersion,

    // The LayerNames plugin allows Chrysalis to display - and edit - custom layer
    // names, to be shown instead of the default indexes.
    LayerNames,

    // ----------------------------------------------------------------------
    // Keystroke-handling plugins

    // The Qukeys plugin enables the "Secondary action" functionality in
    // Chrysalis. Keys with secondary actions will have their primary action
    // performed when tapped, but the secondary action when held.
    Qukeys,

    // TapDance Plugin
    TapDance,

    // SpaceCadet can turn your shifts into parens on tap, while keeping them as
    // Shifts when held. SpaceCadetConfig lets Chrysalis configure some aspects of
    // the plugin.
    // SpaceCadet,
    // SpaceCadetConfig,

    // Enables the "Sticky" behavior for modifiers, and the "Layer shift when
    // held" functionality for layer keys.
    // OneShot,
    // OneShotConfig,
    // EscapeOneShot,
    // EscapeOneShotConfig,

    // The macros plugin adds support for macros
    Macros,

    // Enables dynamic, Chrysalis-editable macros.
    DynamicMacros,

    // The MouseKeys plugin lets you add keys to your keymap which move the mouse.
    MouseKeys,
    MouseKeysConfig //,

    // The MagicCombo plugin lets you use key combinations to trigger custom
    // actions - a bit like Macros, but triggered by pressing multiple keys at the
    // same time.
    // MagicCombo,

    // Enables the GeminiPR Stenography protocol. Unused by default, but with the
    // plugin enabled, it becomes configurable - and then usable - via Chrysalis.
    // GeminiPR,
    );

    const macro_t *macroAction(uint8_t macro_id, KeyEvent &event) {
    if (keyToggledOn(event.state)) {
    switch (macro_id) {
    case MACRO_BASE:
    // This macro is currently unused, but is kept around for compatibility
    // reasons. We used to use it in place of `MoveToLayer(QWERTY/BASE)`, but no
    // longer do. We keep it so that if someone still has the old layout with
    // the macro in EEPROM, it will keep working after a firmware update.
    Layer.move(BASE);
    break;
    case MACRO_VERSION_INFO:
    Macros.type(PSTR("Keyboardio Atreus - Kaleidoscope "));
    Macros.type(PSTR(BUILD_INFORMATION));
    break;
    case MACRO_CMD_TAB:
    Macros.play(MACRO(D(LeftGui), T(Tab)));
    break;
    case MACRO_SCM_4:
    Macros.play(MACRO(D(LeftShift), D(LeftGui), T(4), U(LeftGui), U(LeftShift)));
    break;
    case MACRO_SCM_5:
    Macros.play(MACRO(D(LeftShift), D(LeftGui), T(5), U(LeftGui), U(LeftShift)));
    break;
    case MACRO_LR_PAREN:
    Macros.play(MACRO(T(LeftParen), T(RightParen), T(LeftArrow)));
    break;
    case MACRO_LR_BRACKET:
    Macros.play(MACRO(T(LeftBracket), T(RightBracket), T(LeftArrow)));
    break;
    case MACRO_LR_CBRACKET:
    Macros.play(MACRO(T(LeftCurlyBracket), T(RightCurlyBracket), T(LeftArrow)));
    break;
    default:
    break;
    }
    }
    return MACRO_NONE;
    }

    void setup() {
    QUKEYS(
    kaleidoscope::plugin::Qukey(0, KeyAddr(1, 0), Key_LeftControl), // A/Ctrl
    kaleidoscope::plugin::Qukey(0, KeyAddr(2, 0), Key_LeftShift), // Z/Shift
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 3), MO(RAISE)), // lang2(eisu)/RAISE
    kaleidoscope::plugin::Qukey(0, KeyAddr(3, 8), MO(LOWER)), // lang1(kana)/LOWER
    )
    // Qukeys.setHoldTimeout(250); // this is not the primary determining factor for a qukey’s state
    Qukeys.setHoldTimeout(200); // this is not the primary determining factor for a qukey’s state
    // Qukeys.setOverlapThreshold(1);
    Qukeys.setOverlapThreshold(75);
    // Qukeys.setMaxIntervalForTapRepeat(0);
    // Qukeys.setMinimumHoldTime(1);
    // Qukeys.setMinimumPriorInterval(1);
    // Qukeys.activate();

    Kaleidoscope.setup();
    EEPROMKeymap.setup(9);

    DynamicMacros.reserve_storage(48);

    LayerNames.reserve_storage(63);

    Layer.move(EEPROMSettings.default_layer());

    // To avoid any surprises, SpaceCadet is turned off by default. However, it
    // can be permanently enabled via Chrysalis, so we should only disable it if
    // no configuration exists.
    SpaceCadetConfig.disableSpaceCadetIfUnconfigured();
    }

    void loop() {
    Kaleidoscope.loop();
    }