0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

キーの細かい調整と、以下のタップダンスの追加

    [LAH] = ACTION_TAP_DANCE_DOUBLE(KC_LEFT,      KC_HOME),
    [RAE] = ACTION_TAP_DANCE_DOUBLE(KC_RGHT,      KC_END),
    [UCH] = ACTION_TAP_DANCE_DOUBLE(KC_UP,        C(KC_HOME)),
    [DCE] = ACTION_TAP_DANCE_DOUBLE(KC_DOWN,      C(KC_END)),

keymap.c

#include QMK_KEYBOARD_H
enum layer_number {
    _BASE = 0,_0,_1,_L2,_R2,_3,_4,_R5,_L5,_6,_7,_8,_L9,_R9,_10,
};

enum custom_keycodes {
    PRN = SAFE_RANGE,BRC,CBR,ABK,
};

#define SEND_PAIR(str) if (record->event.pressed) SEND_STRING(str);

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
    switch (keycode) {
        case PRN:   SEND_PAIR("()"); break;
        case BRC:   SEND_PAIR("[]"); break;
        case CBR:   SEND_PAIR("<>"); break;
        case ABK:   SEND_PAIR("{}"); break;
    }
    return true;
}

enum {
    A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,LAH,RAE,UCH,DCE,
};

#define TD_LTR(kc) ACTION_TAP_DANCE_DOUBLE(KC_##kc, S(KC_##kc))

#define TD_ROW(a, b, c, d, e) \
    [a] = TD_LTR(A), [b] = TD_LTR(B), [c] = TD_LTR(C), [d] = TD_LTR(D), [e] = TD_LTR(E)

tap_dance_action_t tap_dance_actions[] = {
    [A] = TD_LTR(A), [B] = TD_LTR(B), [C] = TD_LTR(C), [D] = TD_LTR(D), [E] = TD_LTR(E),
    [F] = TD_LTR(F), [G] = TD_LTR(G), [H] = TD_LTR(H), [I] = TD_LTR(I), [J] = TD_LTR(J),
    [K] = TD_LTR(K), [L] = TD_LTR(L), [M] = TD_LTR(M), [N] = TD_LTR(N), [O] = TD_LTR(O),
    [P] = TD_LTR(P), [Q] = TD_LTR(Q), [R] = TD_LTR(R), [S] = TD_LTR(S), [T] = TD_LTR(T),
    [U] = TD_LTR(U), [V] = TD_LTR(V), [W] = TD_LTR(W), [X] = TD_LTR(X), [Y] = TD_LTR(Y),
    [Z] = TD_LTR(Z),
    [LAH] = ACTION_TAP_DANCE_DOUBLE(KC_LEFT,      KC_HOME),
    [RAE] = ACTION_TAP_DANCE_DOUBLE(KC_RGHT,      KC_END),
    [UCH] = ACTION_TAP_DANCE_DOUBLE(KC_UP,        C(KC_HOME)),
    [DCE] = ACTION_TAP_DANCE_DOUBLE(KC_DOWN,      C(KC_END)),
};

#define INS          KC_INS
#define COMM         KC_COMM
#define DOT          KC_DOT
#define BSPC         KC_BSPC
#define PGUP         KC_PGUP
#define PGDN         KC_PGDN
#define MHEN         KC_INT5
#define HENK         KC_INT4
#define DEL          KC_DEL
#define SPC          KC_SPC
#define BTN1         KC_BTN1
#define BTN2         KC_BTN2
#define BTN3         KC_BTN3
#define ESC          KC_ESC
#define TAB          KC_TAB
#define ENT          KC_ENT
#define RGHT         KC_RGHT
#define LEFT         KC_LEFT
#define HOME         KC_HOME
#define END          KC_END
#define PLUS         KC_PLUS
#define MINS         KC_MINS
#define UNDS         KC_UNDS

#define ZENHAN       KC_NUM

#define MINECRAFT    C(KC_F1)   // minecraft-launcher
#define KEYBOARD     C(KC_F2)   // xfce4-keyboard-settings
#define PEEK         C(KC_F3)   // peek
#define GCHROME      C(KC_F4)   // google-chrome --new-window https://time.is/ja/
#define VS_CODE      C(KC_F5)   // vscode
#define SOUND        C(KC_F6)   // pavucontrol
#define WINDOWS      C(KC_F7)   // xfwm4-tweaks-settings
#define WINDOWK      C(KC_F8)   // xfwm4-settings
#define FIREFOX      C(KC_F9)   // firefox-esr
#define APFINDER     C(KC_F10)  // xfce4-appfinder
#define THUNAR       C(KC_F11)  // thunar
#define X4_TERM      C(KC_F12)  // xfce4-terminal --geometry 146x27+10+70
#define OBS          C(KC_F13)  // obs
#define KDENLIVE     C(KC_F14)  // kdenlive
#define INKSCAPE     C(KC_F15)  // inkscape
#define GIMP         C(KC_F16)  // gimp
#define BLENDER      C(KC_F17)  // blender
#define CF18         C(KC_F18)  // 

#define SCR_KEY      G(KC_F1)   // screenkey
#define SCRKEYK      G(KC_F2)   // killall screenkey
#define SCRKEYS      G(KC_F3)   // screenkey --show-settings
#define XP_PEN       G(KC_F4)   // sudo /usr/lib/pentablet/PenTablet.sh
#define FREECAD      G(KC_F5)   // /usr/bin/freecad - --single-instance %F
#define EEFFECTS     G(KC_F6)   // flatpak run com.github.wwmm.easyeffects
#define BTOP         G(KC_F7)   // xfce4-terminal --maximize --title=Terminal --dynamic-title-mode=replace --command=btop
#define GAIKAN       G(KC_F8)   // xfce4-appearance-settings
#define DISPLAY      G(KC_F9)   // xfce4-display-settings
#define MOUSE        G(KC_F10)  // xfce4-mouse-settings
#define SESSION      G(KC_F11)  // xfce4-session-settings
#define CENTER       G(KC_F12)  // xdotool mousemove 960 480
#define BOTTOM       G(KC_DOWN) // xdotool mousemove 960 865
#define ADDRESS      G(KC_UP)   // xdotool mousemove 960 135
#define WINDOWL      G(KC_LEFT) //
#define WINDOWR      G(KC_RGHT) //

#define PSCR_PD      C(KC_PSCR) // sh -c 'scrot ~/Pictures/desktop_$(date +%Y%m%d%H%M%S).png'
#define PSCR_AW      S(KC_PSCR) // sh -c 'scrot -ub ~/Pictures/active_window_$(date +%Y%m%d%H%M%S).png'
#define PSCR_TG      KC_PSCR    // OBS & PEEK trigger
#define RSIZE_W      G(KC_W)    // xdotool getactivewindow windowsize 1900 900 windowmove 10 50
#define RSIZE_R      G(KC_R)    // xdotool getactivewindow windowsize 1900 860 windowmove 10 70
#define MPLY         KC_MPLY    // playerctl play-pause
#define MUTE         KC_MUTE    // pactl set-sink-mute @DEFAULT_SINK@ toggle
#define VOL_100      S(KC_MUTE) // pactl set-sink-volume @DEFAULT_SINK@ 100%
#define VOL_UP       KC_VOLU    // pactl set-sink-volume @DEFAULT_SINK@ +5%
#define VOL_DOWN     KC_VOLD    // pactl set-sink-volume @DEFAULT_SINK@ -5%
#define Y_NEXT       S(KC_N)    //

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT(
    LT(_7,TAB),   LT(_6,DOT),   LT(_3,COMM),  TD(UCH),      LT(_0,BTN3),  /*         */     LT(_0,BTN3),  TD(UCH),      LT(_3,COMM),  LT(_6,DOT),   LT(_7,TAB),
    LT(_4,ESC),   TD(LAH),      TD(RAE),      LT(_L2,BTN1), LT(_1,KC_F5), /*         */     LT(_1,KC_F5), LT(_R2,BTN1), TD(LAH),      TD(RAE),      LT(_4,ESC),
    LT(_8,ENT),   XXXXXXX,      XXXXXXX,      TD(DCE),      LT(_L5,SPC),  /*         */     LT(_R5,SPC),  TD(DCE),      XXXXXXX,      XXXXXXX,      LT(_8,ENT),
    XXXXXXX,      Y_NEXT,       MPLY,         LT(_10,DEL),  LT(_L9,BSPC), /*         */     LT(_R9,BSPC), LT(_10,DEL),  MPLY,         Y_NEXT,       XXXXXXX),
