summaryrefslogtreecommitdiff
path: root/keyboards/roadkit
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/roadkit')
-rw-r--r--keyboards/roadkit/keymaps/singlesBrent/Makefile22
-rw-r--r--keyboards/roadkit/keymaps/singlesBrent/config.h15
-rw-r--r--keyboards/roadkit/keymaps/singlesBrent/keymap.c242
-rw-r--r--keyboards/roadkit/keymaps/singlesBrent/readme.md3
-rw-r--r--keyboards/roadkit/readme.md36
5 files changed, 291 insertions, 27 deletions
diff --git a/keyboards/roadkit/keymaps/singlesBrent/Makefile b/keyboards/roadkit/keymaps/singlesBrent/Makefile
new file mode 100644
index 000000000..b61d6cca2
--- /dev/null
+++ b/keyboards/roadkit/keymaps/singlesBrent/Makefile
@@ -0,0 +1,22 @@
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+TAP_DANCE_ENABLE = yes # Enable Tap Dance functionality
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif \ No newline at end of file
diff --git a/keyboards/roadkit/keymaps/singlesBrent/config.h b/keyboards/roadkit/keymaps/singlesBrent/config.h
new file mode 100644
index 000000000..57468e122
--- /dev/null
+++ b/keyboards/roadkit/keymaps/singlesBrent/config.h
@@ -0,0 +1,15 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+// place overrides here
+#define TAPPING_TERM 175
+
+#ifdef BACKLIGHT_ENABLE
+ #define BACKLIGHT_PIN B5
+ #define BACKLIGHT_LEVELS 3
+ #define BACKLIGHT_ON_STATE 0
+#endif
+
+#endif \ No newline at end of file
diff --git a/keyboards/roadkit/keymaps/singlesBrent/keymap.c b/keyboards/roadkit/keymaps/singlesBrent/keymap.c
new file mode 100644
index 000000000..13197346a
--- /dev/null
+++ b/keyboards/roadkit/keymaps/singlesBrent/keymap.c
@@ -0,0 +1,242 @@
+#include "roadkit.h"
+#include "action_layer.h"
+#include "eeconfig.h"
+
+extern keymap_config_t keymap_config;
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+
+#define _NP 0
+#define _L1 1
+#define _L2 2
+#define _L3 3
+
+// Macro name shortcuts
+#define NUMPAD M(_NP)
+#define LAYER1 M(_L1)
+#define LAYER2 M(_L2)
+#define LAYER3 M(_L3)
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+void matrix_init_user(void) {
+ backlight_level(4);
+}
+
+
+
+//Tap Dance Declarations
+
+enum {
+
+ TD_EQUAL_NP = 0,
+ TD_KP_PLUS_L1,
+ TD_DOT_L2,
+ TD_0_L3
+
+};
+
+//Tap Dance Definitions
+
+
+ //TD equal to turn on layer NP
+void _td_equal_tg_finished (qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 1) {
+ register_code(KC_EQUAL);
+ } else if (state->count == 2) {
+ backlight_set(3);
+ layer_on(_NP);
+ layer_off(_L1);
+ layer_off(_L2);
+ layer_off(_L3);
+ }
+}
+
+void _td_equal_tg_reset (qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 1) {
+ unregister_code(KC_EQUAL);
+ }
+}
+
+
+ //TD kp plus to toggle layer 1
+void _td_kp_plus_tg_finished (qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 1) {
+ register_code(KC_KP_PLUS);
+ } else if (state->count == 2) {
+// layer_invert(_L1);
+ backlight_set(2);
+ layer_on(_L1);
+ layer_off(_L2);
+ layer_off(_L3);
+ }
+}
+
+void _td_kp_plus_tg_reset (qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 1) {
+ unregister_code(KC_KP_PLUS);
+ }
+}
+
+
+ //TD dot to toggle layer 2
+void _td_dot_tg_finished (qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 1) {
+ register_code(KC_DOT);
+ } else if (state->count == 2) {
+ backlight_set(1);
+ layer_on(_L2);
+ layer_off(_L1);
+ layer_off(_L3);
+ }
+}
+
+void _td_dot_tg_reset (qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 1) {
+ unregister_code(KC_DOT);
+ }
+}
+
+ //TD 0 to toggle layer 3
+void _td_0_tg_finished (qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 1) {
+ register_code(KC_0);
+ } else if (state->count == 2) {
+ backlight_set(0);
+ layer_on(_L3);
+ layer_off(_L1);
+ layer_off(_L2);
+ }
+}
+
+void _td_0_tg_reset (qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 1) {
+ unregister_code(KC_0);
+ }
+}
+
+//TD Actions
+qk_tap_dance_action_t tap_dance_actions[] = {
+ [TD_EQUAL_NP] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, _td_equal_tg_finished, _td_equal_tg_reset),
+ [TD_KP_PLUS_L1] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, _td_kp_plus_tg_finished, _td_kp_plus_tg_reset),
+ [TD_DOT_L2] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, _td_dot_tg_finished, _td_dot_tg_reset),
+ [TD_0_L3] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, _td_0_tg_finished, _td_0_tg_reset)
+};
+
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Numberpad
+ * ,-----------------------.
+ * | 7 | 8 | 9 | / |
+ * |-----`-----`-----`-----|
+ * | 4 | 5 | 6 | * |
+ * |-----`-----`-----`-----|
+ * | 1 | 2 | 3 | - |
+ * |-----`-----`-----`-----|
+ * | 0 | . | + | = |
+ * `-----`-----`-----`-----'
+ * Tapdances:
+ * | L3 | L2 | L1 | NP |
+ * `-----`-----`-----`-----'
+ */
+ [_NP] = /* Numpad */
+ SINGLES_KEYMAP(KC_7, KC_8, KC_9, KC_SLASH, \
+ KC_4, KC_5, KC_6, KC_KP_ASTERISK, \
+ KC_1, KC_2, KC_3, KC_MINUS, \
+ TD(TD_0_L3), TD(TD_DOT_L2), TD(TD_KP_PLUS_L1), TD(TD_EQUAL_NP)),
+
+/* L1
+ * ,-----------------------.
+ * | Esc |Bksp |Home |PgUp |
+ * |-----`-----`-----`-----|
+ * | Tab | Up | End |PgDn |
+ * |-----`-----`-----`-----|
+ * |Left |Down |Right|Enter|
+ * |-----`-----`-----`-----|
+ * | 0 | . | + | = |
+ * `-----`-----`-----`-----'
+ */
+ [_L1] = /* LAYER 1 */
+ SINGLES_KEYMAP(KC_ESCAPE, KC_BSPACE, KC_HOME, KC_PGUP, \
+ KC_TAB, KC_UP, KC_END, KC_PGDOWN, \
+ KC_LEFT, KC_DOWN, KC_RIGHT, KC_KP_ENTER, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+/* L2
+ * ,-----------------------.
+ * |Sleep|LClik|RClik|VolUp|
+ * |-----`-----`-----`-----|
+ * |AltF4| F11 |WinTb|VolDn|
+ * |-----`-----`-----`-----|
+ * |PrvTk|Play |NxtTk|Mute |
+ * |-----`-----`-----`-----|
+ * | 0 | . | + | = |
+ * `-----`-----`-----`-----'
+ */
+ [_L2] = /* LAYER 2 */
+ SINGLES_KEYMAP(KC_SYSTEM_SLEEP, KC_MS_BTN1, KC_MS_BTN2, KC_AUDIO_VOL_UP, \
+ LALT(KC_F4), KC_F11, LGUI(KC_TAB), KC_AUDIO_VOL_DOWN, \
+ KC_MEDIA_PREV_TRACK, KC_MEDIA_PLAY_PAUSE, KC_MEDIA_NEXT_TRACK, KC_AUDIO_MUTE, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+
+/* L3 needs cut, copy, paste, undo, again (redo), find, calc, www back, www forward, F5
+ * ,-----------------------.
+ * |WBack|WHome|WFor | F5 |
+ * |-----`-----`-----`-----|
+ * |Calc |Undo |Redo |WSrch|
+ * |-----`-----`-----`-----|
+ * | Cut |Copy |Paste|Find |
+ * |-----`-----`-----`-----|
+ * | 0 | . | + | = |
+ * `-----`-----`-----`-----'
+ */
+ [_L3] = /* LAYER 3 */
+ SINGLES_KEYMAP(KC_WWW_BACK, KC_WWW_HOME, KC_WWW_FORWARD, KC_F5, \
+ KC_CALCULATOR, LCTL(KC_Z), LCTL(KC_Y), KC_WWW_SEARCH, \
+ LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), LCTL(KC_F), \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+
+};
+
+void persistent_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ switch(id) {
+ case _L3:
+ if (record->event.pressed) {
+ persistent_default_layer_set(1UL<<_L3);
+ }
+ break;
+ case _L2:
+ if (record->event.pressed) {
+ persistent_default_layer_set(1UL<<_L2);
+ }
+ break;
+ case _L1:
+ if (record->event.pressed) {
+ persistent_default_layer_set(1UL<<_L1);
+ }
+ break;
+ case _NP:
+ if (record->event.pressed) {
+ persistent_default_layer_set(1UL<<_NP);
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
diff --git a/keyboards/roadkit/keymaps/singlesBrent/readme.md b/keyboards/roadkit/keymaps/singlesBrent/readme.md
new file mode 100644
index 000000000..48ea4a8b3
--- /dev/null
+++ b/keyboards/roadkit/keymaps/singlesBrent/readme.md
@@ -0,0 +1,3 @@
+# The singles keymap for roadkit
+
+This keymap has a base layer with numpad functionality, and then a second layer with some additional keys. The user is encouraged to develop their own keymap using this as a starting point.
diff --git a/keyboards/roadkit/readme.md b/keyboards/roadkit/readme.md
index d7480a165..e99b385f3 100644
--- a/keyboards/roadkit/readme.md
+++ b/keyboards/roadkit/readme.md
@@ -1,32 +1,14 @@
-roadkit keyboard firmware
-======================
+roadkit
+=======
-## Quantum MK Firmware
+A programmable macro pad.
-For the full Quantum feature list, see [the QMK Wiki](https://github.com/qmk/qmk_firmware/wiki).
+Keyboard Maintainer: QMK Community
+Hardware Supported: Roadkit PCB
+Hardware Availability: https://thevankeyboards.com/products/roadkit-r2?variant=37353813966
-## Building
+Make example for this keyboard (after setting up your build environment):
-Download or clone the whole firmware and navigate to the `keyboards/roadkit` folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex. You can then use the programmer of your choice to program your .hex file.
+ make roadkit-default
-Depending on which keymap you would like to use, you will have to compile slightly differently.
-
-### Default
-
-To build with the default keymap, simply run `make default`. For the roadkit, the default layout is a standard numpad layout.
-
-### Singles
-
-The singles layout for the roadkit corresponds to the configuration where only 1u keys are used and there are 16 of them on the board. To build the singles keymap, run `make singles`.
-
-### Other Keymaps
-
-Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a folder with the name of your keymap in the keymaps folder, and see keymap documentation (you can find in top readme.md) and existant keymap files.
-
-To build the firmware binary hex file with a keymap just do `make` with a keymap like this:
-
-```
-$ make [default|jack|<name>]
-```
-
-Keymaps follow the format **__keymap.c__** and are stored in folders in the `keymaps` folder, eg `keymaps/my_keymap/`
+See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.