User space fixed (#3095)

* Put in my keymaps

* Fixed all but weird lets split issue

* Organized and tried to trobleshoot lets split

* Organized and tried to trobleshoot lets split

* Added bbaserdem keymaps

* Added bbaserdem keymaps

* Fixed stuff

* FIxed a filename error
This commit is contained in:
Batuhan Baserdem
2018-05-31 21:55:45 -04:00
committed by Drashna Jaelre
parent abce980b8b
commit 8eaf23ae81
24 changed files with 1425 additions and 489 deletions

View File

@ -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
```

View File

@ -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

View File

@ -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);
}

View File

@ -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

View File

@ -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
```

View File

@ -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

View File

@ -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
};

View File

@ -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

View File

@ -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.

View File

@ -0,0 +1,9 @@
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#include "../../config.h"
#define USE_SERIAL
#define EE_HANDS
#endif

View File

@ -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 )
};

View File

@ -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

View File

@ -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.

50
keyboards/planck/keymaps/bbaserdem/config.h Normal file → Executable file
View File

@ -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

430
keyboards/planck/keymaps/bbaserdem/keymap.c Normal file → Executable file

File diff suppressed because it is too large Load Diff

22
keyboards/planck/keymaps/bbaserdem/rules.mk Normal file → Executable file
View File

@ -1,22 +1,10 @@
# Build options
# ENABLE
TAP_DANCE_ENABLE = yes
UNICODE_ENABLE = yes
MOUSEKEY_ENABLE = yes
EXTRAKEY_ENABLE = yes
NKRO_ENABLE = yes
BACKLIGHT_ENABLE = yes
AUDIO_ENABLE = yes
# DISABLE
BOOTMAGIC_ENABLE = no
MIDI_ENABLE = no
# Not for planck
RGBLIGHT_ENABLE = no #Clashes with audio
BLUETOOTH_ENABLE = no #No bluetooth
SLEEP_LED_ENABLE = no #Uses BACKLIGHT_ENABLE rimer
BACKLIGHT_ENABLE = yes # 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

View File

@ -0,0 +1,22 @@
/* Copyright 2017 REPLACE_WITH_YOUR_NAME
*
* 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/>.
*/
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#include "../../config.h"
#endif

View File

@ -0,0 +1,80 @@
#include "xd75.h"
#include "bbaserdem.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Layout
* ,-----------------------------------------------------------.
* |Blt|Lck| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |
* |---+---+-----------------------------------------------+---|
* |Int|Trm| |Cps|
* |---+---| |---|
* |Clc|Psw| | \ |
* |---+---| PLANCK |---|
* |Rev|Ffw| | [ |
* |---+---| |---|
* |Tog|Mut| | ] |
* `-----------------------------------------------------------'
*/
[_DV] = KM(
BL_STEP, LGUI(KC_ESC), 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_WHOM, LGUI(KC_ENT), DVORAK_1, KC_CAPS,
KC_CALC, LGUI(KC_P), DVORAK_2, KC_BSLS,
KC_MPRV, KC_MNXT, DVORAK_3, KC_LBRC,
KC_MPLY, KC_MUTE, DVORAK_4, KC_RBRC ),
[_AL] = KM(
_______,_______,_______,_______,_______,_______,
_______,_______,_______,_______,_______,_______,
_______,_______,_______,
_______,_______, ALTCHAR_1, _______,
_______,_______, ALTCHAR_2, _______,
_______,_______, ALTCHAR_3, _______,
_______,_______, ALTCHAR_4, _______ ),
[_GA] = KM(
_______,_______,_______,_______,_______,_______,
_______,_______,_______,_______,_______,_______,
_______,_______,_______,
_______,_______, GAME_1, _______,
_______,_______, GAME_2, _______,
_______,_______, GAME_3, _______,
_______,_______, GAME_4, _______ ),
[_NU] = KM(
_______,_______,_______,_______,_______,_______,
_______,_______,_______,_______,_______,_______,
_______,_______,_______,
_______,_______, NUMBERS_1, _______,
_______,_______, NUMBERS_2, _______,
_______,_______, NUMBERS_3, _______,
_______,_______, NUMBERS_4, _______ ),
[_SE] = KM(
_______,_______,_______,_______,_______,_______,
_______,_______,_______,_______,_______,_______,
_______,_______,_______,
_______,_______, SETTINGS_1, _______,
_______,_______, SETTINGS_2, _______,
_______,_______, SETTINGS_3, _______,
_______,_______, SETTINGS_4, _______ ),
[_MO] = KM(
_______,_______,_______,_______,_______,_______,
_______,_______,_______,_______,_______,_______,
_______,_______,_______,
_______,_______, MOUSE_1, _______,
_______,_______, MOUSE_2, _______,
_______,_______, MOUSE_3, _______,
_______,_______, MOUSE_4, _______ ),
#ifdef AUDIO_ENABLE
[_MU] = KM(
XXX, XXX, MASK, XXX,
XXX, XXX, MASK, XXX,
XXX, XXX, MASK, XXX,
XXX, XXX, MASK, XXX,
XXX, XXX, MUSIC_4, XXX ),
#endif
};

View File

@ -0,0 +1,12 @@
# XD75RE Setup
This layout is the xd75re layout, inspired by my planck keymap.
Contains some code from the original keymap here, but had to be modded.
# Make
Take the board into reset mode, then
```
make xd75:bbaserdem:dfu
```
Either sudo it or set permissions in udev.

View File

@ -0,0 +1,10 @@
# Build options
BACKLIGHT_ENABLE = yes # Switch LEDs
MOUSEKEY_ENABLE = yes # Emulates mouse key using keypresses
RGBLIGHT_ENABLE = no # LED strips
TAP_DANCE_ENABLE = no # Use multi-tap features
AUDIO_ENABLE = no # Audio stuff
ifndef QUANTUM_DIR
include ../../../../Makefile
endif

49
users/bbaserdem/README.md Normal file
View File

@ -0,0 +1,49 @@
# Overview
I have mostly ortholinear keyboards, which share a lot of functions.
For this purpose, I collected them here.
I have the following keymaps:
* Gherkin (Does not use the user space)
* Let's Split
* Let's Split It Up
* Planck
# Layout
I use DVORAK with an unorthodox Turkish layout.
If you wanna grab my code, andused a previous layout with a persistent base
layer change, change it to layer 0 before proceeding.
# Layers
* **Dvorak**: Base layer,withdvorak layout.
* **Alternative**: Has alternate characters.
* **Game**: Toggled from *Function*, comfortable for gaming use.
* **Numeric**: Has numericals and symbols. Can be locked.
* **Function**: Layer has media and function keys.
* **Mouse**: Manipulates mouse. Can be locked.
* **Music** Allows playing sounds like a keyboard.
# Functionality
* **RGB Backlight**: With layer indication, and ability to change base layer lighting mode.
* **Secrets**: By placing a secrets.h, and not tracking it, you can store passwords etc.
* **Mouse**: Mouse emulation, complete with diagonal keys.
* **Turkish**: An AltGr-like overlay that allows some non-common letters, in unicode.
I suggest checking out how I enabled shifting for Turkish layer,
how I planned out RGB lighting, and my mouse implementation; they might offer
some insight into fringe user cases.
# Issues
All features are too big for the 32kB bootloader.
Offenders are audio and rgb lights; it comes down to one or the other.
~The Proton board, and rev 6 should fix that.~
# Credits
I have previously written my keymap by myself before, but I rewrote it here,
heavily inspired by @drashna's user folder.

651
users/bbaserdem/bbaserdem.c Normal file

File diff suppressed because it is too large Load Diff

279
users/bbaserdem/bbaserdem.h Normal file
View File

@ -0,0 +1,279 @@
#ifndef USERSPACE
#define USERSPACE
#include "quantum.h"
// Use 7 wide characters for keymaps
#define _______ KC_TRNS
#define XXX KC_NO
// Layers
#define _DV 0 // Base layer
#define _AL 1 // Alt char overlay
#define _GA 2 // Game layer
#define _NU 3 // Numbers layer
#define _SE 4 // Settings layer
#define _MO 5 // Mouse emulation
#define _MU 6 // Music mode
// Define short macros
#define UNDO LCTL(KC_Z)
#define REDO LCTL(KC_Y)
#define COPY LCTL(KC_C)
#define CUT LCTL(KC_X)
#define PASTE LCTL(KC_V)
// Rename mouse keys
#ifdef MOUSEKEY_ENABLE
#define MO_S_N KC_MS_WH_UP
#define MO_S_S KC_MS_WH_DOWN
#define MO_S_E KC_MS_WH_RIGHT
#define MO_S_W KC_MS_WH_LEFT
#define MO_N KC_MS_UP
#define MO_S KC_MS_DOWN
#define MO_E KC_MS_RIGHT
#define MO_W KC_MS_LEFT
#define MO_CL_L KC_MS_BTN1
#define MO_CL_R KC_MS_BTN2
#define MO_CL_M KC_MS_BTN3
#define MO_CL_4 KC_MS_BTN4
#define MO_CL_5 KC_MS_BTN5
#define MO_AC_0 KC_MS_ACCEL0
#define MO_AC_1 KC_MS_ACCEL1
#define MO_AC_2 KC_MS_ACCEL2
#else
#define MO_S_N KC_NO
#define MO_S_S KC_NO
#define MO_S_E KC_NO
#define MO_S_W KC_NO
#define MO_N KC_NO
#define MO_S KC_NO
#define MO_E KC_NO
#define MO_W KC_NO
#define MO_CL_L KC_NO
#define MO_CL_R KC_NO
#define MO_CL_M KC_NO
#define MO_CL_1 KC_NO
#define MO_CL_2 KC_NO
#define MO_AC_0 KC_NO
#define MO_AC_1 KC_NO
#define MO_AC_2 KC_NO
#endif
// Define non-capitalized UTF shortcuts here
#ifdef UNICODE_ENABLE
#define PHY_HBR UC(0x0127)
#define PHY_DEG UC(0x00b0)
#define CUR_LIR UC(0x20ba)
#define CUR_BIT UC(0x20bf)
#define CUR_EUR UC(0x20ac)
#define CUR_BPN UC(0x00a3)
#define CUR_YEN UC(0x00a5)
#else
#define PHY_HBR KC_NO
#define PHY_DEG KC_NO
#define CUR_LIR KC_NO
#define CUR_BIT KC_NO
#define CUR_EUR KC_NO
#define CUR_BPN KC_NO
#define CUR_YEN KC_NO
#endif
// Make only KC_NO be grabbed by music mode
#ifdef AUDIO_ENABLE
#define MUSIC_MASK keycode == XXX
#endif
// Custom keycodes
enum userspace_custom_keycodes {
// Turkish letters, with shifting
TUR_A = SAFE_RANGE,
TUR_C,
TUR_G,
TUR_I,
TUR_O,
TUR_S,
TUR_U,
// Unicode mode switch
UNI_LI,
UNI_WN,
// Double keys
DBL_SPC,
DBL_ANG,
DBL_PAR,
DBL_SQR,
DBL_BRC,
DBL_QUO,
DBL_DQT,
DBL_GRV,
// Diagonal mouse movements
MO_NE,
MO_NW,
MO_SE,
MO_SW,
MO_S_NE,
MO_S_NW,
MO_S_SE,
MO_S_SW,
// Layer switches and lock functionality
K_MOUSE,
K_NUMBR,
K_LOCK,
K_GAMES,
// Secret macros
SECRET1,
SECRET2,
SECRET3
};
// Do tap dancable semicolon key if available
#ifdef TAP_DANCE_ENABLE
#define TAPPING_TERM 300
#define TAPPING_TOGGLE 1
enum {
SCL = 0
};
#define MY_SCL TD(SCL)
#else
#define MY_SCL KC_SCLN
#endif
// Shared keymaps
#define KM(...) KEYMAP(__VA_ARGS__) // Required to expand the CSVs
/* Dvorak
* ,------------------------------------------------------------------------.
* | Esc | ' " | , | . | P | Y || F | G | C | R | L | Bkp |
* |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
* | Tab | A | O | E | U | I || D | H | T | N | S | / ? |
* |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
* | SYM | ; : | Q | J | K | X || B | M | W | V | Z | SET |
* |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
* | TUR | OS | Ctrl| Alt | Shf | Spc || Ent | Lft | Dwn | Up | Rght| MSE |
* `------------------------------------------------------------------------' */
#define DVORAK_1 \
KC_ESC, KC_QUOT,KC_COMM,KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC
#define DVORAK_2 \
KC_TAB, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH
#define DVORAK_3 \
K_NUMBR,MY_SCL, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, MO(_SE)
#define DVORAK_4 \
MO(_AL),KC_LGUI,KC_LCTL,KC_LALT,KC_LSFT,KC_SPC, KC_ENT, KC_LEFT,KC_DOWN,KC_RGHT,KC_UP, K_MOUSE
#define DVORAK KM(DVORAK_1,DVORAK_2,DVORAK_3,DVORAK_4)
/* Alternative character overlay
* ,------------------------------------------------------------------------.
* | | ' ' | Undo| Redo|Pound| Yen || | G | C | |TLira| Del |
* |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
* | | A | O | Euro| U | I ||Degre|Plank| | | S | Ins |
* |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
* | | " " | Cut | Copy|Paste| || BTC | < > | ( ) | [ ] | { } | PgUp|
* |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
* | | | | | | || | Home|PgDwn| PgUp| End | |
* `------------------------------------------------------------------------' */
#define ALTCHAR_1 \
_______,DBL_QUO,UNDO, REDO, CUR_BPN,CUR_YEN,_______,TUR_G, TUR_C, _______,CUR_LIR,KC_DEL
#define ALTCHAR_2 \
_______,TUR_A, TUR_O, CUR_EUR,TUR_U, TUR_I, PHY_DEG,PHY_HBR,_______,_______,TUR_S, KC_INS
#define ALTCHAR_3 \
_______,DBL_DQT,CUT, COPY, PASTE, _______,CUR_BIT,DBL_ANG,DBL_PAR,DBL_SQR,DBL_BRC,_______
#define ALTCHAR_4 \
_______,_______,_______,_______,_______,_______,_______,KC_HOME,KC_PGDN,KC_PGUP,KC_END,_______
#define ALTCHAR KM(ALTCHAR_1,ALTCHAR_2,ALTCHAR_3,ALTCHAR_4)
/* Game layer
* ,------------------------------------------------------------------------.
* | OFF | Q | W | E | R | T || Esc | 7 | 8 | 9 |NumLk|Bkspc|
* |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
* | Tab | A | S | D | F | G || F1 | 4 | 5 | 6 | \ | Ent |
* |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
* | | Z | X | C | V | B || F2 | 1 | 2 | 3 | ^ | |
* |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
* | / | ` | | | | Spc || Spc | Ent | 0 | < | v | > |
* `------------------------------------------------------------------------' */
#define GAME_1 \
K_GAMES,KC_Q, KC_W, KC_E, KC_R, KC_T, KC_ESC, KC_P7, KC_P8, KC_P9, KC_NLCK,KC_BSPC
#define GAME_2 \
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_F1, KC_P4, KC_P5, KC_P6, KC_BSLS,KC_ENT
#define GAME_3 \
_______,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_F2, KC_P1, KC_P2, KC_P3, KC_UP, _______
#define GAME_4 \
KC_SLSH,KC_GRV, _______,_______,_______,KC_SPC, KC_SPC, KC_ENT, KC_P0, KC_LEFT,KC_DOWN,KC_RGHT
#define GAME KM(GAME_1,GAME_2,GAME_3,GAME_4)
/* Symbols layer
* ,------------------------------------------------------------------------.
* | OFF | ` | ~ | [ | ] | { || } | - | _ | = | + | |
* |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
* | | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 | \ |
* |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
* | | ! | @ | # | $ | % || ^ | & | * | ( | ) | LCK |
* |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
* | | | | | | | | || | | | | | |
* `------------------------------------------------------------------------' */
#define NUMBERS_1 \
K_NUMBR,KC_GRV, KC_TILD,KC_LBRC,KC_RBRC,KC_LCBR,KC_RCBR,KC_MINS,KC_UNDS,KC_EQL, KC_PLUS,_______
#define NUMBERS_2 \
_______,KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS
#define NUMBERS_3 \
_______,KC_EXLM,KC_AT, KC_HASH,KC_DLR, KC_PERC,KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,K_LOCK
#define NUMBERS_4 \
KC_PIPE,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______
#define NUMBERS KM(NUMBERS_1,NUMBERS_2,NUMBERS_3,NUMBERS_4)
/* Settings layer
* ,------------------------------------------------------------------------.
* |BLLed| F1 | F2 | F3 | F4 | Lin || Win | Wake| |Hue -|Hue +|Reset|
* |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
* | | F5 | F6 | F7 | F8 | || | |RGBto|Sat -|Sat +| |
* |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
* | Game| F9 | F10 | F11 | F12 |Vol 0||PrtSc| |RGBan|Bri -|Bri +| |
* |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
* |Musir| | | | |Vol -||Vol +| Prev| Stop|TogMu| Next| |
* `------------------------------------------------------------------------' */
#define SETTINGS_1 \
BL_STEP,KC_F1, KC_F2, KC_F3, KC_F4, UNI_LI, UNI_WN, KC_WAKE,_______,RGB_HUD,RGB_HUI,RESET
#define SETTINGS_2 \
_______,KC_F5, KC_F6, KC_F7, KC_F8, _______,_______,_______,RGB_TOG,RGB_SAD,RGB_SAI,_______
#define SETTINGS_3 \
K_GAMES,KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE,KC_PSCR,_______,RGB_MOD,RGB_VAD,RGB_VAI,_______
#define SETTINGS_4 \
MU_TOG, _______,_______,_______,_______,KC_VOLD,KC_VOLU,KC_MPRV,KC_MSTP,KC_MPLY,KC_MNXT,_______
#define SETTINGS KM(SETTINGS_1,SETTINGS_2,SETTINGS_3,SETTINGS_4)
/* Mouse layer
* ,------------------------------------------------------------------------.
* |Ulock| \ | ^ | / |.....|.....||.....|.....| |\|.| |^| | |/|.| |
* |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
* | | < | Mid | > |Btn 4|.....||.....|Btn 5| <-- | Mid | --> | |
* |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
* | | / | v | \ |.....|.....||.....|.....| |/| | |v| | |\| | LCK |
* |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
* | | | | | | Left||Right| | |Accl0|Accl1|Accl2|
* `------------------------------------------------------------------------' */
#define MOUSE_1 \
K_MOUSE,MO_NW, MO_N, MO_NE, XXX, XXX ,XXX, XXX, MO_S_NW,MO_S_N, MO_S_NE,_______
#define MOUSE_2 \
_______,MO_W, MO_CL_M,MO_E, MO_CL_4,XXX ,XXX, MO_CL_5,MO_S_W, MO_CL_M,MO_S_E, _______
#define MOUSE_3 \
_______,MO_SW, MO_S, MO_SE, XXX, XXX ,XXX, XXX, MO_S_SW,MO_S_S, MO_S_SE,K_LOCK
#define MOUSE_4 \
_______,_______,_______,_______,_______,MO_CL_L,MO_CL_R,_______,MO_AC_0,MO_AC_1,MO_AC_2,_______
#define MOUSE KM(MOUSE_1,MOUSE_2,MOUSE_3,MOUSE_4)
/* Music layer
* ,------------------------------------------------------------------------.
* |.....|.....|.....|.....|.....|.....||.....|.....|.....|.....|.....|.....|
* |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
* |.....|.....|.....|.....|.....|.....||.....|.....|.....|.....|.....|.....|
* |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
* |.....|.....|.....|.....|.....|.....||.....|.....|.....|.....|.....|.....|
* |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
* | togg| rec | stop| play| slow| fast||modes|.....|.....|.....|.....|.....|
* `------------------------------------------------------------------------'
*/
#define MASK XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX
#define MUSIC_4 MU_TOG, KC_LCTL, KC_LALT, KC_LGUI, KC_DOWN, KC_UP, MU_MOD, XXX, XXX, XXX, XXX, XXX
#define MUSIC KM(MASK,MASK,MASK,MUSIC_4)
#endif

22
users/bbaserdem/rules.mk Normal file
View File

@ -0,0 +1,22 @@
SRC += bbaserdem.c
EXTRAFLAGS += -flto
# ENABLE
UNICODE_ENABLE = yes # Used for unicode character emulation
EXTRAKEY_ENABLE = yes # OS signals like volume control
# DISABLE
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
# Disabling this makes it compile, prob bad upstream code
# VARIABLE_TRACE = no # Allows debugging variables