aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier Poitrey <rs@rhapsodyk.net>2019-01-25 12:57:10 -0800
committerDrashna Jaelre <drashna@live.com>2019-01-25 12:57:10 -0800
commite611433cb5a479d84b37088e64da01b556f314fa (patch)
treeabebed05c6dc72f99ed2e9927afcf4a3b52256fe
parent3542e573c8ee464f62fc5e9a0f618d3a244048c0 (diff)
downloadqmk_firmware-e611433cb5a479d84b37088e64da01b556f314fa.tar.gz
qmk_firmware-e611433cb5a479d84b37088e64da01b556f314fa.zip
rs: code friendly keymap for preonic, iris and my preonic clone (#4303)
I worked on those keymap to simplify the use of 60% keyboards for coders. Instead of trying to mimic planck, this keymap remove raise/lower layer complexity and keep some important sign keys for coder in the upper right side pretty much the same way as they are on a full keyboard. A karabiner configuration is also provided to mimic most of the keymap features on the macbook internal keyboard for when you are forced to use it.
-rw-r--r--keyboards/ergotravel/keymaps/rs/config.h38
-rw-r--r--keyboards/ergotravel/keymaps/rs/keymap.c59
-rw-r--r--keyboards/ergotravel/keymaps/rs/readme.md13
-rw-r--r--keyboards/ergotravel/keymaps/rs/rules.mk0
-rw-r--r--keyboards/handwired/rs60/README.md27
-rw-r--r--keyboards/handwired/rs60/config.h47
-rw-r--r--keyboards/handwired/rs60/keymaps/default/keymap.c207
-rw-r--r--keyboards/handwired/rs60/keymaps/default/readme.md1
-rw-r--r--keyboards/handwired/rs60/rs60.c18
-rw-r--r--keyboards/handwired/rs60/rs60.h36
-rw-r--r--keyboards/handwired/rs60/rules.mk61
-rw-r--r--keyboards/iris/keymaps/rs/config.h38
-rw-r--r--keyboards/iris/keymaps/rs/karabiner.json154
-rw-r--r--keyboards/iris/keymaps/rs/keymap.c48
-rw-r--r--keyboards/iris/keymaps/rs/readme.md13
-rw-r--r--keyboards/iris/keymaps/rs/rules.mk1
-rw-r--r--layouts/community/ortho_5x12/rs/config.h35
-rw-r--r--layouts/community/ortho_5x12/rs/karabiner.json154
-rw-r--r--layouts/community/ortho_5x12/rs/keymap.c63
-rw-r--r--layouts/community/ortho_5x12/rs/readme.md17
20 files changed, 1030 insertions, 0 deletions
diff --git a/keyboards/ergotravel/keymaps/rs/config.h b/keyboards/ergotravel/keymaps/rs/config.h
new file mode 100644
index 000000000..eeca26ce1
--- /dev/null
+++ b/keyboards/ergotravel/keymaps/rs/config.h
@@ -0,0 +1,38 @@
1/*
2Copyright 2017 Pierre Constantineau <jpconstantineau@gmail.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#pragma once
19
20/* Use I2C or Serial, not both */
21
22#define USE_SERIAL
23// #define USE_I2C
24
25/* Select hand configuration */
26
27#define MASTER_LEFT
28// #define MASTER_RIGHT
29// #define EE_HANDS
30
31#undef RGBLED_NUM
32#define RGBLIGHT_ANIMATIONS
33#define RGBLED_NUM 12
34#define RGBLIGHT_HUE_STEP 8
35#define RGBLIGHT_SAT_STEP 8
36#define RGBLIGHT_VAL_STEP 8
37
38
diff --git a/keyboards/ergotravel/keymaps/rs/keymap.c b/keyboards/ergotravel/keymaps/rs/keymap.c
new file mode 100644
index 000000000..634e97c49
--- /dev/null
+++ b/keyboards/ergotravel/keymaps/rs/keymap.c
@@ -0,0 +1,59 @@
1#include QMK_KEYBOARD_H
2
3enum layers {
4 _QWERTY,
5 _HYPER,
6 _SIGN
7};
8
9
10#define KC_ KC_TRNS
11
12#define KC_ESCC MT(MOD_LCTL, KC_ESC)
13#define KC_ENTS MT(MOD_LSFT, KC_ENT)
14#define KC_HYPE MO(_HYPER)
15#define KC_SIGN MO(_SIGN)
16#define KC_RST RESET
17// Brightness
18#define KC_BRUP KC_PAUS
19#define KC_BRDN KC_SLCK
20
21const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
22
23 [_QWERTY] = LAYOUT_kc(
24 //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----.
25 TAB , Q , W , E , R , T , GRV, BSLS, Y , U , I , O , P ,EQL ,
26 //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
27 ESCC, A , S , D , F , G ,PIPE, MINS, H , J , K , L ,SCLN,QUOT,
28 //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
29 LSFT, Z , X , C , V , B , SPC, BSPC, N , M ,COMM,DOT ,SLSH,ENTS,
30 //|----+----+----+----+----+----+----. .----+----+----+----+----+----+----|
31 SIGN, ,LCTL,LALT,LGUI, SPC, BSPC, HYPE,LEFT, UP ,DOWN,RIGHT
32 //`----+----+----+--+-+----/----/ \----\----+----+----+----+----'
33 ),
34
35
36 [_HYPER] = LAYOUT_kc(
37 //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----.
38 GRV , 1 , 2 , 3 , 4 , 5 , , , 6 , 7 , 8 , 9 , 0 , ,
39 //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
40 , , ,PGUP, , , , , , , UP ,LBRC,RBRC,BSLS,
41 //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
42 , ,HOME,PGDN,END , , , VOLU, ,LEFT,DOWN,RGHT, ,PIPE,
43 //|----+----+----+----+----+----+----. .----+----+----+----+----+----+----|
44 , , , , , , VOLD, ,MUTE, , ,
45 //`----+----+----+----+----/----/ \----\----+----+----+----+----'
46 ),
47
48 [_SIGN] = LAYOUT_kc(
49 //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----.
50 TILD,EXLM, AT ,HASH,DLR ,PERC, , ,CIRC,AMPR,ASTR,LBRC,RBRC, ,
51 //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
52 RST , F1 , F2 , F3 , F4 , F5 , F6 , , , , ,LCBR,RCBR,PIPE,
53 //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
54 , 1 , 2 , 3 , 4 , 5 , , BRUP, 6 , 7 , 8 , 9 , 0 , ,
55 //|----+----+----+----+----+----+----. .----+----+----+----+----+----+----|
56 , , , , , , BRDN, , , , ,
57 //`----+----+----+----+----/----/ \----\----+----+----+----+----'
58 ),
59}; \ No newline at end of file
diff --git a/keyboards/ergotravel/keymaps/rs/readme.md b/keyboards/ergotravel/keymaps/rs/readme.md
new file mode 100644
index 000000000..93b87cc23
--- /dev/null
+++ b/keyboards/ergotravel/keymaps/rs/readme.md
@@ -0,0 +1,13 @@
1# Code friendly 60% keymap
2
3I developped this keymap to make a better use of 60% ortho keyboards I use like the preonic of the iris. Instead of trying to mimic the Planck layout like the default preonic keymap, this keymap removes the raise and lower layers and offers a simpler hyper layer concept for a few missing sign keys and cursors / media keys.
4
5The important part for coders is that most important signs needed to code are available at their usual position on a full keyboard, without complex layer gymnastic. Access to [] and {} are available on the hyper layer at their usual emplacement.
6
7The right thumb is used for both backspace and hyper layer switching. On the hyper layer, in addition to some coding signs, you get the cursor keys arranged in cross, just under your right fingers, so you don't have to move your hand when navigating in code or command line. Other hand gets the home/end page up/down in a similar layout.
8
9Because you sometime have to use your internal keyboard when you use a macbook, a karabiner configuration is also provided to get most of the features of this keyboard, including the hyper layer / backspace on right command key etc.
10
11This keymap is also available for other keyboards:
12- [ortho_5x12/rs](../../../../layouts/community/ortho_5x12/rs/keymap.c)
13- [Iris/rs](../../../iris/keymaps/rs/keymap.c)
diff --git a/keyboards/ergotravel/keymaps/rs/rules.mk b/keyboards/ergotravel/keymaps/rs/rules.mk
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/keyboards/ergotravel/keymaps/rs/rules.mk
diff --git a/keyboards/handwired/rs60/README.md b/keyboards/handwired/rs60/README.md
new file mode 100644
index 000000000..07c967e27
--- /dev/null
+++ b/keyboards/handwired/rs60/README.md
@@ -0,0 +1,27 @@
1# rs60: Handwired Slim Preonic Clone
2
3I wanted a preonic layout but with a very low profile. As Jack is still working on the Preonic PCB for Kailh Choc switches, I figured I could try to handwire one myself. It's my first custom keyboard, so I had a lot to learn.
4
5First I designed the case in fusion 360. I wanted to build it using acrylic, constrained myself to standard acrylic sheet thickness.
6
7![](https://imgur.com/NscS7Rd.jpg)
8
9You can download the model [here](https://a360.co/2OqiKLm).
10
11To test my design I 3D printed the parts.
12
13![](https://imgur.com/MSF7zLS.jpg)
14
15The result was encouraging, so I decided to build a prototype out of the printed plates using Kailh Choc brown switches. I tried to make the handwiring job as flat as possible so it can fit in my design.
16
17![](https://i.imgur.com/67yZx0V.jpg)
18![](https://i.imgur.com/ft72Cgj.jpg)
19
20I designed switch plate and the middle plates so that they would be glued together. The middle plate has inserts to attach the bottom plate using m8 screws.
21
22![](https://i.imgur.com/GstTohI.jpg)
23
24The end result is not too bad, but there is a few things I would do differently. Gluing 3D printed plates wasn't a good idea. The switch layer is so thin, that it bends when all the switches are slotted. As a result, the keyboard is not entirely flat. I will replace the bottom plate by a metal one so I get more weight and rigidity.
25
26Even with acrylic, I think I will have the same issue. I might switch to screws + bolts that go all the way through.
27
diff --git a/keyboards/handwired/rs60/config.h b/keyboards/handwired/rs60/config.h
new file mode 100644
index 000000000..371150a79
--- /dev/null
+++ b/keyboards/handwired/rs60/config.h
@@ -0,0 +1,47 @@
1/*
2Copyright 2018 QMK Contributors
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17#pragma once
18
19/* USB Device descriptor parameter */
20#define VENDOR_ID 0xFEED
21#define PRODUCT_ID 0x4260
22#define DEVICE_VER 0x0001
23#define MANUFACTURER rs
24#define PRODUCT rs60
25#define DESCRIPTION Preonic clone based on pro micro
26
27/* key matrix size */
28#define MATRIX_ROWS 5
29#define MATRIX_COLS 12
30
31/* key matrix pins */
32#define MATRIX_ROW_PINS { B5, B6, B4, B2, E6 }
33#define MATRIX_COL_PINS { C6, D4, D0, D1, D2, D3, F4, F5, F6, F7, B1, B3}
34#define UNUSED_PINS { }
35
36#define QMK_ESC_OUTPUT C6
37#define QMK_ESC_INPUT B4
38#define QMK_LED B0
39// #define QMK_SPEAKER C6
40
41/* COL2ROW or ROW2COL */
42#define DIODE_DIRECTION COL2ROW
43
44/* key combination for command */
45#define IS_COMMAND() ( \
46 false \
47)
diff --git a/keyboards/handwired/rs60/keymaps/default/keymap.c b/keyboards/handwired/rs60/keymaps/default/keymap.c
new file mode 100644
index 000000000..9fea769d0
--- /dev/null
+++ b/keyboards/handwired/rs60/keymaps/default/keymap.c
@@ -0,0 +1,207 @@
1/* Copyright 2015-2017 Jack Humbert
2 *
3 * 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 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include QMK_KEYBOARD_H
18
19enum layers {
20 _QWERTY,
21 _COLEMAK,
22 _DVORAK,
23 _LOWER,
24 _RAISE,
25 _ADJUST
26};
27
28enum keycodes {
29 QWERTY = SAFE_RANGE,
30 COLEMAK,
31 DVORAK,
32 LOWER,
33 RAISE,
34};
35
36const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
37
38/* Qwerty
39 * ,-----------------------------------------------------------------------------------.
40 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
41 * |------+------+------+------+------+------+------+------+------+------+------+------|
42 * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
43 * |------+------+------+------+------+-------------+------+------+------+------+------|
44 * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
45 * |------+------+------+------+------+------|------+------+------+------+------+------|
46 * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
47 * |------+------+------+------+------+------+------+------+------+------+------+------|
48 * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
49 * `-----------------------------------------------------------------------------------'
50 */
51[_QWERTY] = LAYOUT( \
52 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \
53 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, \
54 KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \
55 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, \
56 _______, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
57),
58
59/* Colemak
60 * ,-----------------------------------------------------------------------------------.
61 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
62 * |------+------+------+------+------+------+------+------+------+------+------+------|
63 * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del |
64 * |------+------+------+------+------+-------------+------+------+------+------+------|
65 * | Esc | A | R | S | T | D | H | N | E | I | O | " |
66 * |------+------+------+------+------+------|------+------+------+------+------+------|
67 * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
68 * |------+------+------+------+------+------+------+------+------+------+------+------|
69 * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
70 * `-----------------------------------------------------------------------------------'
71 */
72[_COLEMAK] = LAYOUT( \
73 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \
74 KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL, \
75 KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \
76 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, \
77 _______, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
78),
79
80/* Dvorak
81 * ,-----------------------------------------------------------------------------------.
82 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
83 * |------+------+------+------+------+------+------+------+------+------+------+------|
84 * | Tab | " | , | . | P | Y | F | G | C | R | L | Del |
85 * |------+------+------+------+------+-------------+------+------+------+------+------|
86 * | Esc | A | O | E | U | I | D | H | T | N | S | / |
87 * |------+------+------+------+------+------|------+------+------+------+------+------|
88 * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
89 * |------+------+------+------+------+------+------+------+------+------+------+------|
90 * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
91 * `-----------------------------------------------------------------------------------'
92 */
93[_DVORAK] = LAYOUT( \
94 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \
95 KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL, \
96 KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, \
97 KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT, \
98 _______, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
99),
100
101/* Lower
102 * ,-----------------------------------------------------------------------------------.
103 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
104 * |------+------+------+------+------+-------------+------+------+------+------+------|
105 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
106 * |------+------+------+------+------+-------------+------+------+------+------+------|
107 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
108 * |------+------+------+------+------+------|------+------+------+------+------+------|
109 * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | | |
110 * |------+------+------+------+------+------+------+------+------+------+------+------|
111 * | | | | | | | | Next | Vol- | Vol+ | Play |
112 * `-----------------------------------------------------------------------------------'
113 */
114[_LOWER] = LAYOUT( \
115 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \
116 KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, \
117 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \
118 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______, \
119 _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \
120),
121
122/* Raise
123 * ,-----------------------------------------------------------------------------------.
124 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
125 * |------+------+------+------+------+------+------+------+------+------+------+------|
126 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
127 * |------+------+------+------+------+-------------+------+------+------+------+------|
128 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
129 * |------+------+------+------+------+------|------+------+------+------+------+------|
130 * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | | |
131 * |------+------+------+------+------+------+------+------+------+------+------+------|
132 * | | | | | | | | Next | Vol- | Vol+ | Play |
133 * `-----------------------------------------------------------------------------------'
134 */
135[_RAISE] = LAYOUT( \
136 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \
137 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \
138 KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \
139 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, \
140 _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \
141),
142
143/* Adjust (Lower + Raise)
144 * ,-----------------------------------------------------------------------------------.
145 * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
146 * |------+------+------+------+------+------+------+------+------+------+------+------|
147 * | | Reset| | | | | | | | | | Del |
148 * |------+------+------+------+------+-------------+------+------+------+------+------|
149 * | | | |Aud on|AudOff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | |
150 * |------+------+------+------+------+------|------+------+------+------+------+------|
151 * | |Voice-|Voice+|Mus on|MusOff|MidiOn|MidOff| | | | | |
152 * |------+------+------+------+------+------+------+------+------+------+------+------|
153 * | | | | | | | | | | | |
154 * `-----------------------------------------------------------------------------------'
155 */
156[_ADJUST] = LAYOUT( \
157 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \
158 _______, RESET, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL, \
159 _______, _______, _______, _______, _______, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \
160 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
161 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
162)
163};
164
165bool process_record_user(uint16_t keycode, keyrecord_t *record) {
166 switch (keycode) {
167 case QWERTY:
168 if (record->event.pressed) {
169 set_single_persistent_default_layer(_QWERTY);
170 }
171 return false;
172 break;
173 case COLEMAK:
174 if (record->event.pressed) {
175 set_single_persistent_default_layer(_COLEMAK);
176 }
177 return false;
178 break;
179 case DVORAK:
180 if (record->event.pressed) {
181 set_single_persistent_default_layer(_DVORAK);
182 }
183 return false;
184 break;
185 case LOWER:
186 if (record->event.pressed) {
187 layer_on(_LOWER);
188 update_tri_layer(_LOWER, _RAISE, _ADJUST);
189 } else {
190 layer_off(_LOWER);
191 update_tri_layer(_LOWER, _RAISE, _ADJUST);
192 }
193 return false;
194 break;
195 case RAISE:
196 if (record->event.pressed) {
197 layer_on(_RAISE);
198 update_tri_layer(_LOWER, _RAISE, _ADJUST);
199 } else {
200 layer_off(_RAISE);
201 update_tri_layer(_LOWER, _RAISE, _ADJUST);
202 }
203 return false;
204 break;
205 }
206 return true;
207};
diff --git a/keyboards/handwired/rs60/keymaps/default/readme.md b/keyboards/handwired/rs60/keymaps/default/readme.md
new file mode 100644
index 000000000..e911968dd
--- /dev/null
+++ b/keyboards/handwired/rs60/keymaps/default/readme.md
@@ -0,0 +1 @@
# The default Preonic layout - largely based on the Planck's \ No newline at end of file
diff --git a/keyboards/handwired/rs60/rs60.c b/keyboards/handwired/rs60/rs60.c
new file mode 100644
index 000000000..f748740cb
--- /dev/null
+++ b/keyboards/handwired/rs60/rs60.c
@@ -0,0 +1,18 @@
1/*
2Copyright 2018 QMK Community
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#include "rs60.h"
diff --git a/keyboards/handwired/rs60/rs60.h b/keyboards/handwired/rs60/rs60.h
new file mode 100644
index 000000000..f2113f05c
--- /dev/null
+++ b/keyboards/handwired/rs60/rs60.h
@@ -0,0 +1,36 @@
1/*
2Copyright 2018 QMK Community
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17#pragma once
18
19#include "quantum.h"
20
21#define LAYOUT( \
22 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
23 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
24 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
25 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \
26 k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b \
27) \
28{ \
29 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
30 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
31 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
32 { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b }, \
33 { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b } \
34}
35
36#define LAYOUT_ortho_5x12 LAYOUT
diff --git a/keyboards/handwired/rs60/rules.mk b/keyboards/handwired/rs60/rules.mk
new file mode 100644
index 000000000..7b4ec69d0
--- /dev/null
+++ b/keyboards/handwired/rs60/rules.mk
@@ -0,0 +1,61 @@
1# MCU name
2MCU = atmega32u4
3
4# Processor frequency.
5# This will define a symbol, F_CPU, in all source code files equal to the
6# processor frequency in Hz. You can then use this symbol in your source code to
7# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
8# automatically to create a 32-bit value in your source code.
9#
10# This will be an integer division of F_USB below, as it is sourced by
11# F_USB after it has run through any CPU prescalers. Note that this value
12# does not *change* the processor frequency - it should merely be updated to
13# reflect the processor speed set externally so that the code can use accurate
14# software delays.
15F_CPU = 16000000
16
17#
18# LUFA specific
19#
20# Target architecture (see library "Board Types" documentation).
21ARCH = AVR8
22
23# Input clock frequency.
24# This will define a symbol, F_USB, in all source code files equal to the
25# input clock frequency (before any prescaling is performed) in Hz. This value may
26# differ from F_CPU if prescaling is used on the latter, and is required as the
27# raw input clock is fed directly to the PLL sections of the AVR for high speed
28# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
29# at the end, this will be done automatically to create a 32-bit value in your
30# source code.
31#
32# If no clock division is performed on the input clock inside the AVR (via the
33# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
34F_USB = $(F_CPU)
35
36# Bootloader
37BOOTLOADER = qmk-dfu
38
39# Interrupt driven control endpoint task(+60)
40OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
41
42LAYOUTS = ortho_5x12
43
44# Boot Section Size in *bytes*
45#OPT_DEFS += -DBOOTLOADER_SIZE=4096
46
47
48# Build Options
49# comment out to disable the options.
50#
51BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
52MOUSEKEY_ENABLE = no # Mouse keys(+4700)
53EXTRAKEY_ENABLE = no # Audio control and System control(+450)
54CONSOLE_ENABLE = yes # Console for debug(+400)
55COMMAND_ENABLE = no # Commands for debug and configuration
56SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
57NKRO_ENABLE = no # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
58BACKLIGHT_ENABLE = no # Custom backlighting code is used, so this should not be enabled
59AUDIO_ENABLE = no # This can be enabled if a speaker is connected to the expansion port. Not compatible with RGBLIGHT below
60RGBLIGHT_ENABLE = no # This can be enabled if a ws2812 strip is connected to the expansion port.
61
diff --git a/keyboards/iris/keymaps/rs/config.h b/keyboards/iris/keymaps/rs/config.h
new file mode 100644
index 000000000..7c5b5ca43
--- /dev/null
+++ b/keyboards/iris/keymaps/rs/config.h
@@ -0,0 +1,38 @@
1/*
2Copyright 2017 Danny Nguyen <danny@hexwire.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#pragma once
19
20/* Use I2C or Serial, not both */
21
22#define USE_SERIAL
23// #define USE_I2C
24
25/* Select hand configuration */
26
27#define MASTER_LEFT
28// #define MASTER_RIGHT
29// #define EE_HANDS
30
31#define TAPPING_TERM 150
32
33#undef RGBLED_NUM
34#define RGBLED_NUM 6
35#define RGBLIGHT_SLEEP
36#define RGBLIGHT_HUE_STEP 1
37#define RGBLIGHT_SAT_STEP 1
38#define RGBLIGHT_VAL_STEP 1 \ No newline at end of file
diff --git a/keyboards/iris/keymaps/rs/karabiner.json b/keyboards/iris/keymaps/rs/karabiner.json
new file mode 100644
index 000000000..f5214650a
--- /dev/null
+++ b/keyboards/iris/keymaps/rs/karabiner.json
@@ -0,0 +1,154 @@
1{
2 "title": "RS",
3 "rules": [{
4 "description": "CapsLock to Escape / Control Mod-Tap",
5 "manipulators": [{
6 "type": "basic",
7 "from": {
8 "key_code": "caps_lock",
9 "modifiers": {
10 "optional": ["any"]
11 }
12 },
13 "to": [{"key_code": "left_control"}],
14 "to_if_alone": [{"key_code": "escape"}]
15 }]
16 },
17 {
18 "description": "Right-Shift / Enter Mod-Tap",
19 "manipulators": [{
20 "type": "basic",
21 "from": {
22 "key_code": "right_shift",
23 "modifiers": {
24 "optional": ["any"]
25 }
26 },
27 "to": [{"key_code": "right_shift"}],
28 "to_if_alone": [{"key_code": "return_or_enter"}]
29 }]
30 },
31 {
32 "description": "Right-Command / Backspace Mod-Tap",
33 "manipulators": [{
34 "type": "basic",
35 "from": {
36 "key_code": "right_command",
37 "modifiers": {
38 "optional": ["any"]
39 }
40 },
41 "to": [{"key_code": "right_command"}],
42 "to_if_alone": [{"key_code": "delete_or_backspace"}]
43 }]
44 },
45 {
46 "description": "Right-Command Accents",
47 "manipulators": [
48 {
49 "type": "basic",
50 "from": {
51 "key_code": "a",
52 "modifiers": {
53 "mandatory": ["right_command"],
54 "optional": ["left_shift", "right_shift"]
55 }
56 },
57 "to": [
58 {"key_code": "grave_accent_and_tilde", "modifiers": ["left_option"]},
59 {"key_code": "a"}
60 ]
61 }]
62 },
63 {
64 "description": "Right Command Navigation",
65 "manipulators": [{
66 "type": "basic",
67 "from": {
68 "key_code": "j",
69 "modifiers": {
70 "mandatory": ["right_command"],
71 "optional": ["any"]
72 }
73 },
74 "to": [{"key_code": "left_arrow"}]
75 },
76 {
77 "type": "basic",
78 "from": {
79 "key_code": "k",
80 "modifiers": {
81 "mandatory": ["right_command"],
82 "optional": ["any"]
83 }
84 },
85 "to": [{"key_code": "down_arrow"}]
86 },
87 {
88 "type": "basic",
89 "from": {
90 "key_code": "i",
91 "modifiers": {
92 "mandatory": ["right_command"],
93 "optional": ["any"]
94 }
95 },
96 "to": [{"key_code": "up_arrow"}]
97 },
98 {
99 "type": "basic",
100 "from": {
101 "key_code": "l",
102 "modifiers": {
103 "mandatory": ["right_command"],
104 "optional": ["any"]
105 }
106 },
107 "to": [{"key_code": "right_arrow"}]
108 },
109 {
110 "type": "basic",
111 "from": {
112 "key_code": "e",
113 "modifiers": {
114 "mandatory": ["right_command"],
115 "optional": ["any"]
116 }
117 },
118 "to": [{"key_code": "page_up"}]
119 },
120 {
121 "type": "basic",
122 "from": {
123 "key_code": "d",
124 "modifiers": {
125 "mandatory": ["right_command"],
126 "optional": ["any"]
127 }
128 },
129 "to": [{"key_code": "page_down"}]
130 },
131 {
132 "type": "basic",
133 "from": {
134 "key_code": "s",
135 "modifiers": {
136 "mandatory": ["right_command"],
137 "optional": ["any"]
138 }
139 },
140 "to": [{"key_code": "home"}]
141 },
142 {
143 "type": "basic",
144 "from": {
145 "key_code": "f",
146 "modifiers": {
147 "mandatory": ["right_command"],
148 "optional": ["any"]
149 }
150 },
151 "to": [{"key_code": "end"}]
152 }]
153 }]
154}
diff --git a/keyboards/iris/keymaps/rs/keymap.c b/keyboards/iris/keymaps/rs/keymap.c
new file mode 100644
index 000000000..43374e59f
--- /dev/null
+++ b/keyboards/iris/keymaps/rs/keymap.c
@@ -0,0 +1,48 @@
1#include QMK_KEYBOARD_H
2
3enum layers {
4 _QWERTY,
5 _HYPER,
6};
7
8#define KC_ KC_TRNS
9
10#define KC_ESCC MT(MOD_LCTL, KC_ESC)
11#define KC_ENTS MT(MOD_LSFT, KC_ENT)
12#define KC_HYPE MO(_HYPER)
13#define KC_RST RESET
14// Brightness
15#define KC_BRUP KC_PAUS
16#define KC_BRDN KC_SLCK
17#define KC_BLTG BL_TOGG
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20
21 [_QWERTY] = LAYOUT_kc(
22 //,----+----+----+----+----+----. ,----+----+----+----+----+----.
23 GRV , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS,
24 //|----+----+----+----+----+----| |----+----+----+----+----+----|
25 TAB , Q , W , E , R , T , Y , U , I , O , P ,EQL,
26 //|----+----+----+----+----+----| |----+----+----+----+----+----|
27 ESCC, A , S , D , F , G , H , J , K , L ,SCLN,QUOT,
28 //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
29 LSFT, Z , X , C , V , B ,SPC, BSPC, N , M ,COMM,DOT ,SLSH,ENTS,
30 //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
31 LALT,LGUI,SPC, BSPC,HYPE,ENT
32 // `----+----+----' `+---+----+----'
33 ), // |
34 // |
35 [_HYPER] = LAYOUT_kc( // V
36 //,----+----+----+----+----+----. ,----+----+----+----+----+----.
37 RST , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 ,LBRC,RBRC, ,
38 //|----+----+----+----+----+----| |----+----+----+----+----+----|
39 , , ,PGUP, ,BRUP, , , UP ,LCBR,RCBR,BSLS,
40 //|----+----+----+----+----+----| |----+----+----+----+----+----|
41 , ,HOME,PGDN,END ,BRDN, MINS,LEFT,DOWN,RGHT, ,PIPE,
42 //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
43 , , , , , ,BLTG, VOLU, , , , , , ,
44 //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
45 , , , VOLD, ,MUTE
46 // `----+----+----' `----+----+----'
47 ),
48};
diff --git a/keyboards/iris/keymaps/rs/readme.md b/keyboards/iris/keymaps/rs/readme.md
new file mode 100644
index 000000000..bdf44121e
--- /dev/null
+++ b/keyboards/iris/keymaps/rs/readme.md
@@ -0,0 +1,13 @@
1# Code friendly 60% keymap
2
3I developped this keymap to make a better use of 60% ortho keyboards I use like the preonic of the iris. Instead of trying to mimic the Planck layout like the default preonic keymap, this keymap removes the raise and lower layers and offers a simpler hyper layer concept for a few missing sign keys and cursors / media keys.
4
5The important part for coders is that most important signs needed to code are available at their usual position on a full keyboard, without complex layer gymnastic. Access to [] and {} are available on the hyper layer at their usual emplacement.
6
7The right thumb is used for both backspace and hyper layer switching. On the hyper layer, in addition to some coding signs, you get the cursor keys arranged in cross, just under your right fingers, so you don't have to move your hand when navigating in code or command line. Other hand gets the home/end page up/down in a similar layout.
8
9Because you sometime have to use your internal keyboard when you use a macbook, a karabiner configuration is also provided to get most of the features of this keyboard, including the hyper layer / backspace on right command key etc.
10
11This keymap is also available for other keyboards:
12- [ortho_5x12/rs](../../../../layouts/community/ortho_5x12/rs/keymap.c)
13- [ErgoTravel/rs](../../../ergotravel/keymaps/rs/keymap.c)
diff --git a/keyboards/iris/keymaps/rs/rules.mk b/keyboards/iris/keymaps/rs/rules.mk
new file mode 100644
index 000000000..bd518d8f2
--- /dev/null
+++ b/keyboards/iris/keymaps/rs/rules.mk
@@ -0,0 +1 @@
BACKLIGHT_ENABLE = yes
diff --git a/layouts/community/ortho_5x12/rs/config.h b/layouts/community/ortho_5x12/rs/config.h
new file mode 100644
index 000000000..02076e872
--- /dev/null
+++ b/layouts/community/ortho_5x12/rs/config.h
@@ -0,0 +1,35 @@
1#pragma once
2
3#ifdef AUDIO_ENABLE
4//#define STARTUP_SONG SONG(PREONIC_SOUND)
5#define STARTUP_SONG SONG(NO_SOUND)
6
7#define DEFAULT_LAYER_SONGS \
8 { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND) }
9#endif
10
11#define MUSIC_MASK (keycode != KC_NO)
12
13/*
14 * MIDI options
15 */
16
17/* Prevent use of disabled MIDI features in the keymap */
18//#define MIDI_ENABLE_STRICT 1
19
20/* enable basic MIDI features:
21 - MIDI notes can be sent when in Music mode is on
22*/
23
24#define MIDI_BASIC
25
26/* enable advanced MIDI features:
27 - MIDI notes can be added to the keymap
28 - Octave shift and transpose
29 - Virtual sustain, portamento, and modulation wheel
30 - etc.
31*/
32//#define MIDI_ADVANCED
33
34/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
35//#define MIDI_TONE_KEYCODE_OCTAVES 2
diff --git a/layouts/community/ortho_5x12/rs/karabiner.json b/layouts/community/ortho_5x12/rs/karabiner.json
new file mode 100644
index 000000000..f5214650a
--- /dev/null
+++ b/layouts/community/ortho_5x12/rs/karabiner.json
@@ -0,0 +1,154 @@
1{
2 "title": "RS",
3 "rules": [{
4 "description": "CapsLock to Escape / Control Mod-Tap",
5 "manipulators": [{
6 "type": "basic",
7 "from": {
8 "key_code": "caps_lock",
9 "modifiers": {
10 "optional": ["any"]
11 }
12 },
13 "to": [{"key_code": "left_control"}],
14 "to_if_alone": [{"key_code": "escape"}]
15 }]
16 },
17 {
18 "description": "Right-Shift / Enter Mod-Tap",
19 "manipulators": [{
20 "type": "basic",
21 "from": {
22 "key_code": "right_shift",
23 "modifiers": {
24 "optional": ["any"]
25 }
26 },
27 "to": [{"key_code": "right_shift"}],
28 "to_if_alone": [{"key_code": "return_or_enter"}]
29 }]
30 },
31 {
32 "description": "Right-Command / Backspace Mod-Tap",
33 "manipulators": [{
34 "type": "basic",
35 "from": {
36 "key_code": "right_command",
37 "modifiers": {
38 "optional": ["any"]
39 }
40 },
41 "to": [{"key_code": "right_command"}],
42 "to_if_alone": [{"key_code": "delete_or_backspace"}]
43 }]
44 },
45 {
46 "description": "Right-Command Accents",
47 "manipulators": [
48 {
49 "type": "basic",
50 "from": {
51 "key_code": "a",
52 "modifiers": {
53 "mandatory": ["right_command"],
54 "optional": ["left_shift", "right_shift"]
55 }
56 },
57 "to": [
58 {"key_code": "grave_accent_and_tilde", "modifiers": ["left_option"]},
59 {"key_code": "a"}
60 ]
61 }]
62 },
63 {
64 "description": "Right Command Navigation",
65 "manipulators": [{
66 "type": "basic",
67 "from": {
68 "key_code": "j",
69 "modifiers": {
70 "mandatory": ["right_command"],
71 "optional": ["any"]
72 }
73 },
74 "to": [{"key_code": "left_arrow"}]
75 },
76 {
77 "type": "basic",
78 "from": {
79 "key_code": "k",
80 "modifiers": {
81 "mandatory": ["right_command"],
82 "optional": ["any"]
83 }
84 },
85 "to": [{"key_code": "down_arrow"}]
86 },
87 {
88 "type": "basic",
89 "from": {
90 "key_code": "i",
91 "modifiers": {
92 "mandatory": ["right_command"],
93 "optional": ["any"]
94 }
95 },
96 "to": [{"key_code": "up_arrow"}]
97 },
98 {
99 "type": "basic",
100 "from": {
101 "key_code": "l",
102 "modifiers": {
103 "mandatory": ["right_command"],
104 "optional": ["any"]
105 }
106 },
107 "to": [{"key_code": "right_arrow"}]
108 },
109 {
110 "type": "basic",
111 "from": {
112 "key_code": "e",
113 "modifiers": {
114 "mandatory": ["right_command"],
115 "optional": ["any"]
116 }
117 },
118 "to": [{"key_code": "page_up"}]
119 },
120 {
121 "type": "basic",
122 "from": {
123 "key_code": "d",
124 "modifiers": {
125 "mandatory": ["right_command"],
126 "optional": ["any"]
127 }
128 },
129 "to": [{"key_code": "page_down"}]
130 },
131 {
132 "type": "basic",
133 "from": {
134 "key_code": "s",
135 "modifiers": {
136 "mandatory": ["right_command"],
137 "optional": ["any"]
138 }
139 },
140 "to": [{"key_code": "home"}]
141 },
142 {
143 "type": "basic",
144 "from": {
145 "key_code": "f",
146 "modifiers": {
147 "mandatory": ["right_command"],
148 "optional": ["any"]
149 }
150 },
151 "to": [{"key_code": "end"}]
152 }]
153 }]
154}
diff --git a/layouts/community/ortho_5x12/rs/keymap.c b/layouts/community/ortho_5x12/rs/keymap.c
new file mode 100644
index 000000000..f33dcc253
--- /dev/null
+++ b/layouts/community/ortho_5x12/rs/keymap.c
@@ -0,0 +1,63 @@
1#include QMK_KEYBOARD_H
2
3enum layers {
4 _QWERTY,
5 _HYPER,
6};
7
8#define KC_ KC_TRNS
9
10#define KC_ESCC MT(MOD_LCTL, KC_ESC)
11#define KC_RST RESET
12#define KC_BSPH LT(_HYPER, KC_BSPC)
13#define KC_ENTS MT(MOD_LSFT, KC_ENT)
14// Brightness
15#define KC_BRUP KC_PAUS
16#define KC_BRDN KC_SLCK
17
18// Used to create a keymap using only KC_ prefixed keys
19#define LAYOUT_kc( \
20 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
21 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
22 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
23 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \
24 k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b \
25 ) \
26 LAYOUT_ortho_5x12( \
27 KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_##k06, KC_##k07, KC_##k08, KC_##k09, KC_##k0a, KC_##k0b, \
28 KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15, KC_##k16, KC_##k17, KC_##k18, KC_##k19, KC_##k1a, KC_##k1b, \
29 KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25, KC_##k26, KC_##k27, KC_##k28, KC_##k29, KC_##k2a, KC_##k2b, \
30 KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k36, KC_##k37, KC_##k38, KC_##k39, KC_##k3a, KC_##k3b, \
31 KC_##k40, KC_##k41, KC_##k42, KC_##k43, KC_##k44, KC_##k45, KC_##k46, KC_##k47, KC_##k48, KC_##k49, KC_##k4a, KC_##k4b \
32 )
33
34const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
35
36 [_QWERTY] = LAYOUT_kc( \
37 // ,-----------------------------------------------------------------------------------.
38 GRV , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , MINS ,
39 // |------+------+------+------+------+------+------+------+------+------+------+------|
40 TAB , Q , W , E , R , T , Y , U , I , O , P , EQL ,
41 // |------+------+------+------+------+------+------+------+------+------+------+------|
42 ESCC , A , S , D , F , G , H , J , K , L , SCLN , QUOT ,
43 // |------+------+------+------+------+------+------+------+------+------+------+------|
44 LSFT , Z , X , C , V , B , N , M , COMM , DOT , SLSH , ENTS ,
45 // |------+------+------+------+------+------+------+------+------+------+------+------|
46 , LCTL , LALT , LGUI , SPC , SPC , BSPC , BSPH , LEFT , DOWN , UP , RGHT
47 // `---------------------------------------------------+-------------------------------'
48 ), // |
49 // |
50 [_HYPER] = LAYOUT_kc( /* V */ \
51 // ,-----------------------------------------------------------------------------------.
52 RST , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , LBRC , RBRC , ,
53 // |------+------+------+------+------+------+------+------+------+------+------+------|
54 , , , PGUP , , , , , UP , LCBR , RCBR , BSLS ,
55 // |------+------+------+------+------+------+------+------+------+------+------+------|
56 , , HOME , PGDN , END , , MINS , LEFT , DOWN , RGHT , , PIPE ,
57 // |------+------+------+------+------+------+------+------+------+------+------+------|
58 , , , , , , , , , BRDN , BRUP , ,
59 // |------+------+------+------+------+------+------+------+------+------+------+------|
60 , , , , , , , , MUTE , VOLD , VOLU , MPLY
61 // `-----------------------------------------------------------------------------------'
62 ),
63};
diff --git a/layouts/community/ortho_5x12/rs/readme.md b/layouts/community/ortho_5x12/rs/readme.md
new file mode 100644
index 000000000..d75eefd5b
--- /dev/null
+++ b/layouts/community/ortho_5x12/rs/readme.md
@@ -0,0 +1,17 @@
1# Code friendly 60% keymap
2
3I developped this keymap to make a better use of 60% ortho keyboards I use like the preonic of the iris. Instead of trying to mimic the Planck layout like the default preonic keymap, this keymap removes the raise and lower layers and offers a simpler hyper layer concept for a few missing sign keys and cursors / media keys.
4
5The important part for coders is that most important signs needed to code are available at their usual position on a full keyboard, without complex layer gymnastic. Access to [] and {} are available on the hyper layer at their usual emplacement.
6
7The right thumb is used for both backspace and hyper layer switching. On the hyper layer, in addition to some coding signs, you get the cursor keys arranged in cross, just under your right fingers, so you don't have to move your hand when navigating in code or command line. Other hand gets the home/end page up/down in a similar layout.
8
9Because you sometime have to use your internal keyboard when you use a macbook, a karabiner configuration is also provided to get most of the features of this keyboard, including the hyper layer / backspace on right command key etc.
10
11This keymap has been tested with those keyboards:
12- [Preonic](../../../../keyboards/preonic/)
13- [My preonic clone](../../../rs60/)
14
15Checkout an adaptation of this keymap for other keyboards:
16- [Iris/rs](../../../../keyboards/iris/keymaps/rs/keymap.c)
17- [ErgoTravel/rs](../../../../keyboards/ergotravel/keymaps/rs/keymap.c) \ No newline at end of file