aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJack Humbert <jack.humb@gmail.com>2016-09-19 01:20:04 -0400
committerGitHub <noreply@github.com>2016-09-19 01:20:04 -0400
commit6282fc8dc11a04dde5e340491ad42c99a161897c (patch)
tree04ec924c4ffe6d2620a8a1d1cca3bb423823536b
parenta258358b6c2df0d1347a6506831076ef6a9784b3 (diff)
parentac6125cbea0ef2cfb9e8c79b89659128f60f0853 (diff)
downloadqmk_firmware-6282fc8dc11a04dde5e340491ad42c99a161897c.tar.gz
qmk_firmware-6282fc8dc11a04dde5e340491ad42c99a161897c.zip
Merge pull request #751 from erlandsona/master
My Atreus Layout
-rw-r--r--keyboards/atreus/keymaps/erlandsona/config.h96
-rw-r--r--keyboards/atreus/keymaps/erlandsona/keymap.c61
2 files changed, 157 insertions, 0 deletions
diff --git a/keyboards/atreus/keymaps/erlandsona/config.h b/keyboards/atreus/keymaps/erlandsona/config.h
new file mode 100644
index 000000000..d9eb1903e
--- /dev/null
+++ b/keyboards/atreus/keymaps/erlandsona/config.h
@@ -0,0 +1,96 @@
1/*
2Copyright 2012 Jun Wako <wakojun@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#ifndef CONFIG_H
19#define CONFIG_H
20
21#include "config_common.h"
22
23
24/* Make Overloaded Keys switch faster */
25#define TAPPING_TERM 150
26
27/* USB Device descriptor parameter */
28
29#define VENDOR_ID 0xFEED
30#define PRODUCT_ID 0x6060
31#define DEVICE_VER 0x0001
32#define MANUFACTURER Technomancy
33#define PRODUCT Atreus
34#define DESCRIPTION q.m.k. keyboard firmware for Atreus
35
36/* key matrix size */
37#define MATRIX_ROWS 4
38#define MATRIX_COLS 11
39
40// Change this to how you wired your keyboard
41// COLS: Left to right, ROWS: Top to bottom
42#if defined(ATREUS_ASTAR)
43# define MATRIX_ROW_PINS { D0, D1, D3, D2 }
44#if defined(PCBDOWN)
45# define MATRIX_COL_PINS { B7, D6, F7, F6, B6, D4, E6, B4, B5, C6, D7 }
46#else
47# define MATRIX_COL_PINS { D7, C6, B5, B4, E6, D4, B6, F6, F7, D6, B7 }
48#endif
49# define UNUSED_PINS
50#elif defined(ATREUS_TEENSY2)
51# define MATRIX_ROW_PINS { D0, D1, D2, D3 }
52# define MATRIX_COL_PINS { F6, F5, F4, B7, B6, B5, B4, B3, B2, B1, B0 }
53# define UNUSED_PINS
54#endif
55
56/* COL2ROW or ROW2COL */
57#define DIODE_DIRECTION COL2ROW
58
59/* define if matrix has ghost */
60//#define MATRIX_HAS_GHOST
61
62/* number of backlight levels */
63//#define BACKLIGHT_LEVELS 3
64
65/* Set 0 if debouncing isn't needed */
66#define DEBOUNCING_DELAY 5
67
68/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
69#define LOCKING_SUPPORT_ENABLE
70/* Locking resynchronize hack */
71#define LOCKING_RESYNC_ENABLE
72
73/* key combination for command */
74#define IS_COMMAND() ( \
75 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
76)
77
78/*
79 * Feature disable options
80 * These options are also useful to firmware size reduction.
81 */
82
83/* disable debug print */
84//#define NO_DEBUG
85
86/* disable print */
87//#define NO_PRINT
88
89/* disable action features */
90//#define NO_ACTION_LAYER
91//#define NO_ACTION_TAPPING
92//#define NO_ACTION_ONESHOT
93//#define NO_ACTION_MACRO
94//#define NO_ACTION_FUNCTION
95
96#endif
diff --git a/keyboards/atreus/keymaps/erlandsona/keymap.c b/keyboards/atreus/keymaps/erlandsona/keymap.c
new file mode 100644
index 000000000..32c8826e0
--- /dev/null
+++ b/keyboards/atreus/keymaps/erlandsona/keymap.c
@@ -0,0 +1,61 @@
1// this is the style you want to emulate.
2// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
3
4#include "atreus.h"
5
6// Each layer gets a name for readability, which is then used in the keymap matrix below.
7// The underscores don't mean anything - you can have a layer called STUFF or any other name.
8// Layer names don't all need to be of the same length, obviously, and you can also skip them
9// entirely and just use numbers.
10#define BASE 0
11#define NUMS 1
12#define MOUS 2
13
14// Some quick aliases, just to make it look pretty
15#define _______ KC_TRNS
16#define XXXXXXX KC_NO
17
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20[BASE] = KEYMAP( /* Qwerty */
21 KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P ,
22 KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN ,
23 SFT_T(KC_Z), KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , SFT_T(KC_QUOT),
24 KC_LCTL , KC_LALT, KC_LALT, KC_LGUI, KC_BSPC, KC_ESC, KC_ENT, KC_SPC, F(NUMS), KC_RALT, KC_SLSH, KC_BSLS ),
25
26[NUMS] = KEYMAP( /* Numbers / Arrows / Symbols */
27 KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_LPRN, KC_RPRN, KC_MINS, KC_EQL , KC_LBRC,
28 KC_TAB , KC_5 , KC_6 , KC_7 , KC_8 , KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, KC_RBRC,
29 _______, KC_9 , KC_0 , KC_DOT , KC_COMM, KC_HOME, KC_PGDN, KC_PGUP, KC_END , _______,
30 _______, _______, _______, _______, KC_DEL , F(MOUS), _______, _______, _______, _______, _______, _______),
31
32[MOUS] = KEYMAP( /* Mouse and Media Keys */
33 KC_SLCK, KC_PAUSE, KC_F11 , KC_F10 , KC_F9 , KC_F8 , KC_F7 , KC_F6 , KC_F5 , KC_F4,
34 KC_VOLD, KC_ACL0 , KC_ACL1, KC_ACL2, KC_VOLU, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_F3,
35 KC_MUTE, KC_MPRV , KC_MPLY, KC_MNXT, KC_MUTE, KC_WH_R, KC_WH_U, KC_WH_D, KC_WH_L, KC_F2,
36 _______, _______ , _______, _______, _______, _______, _______, KC_BTN1, F(BASE), RESET , KC_F12 , KC_F1)
37};
38
39
40// I prefer this layer switching strategy to the TG and MO functions.
41// so that I can get out of mouse mode just by tapping/holding my base layer FN key.
42const uint16_t PROGMEM fn_actions[] = {
43 [BASE] = ACTION_LAYER_OFF(2, 1), // switch back to layer 0
44 [NUMS] = ACTION_LAYER_MOMENTARY(1), // to Fn overlay
45 [MOUS] = ACTION_LAYER_ON(2, 1) // switch to layer 2
46};
47
48const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
49{
50 // MACRODOWN only works in this function
51 switch(id) {
52 case 0:
53 if (record->event.pressed) {
54 register_code(KC_RSFT);
55 } else {
56 unregister_code(KC_RSFT);
57 }
58 break;
59 }
60 return MACRO_NONE;
61};