diff --git a/.github/workflows/lint_and_compile.yml b/.github/workflows/lint_and_compile.yml new file mode 100644 index 0000000..8f7a54d --- /dev/null +++ b/.github/workflows/lint_and_compile.yml @@ -0,0 +1,43 @@ +name: Lint and Compile +on: [push] +jobs: + lint-and-compile: + runs-on: ubuntu-latest + steps: + - name: Check out repository code + uses: actions/checkout@v4 + with: + submodules: 'true' + - name: Setup + run: | + python3 -m pip install --user qmk + qmk setup -y + - name: Build + run: | + cd + for t in draculad keebio/iris/rev8 handwired/scottokeebs/scottogame ferris/sweep bluebell/swoop; + do echo "Building QMK for $t"; + qmk compile -kb $t -km dgvigil + done + find -maxdepth 1 -name "*.hex" + find -maxdepth 1 -name "*.uf2" + mkdir -p ~/compiled/firmware + find -maxdepth 1 -name "*.hex" -exec mv -v '{}' ~/compiled/firmware \; + find -maxdepth 1 -name "*.uf2" -exec mv -v '{}' ~/compiled/firmware \; + - name: Set Release Date + run: | + echo "RELEASE_DATE=$(date --rfc-3339=date)" >> ${GITHUB_ENV} + - name: Create GitHub release + uses: marvinpinto/action-automatic-releases@latest + with: + repo_token: "${{ secrets.GITHUB_TOKEN }}" + automatic_release_tag: "${{env.RELEASE_DATE}}" + title: ${{ env.ReleaseVersion }} + prerelease: false + files: | + /home/runner/compiled/firmware/*.hex + /home/runner/compiled/firmware/*.uf2 + - name: List files in the repository + run: | + ls ${{ github.workspace }} + - run: echo "🍏 This job's status is ${{ job.status }}." \ No newline at end of file diff --git a/draculad/config.h b/draculad/config.h index ed4ed82..b43f333 100644 --- a/draculad/config.h +++ b/draculad/config.h @@ -15,16 +15,14 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#define POINTING_DEVICE_ROTATION_90 - -//comment that out if your trackball is on the left side -#define TRACKBALL_LEFT - -#ifdef TRACKBALL_LEFT - #define POINTING_DEVICE_INVERT_X - #define POINTING_DEVICE_INVERT_Y -#endif +/* Don't autoshift numbers or tab */ +#define NO_AUTO_SHIFT_NUMERIC +#define NO_AUTO_SHIFT_TAB /* Tap Dance */ #define TAPPING_TERM 200 #define TAPPING_TERM_PER_KEY + +#define COMBO_TERM 25 // how quickly all combo keys must be pressed in succession to trigger +#define COMBO_MUST_HOLD_MODS // if a combo triggers a modifier, only trigger when the combo is held +#define COMBO_HOLD_TERM 175 // how long at least one of the combo keys must be held to trigger diff --git a/draculad/keymap.c b/draculad/keymap.c index 3cc3cc2..1f97259 100644 --- a/draculad/keymap.c +++ b/draculad/keymap.c @@ -17,6 +17,10 @@ along with this program. If not, see . #include QMK_KEYBOARD_H +#ifdef OS_DETECTION_ENABLE + #include "os_detection.h" +#endif + enum layer_number { _BASE, _NAV, @@ -24,71 +28,73 @@ enum layer_number { _SYM, _FUN, _MUS, - _ADJ + _MOUSE }; enum custom_keycodes { - BALL_HUI = SAFE_RANGE, //cycles hue - BALL_WHT, //cycles white - BALL_DEC, //decreased color - BALL_SCR, //scrolls - BALL_NCL, //left click - BALL_RCL, //right click - BALL_MCL, //middle click - M_PASS1, + M_PASS1 = SAFE_RANGE, M_PASS2 }; -//Tap Dance Declarations +// Tap Dance declarations enum { - TD_ESC_Q, - TD_ESC_A, + TD_Q_ESC, }; -//Tap Dance Definitions +// Tap Dance definitions tap_dance_action_t tap_dance_actions[] = { - //Tap once for Q, twice for Esc - [TD_ESC_Q] = ACTION_TAP_DANCE_DOUBLE(KC_Q, KC_ESC), - //Tap once for A, twice for Tab - [TD_ESC_A] = ACTION_TAP_DANCE_DOUBLE(KC_A, KC_TAB) + // Tap once for Q, twice for Escape + [TD_Q_ESC] = ACTION_TAP_DANCE_DOUBLE(KC_Q, KC_ESC), }; +enum combos { + FA_GUI, + FS_ALT, + FD_CTL, + JQUOT_GUI, + JL_ALT, + JK_CTL +}; + +const uint16_t PROGMEM fa_combo[] = {KC_F, KC_A, COMBO_END}; +const uint16_t PROGMEM fs_combo[] = {KC_F, KC_S, COMBO_END}; +const uint16_t PROGMEM fd_combo[] = {KC_F, KC_D, COMBO_END}; +const uint16_t PROGMEM jquote_combo[] = {KC_J, KC_QUOT, COMBO_END}; +const uint16_t PROGMEM jl_combo[] = {KC_J, KC_L, COMBO_END}; +const uint16_t PROGMEM jk_combo[] = {KC_J, KC_K, COMBO_END}; + +combo_t key_combos[] = { + [FA_GUI] = COMBO(fa_combo, KC_LGUI), + [FS_ALT] = COMBO(fs_combo, KC_LALT), + [FD_CTL] = COMBO(fd_combo, KC_LCTL), + [JQUOT_GUI] = COMBO(jquote_combo, KC_RGUI), + [JL_ALT] = COMBO(jl_combo, KC_RALT), + [JK_CTL] = COMBO(jk_combo, KC_RCTL), +}; // LEFT THUMB KEYS -#define MUSIC_ESC LT(_MUS, KC_ESC) +#define MUS_ESC LT(_MUS, KC_ESC) #define NAV_BKSP LT(_NAV, KC_BSPC) -#define ADJ_TAB LT(_ADJ, KC_TAB) +#define MOUSE_TAB LT(_MOUSE, KC_TAB) // RIGHT THUMB KEYS #define SYM_ENTER LT(_SYM, KC_ENTER) #define NUM_SPC LT(_NUM, KC_SPC) #define FUN_DEL LT(_FUN, KC_DEL) - -// LEFT HOME KEY MODS -#define GUIA MT(MOD_LGUI,KC_A) -#define ALTS MT(MOD_LALT,KC_S) -#define CTLD MT(MOD_LCTL,KC_D) -#define SHTF MT(MOD_LSFT,KC_F) -// RIGHT HOME KEY MODS -#define SHTJ MT(MOD_LSFT | MOD_RSFT,KC_J) -#define CTLK MT(MOD_LCTL | MOD_RCTL,KC_K) -#define ALTL MT(MOD_LALT | MOD_RALT,KC_L) -#define GUIQUOT MT(MOD_LGUI | MOD_RGUI,KC_QUOT) - -// Tap Dance -#define KC_EscTap TD(TD_ESC_Q) +// TAP DANCE +#define Q_ESC TD(TD_Q_ESC) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BASE] = LAYOUT( // ┌────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┐ - KC_EscTap,KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + Q_ESC, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ - GUIA, ALTS, CTLD, SHTF, KC_G, KC_H, SHTJ, CTLK, ALTL, GUIQUOT, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, // └────────┴────────┴────────┴────────┼────────┤ ├────────┼────────┴────────┴────────┴────────┘ - KC_MUTE, TG(_ADJ), + KC_MUTE, QK_CAPS_WORD_TOGGLE, // ┌────────┬────────┼────────┼ ┼────────┼────────┬────────┐ - MUSIC_ESC,NAV_BKSP,ADJ_TAB, SYM_ENTER,NUM_SPC,FUN_DEL + MUS_ESC, NAV_BKSP,MOUSE_TAB, SYM_ENTER,NUM_SPC,FUN_DEL // └────────┴────────┴────────┘ └────────┴────────┴────────┘ ), [_NAV] = LAYOUT( @@ -111,11 +117,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ KC_SCLN, KC_4, KC_5, KC_6, KC_EQL, _______, _______, _______, _______, _______, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ - KC_DOT, KC_1, KC_2, KC_3, KC_MINS, _______, _______, _______, _______, _______, + KC_DOT, KC_1, KC_2, KC_3, KC_BSLS, _______, _______, _______, _______, _______, // └────────┴────────┴────────┴────────┼────────┤ ├────────┼────────┴────────┴────────┴────────┘ _______, _______, // ┌────────┬────────┼────────┼ ┼────────┼────────┬────────┐ - KC_0, KC_MINUS, _______, _______, _______, _______ + KC_DOT, KC_0, KC_MINUS, _______, _______, _______ // └────────┴────────┴────────┘ └────────┴────────┴────────┘ ), [_SYM] = LAYOUT( @@ -128,16 +134,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // └────────┴────────┴────────┴────────┼────────┤ ├────────┼────────┴────────┴────────┴────────┘ _______, _______, // ┌────────┬────────┼────────┼ ┼────────┼────────┬────────┐ - KC_RPRN, KC_UNDS, _______, _______, _______, _______ + KC_LPRN, KC_RPRN, KC_UNDS, _______, _______, _______ // └────────┴────────┴────────┘ └────────┴────────┴────────┘ ), [_FUN] = LAYOUT( // ┌────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┐ - _______, _______, _______, _______, _______, KC_F12, KC_F7, KC_F8, KC_F9, KC_PSCR, + KC_F12, KC_F7, KC_F8, KC_F9, KC_PSCR, QK_DYNAMIC_TAPPING_TERM_UP,_______, _______, _______, QK_BOOT, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ - _______, _______, _______, _______, _______, KC_F11, KC_F4, KC_F5, KC_F6, _______, + KC_F11, KC_F4, KC_F5, KC_F6, _______, QK_DYNAMIC_TAPPING_TERM_DOWN, _______, _______, _______, _______, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ - _______, _______, _______, _______, _______, KC_F10, KC_F1, KC_F2, KC_F3, _______, + KC_F10, KC_F1, KC_F2, KC_F3, _______, _______, _______, _______, _______, _______, // └────────┴────────┴────────┴────────┼────────┤ ├────────┼────────┴────────┴────────┴────────┘ _______, _______, // ┌────────┬────────┼────────┼ ┼────────┼────────┬────────┐ @@ -146,24 +152,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_MUS] = LAYOUT( // ┌────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┐ - KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ - KC_LALT, KC_BTN3, KC_BTN2, KC_BTN1, BALL_SCR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ - KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, // └────────┴────────┴────────┴────────┼────────┤ ├────────┼────────┴────────┴────────┴────────┘ _______, _______, // ┌────────┬────────┼────────┼ ┼────────┼────────┬────────┐ - _______, _______, _______, _______, _______, _______ + _______, _______, _______, KC_MSTP, KC_MPLY, KC_MUTE // └────────┴────────┴────────┘ └────────┴────────┴────────┘ ), - [_ADJ] = LAYOUT( + [_MOUSE] = LAYOUT( // ┌────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┐ - QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BALL_HUI, BALL_WHT, BALL_DEC, XXXXXXX, XXXXXXX, + _______, _______, _______, _______, _______, _______, KC_PSTE, KC_COPY, KC_CUT, KC_UNDO, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ - EE_CLR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG, + _______, _______, _______, _______, _______, KC_BTN1, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, _______, + _______, _______, _______, _______, _______, KC_BTN2, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, // └────────┴────────┴────────┴────────┼────────┤ ├────────┼────────┴────────┴────────┴────────┘ _______, _______, // ┌────────┬────────┼────────┼ ┼────────┼────────┬────────┐ @@ -259,43 +265,68 @@ static void render_logo(void) { } static void render_status(void) { - oled_write_P(PSTR("This is\n~~~~~~~~~\nDracu\nLad\n~~~~~~~~~\nv1.0\n~~~~~~~~~\n"), false); - uint8_t n = get_current_wpm(); - char wpm_counter[4]; - wpm_counter[3] = '\0'; - wpm_counter[2] = '0' + n % 10; - wpm_counter[1] = (n /= 10) % 10 ? '0' + (n) % 10 : (n / 10) % 10 ? '0' : ' '; - wpm_counter[0] = n / 10 ? '0' + n / 10 : ' '; - oled_write_P(PSTR("WPM:"), false); - oled_write(wpm_counter, false); + oled_write_P(PSTR("~~~~~~~~~\nDarthVigil\n~~~~~~~~~\nDracu\nLad\n~~~~~~~~~\n"), false); + oled_write_P(PSTR("\n"), false); + + #ifdef OS_DETECTION_ENABLE + char data; + switch (detected_host_os()) { + case OS_UNSURE: + data = 0x01; // Face mark + break; + case OS_LINUX: + data = 0x99; // Penguin + break; + case OS_WINDOWS: + data = 0x97; // Window + break; + case OS_MACOS: + data = 0x95; // Banana + break; + case OS_IOS: + data = 0x9B; // But Robot Android ! + break; + default: + data = 0x4F; // ? + break; + } + oled_write_char(data, false); + #endif + + oled_write_P(PSTR("\n"), false); + oled_write_P(PSTR("TAP:"), false); + oled_write(get_u16_str(g_tapping_term, ' '), false); + oled_write_P(PSTR("\n"), false); led_t led_state = host_keyboard_led_state(); oled_write_P(PSTR("\nCaps: "), false); - oled_write_P(led_state.caps_lock ? PSTR("on ") : PSTR("off"), false); + oled_write_P(led_state.caps_lock ? PSTR("ON ") : PSTR("OFF"), false); + + oled_write_P(PSTR("\n"), false); oled_write_P(PSTR("\n"), false); switch (get_highest_layer(layer_state)) { case _BASE: - oled_write_P(PSTR("Base "), false); + oled_write_P(PSTR("BASE "), false); break; case _NAV: - oled_write_P(PSTR("Navigat"), false); + oled_write_P(PSTR("NAV "), false); break; case _NUM: - oled_write_P(PSTR("Numbers"), false); + oled_write_P(PSTR("NUM! "), false); break; case _SYM: - oled_write_P(PSTR("Symbols"), false); - break; - case _ADJ: - oled_write_P(PSTR("Adjust "), false); - break; - case _MUS: - oled_write_P(PSTR("Mouse "), false); + oled_write_P(PSTR("SYMB@ "), false); break; case _FUN: - oled_write_P(PSTR("Functio"), false); + oled_write_P(PSTR("FUN F1 "), false); + break; + case _MUS: + oled_write_P(PSTR("MUSIC "), false); + break; + case _MOUSE: + oled_write_P(PSTR("MOUSE "), false); break; default: - oled_write_P(PSTR("Unkn "), false); + oled_write_P(PSTR("IDK/? "), false); break; } } @@ -311,139 +342,34 @@ bool oled_task_user(void) { #endif //OLED_ENABLE -uint8_t white = 0; -uint8_t red = 255; -uint8_t green = 0; -uint8_t blue = 0; - -bool set_scrolling = false; -report_mouse_t pointing_device_task_user(report_mouse_t mouse_report) { - if (set_scrolling) { - mouse_report.h = mouse_report.x; - mouse_report.v = mouse_report.y; - mouse_report.x = mouse_report.y = 0; - } - return mouse_report; -} - -void ball_increase_hue(void){ - if(red!=255&&green!=255&&blue!=255){ - red =255; - } - if (red==255&&green<255&&blue==0){ - green += 15; - } else if(green==255&&blue==0&&red>0){ - red-=15; - } else if(red==0&&blue<255&&green==255){ - blue+=15; - } else if(blue==255&&green>0&&red==0){ - green -= 15; - } else if(green == 0&&blue==255&&red<255){ - red +=15; - } else if(green ==0&&blue>0&&red==255){ - blue -=15; - } - pimoroni_trackball_set_rgbw(red,green,blue,white); -} - -void decrease_color(void){ - if (green>0){ - green-=15; +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case M_PASS1: + if (record->event.pressed) { + SEND_STRING("T3lg3Ranch!2023"); + } + return false; + case M_PASS2: + if (record->event.pressed) { + SEND_STRING("C0pperfield!2023"); + } + return false; } - if (red>0){ - red-=15; - } - if (blue>0){ - blue-=15; - } - pimoroni_trackball_set_rgbw(red,green,blue,white); -} - -void cycle_white(void){ - if (white<255){ - white +=15; - } else{ - white=0; - } - pimoroni_trackball_set_rgbw(red,green,blue,white); -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record){ - switch (keycode){ - case M_PASS1: - if (record->event.pressed) { - SEND_STRING("T3lg3Ranch!2023"); - } - return false; - case M_PASS2: - if (record->event.pressed) { - SEND_STRING("C0pperfield!2023"); - } - return false; - case BALL_HUI: - if(record->event.pressed){ - ball_increase_hue(); - } - break; - - case BALL_WHT: - if(record-> event.pressed){ - cycle_white(); - } - break; - - case BALL_DEC: - if(record-> event.pressed){ - decrease_color(); - } - break; - - case BALL_SCR: - if(record->event.pressed){ - set_scrolling = true; - } else{ - set_scrolling = false; - } - break; - - case BALL_NCL: - record->event.pressed?register_code(KC_BTN1):unregister_code(KC_BTN1); - break; - case BALL_RCL: - record->event.pressed?register_code(KC_BTN2):unregister_code(KC_BTN2); - break; - case BALL_MCL: - record->event.pressed?register_code(KC_BTN3):unregister_code(KC_BTN3); - break; - } - return true; -} - -#ifdef ENCODER_ENABLE -bool encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { - // Volume control - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } - else if (index == 2) { - switch (get_highest_layer(layer_state)) { - case _ADJ: - clockwise?ball_increase_hue():cycle_white(); - break; - case _MUS: - clockwise?tap_code(KC_WH_U):tap_code(KC_WH_D); - break; - default: - clockwise?tap_code(KC_PGUP):tap_code(KC_PGDN); - break; - } - } - // I only have 2 encoders on the the pimoroni example board, just add else ifs for your other encoders... - // the missing ones are encoder 1 on the right side and encoder 3 on the left side return true; } -#endif // ENCODER_ENABLE + + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + // Mappings for 1st Encoder // Mappings for 2nd Encoder + [0] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, // Mapping for Base layer + [1] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI), ENCODER_CCW_CW(RGB_SAD, RGB_SAI) }, // Mapping for Layer 1 + [2] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_SPD, RGB_SPI) }, // Mapping for Layer 2 + [3] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(KC_LEFT, KC_RIGHT) }, // Mapping for Layer 3 + [4] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(KC_LEFT, KC_RIGHT) }, // Mapping for Layer 3 + [5] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(KC_LEFT, KC_RIGHT) }, // Mapping for Layer 3 + [6] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(KC_LEFT, KC_RIGHT) }, // Mapping for Layer 3 + + // You can add more layers here if you need them, or you can also delete lines for layers you are not using +}; +#endif diff --git a/draculad/rules.mk b/draculad/rules.mk index 6d050e5..8ef3135 100644 --- a/draculad/rules.mk +++ b/draculad/rules.mk @@ -1,12 +1,19 @@ # only uncomment on the side you have your trackball on -POINTING_DEVICE_ENABLE = yes -POINTING_DEVICE_DRIVER = pimoroni_trackball +#POINTING_DEVICE_ENABLE = yes +#POINTING_DEVICE_DRIVER = pimoroni_trackball OLED_ENABLE = yes +OS_DETECTION_ENABLE = yes +DYNAMIC_TAPPING_TERM_ENABLE = yes MOUSEKEY_ENABLE = yes - ENCODER_ENABLE = yes +ENCODER_MAP_ENABLE = yes + +AUTO_SHIFT_ENABLE = yes +CAPS_WORD_ENABLE = yes +COMBO_ENABLE = yes TAP_DANCE_ENABLE = yes + LTO_ENABLE = yes BOOTLOADER = rp2040 -CONVERT_TO = promicro_rp2040 +CONVERT_TO = elite_pi diff --git a/iris/config.h b/iris/config.h index ad743b6..9ec6599 100644 --- a/iris/config.h +++ b/iris/config.h @@ -1,21 +1,10 @@ -/* Copyright 2023 Dave Vigil dgvigil - * - * 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 . - */ #pragma once #define AUTO_SHIFT_TIMEOUT 150 +/* Don't autoshift numbers or tab */ +#define NO_AUTO_SHIFT_NUMERIC +#define NO_AUTO_SHIFT_TAB + #define SPLIT_LAYER_STATE_ENABLE diff --git a/iris/keymap.c b/iris/keymap.c index 5db400e..7efcc1d 100644 --- a/iris/keymap.c +++ b/iris/keymap.c @@ -1,18 +1,3 @@ -/* Copyright 2023 Dave Vigil dgvigil - * - * 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 . - */ #include QMK_KEYBOARD_H enum layer_number { diff --git a/sweep/config.h b/sweep/config.h index 7e07bd3..45df2ca 100644 --- a/sweep/config.h +++ b/sweep/config.h @@ -1,18 +1,5 @@ -/* Copyright 2023 Dave Vigil dgvigil - * - * 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 . - */ +// Copyright 2020 Pierre Chevalier +// SPDX-License-Identifier: GPL-2.0+ #pragma once diff --git a/sweep/keymap.c b/sweep/keymap.c index 0b0d48f..e52dcaa 100644 --- a/sweep/keymap.c +++ b/sweep/keymap.c @@ -1,18 +1,3 @@ -/* Copyright 2023 Dave Vigil dgvigil - * - * 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 . - */ #include QMK_KEYBOARD_H #define _BASE 0 diff --git a/swoop/config.h b/swoop/config.h index 7aa7f1d..64bd47a 100644 --- a/swoop/config.h +++ b/swoop/config.h @@ -1,18 +1,3 @@ -/* Copyright 2023 Dave Vigil dgvigil - * - * 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 . - */ #pragma once #define EE_HANDS @@ -24,7 +9,6 @@ #endif #define AUTO_SHIFT_TIMEOUT 150 -#define NO_AUTO_SHIFT_SPECIAL #define SPLIT_LAYER_STATE_ENABLE diff --git a/swoop/keymap.c b/swoop/keymap.c index f75b80b..c342459 100644 --- a/swoop/keymap.c +++ b/swoop/keymap.c @@ -1,18 +1,3 @@ -/* Copyright 2023 Dave Vigil dgvigil - * - * 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 . - */ #include QMK_KEYBOARD_H enum layer_number { @@ -91,7 +76,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_NAV] = LAYOUT_split_3x5_3( // ┌────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┐ - _______, _______, _______, _______, _______, _______, KC_PSTE, KC_COPY, KC_CUT, KC_UNDO, + QK_BOOT, _______, _______, _______, _______, _______, KC_PSTE, KC_COPY, KC_CUT, KC_UNDO, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ _______, _______, _______, _______, _______, KC_CAPS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