From e9f44ee96d7c89ea9c6b8a199aba7f938d826b62 Mon Sep 17 00:00:00 2001 From: TurboMech <32869044+TurboMech@users.noreply.github.com> Date: Sun, 31 Dec 2017 22:39:34 -0500 Subject: [PATCH] added ALU84 keyboard and TurboMech user space (#2206) * Added ALU84 Added ALU84 from mechkeys.ca. TurboMech keymap is MacOS oriented, need to still update the defualt keymap. * added alu84 and TurboMech userspace * updated keymap, config.h and rules.mk for alu84 --- keyboards/alu84/alu84.c | 46 +++ keyboards/alu84/alu84.h | 41 ++ keyboards/alu84/config.h | 76 ++++ keyboards/alu84/keymaps/TurboMech/config.h | 25 ++ keyboards/alu84/keymaps/TurboMech/keymap.c | 182 +++++++++ keyboards/alu84/keymaps/TurboMech/readme.md | 93 +++++ keyboards/alu84/keymaps/TurboMech/rules.mk | 15 + keyboards/alu84/keymaps/default/keymap.c | 144 ++++++++ keyboards/alu84/readme.md | 14 + keyboards/alu84/rules.mk | 56 +++ users/turbomech/backupturbomech.c | 390 ++++++++++++++++++++ users/turbomech/turbomech.c | 125 +++++++ users/turbomech/turbomech.h | 50 +++ 13 files changed, 1257 insertions(+) create mode 100755 keyboards/alu84/alu84.c create mode 100755 keyboards/alu84/alu84.h create mode 100755 keyboards/alu84/config.h create mode 100644 keyboards/alu84/keymaps/TurboMech/config.h create mode 100644 keyboards/alu84/keymaps/TurboMech/keymap.c create mode 100644 keyboards/alu84/keymaps/TurboMech/readme.md create mode 100644 keyboards/alu84/keymaps/TurboMech/rules.mk create mode 100755 keyboards/alu84/keymaps/default/keymap.c create mode 100644 keyboards/alu84/readme.md create mode 100755 keyboards/alu84/rules.mk create mode 100644 users/turbomech/backupturbomech.c create mode 100644 users/turbomech/turbomech.c create mode 100644 users/turbomech/turbomech.h diff --git a/keyboards/alu84/alu84.c b/keyboards/alu84/alu84.c new file mode 100755 index 000000000..46e510efb --- /dev/null +++ b/keyboards/alu84/alu84.c @@ -0,0 +1,46 @@ +/* Copyright 2017 @TurboMech /u/TurboMech @A9entOran9e#6134 + * + * 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 "alu84.h" +#include "rgblight.h" +#include "action_layer.h" +#include "quantum.h" +#include "action.h" + + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + matrix_scan_user(); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware + + return process_record_user(keycode, record); +} + +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + + led_set_user(usb_led); +} + + + diff --git a/keyboards/alu84/alu84.h b/keyboards/alu84/alu84.h new file mode 100755 index 000000000..299b6a22b --- /dev/null +++ b/keyboards/alu84/alu84.h @@ -0,0 +1,41 @@ +/* Copyright 2017 @TurboMech /u/TurboMech @A9entOran9e#6134 + * + * 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 . + */ + + +#ifndef ALU84_H +#define ALU84_H + +#include "quantum.h" + + + +#define KEYMAP( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K114, K115, \ + K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, \ + K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K315, \ + K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, K415, \ + K500, K501, K503, K506, K510, K511, K512, K513, K514, K515 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, KC_NO, K114, K115 }, \ + { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215 }, \ + { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315 }, \ + { K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414, K415 }, \ + { K500, K501, KC_NO, K503, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, K511, K512, K513, K514, K515 } \ +} + +#endif diff --git a/keyboards/alu84/config.h b/keyboards/alu84/config.h new file mode 100755 index 000000000..ab71f92ba --- /dev/null +++ b/keyboards/alu84/config.h @@ -0,0 +1,76 @@ +/* Copyright 2017 @TurboMech /u/TurboMech @A9entOran9e#6134 + * + * 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 . + */ + +#ifndef ALU84_CONFIG_H +#define ALU84_CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER mechkeys.ca +#define PRODUCT ALU84 +#define DESCRIPTION A 75% keyboard + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 16 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5, B7 } +#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, F5, D4, B1, B0, B5, B4, D7, D6, B3, F4, F6 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* number of backlight levels */ +#define BACKLIGHT_PIN B6 +#ifdef BACKLIGHT_PIN +#define BACKLIGHT_LEVELS 3 +#endif + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE + +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* prevent stuck modifiers */ +#define PREVENT_STUCK_MODIFIERS + +#define RGB_DI_PIN E2 +#ifdef RGB_DI_PIN +#define RGBLED_NUM 16 +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 10 +#define RGBLIGHT_VAL_STEP 10 + +#define RGBLIGHT_ANIMATIONS + +#endif + +#endif \ No newline at end of file diff --git a/keyboards/alu84/keymaps/TurboMech/config.h b/keyboards/alu84/keymaps/TurboMech/config.h new file mode 100644 index 000000000..3013df9ba --- /dev/null +++ b/keyboards/alu84/keymaps/TurboMech/config.h @@ -0,0 +1,25 @@ +/* Copyright 2017 @TurboMech /u/TurboMech @A9entOran9e#6134 + * + * 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 . + */ + +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#define TAPPING_TOGGLE 2 +#include "../../config.h" + +// place overrides here + +#endif diff --git a/keyboards/alu84/keymaps/TurboMech/keymap.c b/keyboards/alu84/keymaps/TurboMech/keymap.c new file mode 100644 index 000000000..00397e3f0 --- /dev/null +++ b/keyboards/alu84/keymaps/TurboMech/keymap.c @@ -0,0 +1,182 @@ +/* Copyright 2017 @TurboMech /u/TurboMech @A9entOran9e#6134 + * + * 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 "alu84.h" +#include "turbomech.h" + +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) + +#define _QWERTY 0 //BASE layer +#define _FUNCTION 1 //Function layer + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* BL + * ,- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -. + * | Esc | Scrn | Scrn | Expose |Launchpad| Show |Dock Hide| Screen | Shortcut| Shortcut| Shortcut| Shortcut| Play | Mute | Vol Up | Vol Down| + * | |Brght Up | Brght Dn| | | Desktop | Toggle | Capture | | | | | Pause | | | | + * |- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - - - - - - -+- - - - -| + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + | Backspace | POWER | + * | | | | | | | | | | | | | | | | + * |- - - - - - - +- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - - - - +- - - - -| + * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | Shortcut| + * | | | | | | | | | | | | | | | | + * |- - - - - - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - - - - - - - -+- - - - -| + * | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | Enter | Page | + * | | | | | | | | | | | | | | Up | + * |- - - - - - - - - - - +- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - - - - - +- - - - -+- - - - -+ + * | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Up | Page | + * | | | | | | | | | | | | | | Down | + * |- - - - - +- - - - - - +- - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -| + * | Control | Option | Gui | Space | Gui | Opt | Fn | Left | Down | Right | + * | | /Alt | | | | Alt | | | | | + * `- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' + */ + + [_QWERTY] = KEYMAP( + KC_ESC, KC_F14, KC_F15, LCTL(KC_UP), LCTL(KC_L), KC_F11, LALT(LGUI(KC_D)), LCTL(KC_S), LCTL(LSFT(KC_O)), LCTL(LGUI(KC_1)), LCTL(LGUI(KC_2)), LCTL(LGUI(KC_3)), KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_POWER, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, LCTL(LGUI(KC_N)), + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, KC_UP, KC_PGDN, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + +/* FN1 - SEE readme.md + * ,- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -. + * | Quit | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Trns | Trns | DFU | + * | All | | | | | | | | | | | | | | | Reset | + * |- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - - - - - - -+- - - - -| + * | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Delete | Lock | + * | | | | | | | | | | | | | | |Shortcut | + * |- - - - - - - +- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - - - - +- - - - -| + * | Trns | RGB | RGB | RGB | RGB | RGB Hue | RGB Hue | RGB Sat | RGB Sat | Trns | Trns | Trns | Trns | Trns | Trns | + * | | Toggle | Mode | Increase| Decrease| Increase| Decrease| Increase| Decrease| | | | | | | + * |- - - - - - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - - - - - - - -+- - - - -| + * | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | + * | | | | | | | | | | | | | | | + * |- - - - - - - - - - - +- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - - - - - +- - - - -+- - - - -+ + * | Trns |Backlight|Backlight|Backlight|Backlight| Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | + * | | Toggle | Increase| Decrease| Step | | | | | | | | | | + * |- - - - - +- - - - - - +- - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -| + * | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | + * | | | | | | | | | | | + * `- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' + */ + + + [_FUNCTION] = KEYMAP( + LALT(LGUI(KC_Q)), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_RESET, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, LCTL(LALT(LGUI(KC_S))), + KC_TRNS, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, BL_TOGG, BL_INC, BL_DEC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + //switch (id) { + // case _FLIP: + // if (record->event.pressed) + + //SEND_STRING("(╯°□°)╯︵ ┻━┻"); + // } + // return false; + // break; + // } + + return MACRO_NONE; +}; + + switch (id) { + + } + return MACRO_NONE; +} + + + +void matrix_scan_user(void) { +} + +void led_set_user(uint8_t usb_led) { + + if (usb_led & (1 << USB_LED_NUM_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_CAPS_LOCK)) { + DDRB |= (1 << 2); PORTB &= ~(1 << 2); + } else { + DDRB &= ~(1 << 2); PORTB &= ~(1 << 2); + } + + if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_COMPOSE)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_KANA)) { + + } else { + + } + +} + +enum function_id { + SHIFT_ESC, +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(SHIFT_ESC), +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + static uint8_t shift_esc_shift_mask; + switch (id) { + case SHIFT_ESC: + shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; + if (record->event.pressed) { + if (shift_esc_shift_mask) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + if (shift_esc_shift_mask) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + } +} diff --git a/keyboards/alu84/keymaps/TurboMech/readme.md b/keyboards/alu84/keymaps/TurboMech/readme.md new file mode 100644 index 000000000..b78d7a5e7 --- /dev/null +++ b/keyboards/alu84/keymaps/TurboMech/readme.md @@ -0,0 +1,93 @@ +# This is u/TurboMech's keyboard layout for ALU84. + +## It is designed for Mac OS, due to the specific functions I created. + +### Here is the layout found in the keymap.c file. +##### I use shortcuts for the Function row (above number row) listed below + - Scrn Bright Up: F14 + - Scrn Bright Down: F15 + - Expose: LCTRL + Up + - Launchpad: LCTRL + L + - Show Desktop: F11 + - Show/Hide Dock: LALT + LGUI + D + - Screen Capture: LCTRL + S + - Custom Shortcut (setup for an application I use frequently): LCTRL + LSHFT + O + - Custom Shortcut 1: LCTRL + LGUI + 1 + - Custom Shortcut 2: LCTRL + LGUI + 2 + - Custom Shortcut 3: LCTRL + LGUI + 3 + - use the custom shortcuts for whatever you want: launch an application, a macro, etc. + - Play/Pause: exactly that + - Mute / Volume Up / Volume Down: exactly what it says + + ##### Going down the right side from Vol Down: + - POWER: this serves as the power button on Mac's only. Press and hold the button as you would on your Macbook or iMac keyboard. + - Menu: this slides the notification bar on the right side (its the same as on iPhones/ iPads) + +### See below keymaps for how to setup shortcuts on Mac + +#### Base Layer +``` +.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -. +| Esc | Scrn | Scrn | Expose |Launchpad| Show |Dock Hide| Screen | Shortcut| Shortcut| Shortcut| Shortcut| Play | Mute | Vol Up | Vol Down| +| |Brght Up | Brght Dn| | | Desktop | Toggle | Capture | | | | | Pause | | | | +|- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - - - - - - -+- - - - -| +| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + | Backspace | POWER | +| | | | | | | | | | | | | | | | +|- - - - - - - +- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - - - - +- - - - -| +| TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | Shortcut| +| | | | | | | | | | | | | | | | +|- - - - - - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - - - - - - - -+- - - - -| +| CAPS | A | S | D | F | G | H | J | K | L | ; | ' | Enter | Page | +| | | | | | | | | | | | | | Up | +|- - - - - - - - - - - +- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - - - - - +- - - - -+- - - - -+ +| Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Up | Page | +| | | | | | | | | | | | | | Down | +|- - - - - +- - - - - - +- - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -| +| Control | Option | Gui | Space | Gui | Opt | Fn | Left | Down | Right | +| | /Alt | | | | Alt | | | | | +'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' +``` +#### Function Layer 1 - See above for shortcuts +``` +.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -. +| Quit | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Trns | Trns | DFU | +| All | | | | | | | | | | | | | | | Reset | +|- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - - - - - - -+- - - - -| +| Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Delete | Lock | +| | | | | | | | | | | | | | |Shortcut | +|- - - - - - - +- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - - - - +- - - - -| +| Trns | RGB | RGB | RGB | RGB | RGB Hue | RGB Hue | RGB Sat | RGB Sat | Trns | Trns | Trns | Trns | Trns | Trns | +| | Toggle | Mode | Increase| Decrease| Increase| Decrease| Increase| Decrease| | | | | | | +|- - - - - - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - - - - - - - -+- - - - -| +| Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | +| | | | | | | | | | | | | | | +|- - - - - - - - - - - +- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - - - - - +- - - - -+- - - - -+ +| Trns |Backlight|Backlight|Backlight|Backlight| Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | +| | Toggle | Increase| Decrease| Step | | | | | | | | | | +|- - - - - +- - - - - - +- - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -| +| Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | +| | | | | | | | | | | +'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' +``` + +#### How to use/ setup shortcuts on Mac +- First navigate to System Preferences > Keyboard > Shortcuts + - You can use any of them in here + - Just set them to the shortcut keys listed above + +#### How to make your own (to launch applications, quit all, etc.) +- Navigate to Automator > New Document > click Service > Choose +- Now we have to setup our shortcut + - Here's how to setup the Quit All Shortcut + - In the right window select the Service recieves dropdown > select No Input + - At the top left click the Name (Search) > type quit > click and hold Quit All Applications > drag to the right hand box (under the Service Recieves) + - **IMPORTANT** You have to click the Run button at the upper right hand corner in order for these to actually work. + - Now click File > Save > save it as Quit All Apps (or whatever you want) / you can also just exit out and it'll ask you if you want to save +- Navigate back to System Preferences > Keyboard > Shortcuts + - The new shortcut can be found under services, set it to one of the shortcuts I listed above and done +- The same applies for applications in the Name (search) just type the application you want to have as shortcut. Don't forget to run it, then do the same steps + to set it up as a shortcut. + + + + diff --git a/keyboards/alu84/keymaps/TurboMech/rules.mk b/keyboards/alu84/keymaps/TurboMech/rules.mk new file mode 100644 index 000000000..ff8b4b2e6 --- /dev/null +++ b/keyboards/alu84/keymaps/TurboMech/rules.mk @@ -0,0 +1,15 @@ +BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= no # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= no # Console for debug(+400) +COMMAND_ENABLE ?= no # Commands for debug and configuration +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend +NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality +AUDIO_ENABLE ?= no +RGBLIGHT_ENABLE ?= yes +UNICODE_ENABLE ?= yes + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/alu84/keymaps/default/keymap.c b/keyboards/alu84/keymaps/default/keymap.c new file mode 100755 index 000000000..31e640ec9 --- /dev/null +++ b/keyboards/alu84/keymaps/default/keymap.c @@ -0,0 +1,144 @@ +#include "alu84.h" +#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) + +#define _BL 0 +#define _FN1 1 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* BL + * ,- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - . + * | Esc | Scrn Brght Up | Scrn Bright Down | Expose | Launchpad | Show Desktop | Dock Hide Tog | Screen Capture | Shortcut | Shortcut | Shortcut| Shortcut | Play/Pause | Mute | Vol Up | Vol Down | + * |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -| + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + | Backspace | POWER | + * |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -| + * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | Shortcut | + * |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -| + * | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | Enter | Pg Up | + * |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -| + * | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Up | Pg Dn | + * |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -| + * | Control | Option/Alt | Gui | Space | Gui | Opt | Fn (layer) | Left | Down | Right | + * `- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -' + */ + + [_BL] = KEYMAP( + KC_ESC, KC_F14, KC_F15, LCTL(KC_UP), LCTL(KC_L), KC_F11, LALT(LGUI(KC_D)), LCTL(KC_S), LCTL(LSFT(KC_O)), LCTL(LGUI(KC_1)), LCTL(LGUI(KC_2)), LCTL(LGUI(KC_3)), KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_POWER, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, LCTL(LGUI(KC_N)), + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, + KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, KC_UP, KC_PGDN, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + +/* FN1 + * ,- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - . + * | Quit All | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Trns | Trns | DFU RESET | + * |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -| + * | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | DELETE | Lock Shrct | + * |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -| + * | Trns | RGB Toggle | RGB Mode | RGB Increase | RGB Decrease | RGB Hue Inc | RGB Hue Dec | RGB Sat Inc | RGB Sat Dec | Trns | Trns | Trns | Trns | Trns | Trns | + * |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -| + * | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | + * |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -| + * | Trns | Backlight Tog | Backlight Inc | Backlight Dec | Backlight Step | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | + * |- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -| + * | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | + * `- - -+ - - - - - - - + - - - - - - - - -+ - - - -+ - - - - - + - - - - - - -+ - - - - - - - + - - - - - - - -+ - - - - -+ - - - - -+ - - - - + - - - - -+ - - - - - -+ - - -+ - - - -+ - - - - -' + */ + + [_FN1] = KEYMAP( + LALT(LGUI(KC_Q)), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, RESET, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, LCTL(LALT(LGUI(KC_S))), + KC_TRNS, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, BL_TOGG, BL_INC, BL_DEC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + + + switch (id) { + + } + return MACRO_NONE; +} + +void matrix_init_user(void) { +} + +void matrix_scan_user(void) { +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { + + if (usb_led & (1 << USB_LED_NUM_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_CAPS_LOCK)) { + DDRB |= (1 << 2); PORTB &= ~(1 << 2); + } else { + DDRB &= ~(1 << 2); PORTB &= ~(1 << 2); + } + + if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_COMPOSE)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_KANA)) { + + } else { + + } + +} + +enum function_id { + SHIFT_ESC, +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(SHIFT_ESC), +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + static uint8_t shift_esc_shift_mask; + switch (id) { + case SHIFT_ESC: + shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; + if (record->event.pressed) { + if (shift_esc_shift_mask) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + if (shift_esc_shift_mask) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + } +} \ No newline at end of file diff --git a/keyboards/alu84/readme.md b/keyboards/alu84/readme.md new file mode 100644 index 000000000..979a49d0f --- /dev/null +++ b/keyboards/alu84/readme.md @@ -0,0 +1,14 @@ +ALU84 +=== + +A 75% keyboard kit made and sold by mechkeys.ca [More info on mechkeys.ca](https://mechkeys.ca) + +Keyboard Maintainer: [TurboMech](https://github.com/TurboMech) +Hardware Supported: ALU84 +Hardware Availability: [mechkeys.ca](https://mechkeys.ca) + +Make example for this keyboard (after setting up your build environment): + + make alu84:default + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. diff --git a/keyboards/alu84/rules.mk b/keyboards/alu84/rules.mk new file mode 100755 index 000000000..14d3e7089 --- /dev/null +++ b/keyboards/alu84/rules.mk @@ -0,0 +1,56 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= no # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= no # Console for debug(+400) +COMMAND_ENABLE ?= no # Commands for debug and configuration +SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend +NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality +AUDIO_ENABLE ?= no +RGBLIGHT_ENABLE ?= yes \ No newline at end of file diff --git a/users/turbomech/backupturbomech.c b/users/turbomech/backupturbomech.c new file mode 100644 index 000000000..49bcded55 --- /dev/null +++ b/users/turbomech/backupturbomech.c @@ -0,0 +1,390 @@ +/* Copyright 2017 @TurboMech /u/TurboMech @A9entOran9e#6134 + * + * 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 "turbomech.h" +#include "quantum.h" +//#include "action_layer.h" +#include "action.h" +//#include "rgblight.h" + +__attribute__ ((weak)) +void matrix_init_keymap(void) {} + +__attribute__ ((weak)) +void matrix_scan_keymap(void) {} + +__attribute__ ((weak)) +bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { + return true; +} +__attribute__ ((weak)) +uint32_t layer_state_set_keymap (uint32_t state) { + return state; +} +__attribute__ ((weak)) +void led_set_keymap(uint8_t usb_led) {} + +//#define default_layer _QWERTY (0) +//extern keymap_config_t keymap_config; + +extern rgblight_config_t rgblight_config; + + +//#ifdef RGBLIGHT_ENABLE +/*change the rgblight_setrgb(#, #, #) to what you want CAPS lock - currenlty red*/ + //#define rgblight_set_caps rgblight_setrgb(255, 0, 0) + //#define rgblight_base rgblight_mode(RGB_current_mode) +//#endif +// +//bool rgb_layer_change = true; +//bool RGB_INIT = false; +//bool TOG_STATUS = false; +#ifdef RGBLIGHT_ENABLE +bool rgb_layer_change = true; +#endif +int RGB_current_mode; + +/*void matrix_init_user(void) { + #ifdef RGBLIGHT_ENABLE + rgblight_enable(); + if (true) { + eeconfig_read_rgblight(); + rgblight_get_mode(); + eeconfig_update_rgblight_default(); + + + // eeconfig_debug_rgblight(); + //rgblight_init(); + } + #endif + +} +*/ + +/*void matrix_init_user(void) { + #ifdef RGBLIGHT_ENABLE + eeconfig_read_rgblight(); + eeconfig_update_rgblight_default(); + //rgblight_init(); + //rgblight_mode(RGB_current_mode); + //rgblight_mode(RGB_current_mode); + //RGB_current_mode = rgblight_config.mode; + #endif +}*/ + + +void persistent_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); + default_layer = _QWERTY; + // eeconfig_update_rgblight(rgblight_config.raw); +} + + //Setting ADJUST layer RGB back to default +/*void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) { + if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) { + rgblight_mode(RGB_current_mode); + layer_on(layer1); + } else { + layer_off(layer2); + } +}*/ + + +void matrix_init_user(void) { + + uint8_t default_layer = eeconfig_read_default_layer(); + + rgblight_enable(); + + if(true) { + if (default_layer & (1UL << _QWERTY)) { + //RGB_current_mode = rgblight_config.mode; + rgblight_mode(11); + } + else { + rgblight_mode (12); + } + + /*else if (default_layer & (1UL << _DVORAK)) { + rgblight_set_green; + } + //else if (default_layer & (1UL << _WORKMAN)) { + rgblight_set_purple; + } + else { + rgblight_set_teal;*/ + + + } + + +} + +static bool is_capslocked = false; +void led_set_user(uint8_t usb_led) { + if (usb_led & (1<event.pressed) { + SEND_STRING("make alu84:TurboMech:dfu"); + SEND_STRING(SS_TAP(X_ENTER)); + } + return false; + break; + case KC_QMK: + if (!record->event.pressed) { + SEND_STRING("cd QMK/qmk_firmware"); + SEND_STRING(SS_TAP(X_ENTER)); + } + return false; + break; + case KC_RESET: + if (!record->event.pressed) { + #ifdef RGBLIGHT_ENABLE + rgblight_enable(); + rgblight_mode(1); + rgblight_setrgb(255, 255, 255); + #endif + //_delay_ms(2000); + reset_keyboard(); + } + return false; + break; + /*case RGB_MOD: + //led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released + if (record->event.pressed) { + rgblight_mode(RGB_current_mode); + RGB_current_mode = rgblight_config.mode; + rgblight_step(); + // rgblight_mode(RGB_current_mode); + //RGB_current_mode = rgblight_config.mode; + // _delay_ms(50); + // rgblight_set(); + RGB_current_mode = rgblight_config.mode; + } + else //if (rgblight_config.enable) + { + _delay_ms(50); + rgblight_set(); + //rgblight_mode(rgblight_config.mode); + // eeconfig_update_rgblight(rgblight_config.raw); + } + + return true; + break;*/ + + /*case MO(1): + if (record->event.realeased) { + rgblight_mode(1); + rgblight_set_red; + } + return true; + break;*/ + + /*case KC_CAPS: + if (record->event.pressed) { + rgblight_mode(RGB_current_mode); + register_code(KC_CAPS); + rgblight_mode(1); + rgblight_set_red; + } + else { + unregister_code(KC_CAPS); + rgblight_mode(RGB_current_mode); + + } + return false; + break;*/ + + /* rgblight_mode(RGB_current_mode); + register_code(KC_CAPS); + rgblight_mode(1); + rgblight_set_red; + } + else { + unregister_code(KC_CAPS); + rgblight_mode(RGB_current_mode);*/ + + // } + // return true; + // break; + /*case KC_RESET: + if (record->event.pressed) { + layer_off(_FUNCTION); + rgblight_mode(RGB_current_mode); + RGB_current_mode = rgblight_config.mode; + layer_clear(); + _delay_ms(1000); + reset_keyboard(); + } + else{ + //layer_off(_FUNCTION); + _delay_ms(1000); + rgblight_mode(RGB_current_mode); + RGB_current_mode = rgblight_config.mode; + + //eeconfig_update_rgblight_default(); + } + + return false; + break; + }*/ + + + return true; + break; + + + + + +/*case RGB_MOD: +case RGB_SMOD: +case RGB_HUI: +case RGB_HUD: +case RGB_SAI: +case RGB_SAD: +case RGB_VAI: +case RGB_VAD: +case RGB_MODE_PLAIN: +case RGB_MODE_BREATHE: +case RGB_MODE_RAINBOW: +case RGB_MODE_SWIRL: +case RGB_MODE_SNAKE: +case RGB_MODE_KNIGHT: +case RGB_MODE_XMAS: +case RGB_MODE_GRADIENT: + if (record->event.pressed) { + rgb_layer_change = false; + } + break; + } + return true;*/ + } + + + return process_record_keymap(keycode, record); + +} + +uint32_t layer_state_set_user(uint32_t state) { +#ifdef RGBLIGHT_ENABLE + uint8_t default_layer = eeconfig_read_default_layer(); + if (rgb_layer_change) { + switch (biton32(state)) { + case _FUNCTION: + rgblight_set_blue; + rgblight_mode(1); + break; + case _QWERTY: + + rgblight_mode(11); + break; + // case _MOUS: + // rgblight_set_yellow; + // rgblight_mode(1); + // break; + //case _MACROS: + //rgblight_set_orange; + //is_overwatch ? rgblight_mode(17) : rgblight_mode(18); + //break; + //case _MEDIA: + //rgblight_set_green; + //rgblight_mode(22); + //break; + default: + if (is_capslocked) { + rgblight_mode(1); + rgblight_set_red; + } + else { if (default_layer & (1UL << _QWERTY)) { + rgblight_mode(11); + } + + else if (default_layer & (1UL << _FUNCTION)) { + rgblight_set_cyan; + } + //else if (default_layer & (1UL << _WORKMAN)) { + // rgblight_set_purple; + // } + else { + rgblight_set_orange; + } + } + rgblight_mode(1); + break; + } + } +#endif + return state; +} + + +!!** possible for later + +void set_single_persistent_default_layer(uint8_t default_layer); + +void set_single_persistent_default_layer(uint8_t default_layer) { + #if defined(AUDIO_ENABLE) && defined(DEFAULT_LAYER_SONGS) + PLAY_SONG(default_layer_songs[default_layer]); + #endif + eeconfig_update_default_layer(1U< @A9entOran9e#6134 + * + * 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 . + */ + +//**!! Currently after reboot the set rgb mode does not persist after reboot. Need to find a way to "save" the rgb mode. Color remains after reboot though. + +#include "turbomech.h" +#include "quantum.h" +#include "action_layer.h" +#include "action.h" +#include "rgblight.h" +//#include "process_unicode.h" + +extern keymap_config_t keymap_config; +extern rgblight_config_t rgblight_config; +bool RGB_INIT = false; +bool TOG_STATUS = false; +bool caps_is_active = false; +int RGB_current_mode; + +void matirx_scan_kb (void) { + if (RGB_INIT) {} + else { + RGB_current_mode = rgblight_config.mode; + RGB_INIT = true; + } + rgblight_mode(RGB_current_mode); // revert RGB to initial mode prior to RGB mode change + TOG_STATUS = false; +} + +void persistent_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} +/*void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) { + if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) { + rgblight_mode(RGB_current_mode); + layer_on(layer3); + } else { + layer_off(layer3); + } +}*/ + +__attribute__ ((weak)) +bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { + return true; +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_CAPS: + if (record->event.pressed) { + register_code(KC_CAPS); + caps_is_active = !caps_is_active; + if (caps_is_active) { + rgblight_mode(14); + } + else if (!caps_is_active) { + unregister_code(KC_CAPS); + rgblight_mode(RGB_current_mode); + } + } + return false; + break; + + case RGB_MOD: + //led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released + if (record->event.pressed) { + rgblight_mode(RGB_current_mode); + rgblight_step(); + RGB_current_mode = rgblight_config.mode; + // rgblight_set(); + } + return false; + break; + + case KC_RESET: + if (record->event.pressed) { + rgblight_enable(); + rgblight_mode(1); + rgblight_setrgb(255, 255, 255); + //_delay_ms(2000); + reset_keyboard(); + } + return false; + break; + + /*case _FLIP: //(╯°□°)╯︵ ┻━┻ + if (record->event.pressed) { + register_code(KC_LPRN); + unregister_code(KC_LPRN); + register_code(X(0x00B0)); + unregister_code(X(0x00B0)); + + UC(0x256F); + PROCESS_UNICODE(UC(0x00B0)); + SEND_TAP(UC(0x25A1)); + SEND_TAP(UC(0x00B0)); + SEND_STRING(")"); + SEND_TAP(UC(0x256F)); + SEND_TAP(UC(0xFE35)); + SEND_TAP(UC(0x253B)); + SEND_TAP(UC(0x2501)); + SEND_TAP(UC(0x253B)); + } + return false; + break;*/ + + return true; + break; + } +return process_record_keymap(keycode, record); +} diff --git a/users/turbomech/turbomech.h b/users/turbomech/turbomech.h new file mode 100644 index 000000000..87fd4da68 --- /dev/null +++ b/users/turbomech/turbomech.h @@ -0,0 +1,50 @@ +/* Copyright 2017 @TurboMech /u/TurboMech @A9entOran9e#6134 + * + * 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 . + */ + + +#ifndef USERSPACE +#define USERSPACE + +#include "quantum.h" + +// Definine layer names +#define _QWERTY 0 +#define _FUNCTION 1 + +#ifdef RGBLIGHT_ENABLE +//values are HSV (Hue, Sat, Val) - except Sat and Val equal 255 for 100%. +#define rgblight_set_blue rgblight_sethsv (240, 255, 255); +#define rgblight_set_red rgblight_sethsv (0, 255, 255); +#define rgblight_set_green rgblight_sethsv (120, 255, 255); +#define rgblight_set_orange rgblight_sethsv (30, 255, 255); +#define rgblight_set_teal rgblight_sethsv (195, 255, 255); +#define rgblight_set_magenta rgblight_sethsv (300, 255, 255); +#define rgblight_set_yellow rgblight_sethsv (60, 255, 255); +#define rgblight_set_purple rgblight_sethsv (270, 255, 255); +#define rgblight_set_cyan rgblight_sethsv (180, 255, 255); +#define rgblight_set_white rgblight_sethsv (0, 0, 255) +#endif + +//must use KC_RESET in order to have RESET indicate a color/mode +enum userspace_custom_keycodes { + EPRM = SAFE_RANGE, //should always be here + KC_RESET, + KC_MAKE_ALU84, + KC_QMK, + _FLIP, + NEW_SAFE_RANGE +}; +#endif