[_0] = LAYOUT(
    XXXXXXX,      XXXXXXX,      PSCR_PD,      PSCR_TG,      _______,      /*         */     _______,      PSCR_TG,      PSCR_PD,      XXXXXXX,      XXXXXXX,
    XXXXXXX,      PSCR_AW,      XXXXXXX,      XXXXXXX,      XXXXXXX,      /*         */     XXXXXXX,      XXXXXXX,      XXXXXXX,      PSCR_AW,      XXXXXXX,
    XXXXXXX,      XXXXXXX,      XXXXXXX,      XXXXXXX,      APFINDER,     /*         */     APFINDER,     XXXXXXX,      XXXXXXX,      XXXXXXX,      XXXXXXX,
    XXXXXXX,      XXXXXXX,      XXXXXXX,      XXXXXXX,      A(KC_F),      /*         */     A(KC_F),      XXXXXXX,      XXXXXXX,      XXXXXXX,      XXXXXXX),
[_1] = LAYOUT(
    SCRKEYS,      XXXXXXX,      INKSCAPE,     GCHROME,      XXXXXXX,      /*         */     XXXXXXX,      GCHROME,      INKSCAPE,     XXXXXXX,      SCRKEYS,
    SCR_KEY,      OBS,          XXXXXXX,      QK_BOOT,      _______,      /*         */     _______,      QK_BOOT,      XXXXXXX,      OBS,          SCR_KEY,
    SCRKEYK,      XXXXXXX,      XXXXXXX,      FIREFOX,      VS_CODE,      /*         */     VS_CODE,      FIREFOX,      XXXXXXX,      XXXXXXX,      SCRKEYK,
    XXXXXXX,      XXXXXXX,      XXXXXXX,      THUNAR,       X4_TERM,      /*         */     X4_TERM,      THUNAR,       XXXXXXX,      XXXXXXX,      XXXXXXX),
[_L2] = LAYOUT(
    C(KC_H),      KC_COLN,      KC_SLSH,      XXXXXXX,      XXXXXXX,      /*         */     MS_WHLU,      MS_UP,        MS_LEFT,      MS_RGHT,      XXXXXXX,
    C(KC_T),      KC_EXLM,      KC_QUES,      _______,      XXXXXXX,      /*         */     A(KC_F),      C(LEFT),      HOME,         END,          C(RGHT),
    C(KC_F),      XXXXXXX,      XXXXXXX,      C(KC_Y),      C(KC_Z),      /*         */     MS_WHLD,      MS_DOWN,      XXXXXXX,      XXXXXXX,      XXXXXXX,
    XXXXXXX,      XXXXXXX,      XXXXXXX,      RCS(KC_T),    C(KC_W),      /*         */     MS_WHLL,      MS_WHLR,      XXXXXXX,      XXXXXXX,      XXXXXXX),
[_R2] = LAYOUT(
    KC_DLR,       KC_SCLN,      KC_BSLS,      KC_RABK,      KC_EQL,       /*         */     XXXXXXX,      XXXXXXX,      KC_SLSH,      KC_COLN,      C(KC_H),
    KC_GRV,       KC_DQUO,      KC_QUOT,      KC_HASH,      KC_ASTR,      /*         */     RCS(KC_C),    _______,      KC_QUES,      KC_EXLM,      C(KC_T),
    KC_PIPE,      XXXXXXX,      XXXXXXX,      KC_AMPR,      KC_MINS,      /*         */     C(KC_Z),      C(KC_Y),      XXXXXXX,      XXXXXXX,      C(KC_F),
    XXXXXXX,      XXXXXXX,      XXXXXXX,      KC_TILD,      KC_UNDS,      /*         */     C(KC_W),      RCS(KC_T),    XXXXXXX,      XXXXXXX,      XXXXXXX),
[_3] = LAYOUT(
    ADDRESS,      ZENHAN,       _______,      MS_WHLU,      XXXXXXX,      /*         */     XXXXXXX,      MS_WHLU,      _______,      ZENHAN,       ADDRESS,
    CENTER,       RSIZE_R,      XXXXXXX,      A(TAB),       G(TAB),       /*         */     G(TAB),       A(TAB),       XXXXXXX,      RSIZE_R,      CENTER, 
    BOTTOM,       XXXXXXX,      XXXXXXX,      MS_WHLD,      XXXXXXX,      /*         */     XXXXXXX,      MS_WHLD,      XXXXXXX,      XXXXXXX,      BOTTOM,
    XXXXXXX,      XXXXXXX,      XXXXXXX,      G(MINS),      G(PLUS),      /*         */     G(MINS),      G(PLUS),      XXXXXXX,      XXXXXXX,      XXXXXXX),
[_4] = LAYOUT(
    XXXXXXX,      A(LEFT),      A(RGHT),      S(DEL),       KC_F11,       /*         */     KC_F11,       S(DEL),       A(LEFT),      A(RGHT),      XXXXXXX,
    _______,      XXXXXXX,      XXXXXXX,      CTL_T(BTN2),  KC_F10,       /*         */     KC_F10,       CTL_T(BTN2),  WINDOWL,      WINDOWR,      _______,
    S(ENT),       XXXXXXX,      XXXXXXX,      RCS(TAB),     C(TAB),       /*         */     RCS(TAB),     C(TAB),       XXXXXXX,      XXXXXXX,      S(ENT),
    XXXXXXX,      XXXXXXX,      XXXXXXX,      RCS(PGUP),    RCS(PGDN),    /*         */     RCS(PGUP),    RCS(PGDN),    XXXXXXX,      XXXXXXX,      XXXXXXX),
[_L5] = LAYOUT(
    A(KC_F4),     S(HOME),      S(END),       S(KC_UP),     C(KC_A),      /*         */     KC_F11,       RSIZE_R,      RCS(TAB),     C(TAB),       XXXXXXX,
    C(KC_V),      S(LEFT),      S(RGHT),      C(KC_C),      C(KC_X),      /*         */     KC_F10,       RCS(LEFT),    XXXXXXX,      XXXXXXX,      RCS(RGHT),
    RCS(KC_V),    XXXXXXX,      XXXXXXX,      S(KC_DOWN),   _______,      /*         */     A(LEFT),      A(RGHT),      XXXXXXX,      XXXXXXX,      S(DEL),
    XXXXXXX,      XXXXXXX,      XXXXXXX,      RCS(LEFT),    RCS(RGHT),    /*         */     RCS(PGUP),    RCS(PGDN),    XXXXXXX,      XXXXXXX,      XXXXXXX),
[_R5] = LAYOUT(
    SCRKEYS,      OBS,          INKSCAPE,     GCHROME,      XXXXXXX,      /*         */     C(KC_A),      S(KC_UP),     S(HOME),      S(END),       A(KC_F4),
    SCR_KEY,      PSCR_AW,      PSCR_PD,      PSCR_TG,      APFINDER,     /*         */     C(KC_X),      C(KC_C),      S(LEFT),      S(RGHT),      C(KC_V),
    SCRKEYK,      XXXXXXX,      XXXXXXX,      FIREFOX,      VS_CODE,      /*         */     _______,      S(KC_DOWN),   XXXXXXX,      XXXXXXX,      RCS(KC_V),
    XXXXXXX,      XXXXXXX,      XXXXXXX,      THUNAR,       X4_TERM,      /*         */     RCS(LEFT),    RCS(RGHT),    XXXXXXX,      XXXXXXX,      XXXXXXX),
[_6] = LAYOUT(
    KC_CAPS,      _______,      KC_HASH,      PRN,          KC_EQL,       /*         */     KC_EQL,       PRN,          KC_HASH,      _______,      KC_CAPS,
    KC_GRV,       ABK,          CBR,          BRC,          KC_ASTR,      /*         */     KC_ASTR,      BRC,          CBR,          ABK,          KC_GRV,
    XXXXXXX,      XXXXXXX,      XXXXXXX,      KC_PLUS,      KC_MINS,      /*         */     KC_MINS,      KC_PLUS,      XXXXXXX,      XXXXXXX,      XXXXXXX,
    XXXXXXX,      XXXXXXX,      XXXXXXX,      KC_TILD,      KC_UNDS,      /*         */     KC_UNDS,      KC_TILD,      XXXXXXX,      XXXXXXX,      XXXXXXX),
