Last active
August 3, 2025 17:40
-
-
Save wesleimp/0acf76939d43afe6445b4cb5efff5aa6 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Copyright 2019 @foostan | |
Copyright 2020 Drashna Jaelre <@drashna> | |
This program is free software: you can redistribute it and/or modify | |
it under the terms of the GNU General Public License as published by | |
the Free Software Foundation, either version 2 of the License, or | |
(at your option) any later version. | |
This program is distributed in the hope that it will be useful, | |
but WITHOUT ANY WARRANTY; without even the implied warranty of | |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
GNU General Public License for more details. | |
You should have received a copy of the GNU General Public License | |
along with this program. If not, see <http://www.gnu.org/licenses/>. | |
*/ | |
#include QMK_KEYBOARD_H | |
#include "keymap_brazilian_abnt2.h" | |
#include "keycodes.h" | |
// Custom keycodes for tmux macros | |
enum custom_keycodes { | |
TMUX_SESSIONS = SAFE_RANGE, | |
TMUX_NEXT_WIN, | |
TMUX_PREV_WIN, | |
TMUX_NEW_WIN, | |
TMUX_KILL_WIN | |
}; | |
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |
[0] = LAYOUT_split_3x6_3( | |
//,-----------------------------------------------------. ,-----------------------------------------------------. | |
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, | |
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| | |
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, | |
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| | |
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RALT, | |
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| | |
KC_LGUI, KC_LCTL, KC_ENT, KC_SPC, MO(1), MO(2) | |
//`--------------------------' `--------------------------' | |
), | |
[1] = LAYOUT_split_3x6_3( | |
//,-----------------------------------------------------. ,-----------------------------------------------------. | |
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, | |
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| | |
KC_CAPS, KC_DLR, KC_HASH, KC_PLUS, KC_EQL, KC_MINS, KC_LPRN, KC_RPRN, KC_LCBR, KC_RCBR, KC_COLN, KC_DQT, | |
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| | |
KC_LSFT, KC_PIPE, XXXXXXX, KC_UNDS, KC_PERC, KC_COLN, KC_LBRC, KC_RBRC, KC_LT, KC_GT, KC_QUES, XXXXXXX, | |
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| | |
KC_LGUI, KC_LALT, KC_ENT, KC_SPC, _______, KC_RALT | |
//`--------------------------' `--------------------------' | |
), | |
[2] = LAYOUT_split_3x6_3( | |
//,-----------------------------------------------------. ,-----------------------------------------------------. | |
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, | |
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| | |
BR_ACUT, XXXXXXX, TMUX_SESSIONS, TMUX_PREV_WIN, TMUX_NEXT_WIN, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, XXXXXXX, XXXXXXX, | |
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| | |
KC_LSFT, KC_BSLS, TMUX_KILL_WIN, TMUX_NEW_WIN, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, XXXXXXX, KC_RALT, | |
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| | |
KC_LGUI, MO(3), KC_ENT, KC_SPC, _______, KC_RALT | |
//`--------------------------' `--------------------------' | |
), | |
[3] = LAYOUT_split_3x6_3( | |
//,-----------------------------------------------------. ,-----------------------------------------------------. | |
XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, | |
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| | |
XXXXXXX, XXXXXXX, KC_MPLY, KC_MNXT, KC_VOLU, KC_MUTE, KC_F12, KC_BRIU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | |
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| | |
XXXXXXX, XXXXXXX, XXXXXXX, KC_MPRV, KC_VOLD, XXXXXXX, XXXXXXX, KC_BRID, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | |
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| | |
KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT | |
//`--------------------------' `--------------------------' | |
) | |
}; | |
// Process custom keycodes | |
bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |
switch (keycode) { | |
case TMUX_SESSIONS: | |
if (record->event.pressed) { | |
// Send Ctrl+A, then S (tmux sessions) | |
tap_code16(LCTL(KC_A)); | |
tap_code(KC_S); | |
} | |
return false; | |
case TMUX_NEXT_WIN: | |
if (record->event.pressed) { | |
// Send Ctrl+A, then ] (tmux next window) | |
tap_code16(LCTL(KC_A)); | |
tap_code(KC_RBRC); | |
} | |
return false; | |
case TMUX_PREV_WIN: | |
if (record->event.pressed) { | |
// Send Ctrl+A, then [ (tmux previous window) | |
tap_code16(LCTL(KC_A)); | |
tap_code(KC_LBRC); | |
} | |
return false; | |
case TMUX_NEW_WIN: | |
if (record->event.pressed) { | |
// Send Ctrl+A, then C (tmux new window) | |
tap_code16(LCTL(KC_A)); | |
tap_code(KC_C); | |
} | |
return false; | |
case TMUX_KILL_WIN: | |
if (record->event.pressed) { | |
// Send Ctrl+A, then X (tmux kill window) | |
tap_code16(LCTL(KC_A)); | |
tap_code(KC_X); | |
} | |
return false; | |
} | |
return true; | |
} | |
#ifdef ENCODER_MAP_ENABLE | |
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { | |
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(RM_VALD, RM_VALU), ENCODER_CCW_CW(KC_RGHT, KC_LEFT), }, | |
[1] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(RM_VALD, RM_VALU), ENCODER_CCW_CW(KC_RGHT, KC_LEFT), }, | |
[2] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(RM_VALD, RM_VALU), ENCODER_CCW_CW(KC_RGHT, KC_LEFT), }, | |
[3] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(RM_VALD, RM_VALU), ENCODER_CCW_CW(KC_RGHT, KC_LEFT), }, | |
}; | |
#endif |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment