aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/lets_split_eh/keymaps/doxish_dvorak/config.h21
-rw-r--r--keyboards/lets_split_eh/keymaps/doxish_dvorak/keymap.c161
-rw-r--r--keyboards/lets_split_eh/keymaps/doxish_dvorak/rules.mk0
-rw-r--r--keyboards/lets_split_eh/keymaps/romus/README.md7
-rw-r--r--keyboards/lets_split_eh/keymaps/romus/keymap.c28
-rw-r--r--keyboards/lets_split_eh/keymaps/romus/rules.mk7
-rw-r--r--quantum/keymap_extras/keymap_slovenian.h1
-rw-r--r--users/romus/README.md45
-rw-r--r--users/romus/config.h8
-rw-r--r--users/romus/romus.c557
-rw-r--r--users/romus/romus.h272
-rw-r--r--users/romus/rules.mk24
12 files changed, 1131 insertions, 0 deletions
diff --git a/keyboards/lets_split_eh/keymaps/doxish_dvorak/config.h b/keyboards/lets_split_eh/keymaps/doxish_dvorak/config.h
new file mode 100644
index 000000000..526c0837c
--- /dev/null
+++ b/keyboards/lets_split_eh/keymaps/doxish_dvorak/config.h
@@ -0,0 +1,21 @@
1/*
2This is the c configuration file for the keymap
3
4Copyright 2012 Jun Wako <wakojun@gmail.com>
5Copyright 2015 Jack Humbert
6
7This program is free software: you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation, either version 2 of the License, or
10(at your option) any later version.
11
12This program is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with this program. If not, see <http://www.gnu.org/licenses/>.
19*/
20
21#pragma once
diff --git a/keyboards/lets_split_eh/keymaps/doxish_dvorak/keymap.c b/keyboards/lets_split_eh/keymaps/doxish_dvorak/keymap.c
new file mode 100644
index 000000000..897608154
--- /dev/null
+++ b/keyboards/lets_split_eh/keymaps/doxish_dvorak/keymap.c
@@ -0,0 +1,161 @@
1#include "eeconfig.h"
2
3extern keymap_config_t keymap_config;
4
5// Each layer gets a name for readability, which is then used in the keymap matrix below.
6// The underscores don't mean anything - you can have a layer called STUFF or any other name.
7// Layer names don't all need to be of the same length, obviously, and you can also skip them
8// entirely and just use numbers.
9#define _DVORAK 0
10
11#define _LOWER 3
12#define _RAISE 4
13#define _FUNCTION 15
14#define _ADJUST 16
15
16enum custom_keycodes {
17 DVORAK = SAFE_RANGE,
18 LOWER,
19 RAISE,
20 ADJUST
21};
22
23// Defines for task manager and such
24#define CALTDEL LCTL(LALT(KC_DEL))
25#define TSKMGR LCTL(LSFT(KC_ESC))
26
27const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
28
29/* Qwerty
30 * ,-----------------------------------------------------------------------------------.
31 * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
32 * |------+------+------+------+------+-------------+------+------+------+------+------|
33 * | Func | A | S | D | F | G | H | J | K | L | ; | Enter|
34 * |------+------+------+------+------+------|------+------+------+------+------+------|
35 * | Shift| Z | X | C | V | B | N | M | , | . | / | ' |
36 * |------+------+------+------+------+------+------+------+------+------+------+------|
37 * | Ctrl | ` | GUI | Alt |Lower | Space |Raise | Left | Down | Up |Right |
38 * `-----------------------------------------------------------------------------------'
39 */
40[_DVORAK] = LAYOUT( \
41 KC_QUOTE, KC_COMMA, KC_DOT, KC_P, KC_Y, KC_TAB, KC_BSPC, KC_F, KC_G, KC_C, KC_R, KC_L, \
42 KC_A, KC_O, KC_E, KC_U, KC_I, KC_ENT, KC_ENT, KC_D, KC_H, KC_T, KC_N, KC_S, \
43 KC_SCOLON, KC_Q, KC_J, KC_K, KC_X, OSM(MOD_LSFT), OSM(MOD_RSFT), KC_B, KC_M, KC_W, KC_V, KC_Z, \
44 KC_LCTL, KC_LGUI, KC_LALT, OSM(MOD_LSFT), KC_SPC, LOWER, RAISE, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
45),
46
47/*[BASE] = LAYOUT(
48 * KC_QUOTE, KC_COMMA, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L,
49 * KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S,
50 * KC_SCOLON, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z,
51 * OSM(MOD_LSFT), OSM(MOD_LCTL), MO(KEYSEL), MO(BROWSER_CONTROL), MO(COMBINED), MO(KEYNAV), KC_ENTER, KC_SPACE, KC_BSPC, RCTL(KC_BSPC), KC_CAPSLOCK, OSM(MOD_LSFT)
52 * ),
53 *KC_GRV,
54 */
55/* Lower
56 * ,-----------------------------------------------------------------------------------.
57 * | Esc | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
58 * |------+------+------+------+------+-------------+------+------+------+------+------|
59 * | | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } |Enter |
60 * |------+------+------+------+------+------|------+------+------+------+------+------|
61 * | | F7 | F8 | F9 | F10 | F11 | F12 | | | Mute | | | |
62 * |------+------+------+------+------+------+------+------+------+------+------+------|
63 * | | | | |Lower | Bksp | Bksp |Raise | Next | Vol- | Vol+ | Play |
64 * `-----------------------------------------------------------------------------------'
65 */
66[_LOWER] = LAYOUT( \
67 KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, \
68 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______, \
69 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_MUTE, _______, KC_PIPE, \
70 _______, _______, _______, _______, KC_BSPC, _______, _______, KC_BSPC, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \
71),
72
73/* Raise
74 * ,-----------------------------------------------------------------------------------.
75 * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
76 * |------+------+------+------+------+-------------+------+------+------+------+------|
77 * | | 4 | 5 | 6 | + | F5 | F6 | - | = | [ | ] |Enter |
78 * |------+------+------+------+------+------|------+------+------+------+------+------|
79 * |Enter | 7 | 8 | 9 | - | F11 | F12 |ISO # |ISO / | Mute | | \ |
80 * |------+------+------+------+------+------+------+------+------+------+------+------|
81 * | | , | 0 | . |Lower | Bksp | Bksp |Raise | Next | Vol- | Vol+ | Play |
82 * `-----------------------------------------------------------------------------------'
83 */
84[_RAISE] = LAYOUT( \
85 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \
86 _______, KC_4, KC_5, KC_6, KC_PLUS, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______, \
87 KC_ENT, KC_7, KC_8, KC_9, KC_MINS, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_MUTE, _______, KC_BSLS, \
88 _______, KC_COMM, KC_0, KC_DOT, _______, KC_BSPC, KC_BSPC, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \
89),
90
91/* Adjust (Lower + Raise)
92 * ,-----------------------------------------------------------------------------------.
93 * |Taskmg| | | | | | | |RGBVAI|RGBSAI|RGBHUI|caltde|
94 * |------+------+------+------+------+-------------+------+------+------+------+------|
95 * | | | | | | | |Qwerty|RGBVAD|RGBSAD|RGBHUD|RGBTOG|
96 * |------+------+------+------+------+------|------+------+------+------+------+------|
97 * | | | | | | | | | | | |BLSTEP|
98 * |------+------+------+------+------+------+------+------+------+------+------+------|
99 * | | | | | | | | | | | | RESET|
100 * `-----------------------------------------------------------------------------------'
101 */
102[_ADJUST] = LAYOUT( \
103 TSKMGR, _______, _______, _______, _______, _______, KC_DEL, _______, RGB_VAI, RGB_SAI, RGB_HUI, CALTDEL, \
104 _______, _______, _______, _______, _______, _______, _______, DVORAK, RGB_VAD, RGB_SAD, RGB_HUD, RGB_TOG, \
105 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_STEP, \
106 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET \
107),
108
109/* Function
110 * ,-----------------------------------------------------------------------------------.
111 * | | | | | | | | | Up | | | |
112 * |------+------+------+------+------+-------------+------+------+------+------+------|
113 * | | | | | | | | Left | Down |Right | | |
114 * |------+------+------+------+------+------|------+------+------+------+------+------|
115 * | Caps | | | | | | | | | | | |
116 * |------+------+------+------+------+------+------+------+------+------+------+------|
117 * | | | | | | | | | | | |
118 * `-----------------------------------------------------------------------------------'
119 */
120[_FUNCTION] = LAYOUT( \
121 _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, \
122 _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, \
123 KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
124 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
125)
126
127};
128
129bool process_record_user(uint16_t keycode, keyrecord_t *record) {
130 switch (keycode) {
131 case LOWER:
132 if (record->event.pressed) {
133 layer_on(_LOWER);
134 update_tri_layer(_LOWER, _RAISE, _ADJUST);
135 } else {
136 layer_off(_LOWER);
137 update_tri_layer(_LOWER, _RAISE, _ADJUST);
138 }
139 return false;
140 break;
141 case RAISE:
142 if (record->event.pressed) {
143 layer_on(_RAISE);
144 update_tri_layer(_LOWER, _RAISE, _ADJUST);
145 } else {
146 layer_off(_RAISE);
147 update_tri_layer(_LOWER, _RAISE, _ADJUST);
148 }
149 return false;
150 break;
151 case ADJUST:
152 if (record->event.pressed) {
153 layer_on(_ADJUST);
154 } else {
155 layer_off(_ADJUST);
156 }
157 return false;
158 break;
159 }
160 return true;
161}
diff --git a/keyboards/lets_split_eh/keymaps/doxish_dvorak/rules.mk b/keyboards/lets_split_eh/keymaps/doxish_dvorak/rules.mk
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/keyboards/lets_split_eh/keymaps/doxish_dvorak/rules.mk
diff --git a/keyboards/lets_split_eh/keymaps/romus/README.md b/keyboards/lets_split_eh/keymaps/romus/README.md
new file mode 100644
index 000000000..d54ed6856
--- /dev/null
+++ b/keyboards/lets_split_eh/keymaps/romus/README.md
@@ -0,0 +1,7 @@
1# Lets Split Eh Layout
2
3Check out [user readme](../../../../users/romus/README.md) for more info.
4
5# Usage
6
7Fill in after flashing
diff --git a/keyboards/lets_split_eh/keymaps/romus/keymap.c b/keyboards/lets_split_eh/keymaps/romus/keymap.c
new file mode 100644
index 000000000..ba5b75a5c
--- /dev/null
+++ b/keyboards/lets_split_eh/keymaps/romus/keymap.c
@@ -0,0 +1,28 @@
1#include QMK_KEYBOARD_H
2#include "romus.h"
3
4
5void matrix_init_keymap (void) {
6}
7
8uint32_t layer_state_set_keymap(uint32_t state) {
9
10 return state;
11}
12
13const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
14 // Main Dvorak layer
15 [_DV] = LAYOUT_letssplit_wrapper(DVORAK),
16 // Turkish and special character overlay
17 [_AL] = LAYOUT_letssplit_wrapper(ALTCHAR),
18 // Gaming layer
19 [_GA] = LAYOUT_letssplit_wrapper(GAME),
20 // Numbers layer
21 [_NU] = LAYOUT_letssplit_wrapper(NUMBERS),
22 // Settings layer
23 [_SE] = LAYOUT_letssplit_wrapper(SETTINGS),
24 // Mouse emulation layer
25 [_MO] = LAYOUT_letssplit_wrapper(MOUSE),
26 // Music layer
27 [_MU] = LAYOUT_letssplit_wrapper(MUSIC),
28};
diff --git a/keyboards/lets_split_eh/keymaps/romus/rules.mk b/keyboards/lets_split_eh/keymaps/romus/rules.mk
new file mode 100644
index 000000000..ad7dd4c47
--- /dev/null
+++ b/keyboards/lets_split_eh/keymaps/romus/rules.mk
@@ -0,0 +1,7 @@
1# Build options
2
3BACKLIGHT_ENABLE = no # Switch LEDs
4MOUSEKEY_ENABLE = yes # Emulates mouse key using keypresses
5RGBLIGHT_ENABLE = yes # LED strips
6TAP_DANCE_ENABLE = yes # Use multi-tap features
7AUDIO_ENABLE = no # Audio stuff
diff --git a/quantum/keymap_extras/keymap_slovenian.h b/quantum/keymap_extras/keymap_slovenian.h
index 53d07837e..a9db17bec 100644
--- a/quantum/keymap_extras/keymap_slovenian.h
+++ b/quantum/keymap_extras/keymap_slovenian.h
@@ -1,4 +1,5 @@
1/* Copyright 2018 Žan Pevec 1/* Copyright 2018 Žan Pevec
2
2 * 3 *
3 * This program is free software: you can redistribute it and/or modify 4 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 5 * it under the terms of the GNU General Public License as published by
diff --git a/users/romus/README.md b/users/romus/README.md
new file mode 100644
index 000000000..0de9d9a81
--- /dev/null
+++ b/users/romus/README.md
@@ -0,0 +1,45 @@
1# overview
2
3 this is a modified version of let's split keyboard from bbaserdem. i don't like standard dvorak overuses right pinky
4 so i shifted the columns out. i'm not sure if this is any good, time will tell.
5
6 i have ortholinear let's split eh, which share a lot of functions with other ortholinear keyboards.
7
8# layout
9
10i use dvorak with an unorthodox off layout.
11if you wanna grab my code, and you used a layout with a persistent base
12layer change, change it to layer 0 before proceeding.
13
14# layers
15
16* **dvorak**: base layer,with dvorak layout.
17* **alternative**: has alternate characters.
18* **game**: toggled from *function*, comfortable for gaming use.
19* **numeric**: has numericals and symbols. can be locked.
20* **function**: layer has media and function keys.
21* **mouse**: manipulates mouse. can be locked.
22* **music** allows playing sounds.
23
24# functionality
25
26* **rgb backlight**: with layer indication, and ability to change base layer lighting mode.
27* **secrets**: by placing a secrets.h, and not tracking it, passwords can be stored.
28* **mouse**: mouse emulation, complete with diagonal keys.
29* **turkish**: an altgr-like overlay that allows some non-common letters, in unicode.
30
31i suggest checking out how i enabled turkish keys,
32how i planned out rgb lighting,
33and my mouse implementation;
34they might offer some insight into fringe user cases.
35
36# issues
37
38all features are too big for the 32kb bootloader.
39offenders are audio and rgb lights; it comes down to one or the other.
40
41~the proton board, and rev 6 might fix that.~
42
43# credits
44
45this is a modified version of let's split keyboard from bbaserdem who has previously written his keymap by himself before, but rewrote it here.
diff --git a/users/romus/config.h b/users/romus/config.h
new file mode 100644
index 000000000..9332febe6
--- /dev/null
+++ b/users/romus/config.h
@@ -0,0 +1,8 @@
1#pragma once
2
3#ifdef TAP_DANCE_ENABLE
4 #define TAPPING_TERM 300
5 #define TAPPING_TOGGLE 1
6#endif
7
8// !USERSPACE_CONFIG_H
diff --git a/users/romus/romus.c b/users/romus/romus.c
new file mode 100644
index 000000000..35b524f94
--- /dev/null
+++ b/users/romus/romus.c
@@ -0,0 +1,557 @@
1#include "romus.h"
2
3/*---------------*\
4|*-----MOUSE-----*|
5\*---------------*/
6#ifdef MOUSEKEY_ENABLE
7#include "mousekey.h"
8#endif
9
10/*-------------*\
11|*-----RGB-----*|
12\*-------------*/
13#ifdef RGBLIGHT_ENABLE
14#include "rgblight.h"
15#endif
16
17/*-------------*\
18|*---UNICODE---*|
19\*-------------*/
20#ifdef UNICODE_ENABLE
21#endif
22
23/*-----------------*\
24|*-----SECRETS-----*|
25\*-----------------*/
26// Enabled by adding a non-tracked secrets.h to this dir.
27#if (__has_include("secrets.h"))
28#include "secrets.h"
29#endif
30
31/*---------------*\
32|*-----MUSIC-----*|
33\*---------------*/
34#ifdef AUDIO_ENABLE
35float tone_game[][2] = SONG(ZELDA_PUZZLE);
36float tone_return[][2] = SONG(ZELDA_TREASURE);
37float tone_linux[][2] = SONG(UNICODE_LINUX);
38float tone_windows[][2] = SONG(UNICODE_WINDOWS);
39#endif
40
41/*-------------------*\
42|*-----TAP-DANCE-----*|
43\*-------------------*/
44#ifdef TAP_DANCE_ENABLE
45qk_tap_dance_action_t tap_dance_actions[] = {
46 // Shift on double tap of semicolon
47 [SCL] = ACTION_TAP_DANCE_DOUBLE( KC_SCLN, KC_COLN )
48};
49#endif
50
51/* In keymaps, instead of writing _user functions, write _keymap functions
52 * The __attribute__((weak)) allows for empty definitions here, and during
53 * compilation, if these functions are defined elsewhere, they are written
54 * over. This allows to include custom code from keymaps in the generic code
55 * in this file.
56 */
57__attribute__ ((weak)) void matrix_init_keymap(void) { }
58__attribute__ ((weak)) void matrix_scan_keymap(void) { }
59__attribute__ ((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
60 return true;
61}
62__attribute__ ((weak)) uint32_t layer_state_set_keymap (uint32_t state) {
63 return state;
64}
65__attribute__ ((weak)) void led_set_keymap(uint8_t usb_led) { }
66
67/* ----------------------- *\
68 * -----RGB Functions----- *
69\* ----------------------- */
70#ifdef RGBLIGHT_ENABLE
71
72// Set RGBLIGHT state depending on layer
73void rgblight_change( uint8_t this_layer ) {
74 // Enable RGB light; will not work without this
75 //rgblight_enable_noeeprom();
76 // Change RGB light
77 switch ( this_layer ) {
78 case _DV:
79 // Load base layer
80 rgblight_disable_noeeprom();
81 break;
82 case _AL:
83 // Do yellow for alternate
84 rgblight_enable_noeeprom();
85 rgblight_sethsv_noeeprom( 60,255,255);
86
87
88 break;
89 case _GA:
90 // Do purple for game
91 rgblight_enable_noeeprom();
92 rgblight_sethsv_noeeprom(285,255,255);
93
94
95 break;
96 case _NU:
97 // Do azure for number
98 rgblight_enable_noeeprom();
99 rgblight_sethsv_noeeprom(186,200,255);
100
101
102 break;
103 case _SE:
104 // Do red for settings
105 rgblight_enable_noeeprom();
106
107 rgblight_sethsv_noeeprom( 16,255,255);
108
109 break;
110 case _MO:
111 // Do green for mouse
112 rgblight_enable_noeeprom();
113 rgblight_sethsv_noeeprom(120,255,255);
114
115
116 break;
117 case _MU:
118 // Do orange for music
119
120 rgblight_enable_noeeprom();
121 rgblight_sethsv_noeeprom( 39,255,255);
122
123 break;
124 default:
125 // Something went wrong
126 rgblight_enable_noeeprom();
127 rgblight_sethsv_noeeprom( 0,255,255);
128
129 break;
130 }
131}
132
133#endif
134
135/*---------------------*\
136|*-----MATRIX INIT-----*|
137\*---------------------*/
138void matrix_init_user (void) {
139
140 // Keymap specific things, do it first thing to allow for delays etc
141 matrix_init_keymap();
142
143 // Correct unicode
144#ifdef UNICODE_ENABLE
145 set_unicode_input_mode(UC_LNX);
146#endif
147
148 // Make beginning layer DVORAK
149 set_single_persistent_default_layer(_DV);
150
151}
152
153/*---------------------*\
154|*-----MATRIX SCAN-----*|
155\*---------------------*/
156void matrix_scan_user (void) {
157 // Keymap specific, do it first
158 matrix_scan_keymap();
159}
160
161/*------------------*\
162|*-----KEYCODES-----*|
163\*------------------*/
164bool process_record_user(uint16_t keycode, keyrecord_t *record) {
165
166 // Shift check
167 bool is_capital = ( keyboard_report->mods & (MOD_BIT(KC_LSFT)|MOD_BIT(KC_RSFT)) );
168 static bool lock_flag = false;
169 uint8_t layer = biton32 (layer_state);
170
171 switch (keycode) {
172 // Secrets implementation
173#if (__has_include("secrets.h"))
174 case SECRET1:
175 if( !record->event.pressed ) {
176 send_string_P( secret[ keycode - SECRET1 ] );
177 }
178 return false;
179 break;
180 case SECRET2:
181 if( !record->event.pressed ) {
182 send_string_P( secret[ keycode - SECRET2 ] );
183 }
184 return false;
185 break;
186 case SECRET3:
187 if( !record->event.pressed ) {
188 send_string_P( secret[ keycode - SECRET3 ] );
189 }
190 return false;
191 break;
192#endif
193
194 // Lock functionality: These layers are locked if the LOCKED buttons are
195 // pressed. Otherwise, they are momentary toggles
196 case K_LOCK:
197 if (record->event.pressed) {
198 lock_flag = !lock_flag;
199 }
200 return false;
201 break;
202 case K_MOUSE:
203 if (record->event.pressed) {
204 layer_on(_MO);
205 lock_flag = false;
206 } else {
207 if ( lock_flag ) {
208 lock_flag = false;
209 } else {
210 layer_off(_MO);
211 }
212 }
213 return false;
214 break;
215 case K_NUMBR:
216 if (record->event.pressed) {
217 layer_on(_NU);
218 lock_flag = false;
219 } else {
220 if ( lock_flag ) {
221 lock_flag = false;
222 } else {
223 layer_off(_NU);
224 }
225 }
226 return false;
227 break;
228
229 // Layer switches with sound
230 case K_GAMES:
231 if (record->event.pressed) {
232 // On press, turn off layer if active
233 if ( layer == _GA ) {
234#ifdef AUDIO_ENABLE
235 stop_all_notes();
236 PLAY_SONG(tone_return);
237#endif
238 layer_off(_GA);
239 }
240 } else {
241 // After click, turn on layer if accessed from setting
242 if ( layer == _SE ) {
243#ifdef AUDIO_ENABLE
244 stop_all_notes();
245 PLAY_SONG(tone_game);
246#endif
247 layer_on(_GA);
248 layer_off(_SE);
249 }
250 }
251 return false;
252 break;
253 case MU_TOG:
254 if (record->event.pressed) {
255 // On press, turn off layer if active
256 if ( layer == _SE ) {
257 layer_off(_SE);
258 layer_on(_MU);
259 } else {
260 layer_off(_MU);
261 }
262 }
263 return true;
264 break;
265
266//------UNICODE
267 // Unicode switches with sound
268#ifdef UNICODE_ENABLE
269 case UNI_LI:
270 if (record->event.pressed) {
271#ifdef AUDIO_ENABLE
272 stop_all_notes();
273 PLAY_SONG(tone_linux);
274#endif
275 set_unicode_input_mode(UC_LNX);
276 }
277 return false;
278 break;
279 case UNI_WN:
280 if (record->event.pressed) {
281#ifdef AUDIO_ENABLE
282 stop_all_notes();
283 PLAY_SONG(tone_windows);
284#endif
285 set_unicode_input_mode(UC_WIN);
286 }
287 return false;
288 break;
289
290 // Turkish letters, with capital functionality
291 case TUR_A:
292 if (record->event.pressed) {
293 if ( is_capital ) {
294 unicode_input_start();
295 register_hex(0x00c2);
296 unicode_input_finish();
297 } else {
298 unicode_input_start();
299 register_hex(0x00e2);
300 unicode_input_finish();
301 }
302 }
303 return false;
304 break;
305 case TUR_O:
306 if (record->event.pressed) {
307 if ( is_capital ) {
308 unicode_input_start();
309 register_hex(0x00d6);
310 unicode_input_finish();
311 } else {
312 unicode_input_start();
313 register_hex(0x00f6);
314 unicode_input_finish();
315 }
316 }
317 return false;
318 break;
319 case TUR_U:
320 if (record->event.pressed) {
321 if ( is_capital ) {
322 unicode_input_start();
323 register_hex(0x00dc);
324 unicode_input_finish();
325 } else {
326 unicode_input_start();
327 register_hex(0x00fc);
328 unicode_input_finish();
329 }
330 }
331 return false;
332 break;
333 case TUR_I:
334 if (record->event.pressed) {
335 if ( is_capital ) {
336 unicode_input_start();
337 register_hex(0x0130);
338 unicode_input_finish();
339 } else {
340 unicode_input_start();
341 register_hex(0x0131);
342 unicode_input_finish();
343 }
344 }
345 return false;
346 break;
347 case TUR_G:
348 if (record->event.pressed) {
349 if ( is_capital ) {
350 unicode_input_start();
351 register_hex(0x011e);
352 unicode_input_finish();
353 } else {
354 unicode_input_start();
355 register_hex(0x011f);
356 unicode_input_finish();
357 }
358 }
359 return false;
360 break;
361 case TUR_C:
362 if (record->event.pressed) {
363 if ( is_capital ) {
364 unicode_input_start();
365 register_hex(0x00c7);
366 unicode_input_finish();
367 } else {
368 unicode_input_start();
369 register_hex(0x00e7);
370 unicode_input_finish();
371 }
372 }
373 return false;
374 break;
375 case TUR_S:
376 if (record->event.pressed) {
377 if ( is_capital ) {
378 unicode_input_start();
379 register_hex(0x015e);
380 unicode_input_finish();
381 } else {
382 unicode_input_start();
383 register_hex(0x015f);
384 unicode_input_finish();
385 }
386 }
387 return false;
388 break;
389#endif
390
391//-------Diagonal mouse movements
392#ifdef MOUSEKEY_ENABLE
393 case MO_NE:
394 if( record->event.pressed ) {
395 mousekey_on(MO_N);
396 mousekey_on(MO_E);
397 mousekey_send();
398 } else {
399 mousekey_off(MO_N);
400 mousekey_off(MO_E);
401 mousekey_send();
402 }
403 return false;
404 break;
405 case MO_NW:
406 if( record->event.pressed ) {
407 mousekey_on(MO_N);
408 mousekey_on(MO_W);
409 mousekey_send();
410 } else {
411 mousekey_off(MO_N);
412 mousekey_off(MO_W);
413 mousekey_send();
414 }
415 return false;
416 break;
417 case MO_SE:
418 if( record->event.pressed ) {
419 mousekey_on(MO_S);
420 mousekey_on(MO_E);
421 mousekey_send();
422 } else {
423 mousekey_off(MO_S);
424 mousekey_off(MO_E);
425 mousekey_send();
426 }
427 return false;
428 break;
429 case MO_SW:
430 if( record->event.pressed ) {
431 mousekey_on(MO_S);
432 mousekey_on(MO_W);
433 mousekey_send();
434 } else {
435 mousekey_off(MO_S);
436 mousekey_off(MO_W);
437 mousekey_send();
438 }
439 return false;
440 break;
441 case MO_S_NE:
442 if( record->event.pressed ) {
443 mousekey_on(MO_S_N);
444 mousekey_on(MO_S_E);
445 mousekey_send();
446 } else {
447 mousekey_off(MO_S_N);
448 mousekey_off(MO_S_E);
449 mousekey_send();
450 }
451 return false;
452 break;
453 case MO_S_NW:
454 if( record->event.pressed ) {
455 mousekey_on(MO_S_N);
456 mousekey_on(MO_S_W);
457 mousekey_send();
458 } else {
459 mousekey_off(MO_S_N);
460 mousekey_off(MO_S_W);
461 mousekey_send();
462 }
463 return false;
464 break;
465 case MO_S_SE:
466 if( record->event.pressed ) {
467 mousekey_on(MO_S_S);
468 mousekey_on(MO_S_E);
469 mousekey_send();
470 } else {
471 mousekey_off(MO_S_S);
472 mousekey_off(MO_S_E);
473 mousekey_send();
474 }
475 return false;
476 break;
477 case MO_S_SW:
478 if( record->event.pressed ) {
479 mousekey_on(MO_S_S);
480 mousekey_on(MO_S_W);
481 mousekey_send();
482 } else {
483 mousekey_off(MO_S_S);
484 mousekey_off(MO_S_W);
485 mousekey_send();
486 }
487 return false;
488 break;
489#endif
490
491//------DOUBLE PRESS, with added left navigation
492 case DBL_SPC:
493 if( record->event.pressed ) {
494 SEND_STRING(" "SS_TAP(X_LEFT));
495 }
496 return false;
497 break;
498 case DBL_ANG:
499 if( record->event.pressed ) {
500 SEND_STRING("<>"SS_TAP(X_LEFT));
501 }
502 return false;
503 break;
504 case DBL_PAR:
505 if( record->event.pressed ) {
506 SEND_STRING("()"SS_TAP(X_LEFT));
507 }
508 return false;
509 break;
510 case DBL_SQR:
511 if( record->event.pressed ) {
512 SEND_STRING("[]"SS_TAP(X_LEFT));
513 }
514 return false;
515 break;
516 case DBL_BRC:
517 if( record->event.pressed ) {
518 SEND_STRING("{}"SS_TAP(X_LEFT));
519 }
520 return false;
521 break;
522 case DBL_QUO:
523 if( record->event.pressed ) {
524 SEND_STRING("\'\'"SS_TAP(X_LEFT));
525 }
526 return false;
527 break;
528 case DBL_DQT:
529 if( record->event.pressed ) {
530 SEND_STRING("\"\""SS_TAP(X_LEFT));
531 }
532 return false;
533 break;
534 case DBL_GRV:
535 if( record->event.pressed ) {
536 SEND_STRING("``"SS_TAP(X_LEFT));
537 }
538 return false;
539 break;
540// END OF KEYCODES
541 }
542 return process_record_keymap(keycode, record);
543}
544
545/*----------------------*\
546|*-----LAYER CHANGE-----*|
547\*----------------------*/
548
549uint32_t layer_state_set_user(uint32_t state) {
550
551 state = layer_state_set_keymap (state);
552#ifdef RGBLIGHT_ENABLE
553 // Change RGB lighting depending on the last layer activated
554 rgblight_change( biton32(state) );
555#endif
556 return state;
557} \ No newline at end of file
diff --git a/users/romus/romus.h b/users/romus/romus.h
new file mode 100644
index 000000000..265c942e9
--- /dev/null
+++ b/users/romus/romus.h
@@ -0,0 +1,272 @@
1// This is a modified version of Let's Split keyboard from bbaserdem
2
3#pragma once
4
5#include "quantum.h"
6
7// Use 7 wide characters for keymaps
8#define _______ KC_TRNS
9#define XXX KC_NO
10
11// Layers
12#define _DV 0 // Base layer
13#define _AL 1 // Alt char overlay
14#define _GA 2 // Game layer
15#define _NU 3 // Numbers layer
16#define _SE 4 // Settings layer
17#define _MO 5 // Mouse emulation
18#define _MU 6 // Music mode
19
20// Define short macros
21#define UNDO LCTL(KC_Z)
22#define REDO LCTL(KC_Y)
23#define COPY LCTL(KC_C)
24#define CUT LCTL(KC_X)
25#define PASTE LCTL(KC_V)
26#define EXIT LALT(KC_F4)
27#define CAPS SFT_T(KC_CAPS)
28
29
30// Rename mouse keys with 7 letters
31#ifdef MOUSEKEY_ENABLE
32#define MO_S_N KC_MS_WH_UP
33#define MO_S_S KC_MS_WH_DOWN
34#define MO_S_E KC_MS_WH_RIGHT
35#define MO_S_W KC_MS_WH_LEFT
36#define MO_N KC_MS_UP
37#define MO_S KC_MS_DOWN
38#define MO_E KC_MS_RIGHT
39#define MO_W KC_MS_LEFT
40#define MO_CL_L KC_MS_BTN1
41#define MO_CL_R KC_MS_BTN2
42#define MO_CL_M KC_MS_BTN3
43#define MO_CL_4 KC_MS_BTN4
44#define MO_CL_5 KC_MS_BTN5
45#define MO_AC_0 KC_MS_ACCEL0
46#define MO_AC_1 KC_MS_ACCEL1
47#define MO_AC_2 KC_MS_ACCEL2
48#else
49#define MO_S_N KC_NO
50#define MO_S_S KC_NO
51#define MO_S_E KC_NO
52#define MO_S_W KC_NO
53#define MO_N KC_NO
54#define MO_S KC_NO
55#define MO_E KC_NO
56#define MO_W KC_NO
57#define MO_CL_L KC_NO
58#define MO_CL_R KC_NO
59#define MO_CL_M KC_NO
60#define MO_CL_1 KC_NO
61#define MO_CL_2 KC_NO
62#define MO_AC_0 KC_NO
63#define MO_AC_1 KC_NO
64#define MO_AC_2 KC_NO
65#endif
66
67// Rename music keys with <8 letters
68#ifdef AUDIO_ENABLE
69#define MU_REC KC_LCTL
70#define MU_STOP KC_LALT
71#define MU_PLAY KC_LGUI
72#define MU_PLAY KC_LGUI
73#define MU_FAST KC_UP
74#define MU_SLOW KC_DOWN
75#define MU_MASK KC_A
76#else
77#define MU_REC KC_NO
78#define MU_STOP KC_NO
79#define MU_PLAY KC_NO
80#define MU_PLAY KC_NO
81#define MU_FAST KC_NO
82#define MU_SLOW KC_NO
83#define MU_MASK KC_NO
84#endif
85
86// Define non-capitalized UTF shortcuts here
87#ifdef UNICODE_ENABLE
88#define PHY_HBR UC(0x0127)
89#define PHY_DEG UC(0x00b0)
90#define CUR_LIR UC(0x20ba)
91#define CUR_BIT UC(0x20bf)
92#define CUR_EUR UC(0x20ac)
93#define CUR_BPN UC(0x00a3)
94#define CUR_YEN UC(0x00a5)
95#else
96#define PHY_HBR KC_NO
97#define PHY_DEG KC_NO
98#define CUR_LIR KC_NO
99#define CUR_BIT KC_NO
100#define CUR_EUR KC_NO
101#define CUR_BPN KC_NO
102#define CUR_YEN KC_NO
103#endif
104
105// Custom keycodes
106enum userspace_custom_keycodes {
107 // Turkish letters, with shifting
108 TUR_A = SAFE_RANGE,
109 TUR_C,
110 TUR_G,
111 TUR_I,
112 TUR_O,
113 TUR_S,
114 TUR_U,
115 // Unicode mode switch
116 UNI_LI,
117 UNI_WN,
118 // Double keys
119 DBL_SPC,
120 DBL_ANG,
121 DBL_PAR,
122 DBL_SQR,
123 DBL_BRC,
124 DBL_QUO,
125 DBL_DQT,
126 DBL_GRV,
127 // Diagonal mouse movements
128 MO_NE,
129 MO_NW,
130 MO_SE,
131 MO_SW,
132 MO_S_NE,
133 MO_S_NW,
134 MO_S_SE,
135 MO_S_SW,
136 // Layer switches and lock functionality
137 K_MOUSE,
138 K_NUMBR,
139 K_LOCK,
140 K_GAMES,
141 // Secret macros
142 SECRET1,
143 SECRET2,
144 SECRET3
145};
146
147// Do tap dancable semicolon key if available
148#ifdef TAP_DANCE_ENABLE
149enum {
150 SCL = 0
151};
152#define MY_SCL TD(SCL)
153#else
154#define MY_SCL KC_SCLN
155#endif
156
157// Shared keymaps
158#define LAYOUT_planck_wrapper(...) LAYOUT_planck_grid(__VA_ARGS__)
159#define LAYOUT_letssplit_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__)
160
161/* Dvorak
162 * ,------------------------------------------------------------------------.
163 * | ' " | , | . | P | Y | Esc || Del | F | G | C | R | L |
164 * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
165 * | A | O | E | U | I | Bkp || Ent | D | H | T | N | S |
166 * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
167 * | ; : | Q | J | K | X | Spc || SET | B | M | W | V | Z |
168 * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
169 * | Ctrl| OS | Alt | Tab | Cps | ACH || SYM | Spc | Lft | Up | Dwn | Rght|
170 * `------------------------------------------------------------------------' */
171#define DVORAK \
172 KC_QUOT,KC_COMM,KC_DOT, KC_P, KC_Y, KC_ESC, KC_DEL, KC_F, KC_G, KC_C, KC_R, KC_L, \
173 KC_A, KC_O, KC_E, KC_U, KC_I, KC_BSPC,KC_ENT, KC_D, KC_H, KC_T, KC_N, KC_S, \
174 MY_SCL, KC_Q, KC_J, KC_K, KC_X, KC_SPC, MO(_SE),KC_B, KC_M, KC_W, KC_V, KC_Z, \
175 KC_LCTL,KC_LGUI,KC_LALT,KC_TAB, CAPS, MO(_AL),K_NUMBR,KC_SPC, KC_LEFT,KC_UP, KC_DOWN,KC_RGHT
176
177/* Alternative character overlay
178 * ,------------------------------------------------------------------------.
179 * | ` ~ | ' ' | " " | Euro|Pound| || Del | Home| PgUp| Prn | \ | | / ? |
180 * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
181 * | Redo| < > | ( ) | [ ] | { } | Alt || Ins | End |PgDwn| Scl | BTC | - _ |
182 * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
183 * | Undo| Cut | Copy|Paste| EXIT| Shf || | | | | Yen | = + |
184 * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
185 * | | | | | | || | | | | | |
186 * `------------------------------------------------------------------------' */
187#define ALTCHAR \
188 KC_GRV, DBL_QUO,DBL_DQT,CUR_EUR,CUR_BPN,_______,_______,KC_HOME,KC_PGUP,KC_PSCREEN, KC_BSLASH, KC_SLSH, \
189 REDO, DBL_ANG,DBL_PAR,DBL_SQR,DBL_BRC,KC_LALT,KC_INS, KC_END, KC_PGDN,KC_SCROLLLOCK, CUR_BIT, KC_MINUS, \
190 UNDO, CUT, COPY, PASTE, EXIT, KC_LSFT,_______,_______,_______,_______, CUR_YEN, KC_EQUAL, \
191 _______,_______,_______,_______,_______,_______,_______,DBL_SPC,_______,_______, _______, _______
192
193/* Game layer
194 * ,------------------------------------------------------------------------.
195 * | OFF | Q | W | E | R | T || Esc | 7 | 8 | 9 |NumLk|Bkspc|
196 * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
197 * | Tab | A | S | D | F | G || F1 | 4 | 5 | 6 | \ | Ent |
198 * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
199 * | Shf | Z | X | C | V | B || F2 | 1 | 2 | 3 | ^ | MSE |
200 * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
201 * | Ctrl| Alt | / | ` | SYM | Spc || F5 | Ent | 0 | < | v | > |
202 * `------------------------------------------------------------------------' */
203#define GAME \
204 K_GAMES,KC_Q, KC_W, KC_E, KC_R, KC_T, KC_ESC, KC_P7, KC_P8, KC_P9, KC_NLCK,KC_BSPC, \
205 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_F1, KC_P4, KC_P5, KC_P6, KC_BSLS,KC_ENT , \
206 KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_F2, KC_P1, KC_P2, KC_P3, KC_UP,K_MOUSE, \
207 KC_LCTL,KC_LALT,KC_SLSH,KC_GRV, K_NUMBR,KC_SPC, KC_F5, KC_ENT, KC_P0, KC_LEFT,KC_DOWN,KC_RGHT
208
209/* Symbols layer
210 * ,------------------------------------------------------------------------.
211 * | OFF | ` | ~ | \ | [ | { || } | ] | - | _ | = | + |
212 * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
213 * | 1 | 2 | 3 | 4 | 5 | || LCK | 6 | 7 | 8 | 9 | 0 |
214 * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
215 * | ! | @ | # | $ | % | ||Vol +| ^ | & | * | ( | ) |
216 * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
217 * | | | | | | | || | | | | | |
218 * `------------------------------------------------------------------------' */
219#define NUMBERS \
220 K_NUMBR,KC_GRV, KC_TILD,KC_BSLS,KC_LBRC,KC_LCBR,KC_RCBR,KC_RBRC,KC_MINS,KC_UNDS,KC_EQL, KC_PLUS, \
221 KC_1, KC_2, KC_3, KC_4, KC_5, _______,K_LOCK, KC_6, KC_7, KC_8, KC_9, KC_0, \
222 KC_EXLM,KC_AT, KC_HASH,KC_DLR, KC_PERC,_______,KC_VOLU,KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN, \
223 KC_PIPE,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______
224
225/* Settings layer
226 * ,------------------------------------------------------------------------.
227 * |BLLed| F1 | F2 | F3 | F4 | Lin || Win | Wake| |Hue -|Hue +|Reset|
228 * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
229 * | | F5 | F6 | F7 | F8 | ||Vol 0| |RGBto|Sat -|Sat +| |
230 * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
231 * | Game| F9 | F10 | F11 | F12 |Vol 0|| |PrtSc|RGBan|Bri -|Bri +| |
232 * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
233 * |Musir| | | | |Vol +||Vol -| Prev| Stop|TogMu| Next| |
234 * `------------------------------------------------------------------------' */
235#define SETTINGS \
236 BL_STEP,KC_F1, KC_F2, KC_F3, KC_F4, UNI_LI, UNI_WN, KC_WAKE,_______,RGB_HUD,RGB_HUI,RESET , \
237 _______,KC_F5, KC_F6, KC_F7, KC_F8, _______,KC_MUTE,_______,RGB_TOG,RGB_SAD,RGB_SAI,_______, \
238 K_GAMES,KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE,_______,KC_PSCR,RGB_MOD,RGB_VAD,RGB_VAI,_______, \
239 MU_TOG, _______,_______,_______,_______,KC_VOLU,KC_VOLD,KC_MPRV,KC_MSTP,KC_MPLY,KC_MNXT,_______
240
241/* Mouse layer
242 * ,------------------------------------------------------------------------.
243 * |Ulock| \ | ^ | / |.....|.....||.....|.....| |\|.| |^| | |/|.| |
244 * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
245 * | | < | Mid | > |Btn 4|.....||.....|Btn 5| <-- | Mid | --> | |
246 * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
247 * | | / | v | \ |.....|.....||.....|.....| |/| | |v| | |\| | LCK |
248 * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
249 * | | | | | | Left||Right| | |Accl0|Accl1|Accl2|
250 * `------------------------------------------------------------------------' */
251#define MOUSE \
252 K_MOUSE,MO_NW, MO_N, MO_NE, XXX, XXX ,XXX, XXX, MO_S_NW,MO_S_N, MO_S_NE,_______, \
253 _______,MO_W, MO_CL_M,MO_E, MO_CL_4,XXX ,XXX, MO_CL_5,MO_S_W, MO_CL_M,MO_S_E, _______, \
254 _______,MO_SW, MO_S, MO_SE, XXX, XXX ,XXX, XXX, MO_S_SW,MO_S_S, MO_S_SE,K_LOCK , \
255 _______,_______,_______,_______,_______,MO_CL_L,MO_CL_R,_______,MO_AC_0,MO_AC_1,MO_AC_2,_______
256
257/* Music layer
258 * ,------------------------------------------------------------------------.
259 * |.....|.....|.....|.....|.....|.....||.....|.....|.....|.....|.....|.....|
260 * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
261 * |.....|.....|.....|.....|.....|.....||.....|.....|.....|.....|.....|.....|
262 * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
263 * |.....|.....|.....|.....|.....|.....||.....|.....|.....|.....|.....|.....|
264 * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
265 * | togg| rec | stop| play| slow| fast||modes|.....|.....|.....|.....|.....|
266 * `------------------------------------------------------------------------'
267 */
268#define MUSIC \
269 MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK, \
270 MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK, \
271 MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK, \
272 MU_TOG, MU_REC, MU_STOP,MU_PLAY,MU_SLOW,MU_FAST,MU_MOD, MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK
diff --git a/users/romus/rules.mk b/users/romus/rules.mk
new file mode 100644
index 000000000..78ce2e93f
--- /dev/null
+++ b/users/romus/rules.mk
@@ -0,0 +1,24 @@
1SRC += romus.c
2EXTRAFLAGS += -flto # Used to make code smaller
3
4# ENABLE
5UNICODE_ENABLE = yes # Used for unicode character emulation
6EXTRAKEY_ENABLE = yes # OS signals like volume control
7
8# DISABLE
9ifndef BLUETOOTH_ENABLE
10 BLUETOOTH_ENABLE = no # No bluetooth
11endif
12COMMAND_ENABLE = no # Some bootmagic thing i dont use
13BOOTMAGIC_ENABLE = no # Access to EEPROM settings, not needed
14CONSOLE_ENABLE = no # Allows console output with a command
15SLEEP_LED_ENABLE = no # Breathes LED's when computer is asleep. Untested.
16NKRO_ENABLE = no # Default is 6KRO which is plenty
17MIDI_ENABLE = no # Untested feature
18FAUXCLICKY_ENABLE = no # Emulates clicks using speaker
19KEY_LOCK_ENABLE = no # Allows locking any key. Not used
20API_SYSEX_ENABLE = no # Allows OS to send signals.
21
22
23# Disabling this makes it compile, i dont know why
24# VARIABLE_TRACE = no # Allows debugging variables