[_7] = LAYOUT(
    _______,      KC_SCLN,      KC_BSLS,      KC_CIRC,      KC_DLR,       /*         */     KC_DLR,       KC_CIRC,      KC_BSLS,      KC_SCLN,      _______,
    XXXXXXX,      XXXXXXX,      XXXXXXX,      KC_AT,        KC_PIPE,      /*         */     KC_PIPE,      KC_AT,        XXXXXXX,      XXXXXXX,      XXXXXXX,
    XXXXXXX,      XXXXXXX,      XXXXXXX,      KC_PERC,      KC_AMPR,      /*         */     KC_AMPR,      KC_PERC,      XXXXXXX,      XXXXXXX,      XXXXXXX,
    XXXXXXX,      XXXXXXX,      XXXXXXX,      KC_DQUO,      KC_QUOT,      /*         */     KC_QUOT,      KC_DQUO,      XXXXXXX,      XXXXXXX,      XXXXXXX),
[_8] = LAYOUT(
    VOL_100,      KC_1,         KC_2,         KC_3,         KC_4,         /*         */     KC_1,         KC_2,         KC_3,         KC_4,         VOL_100,
    MUTE,         KC_5,         KC_6,         KC_7,         KC_8,         /*         */     KC_5,         KC_6,         KC_7,         KC_8,         MUTE,
    _______,      XXXXXXX,      XXXXXXX,      KC_9,         KC_0,         /*         */     KC_9,         KC_0,         XXXXXXX,      XXXXXXX,      _______,
    XXXXXXX,      XXXXXXX,      XXXXXXX,      VOL_DOWN,     VOL_UP,       /*         */     VOL_DOWN,     VOL_UP,       XXXXXXX,      XXXXXXX,      XXXXXXX),
[_L9] = LAYOUT(
    TD(X),        TD(S),        TD(T),        TD(R),        TD(P),        /*         */     C(KC_1),      C(KC_2),      C(KC_3),      C(KC_4),      XXXXXXX,
    TD(K),        TD(Z),        TD(D),        TD(N),        TD(H),        /*         */     C(KC_5),      C(KC_6),      C(KC_7),      C(KC_8),      G(PLUS),
    TD(G),        XXXXXXX,      XXXXXXX,      TD(M),        TD(B),        /*         */     C(KC_9),      C(KC_0),      XXXXXXX,      XXXXXXX,      G(MINS),
    XXXXXXX,      XXXXXXX,      XXXXXXX,      MHEN,         XXXXXXX,      /*         */     SFT_T(MHEN),  ALT_T(HENK),  XXXXXXX,      XXXXXXX,      XXXXXXX),
[_R9] = LAYOUT(
    TD(L),        TD(O),        TD(E),        TD(Y),        TD(W),        /*         */     TD(P),        TD(R),        TD(T),        TD(S),        TD(X),
    TD(A),        TD(J),        TD(C),        TD(I),        TD(F),        /*         */     TD(H),        TD(N),        TD(D),        TD(Z),        TD(K),
    TD(Q),        XXXXXXX,      XXXXXXX,      TD(U),        TD(V),        /*         */     TD(B),        TD(M),        XXXXXXX,      XXXXXXX,      TD(G),
    XXXXXXX,      XXXXXXX,      XXXXXXX,      CTL_T(ZENHAN),SFT_T(BSPC),  /*         */     XXXXXXX,      MHEN,         XXXXXXX,      XXXXXXX,      XXXXXXX),
[_10] = LAYOUT(
    TD(L),        TD(O),        TD(E),        TD(Y),        TD(W),        /*         */     TD(W),        TD(Y),        TD(E),        TD(O),        TD(L),
    TD(A),        TD(J),        TD(C),        TD(I),        TD(F),        /*         */     TD(F),        TD(I),        TD(C),        TD(J),        TD(A),
    TD(Q),        XXXXXXX,      XXXXXXX,      TD(U),        TD(V),        /*         */     TD(V),        TD(U),        XXXXXXX,      XXXXXXX,      TD(Q),
    XXXXXXX,      XXXXXXX,      XXXXXXX,      XXXXXXX,      HENK,         /*         */     HENK,         XXXXXXX,      XXXXXXX,      XXXXXXX,      XXXXXXX),
};
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?