#include QMK_KEYBOARD_H
enum layer_number {
_BASE = 0,_0,_1,_2,_3,_4,_5,_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,
};
#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),
};
#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 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 DESKFLOW C(KC_F18) // deskflow
#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 GF12 G(KC_F12) //
#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 //
#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,ESC), LT(_6,DOT), LT(_3,COMM), KC_UP, LT(_0,KC_F5), /* */ LT(_0,KC_F5), KC_UP, LT(_3,COMM), LT(_6,DOT), LT(_7,ESC),
LT(_4,BTN3), LEFT, RGHT, LT(_2,BTN1), LT(_1,TAB), /* */ LT(_1,TAB), LT(_2,BTN1), LEFT, RGHT, LT(_4,BTN3),
LT(_8,ENT), XXXXXXX, XXXXXXX, KC_DOWN, LT(_5,SPC), /* */ LT(_5,SPC), KC_DOWN, XXXXXXX, XXXXXXX, LT(_8,ENT),
XXXXXXX, XXXXXXX, XXXXXXX, LT(_10,DEL), LT(_L9,BSPC), /* */ LT(_R9,BSPC), LT(_10,DEL), XXXXXXX, XXXXXXX, XXXXXXX),
[_0] = LAYOUT(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, /* */ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, /* */ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, APFINDER, /* */ APFINDER, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, /* */ XXXXXXX, 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),
[_2] = LAYOUT(
C(KC_H), KC_COLN, KC_SLSH, XXXXXXX, XXXXXXX, /* */ XXXXXXX, XXXXXXX, KC_SLSH, KC_COLN, C(KC_H),
C(KC_T), KC_EXLM, KC_QUES, _______, S(DEL), /* */ S(DEL), _______, KC_QUES, KC_EXLM, C(KC_T),
C(KC_F), XXXXXXX, XXXXXXX, C(KC_Y), C(KC_Z), /* */ C(KC_Z), C(KC_Y), XXXXXXX, XXXXXXX, C(KC_F),
XXXXXXX, XXXXXXX, XXXXXXX, RCS(KC_T), C(KC_W), /* */ C(KC_W), RCS(KC_T), XXXXXXX, XXXXXXX, XXXXXXX),
[_3] = LAYOUT(
PSCR_AW, ZENHAN, _______, C(HOME), MS_WHLU, /* */ MS_WHLU, C(HOME), _______, ZENHAN, PSCR_AW,
PSCR_TG, RSIZE_R, XXXXXXX, G(TAB), A(TAB), /* */ A(TAB), G(TAB), XXXXXXX, RSIZE_R, PSCR_TG,
PSCR_PD, XXXXXXX, XXXXXXX, C(END), MS_WHLD, /* */ MS_WHLD, C(END), XXXXXXX, XXXXXXX, PSCR_PD,
XXXXXXX, XXXXXXX, XXXXXXX, G(KC_MINS), G(KC_PLUS), /* */ G(KC_MINS), G(KC_PLUS), XXXXXXX, XXXXXXX, XXXXXXX),
[_4] = LAYOUT(
Y_NEXT, A(LEFT), A(RGHT), A(KC_F), KC_F11, /* */ KC_F11, A(KC_F), A(LEFT), A(RGHT), Y_NEXT,
_______, XXXXXXX, XXXXXXX, CTL_T(BTN2), KC_F10, /* */ KC_F10, CTL_T(BTN2), XXXXXXX, XXXXXXX, _______,
MPLY, XXXXXXX, XXXXXXX, RCS(TAB), C(TAB), /* */ RCS(TAB), C(TAB), XXXXXXX, XXXXXXX, MPLY,
XXXXXXX, XXXXXXX, XXXXXXX, RCS(PGUP), RCS(PGDN), /* */ RCS(PGUP), RCS(PGDN), XXXXXXX, XXXXXXX, XXXXXXX),
[_5] = LAYOUT(
A(KC_F4), S(HOME), S(END), S(KC_UP), C(KC_A), /* */ C(KC_A), S(KC_UP), S(HOME), S(END), A(KC_F4),
C(KC_V), S(LEFT), S(RGHT), C(KC_C), C(KC_X), /* */ C(KC_X), C(KC_C), S(LEFT), S(RGHT), C(KC_V),
RCS(KC_V), XXXXXXX, XXXXXXX, S(KC_DOWN), _______, /* */ _______, S(KC_DOWN), XXXXXXX, XXXXXXX, RCS(KC_V),
XXXXXXX, XXXXXXX, XXXXXXX, RCS(LEFT), RCS(RGHT), /* */ 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), C(KC_PLUS),
TD(G), XXXXXXX, XXXXXXX, TD(M), TD(B), /* */ C(KC_9), C(KC_0), XXXXXXX, XXXXXXX, C(KC_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),
};
CTRL配列 - v.5.0 - keymap.c
Last updated at Posted at 2025-09-24
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme