diff options
Diffstat (limited to 'keyboards')
20 files changed, 424 insertions, 489 deletions
diff --git a/keyboards/gherkin/keymaps/bbaserdem/README.md b/keyboards/gherkin/keymaps/bbaserdem/README.md new file mode 100644 index 0000000000..3c9a5e98b3 --- /dev/null +++ b/keyboards/gherkin/keymaps/bbaserdem/README.md @@ -0,0 +1,11 @@ +# Gherkin Layout +This is my gherkin layout. +It is used as a game pad, and key layout is inspired by spare keys I had lying around. +The firmware is very simple, and only includes one layer keymap, and RGB effects. + +# Flashing +The following command should be used from the main qmk directory. +``` +make gherkin:bbaserdem +sudo avrdude -p atmgea34u4 -P `ls /dev/ttyACM*` -c avr109 -U flash:.build/gherkin_bbaserdem.hex +``` diff --git a/keyboards/gherkin/keymaps/bbaserdem/config.h b/keyboards/gherkin/keymaps/bbaserdem/config.h new file mode 100644 index 0000000000..2bd89e8ece --- /dev/null +++ b/keyboards/gherkin/keymaps/bbaserdem/config.h @@ -0,0 +1,13 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" +#define RGB_DI_PIN F6 +#define RGBLED_NUM 10 +#define RGBLIGHT_ANIMATIONS +#ifdef BACKLIGHT_LEVELS +#undef BACKLIGHT_LEVELS +#endif +#define BACKLIGHT_LEVELS 3 + +#endif diff --git a/keyboards/gherkin/keymaps/bbaserdem/keymap.c b/keyboards/gherkin/keymaps/bbaserdem/keymap.c new file mode 100644 index 0000000000..6e9898a277 --- /dev/null +++ b/keyboards/gherkin/keymaps/bbaserdem/keymap.c @@ -0,0 +1,36 @@ +// This is a game-pad gherkin layout with RGB and LED lights + +#include "gherkin.h" + +backlight_config_t backlight_config; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Game pad + * ,-----------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | Ctl | Alt | ~ | + * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| + * | Tab | Q | W | E | R | T | |^| | ; | ' | / | + * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| + * | Shf | A | S | D | F | <-- | |v| | --> | , | . | + * `-----------------------------------------------------------' + */ + KEYMAP( + KC_ESCAPE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_LCTRL, KC_LALT, KC_GRAVE, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_UP, KC_SCLN, KC_QUOTE, KC_SLASH, + KC_LSHIFT, KC_A, KC_S, KC_D, KC_F, KC_LEFT, KC_DOWN, KC_RIGHT, KC_COMMA, KC_DOT + ) +}; + +void matrix_init_user(void) { + // Set LED's to max + _delay_us(300); + backlight_config.level = 2; + backlight_config.enable = 1; + eeconfig_update_backlight(backlight_config.raw); + backlight_set(backlight_config.level); + // Set RGB to rainbow mood light + rgblight_enable(); + rgblight_mode(1); + rgblight_sethsv(120,255,255); + rgblight_mode(6); +} diff --git a/keyboards/gherkin/keymaps/bbaserdem/rules.mk b/keyboards/gherkin/keymaps/bbaserdem/rules.mk new file mode 100644 index 0000000000..4e3a41820b --- /dev/null +++ b/keyboards/gherkin/keymaps/bbaserdem/rules.mk @@ -0,0 +1,14 @@ +ifndef QUANTUM_DIR + include ../../../../Makefile +endif + +STENO_ENABLE = no # Additional protocols for Stenography(+1700), requires VIRTSER +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = no # 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 +AUDIO_ENABLE = no # Enable audio output from keyboard +RGBLIGHT_ENABLE = yes # Enable RBG light strips +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality diff --git a/keyboards/lets_split/keymaps/bbaserdem/README.md b/keyboards/lets_split/keymaps/bbaserdem/README.md new file mode 100644 index 0000000000..4b37d73555 --- /dev/null +++ b/keyboards/lets_split/keymaps/bbaserdem/README.md @@ -0,0 +1,27 @@ +# Lets Split Layout + +Check out [user readme](../../../../users/bbaserdem/README.md) for more info. + +# Usage + +**These commands depend on there being no other arduino connected!** +Also udev rules can be set instead of using sudo. +Please unplug all other usb devices. + +To make the hex files; +``` +make lets_split/rev2:bbaserdem +make lets_split/rev2:bbaserdem_right +``` + +For the left half, after plugging in and resetting; (from repo main directory) +``` +sudo avrdude -p atmega32u4 -P "$(ls /dev/ttyACM*)" -c avr109 -D -U flash:w:.build/lets_split_rev2_bbaserdem.hex +sudo avrdude -p atmega32u4 -P "$(ls /dev/ttyACM*)" -c avr109 -U eeprom:w:keyboards/lets_split/eeprom-lefthand.eep +``` + +For the right half; +``` +sudo avrdude -p atmgea34u4 -P "$(ls /dev/ttyACM*)" -c avr109 -D -U flash:w:.build/lets_split_rev2_bbaserdem_right.hex +sudo avrdude -p atmega32u4 -P "$(ls /dev/ttyACM*)" -c avr109 -U eeprom:w:keyboards/lets_split/eeprom-righhand.eep +``` diff --git a/keyboards/lets_split/keymaps/bbaserdem/config.h b/keyboards/lets_split/keymaps/bbaserdem/config.h new file mode 100755 index 0000000000..f908e6d9a8 --- /dev/null +++ b/keyboards/lets_split/keymaps/bbaserdem/config.h @@ -0,0 +1,27 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +#define USE_SERIAL +#define EE_HANDS + +// LED strip stuff +#ifdef RGBLIGHT_ENABLE + +// Who thought it was a good idea to predefine these in the rev2/config.h ??? +#ifdef RGBLED_NUM +#undef RGBLED_NUM +#endif +#define RGBLED_NUM 12 + +#define RGBLIGHT_HUE_STEP 6 +#define RGBLIGHT_SAT_STEP 12 +#define RGBLIGHT_VAL_STEP 20 +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_EFFECT_SNAKE_LENGTH 6 +#define RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL 2000 +#define RGBLIGHT_EFFECT_CHRISTMAS_STEP 1 +#endif + +#endif diff --git a/keyboards/lets_split/keymaps/bbaserdem/keymap.c b/keyboards/lets_split/keymaps/bbaserdem/keymap.c new file mode 100755 index 0000000000..09da67a69f --- /dev/null +++ b/keyboards/lets_split/keymaps/bbaserdem/keymap.c @@ -0,0 +1,37 @@ +/* + * Let's Split - Dvorak turkish + * Keymap by @bbaserdem + * Dvorak layout with multiple features + * Most of the code is in the "user" directory. + * Check qmk_firmware/users/bbaserdem for the main part of the code + */ +#define KEYMAP(...) LAYOUT_ortho_4x12(__VA_ARGS__) + +#include "lets_split.h" +#include "bbaserdem.h" + + +void matrix_init_keymap (void) { +} + +uint32_t layer_state_set_keymap(uint32_t state) { + return state; +} + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // Main Dvorak layer + [_DV] = DVORAK, + // Turkish and special character overlay + [_AL] = ALTCHAR, + // Gaming layer + [_GA] = GAME, + // Numbers layer + [_NU] = NUMBERS, + // Settings layer + [_SE] = SETTINGS, + // Mouse emulation layer + [_MO] = MOUSE, +#ifdef AUDIO_ENABLE + [_MU] = MUSIC, +#endif +}; diff --git a/keyboards/lets_split/keymaps/bbaserdem/rules.mk b/keyboards/lets_split/keymaps/bbaserdem/rules.mk new file mode 100755 index 0000000000..4159db3fee --- /dev/null +++ b/keyboards/lets_split/keymaps/bbaserdem/rules.mk @@ -0,0 +1,11 @@ +# Build options + +BACKLIGHT_ENABLE = no # Switch LEDs +MOUSEKEY_ENABLE = yes # Emulates mouse key using keypresses +RGBLIGHT_ENABLE = yes # LED strips +TAP_DANCE_ENABLE = no # Use multi-tap features +AUDIO_ENABLE = no # Audio stuff + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/lets_split/keymaps/bbaserdem_right/README.md b/keyboards/lets_split/keymaps/bbaserdem_right/README.md new file mode 100644 index 0000000000..8608f23f79 --- /dev/null +++ b/keyboards/lets_split/keymaps/bbaserdem_right/README.md @@ -0,0 +1,5 @@ +# Lets Split - Right Half + +Keymap for my right half, to be used as a numpad. +Check [main readme](../bbaserdem/README.md) for flashing info. + diff --git a/keyboards/lets_split/keymaps/bbaserdem_right/config.h b/keyboards/lets_split/keymaps/bbaserdem_right/config.h new file mode 100755 index 0000000000..9b6527db23 --- /dev/null +++ b/keyboards/lets_split/keymaps/bbaserdem_right/config.h @@ -0,0 +1,9 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +#define USE_SERIAL +#define EE_HANDS + +#endif diff --git a/keyboards/lets_split/keymaps/bbaserdem_right/keymap.c b/keyboards/lets_split/keymaps/bbaserdem_right/keymap.c new file mode 100755 index 0000000000..c7a81ecb5a --- /dev/null +++ b/keyboards/lets_split/keymaps/bbaserdem_right/keymap.c @@ -0,0 +1,35 @@ +/* + * Let's Split - Dvorak turkish + * Keymap by @bbaserdem + * Dvorak layout with multiple features + * Most of the code is in the "user" directory. + * Check qmk_firmware/users/bbaserdem for the main part of the code + */ + +#include "lets_split.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + +/* Navigation All Supered) Numpad + * ,-----------------------. ,-----------------------. + * | F4| ` | Q |Alt| L | > | | ) | - | + | = |Ent|Bkp| + * |---+---+---+---+---+---| |---+---+---+---+---+---| + * | F3| M |Ent|Ctl| K | ^ | | ( | * | 9 | 6 | 3 | . | + * |---+---+---+---+---+---| |---+---+---+---+---+---| + * | F2| T |Spc|Shf| J | v | | % | / | 8 | 5 | 2 | , | + * |---+---+---+---+---+---| |---+---+---+---+---+---| + * | F1| F | P |Tab| H | < | |Nlc|Tab| 7 | 4 | 1 | 0 | + * `-----------------------' `-----------------------' + */ + // Main Dvorak layer + [0] = KEYMAP( + LGUI(KC_F4), LGUI(KC_GRV), LGUI(KC_Q), LGUI(KC_LALT), LGUI(KC_L), LGUI(KC_RGHT), + KC_RPRN, KC_PMNS, KC_PPLS, KC_PEQL, KC_PENT, KC_BSPC, + LGUI(KC_F3), LGUI(KC_M), LGUI(KC_ENT), LGUI(KC_LCTL), LGUI(KC_K), LGUI(KC_UP), + KC_LPRN, KC_PAST, KC_P9, KC_P6, KC_P3, KC_PDOT, + LGUI(KC_F2), LGUI(KC_T), LGUI(KC_SPC), LGUI(KC_LSFT), LGUI(KC_J), LGUI(KC_DOWN), + KC_PERC, KC_PSLS, KC_P8, KC_P5, KC_P2, KC_PCMM, + LGUI(KC_F1), LGUI(KC_F), LGUI(KC_P), LGUI(KC_TAB), LGUI(KC_H), LGUI(KC_LEFT), + KC_NLCK, KC_TAB, KC_P7, KC_P4, KC_P1, KC_P0 ) +}; diff --git a/keyboards/lets_split/keymaps/bbaserdem_right/rules.mk b/keyboards/lets_split/keymaps/bbaserdem_right/rules.mk new file mode 100755 index 0000000000..65a64c94f2 --- /dev/null +++ b/keyboards/lets_split/keymaps/bbaserdem_right/rules.mk @@ -0,0 +1,24 @@ +# Build options + +BACKLIGHT_ENABLE = no # Switch LEDs +MOUSEKEY_ENABLE = no # Emulates mouse key using keypresses +RGBLIGHT_ENABLE = no # LED strips +TAP_DANCE_ENABLE = no # Use multi-tap features +AUDIO_ENABLE = no # Audio stuff +BLUETOOTH_ENABLE = no # No bluetooth +COMMAND_ENABLE = no # Some bootmagic thing +BOOTMAGIC_ENABLE = no # Access to EEPROM settings, not needed +CONSOLE_ENABLE = no # Allows console output with a command +SLEEP_LED_ENABLE = no # Breathes LED's when computer is asleep. Untested. +NKRO_ENABLE = no # Default is 6KRO which is plenty +MIDI_ENABLE = no # Untested feature +FAUXCLICKY_ENABLE = no # Emulates clicks using speaker +KEY_LOCK_ENABLE = no # Allows locking any key. Not used +API_SYSEX_ENABLE = no # Allows OS to send signals. +KEY_LOCK_ENABLE = no # Allows locking any key. Not used +UNICODE_ENABLE = no # Used for unicode character emulation +EXTRAKEY_ENABLE = no # OS signals like volume control + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/planck/keymaps/bbaserdem/README.md b/keyboards/planck/keymaps/bbaserdem/README.md index 8813075662..c8e8c3963c 100644 --- a/keyboards/planck/keymaps/bbaserdem/README.md +++ b/keyboards/planck/keymaps/bbaserdem/README.md @@ -1,35 +1,15 @@ # Planck Layout -Built this planck layout to use DVORAK with an unorthodox Turkish layout. -If you used a previous layout with a persistent base layer change, -change it to 0 before proceeding. -The layout has the following functionality +Current keymap is for rev4. +Audio is disabled in favor of RGB. +Check out [user readme](../../../../users/bbaserdem/README.md) for more info. -* **QWERTY** can be toggled on/off from **Function** layer. -* **Mouse** layer allows manipulation of the mouse. -* **Function** layer has F and special keys. -* **Symbol** layer has numericals and symbols. -* **Game** layout can be toggled on/off from **Function** layer. -* **Music** layer allows playing sounds like a keyboard. +# Build -Double tapping **Mouse**, **Function** and **Symbol** layers activate them until deacivation. -Topleftmost key turns off **Function**, **Symbol**, **Game** and **Music** layers, -and puts the board into *reset* mode from the **Mouse** layer. +Get keyboard into reset mode, and then; -# Using Turkish letters +``` +make planck/rev4:bbaserdem:dfu +``` -Instead of a turkish F keyboard layout (very inconvenient to code in), -I opted to modulate characters like an *AltGr* impleentation. -Tap and holding *Alt* on **DVORAK** and **QWERTY** layer will change some letters -to Turkish equivelants. -Shifting these letters will work. -The keycodes should transmit the correct unicode characters combined with shift. -The turkish letters are sent via the unicode implementation. -No software layout change is neccessary (hence making coding easier). -By default, the unicode is set to Linux mode. Switch to windows (non-persistent) -can be done from the associated key in **Function** layer. -**Symbol** layer also has the symbol for Turkish Lira. - -# To improve - -I want to write a couple pieces of my own music for layer switching. +Either use sudo or set up udev rules. diff --git a/keyboards/planck/keymaps/bbaserdem/config.h b/keyboards/planck/keymaps/bbaserdem/config.h index d7632aecda..2edb45673c 100644..100755 --- a/keyboards/planck/keymaps/bbaserdem/config.h +++ b/keyboards/planck/keymaps/bbaserdem/config.h @@ -3,42 +3,20 @@ #include "../../config.h" -#ifdef AUDIO_ENABLE - // Compose own song in future - #define STARTUP_SONG SONG(PLANCK_SOUND) - - #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ - SONG(COLEMAK_SOUND), \ - SONG(DVORAK_SOUND) \ - } +// LED strip stuff +#ifdef RGBLIGHT_ENABLE +#define RGB_DI_PIN B2 +#define RGBLED_NUM 12 +#define RGBLIGHT_HUE_STEP 6 +#define RGBLIGHT_SAT_STEP 12 +#define RGBLIGHT_VAL_STEP 20 +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_EFFECT_SNAKE_LENGTH 6 +#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2 +#define RGBLIGHT_EFFECT_KNIGHT_OFFSET 6 +#define RGBLIGHT_EFFECT_KNIGHT_LED_NUM 6 +#define RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL 2000 +#define RGBLIGHT_EFFECT_CHRISTMAS_STEP 1 #endif -// Enables tap magic -#define TAPPING_TERM 300 -#define TAPPING_TOGGLE 1 - -/* - * MIDI options - */ - -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - -/* enable basic MIDI features: - - MIDI notes can be sent when in Music mode is on -*/ - -#define MIDI_BASIC - -/* enable advanced MIDI features: - - MIDI notes can be added to the keymap - - Octave shift and transpose - - Virtual sustain, portamento, and modulation wheel - - etc. -*/ -//#define MIDI_ADVANCED - -/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ -//#define MIDI_TONE_KEYCODE_OCTAVES 2 - #endif diff --git a/keyboards/planck/keymaps/bbaserdem/keymap.c b/keyboards/planck/keymaps/bbaserdem/keymap.c index 74dfabdecf..063e9a98ef 100644..100755 --- a/keyboards/planck/keymaps/bbaserdem/keymap.c +++ b/keyboards/planck/keymaps/bbaserdem/keymap.c @@ -1,413 +1,29 @@ -/* Copyright 2015-2017 Jack Humbert - * - * 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/>. +/* + * PLANCK - Dvorak turkish + * Keymap by @bbaserdem + * Dvorak layout with multiple features + * Most of the code is in the "user" directory. + * Check qmk_firmware/users/bbaserdem for the main part of the code */ #include "planck.h" - -#define _______ KC_TRNS -#define XXX KC_NO - -#define _DV 0 -#define _TD 1 -#define _GM 2 -#define _MO 3 -#define _SY 4 -#define _FN 5 -#define _MS 6 - -#define PARAN TD(PAR) -#define CURLY TD(CUR) -#define SQUAR TD(SQU) -#define ANGUL TD(ANG) - -#define UNDO LCTL(KC_Z) -#define REDO LCTL(KC_Y) -#define COPYCUT TD(CPC) -#define PASTE LCTL(KC_V) - -#define MO_SC_U KC_MS_WH_UP -#define MO_SC_D KC_MS_WH_DOWN -#define MO_SC_L KC_MS_WH_LEFT -#define MO_SC_R KC_MS_WH_RIGHT -#define MO_U KC_MS_UP -#define MO_D KC_MS_DOWN -#define MO_L KC_MS_LEFT -#define MO_R KC_MS_RIGHT -#define MO_CL_L KC_MS_BTN1 -#define MO_CL_R KC_MS_BTN2 -#define MO_CL_M KC_MS_BTN3 -#define MO_CL_1 KC_MS_BTN4 -#define MO_CL_2 KC_MS_BTN5 -#define MO_AC_0 KC_MS_ACCEL0 -#define MO_AC_1 KC_MS_ACCEL1 -#define MO_AC_2 KC_MS_ACCEL2 - -#define PHY_HB UC(0x0127) -#define PHY_DE UC(0xc2b0) -#define TUR_TL UC(0x20ba) -#define EUR_ER UC(0x20ac) -#define EUR_PN UC(0x00a3) - -enum custom_keycodes { - TUR_A = SAFE_RANGE, - TUR_C, - TUR_G, - TUR_I, - TUR_O, - TUR_S, - TUR_U, - UNI_LI, - UNI_WN -}; - -// Tap dance -enum { - ATD = 0, - CLS, - SCL, - QUO, - PAR, - CUR, - SQU, - ANG, - CPC -}; +#include "bbaserdem.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* Dvorak - * ,------------------------------------------------------------------------. - * | Blt | " | , | . | P | Y || F | G | C | R | L | Bkp | - * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----| - * | Esc | A | O | E | U | I || D | H | T | N | S | Del | - * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----| - * |Sh\CL| ; : | Q | J | K | X || B | M | W | V | Z |MOUSE| - * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----| - * | Ctl | Alt | Meta| Tab | SYM | Spc || Ent | FUN | Lft | Dwn | Up | Rgt | - * `------------------------------------------------------------------------' - */ -[_DV] = { - {BL_STEP,TD(QUO),KC_COMM,KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, - {KC_ESC ,KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_DEL }, - {TD(CLS),TD(SCL),KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, TT(_MO)}, - {KC_LCTL,TD(ATD),KC_LGUI,KC_TAB, TT(_SY),KC_SPC, KC_ENT, TT(_FN),KC_LEFT,KC_DOWN,KC_UP, KC_RGHT} -}, -[_TD] = { - {_______,_______,_______,_______,_______,_______,_______, TUR_G, TUR_C, _______,_______,_______}, - {_______, TUR_A, TUR_O, _______, TUR_U, TUR_I, _______, PHY_HB,_______,_______, TUR_S, _______}, - {_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______}, - {_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______} -}, - -/* Game layer - * ,------------------------------------------------------------------------. - * | OFF | Q | W | E | R | T || F1 | F2 | Ctrl| ^ |Shift| Esc | - * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----| - * | ~ | A | S | D | F | G || F3 | F4 | < | v | > |Enter| - * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----| - * | Shf | Z | X | C | V | B || F5 | F6 | , | . | / ? | Alt | - * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----| - * | Alt | Ctrl| ` ~ | - _ | | Spc || Spc | | 1 | 2 | 3 | 4 | - * `------------------------------------------------------------------------' - */ -[_GM] = { - {TG(_GM),KC_Q, KC_W, KC_E, KC_R, KC_T, KC_F1, KC_F2, KC_RCTL,KC_UP, KC_RSFT,KC_ESC }, - {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_F3, KC_F4, KC_LEFT,KC_DOWN,KC_RGHT,KC_ENT }, - {KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_F5, KC_F6, KC_COMM,KC_DOT, KC_SLSH,KC_RALT}, - {KC_LALT,KC_LCTL,KC_GRV, KC_MINS,_______,KC_SPC, KC_SPC, _______,KC_1, KC_2, KC_3, KC_4 } -}, - -/* Mouse control layer - * ,------------------------------------------------------------------------. - * | |.....| ^ |.....|.....|Acc 2||.....|.....|.....| |^| |.....| | - * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----| - * | | < | v | > |.....|Acc 1||.....|.....| <-- | |v| | --> | | - * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----| - * | | Left| Mid |Right|.....|Acc 0||.....|.....|Btn 4|.....|Btn 5| | - * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----| - * | | | | | | || | | | | | | - * `------------------------------------------------------------------------' - */ -[_MO] = { - {TG(_MO),XXX, MO_U, XXX, XXX, MO_AC_2,XXX, XXX, XXX, MO_SC_U,XXX, _______}, - {_______,MO_L, MO_D, MO_R, XXX, MO_AC_1,XXX, XXX, MO_SC_L,MO_SC_D,MO_SC_R,_______}, - {_______,MO_CL_L,MO_CL_M,MO_CL_R,XXX, MO_AC_0,XXX, XXX, MO_CL_1,XXX, MO_CL_2,_______}, - {_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______} -}, - -/* Symbols layer - * ,------------------------------------------------------------------------. - * | OFF | ! | 1 | 2 | 3 | & || = | + | - | * | % | | - * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----| - * | _ | ( ) | 4 | 5 | 6 | \ || / | [ ] | { } | < > | | | | - * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----| - * |degre| ? | 7 | 8 | 9 | ~ || ` | @ | # | $ | ^ | | - * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----| - * | | | | 0 | | || | |TLira| Euro|Pound| | - * `------------------------------------------------------------------------' - */ - -[_SY] = { - {TG(_SY),KC_EXLM,KC_1, KC_2, KC_3, KC_AMPR,KC_EQL, KC_PLUS,KC_MINS,KC_ASTR,KC_PERC,_______}, - {KC_UNDS,PARAN, KC_4, KC_5, KC_6, KC_BSLS,KC_SLSH,SQUAR, CURLY, ANGUL, KC_PIPE,_______}, - {PHY_DE, KC_QUES,KC_7, KC_8, KC_9, KC_TILD,KC_GRV, KC_AT, KC_HASH,KC_DLR, KC_CIRC,_______}, - {_______,_______,_______,KC_0, _______,_______,_______,_______,TUR_TL, EUR_ER, EUR_PN, _______} -}, - -/* Function layer - * ,------------------------------------------------------------------------. - * | OFF | game|music| | |RESET||RESET| win | lin | wake|sleep|power| - * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----| - * | F1 | F2 | F3 | F4 | F5 | F6 || F7 | F8 | F9 | F10 | F11 | F12 | - * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----| - * | | undo| redo|cutcp|paste|vol 0||prtsc| ins | rev.| stop| play| next| - * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----| - * | | | | | |vol -||vol +| | home|pg dn|pg up| end | - * `------------------------------------------------------------------------' - */ - -[_FN] = { - {TG(_FN),TG(_GM),MU_ON, _______,_______,RESET, RESET, UNI_LI, UNI_WN ,KC_WAKE,KC_SLEP,KC_PWR }, - {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12 }, - {_______,UNDO, REDO, COPYCUT,PASTE, KC_MUTE,KC_PSCR,KC_INS, KC_MPRV,KC_MSTP,KC_MPLY,KC_MNXT}, - {_______,_______,_______,_______,_______,KC_VOLD,KC_VOLU,_______,KC_HOME,KC_PGDN,KC_PGUP,KC_END } -}, - -/* Music layer - * ,-----------------------------------------------------------------------. - * | OFF |rec S| stop| play|sped^|spedv|cycle|.....|.....|.....|.....|.....| - * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| - * |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| - * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| - * |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| - * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| - * |.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....|.....| - * `-----------------------------------------------------------------------' - */ -[_MS] = { - { MU_OFF, KC_LCTL, KC_LALT, KC_LGUI, KC_UP, KC_DOWN, MU_MOD, XXX, XXX, XXX, XXX, XXX }, - { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX }, - { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX }, - { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } -} -}; - -// Set unicode method to linux. -void matrix_init_user(){ - set_unicode_input_mode(UC_LNX); -} - -// User defined keys -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - // This section is a bit tedious in VIM, so I shortened lines - // Check for shift letter - bool is_capital = ( keyboard_report->mods & - (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) ) ^ - ( keyboard_report->mods & MOD_BIT(KC_CAPS) ); - switch (keycode) { - // Add music layer to music functionality - case MU_ON: - if (record->event.pressed) { layer_on(_MS); } - return true; break; - case MU_OFF: - if (record->event.pressed) { layer_off(_MS); } - return true; break; - // Turkish letters keycodes - case TUR_A: - if (record->event.pressed) { - if ( is_capital ) { - unicode_input_start(); register_hex(0x00c2); unicode_input_finish(); - } else { - unicode_input_start(); register_hex(0x00e2); unicode_input_finish(); - } - } - return false; break; - case TUR_U: - if (record->event.pressed) { - if ( is_capital ) { - unicode_input_start(); register_hex(0x00dc); unicode_input_finish(); - } else { - unicode_input_start(); register_hex(0x00fc); unicode_input_finish(); - } - } - return false; break; - case TUR_I: - if (record->event.pressed) { - if ( is_capital ) { - unicode_input_start(); register_hex(0x0130); unicode_input_finish(); - } else { - unicode_input_start(); register_hex(0x0131); unicode_input_finish(); - } - } - return false; break; - case TUR_O: - if (record->event.pressed) { - if ( is_capital ) { - unicode_input_start(); register_hex(0x00d6); unicode_input_finish(); - } else { - unicode_input_start(); register_hex(0x00f6); unicode_input_finish(); - } - } - return false; break; - case TUR_S: - if (record->event.pressed) { - if ( is_capital ) { - unicode_input_start(); register_hex(0x015e); unicode_input_finish(); - } else { - unicode_input_start(); register_hex(0x015f); unicode_input_finish(); - } - } - return false; break; - case TUR_G: - if (record->event.pressed) { - if ( is_capital ) { - unicode_input_start(); register_hex(0x011e); unicode_input_finish(); - } else { - unicode_input_start(); register_hex(0x011f); unicode_input_finish(); - } - } - return false; break; - case TUR_C: - if (record->event.pressed) { - if ( is_capital ) { - unicode_input_start(); register_hex(0x00c7); unicode_input_finish(); - } else { - unicode_input_start(); register_hex(0x00e7); unicode_input_finish(); - } - } - return false; break; - // Keys to change unicode mode - case UNI_LI: - if( record->event.pressed ) { - set_unicode_input_mode(UC_LNX); - } - return false; break; - case UNI_WN: - if( record->event.pressed ) { - set_unicode_input_mode(UC_WIN); - } - return false; break; - } - return true; -} - -// Tap dance feature for the altgr implementation -void altgr_dvo_tap (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - register_code (KC_RALT); - } else if (state->count == 2) { - unregister_code (KC_RALT); - layer_on(_TD); - } else if (state->count == 3) { - layer_off(_TD); - } -} -void altgr_dvo_end (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - unregister_code (KC_RALT); - } else if (state->count == 2) { - layer_off(_TD); - } -} - -// Shift vs capslock function -void caps_tap (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - register_code (KC_LSFT); - } else if (state->count == 2) { - unregister_code (KC_LSFT); - register_code (KC_CAPS); - } -} -void caps_tap_end (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - unregister_code (KC_LSFT); - } else { - unregister_code (KC_CAPS); - } -} - -// Parantheses -void paranthesis_dance (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - SEND_STRING("()"); register_code(KC_LEFT); unregister_code(KC_LEFT); - } else if (state->count == 2) { - SEND_STRING("("); - } else if (state->count == 3) { - SEND_STRING(")"); - } -} -void curly_dance (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - SEND_STRING("{}"); register_code(KC_LEFT); unregister_code(KC_LEFT); - } else if (state->count == 2) { - SEND_STRING("{"); - } else if (state->count == 3) { - SEND_STRING("}"); - } -} - -void square_dance (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - SEND_STRING("[]"); register_code(KC_LEFT); unregister_code(KC_LEFT); - } else if (state->count == 2) { - SEND_STRING("["); - } else if (state->count == 3) { - SEND_STRING("]"); - } -} - -void angular_dance (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - SEND_STRING("<>"); register_code(KC_LEFT); unregister_code(KC_LEFT); - } else if (state->count == 2) { - SEND_STRING("<"); - } else if (state->count == 3) { - SEND_STRING(">"); - } -} - -// Copy or cut feature -void copy_cut (qk_tap_dance_state_t *state, void *user_data) { - if (state->count == 1) { - regis |