From 5ac0e6e6aee64c9b8fade79aaf22bc839e2c6b47 Mon Sep 17 00:00:00 2001 From: milestogo Date: Thu, 9 Feb 2017 23:23:39 -0800 Subject: dumber sculpt build --- .../handwired/MS-sculpt-mobile/MS-sculpt-mobile.c | 1 + .../handwired/MS-sculpt-mobile/MS-sculpt-mobile.h | 48 ++++++++ keyboards/handwired/MS-sculpt-mobile/Makefile | 3 + keyboards/handwired/MS-sculpt-mobile/config.h | 99 ++++++++++++++++ .../MS-sculpt-mobile/keymaps/default/Makefile | 21 ++++ .../MS-sculpt-mobile/keymaps/default/config.h | 8 ++ .../MS-sculpt-mobile/keymaps/default/keymap.c | 64 ++++++++++ .../MS-sculpt-mobile/keymaps/default/readme.md | 1 + .../MS-sculpt-mobile/keymaps/milestogo/Makefile | 21 ++++ .../MS-sculpt-mobile/keymaps/milestogo/config.h | 8 ++ .../MS-sculpt-mobile/keymaps/milestogo/keymap.c | 132 +++++++++++++++++++++ .../MS-sculpt-mobile/keymaps/milestogo/readme.md | 1 + keyboards/handwired/MS-sculpt-mobile/readme.md | 58 +++++++++ keyboards/handwired/MS-sculpt-mobile/rules.mk | 43 +++++++ 14 files changed, 508 insertions(+) create mode 100644 keyboards/handwired/MS-sculpt-mobile/MS-sculpt-mobile.c create mode 100644 keyboards/handwired/MS-sculpt-mobile/MS-sculpt-mobile.h create mode 100644 keyboards/handwired/MS-sculpt-mobile/Makefile create mode 100644 keyboards/handwired/MS-sculpt-mobile/config.h create mode 100644 keyboards/handwired/MS-sculpt-mobile/keymaps/default/Makefile create mode 100644 keyboards/handwired/MS-sculpt-mobile/keymaps/default/config.h create mode 100644 keyboards/handwired/MS-sculpt-mobile/keymaps/default/keymap.c create mode 100644 keyboards/handwired/MS-sculpt-mobile/keymaps/default/readme.md create mode 100644 keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/Makefile create mode 100644 keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/config.h create mode 100644 keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/keymap.c create mode 100644 keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/readme.md create mode 100644 keyboards/handwired/MS-sculpt-mobile/readme.md create mode 100644 keyboards/handwired/MS-sculpt-mobile/rules.mk (limited to 'keyboards') diff --git a/keyboards/handwired/MS-sculpt-mobile/MS-sculpt-mobile.c b/keyboards/handwired/MS-sculpt-mobile/MS-sculpt-mobile.c new file mode 100644 index 000000000..4c735a6c2 --- /dev/null +++ b/keyboards/handwired/MS-sculpt-mobile/MS-sculpt-mobile.c @@ -0,0 +1 @@ +#include "MS-sculpt-mobile.h" diff --git a/keyboards/handwired/MS-sculpt-mobile/MS-sculpt-mobile.h b/keyboards/handwired/MS-sculpt-mobile/MS-sculpt-mobile.h new file mode 100644 index 000000000..1583dea6e --- /dev/null +++ b/keyboards/handwired/MS-sculpt-mobile/MS-sculpt-mobile.h @@ -0,0 +1,48 @@ +#ifndef MICROSOFT_SCULPT_MOBILE_H +#define MICROSOFT_SCULPT_MOBILE_H + +#include "quantum.h" + + +#define KEYMAP( \ + k7Q, k6O, k6P, k6Q, k5O, k5P, k5Q, k7A, k7B, k7C, k7D, k7E, k7F, k1O, k1K, k1L, \ + k5A, k5K, k5L, k5M, k5N, k5H, k5I, k2A, k2B, k2C, k2D, k5B, k5C, k5J, k2E, \ + k6R, k6D, k6E, k6F, k7I, k7J, k4A, k4B, k4C, k4D, k3A, k3B, k3C, k3D, \ + k0J, k6A, k6B, k6C, k7H, k1A, k1B, k5D, k5E, k5F, k5G, k1C, k7P, k2G, \ + k2P, k7K, k7L, k7M, k7O, k0A, k0B, k0C, k0D, k0E, k0F, k2L, k6G, k1P,\ + k1Q, k4N, k3O,k6N, k3K, k0R, k1M, k6H, k6I, k6J \ +) \ +{ \ + {k0A, k0B, k0C, k0D, k0E, k0F, KC_NO, KC_NO, KC_NO, k0J, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,KC_NO, KC_NO, k0R},\ + {k1A, k1B, k1C, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k1K, k1L, k1M, KC_NO, k1O, k1P, k1Q, KC_NO},\ + {k2A, k2B, k2C, k2D, k2E, KC_NO, k2G, KC_NO, KC_NO, KC_NO, KC_NO, k2L, KC_NO, KC_NO, KC_NO, k2P, KC_NO, KC_NO},\ + {k3A, k3B, k3C, k3D, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k3K, KC_NO, KC_NO, KC_NO, k3O, KC_NO, KC_NO, KC_NO},\ + {k4A, k4B, k4C, k4D, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k4N, KC_NO,KC_NO, KC_NO, KC_NO},\ + {k5A, k5B, k5C, k5D, k5E, k5F, k5G, k5H, k5I, k5J, k5K, k5L, k5M, k5N, k5O, k5P, k5Q, KC_NO },\ + {k6A, k6B, k6C, k6D, k6E, k6F, k6G, k6H, k6I, k6J, KC_NO, KC_NO, KC_NO, k6N, k6O, k6P, k6Q, k6R},\ + {k7A, k7B, k7C, k7D, k7E, k7F, KC_NO, k7H, k7I, k7J, k7K, k7L, k7M, KC_NO, k7O, k7P, k7Q, KC_NO},\ +} + + +#define MATRIX_TESTING_KEYMAP( \ + k0A, k0B, k0C, k0D, k0E, k0F, k0G, k0H, k0I, k0, k0J, k0K, k0L, k0M, k0N, k0O, k0P, k0Q,\ + k1A, k1B, k1C, k1D, k1E, k1F, k1G, k1H, k1I, k1, k1J, k1K, k1L, k1M, k1N, k1O, k1P, k1Q,\ + k2A, k2B, k2C, k2D, k2E, k2F, k2G, k2H, k2I, k2, k2J, k2K, k2L, k2M, k2N, k2O, k2P, k2Q,\ + k3A, k3B, k3C, k3D, k3E, k3F, k3G, k3H, k3I, k3, k3J, k3K, k3L, k3M, k3N, k3O, k3P, k3Q,\ + k4A, k4B, k4C, k4D, k4E, k4F, k4G, k4H, k4I, k4, k4J, k4K, k4L, k4M, k4N, k4O, k4P, k4Q,\ + k5A, k5B, k5C, k5D, k5E, k5F, k5G, k5H, k5I, k5, k5J, k5K, k5L, k5M, k5N, k5O, k5P, k5Q,\ + k6A, k6B, k6C, k6D, k6E, k6F, k6G, k6H, k6I, k6, k6J, k6K, k6L, k6M, k6N, k6O, k6P, k6Q,\ + k7A, k7B, k7C, k7D, k7E, k7F, k7G, k7H, k7I, k7, k7J, k7K, k7L, k7M, k7N, k7O, k7P, k7Q\ +) \ +{ \ + {k0A, k0B, k0C, k0D, k0E, k0F, k0G, k0H, k0I, k0, k0J, k0K, k0L, k0M, k0N, k0O, k0P, k0Q},\ + {k1A, k1B, k1C, k1D, k1E, k1F, k1G, k1H, k1I, k1, k1J, k1K, k1L, k1M, k1N, k1O, k1P, k1Q},\ + {k2A, k2B, k2C, k2D, k2E, k2F, k2G, k2H, k2I, k2, k2J, k2K, k2L, k2M, k2N, k2O, k2P, k2Q},\ + {k3A, k3B, k3C, k3D, k3E, k3F, k3G, k3H, k3I, k3, k3J, k3K, k3L, k3M, k3N, k3O, k3P, k3Q},\ + {k4A, k4B, k4C, k4D, k4E, k4F, k4G, k4H, k4I, k4, k4J, k4K, k4L, k4M, k4N, k4O, k4P, k4Q},\ + {k5A, k5B, k5C, k5D, k5E, k5F, k5G, k5H, k5I, k5, k5J, k5K, k5L, k5M, k5N, k5O, k5P, k5Q},\ + {k6A, k6B, k6C, k6D, k6E, k6F, k6G, k6H, k6I, k6, k6J, k6K, k6L, k6M, k6N, k6O, k6P, k6Q},\ + {k7A, k7B, k7C, k7D, k7E, k7F, k7G, k7H, k7I, k7, k7J, k7K, k7L, k7M, k7N, k7O, k7P, k7Q},\ +} + +#endif diff --git a/keyboards/handwired/MS-sculpt-mobile/Makefile b/keyboards/handwired/MS-sculpt-mobile/Makefile new file mode 100644 index 000000000..bd09e5885 --- /dev/null +++ b/keyboards/handwired/MS-sculpt-mobile/Makefile @@ -0,0 +1,3 @@ +ifndef MAKEFILE_INCLUDED + include ../../../Makefile +endif diff --git a/keyboards/handwired/MS-sculpt-mobile/config.h b/keyboards/handwired/MS-sculpt-mobile/config.h new file mode 100644 index 000000000..1ac40f996 --- /dev/null +++ b/keyboards/handwired/MS-sculpt-mobile/config.h @@ -0,0 +1,99 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Microsoft+abit +#define PRODUCT sculpt mobile +#define DESCRIPTION 6000 + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 18 + +#ifdef ASTAR + + /*0 1 2 3 4 5 6 7 8 */ +#define MATRIX_ROW_PINS {D7, C6, D4, D0, D1, D3, D2, E2} +/* A B C D E F G H I J K L M N O P Q R */ +#define MATRIX_COL_PINS {B4, B5, E6, B7, B6, D6, C7, F7, F6, F4,F5, F1,F0, D5, B0, B1, B2, B3} + +#else + +/* 0 1 2 3 4 5 6 7 */ +#define MATRIX_ROW_PINS { F7,F6,F4,F5,F3,F2,F1,F0} +/* A B C D E F G H I J K L M N O P Q R */ +#define MATRIX_COL_PINS { B7, D0, D1, D2, D3, D4, D5, D6, D7, E0,E1,C1, C0, C3, C2, C5, C4,C6} +#define UNUSED_PINS { B6,B5,B4,B3,B2,B1,B0 } + + +#endif + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION ROW2COL + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/handwired/MS-sculpt-mobile/keymaps/default/Makefile b/keyboards/handwired/MS-sculpt-mobile/keymaps/default/Makefile new file mode 100644 index 000000000..9d3df5964 --- /dev/null +++ b/keyboards/handwired/MS-sculpt-mobile/keymaps/default/Makefile @@ -0,0 +1,21 @@ +# 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 = no # 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 + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/handwired/MS-sculpt-mobile/keymaps/default/config.h b/keyboards/handwired/MS-sculpt-mobile/keymaps/default/config.h new file mode 100644 index 000000000..8893d122e --- /dev/null +++ b/keyboards/handwired/MS-sculpt-mobile/keymaps/default/config.h @@ -0,0 +1,8 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +// place overrides here + +#endif diff --git a/keyboards/handwired/MS-sculpt-mobile/keymaps/default/keymap.c b/keyboards/handwired/MS-sculpt-mobile/keymaps/default/keymap.c new file mode 100644 index 000000000..ab09dcdd1 --- /dev/null +++ b/keyboards/handwired/MS-sculpt-mobile/keymaps/default/keymap.c @@ -0,0 +1,64 @@ +#include "MS-sculpt-mobile.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* +* +* |ESC | F1 | F2 | F3 | F4 | F5 | F6 | f7 | F8 | F9 | F10| F11| F12|Vol-|Vol+|Mute| +* -------------------------------------------------------------------------------' +* | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |Bakspace| Del | +* -------------------------------------------------------------------------- +* | tab | q | w | e | r | t | y | u | i | o | p | [ | ] | \ | | +* -------------------------------------------------------------------------------' +* | caps | a | s | d | f | g | h | j | k | l | ; | ' | enter |PgUp| +* -------------------------------------------------------------------------------- +* |Lsft | z | x | c | v | b | n | m | , | . | / | Rsft| Up| PgDn| +* --------------------------------------------------------------------------------- +* |Lctl |Lgui |Lalt | Space |Ralt | FN | Rctl |Left|Down|Rght| +* --------------------------------------------------------------------------------- +*/ + +[0] = KEYMAP( \ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_VOLD, KC_VOLU, KC_MUTE,\ + KC_GRAVE, KC_1, KC_2, KC_3 ,KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQL, KC_BSPC, KC_DEL,\ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,\ + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,\ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,\ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_RALT, RSFT(KC_1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT +) + +}; +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + + +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { + +} diff --git a/keyboards/handwired/MS-sculpt-mobile/keymaps/default/readme.md b/keyboards/handwired/MS-sculpt-mobile/keymaps/default/readme.md new file mode 100644 index 000000000..e67ddc6fe --- /dev/null +++ b/keyboards/handwired/MS-sculpt-mobile/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for microsoft-sculpt-mobile diff --git a/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/Makefile b/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/Makefile new file mode 100644 index 000000000..9d3df5964 --- /dev/null +++ b/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/Makefile @@ -0,0 +1,21 @@ +# 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 = no # 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 + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/config.h b/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/config.h new file mode 100644 index 000000000..8893d122e --- /dev/null +++ b/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/config.h @@ -0,0 +1,8 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +// place overrides here + +#endif diff --git a/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/keymap.c b/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/keymap.c new file mode 100644 index 000000000..a80d5beaa --- /dev/null +++ b/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/keymap.c @@ -0,0 +1,132 @@ +#include "MS-sculpt-mobile.h" + +#define _QWR 0 +#define _CDH 1 +#define _SYM 2 +#define _MOV 3 +#define _NUM 4 +#define _TRAN 9 + +// Shorter spacing +#define XXXX KC_NO +#define ____ KC_TRNS + +// Custom macros + +/* Fn Keys */ +#define TT_SYM MO(_SYM) +#define TO_CDH TG(_CDH) +#define TO_MOV MO(_MOV) +#define TT_NUM MO(_NUM) +#define SSFT ACTION_MODS_ONESHOT(MOD_LSFT) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* QWERTY +* +* |ESC | F1 | F2 | F3 | F4 | F5 | F6 | f7 | F8 | F9 | F10| F11| F12|Vol-|Vol+|Mute| +* -------------------------------------------------------------------------------' +* | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |Bakspace| Del | +* -------------------------------------------------------------------------- +* | tab | q | w | e | r | t | y | u | i | o | p | [ | ] | \ | | +* -------------------------------------------------------------------------------' +* | caps | a | s | d | f | g | h | j | k | l | ; | ' | enter |PgUp| +* -------------------------------------------------------------------------------- +* |Lsft | z | x | c | v | b | n | m | , | . | / | Rsft| Up| PgDn| +* --------------------------------------------------------------------------------- +* |Lctl |Lgui |Lalt | Space |Ralt | FN | Rctl |Left|Down|Rght| +* --------------------------------------------------------------------------------- +*/ + +[_QWR] = KEYMAP( \ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_VOLD, KC_VOLU, TO_CDH,\ + KC_ESC, KC_1, KC_2, KC_3 ,KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQL, KC_BSPC, KC_DEL,\ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,\ + TT_SYM, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,\ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT,KC_SLSH,KC_RSFT, KC_UP, KC_PGDN,\ + KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_RGUI,TT_SYM,KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT +), + +[_CDH] = KEYMAP (\ + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ + KC_ESC, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, ____, ____, ____,\ + TO_MOV, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, ____,\ + KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, ____, ____,\ + ____, ____, ____ , TT_SYM, ____, ____, ____, ____, ____, ____ + +), + +[_SYM] = KEYMAP (\ + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ + ____, KC_CIRC, KC_LCBR, KC_RCBR,KC_AT, KC_PERC, ____, KC_LBRC,KC_LPRN,KC_RPRN,KC_UNDS, ____, ____, ____,\ + ____, KC_EXLM, KC_HASH, KC_0, KC_EQL, ____, KC_ASTR,KC_MINS,KC_1, KC_PLUS,KC_RBRC, KC_GRV, ____, ____,\ + ____, ____, ____, ____, KC_TILDE, KC_PIPE, KC_DLR, ____, ____, ____, ____, ____, ____, ____,\ + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ +), + +[_MOV] = KEYMAP (\ + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ + ____, ____, RGUI(KC_TAB), ____, ____, RCTL(KC_B), ____, ____, ____, ____, ____, ____, ____, ____, \ + ____, RCTL(KC_A), KC_S, RCTL(KC_K), RCTL(KC_E), ____, ____, KC_LEFT,KC_DOWN, KC_UP, KC_RIGHT, ____,____,____,\ + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ +), + +[_TRAN] = KEYMAP (\ + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ +) +}; + + +const uint16_t PROGMEM fn_actions[] = { +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + + + case KC_N: + if(keyboard_report->mods & MOD_BIT(KC_LGUI) ) { + clear_keyboard_but_mods(); + register_code(KC_V); + } + break; + + + } + return MACRO_NONE; +}; + + +void matrix_init_user(void) { + +} + +void matrix_scan_user(void) { + +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { + +} diff --git a/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/readme.md b/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/readme.md new file mode 100644 index 000000000..96ee0e77a --- /dev/null +++ b/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/readme.md @@ -0,0 +1 @@ +# A more programmer oriented keymap for microsoft-sculpt-mobile diff --git a/keyboards/handwired/MS-sculpt-mobile/readme.md b/keyboards/handwired/MS-sculpt-mobile/readme.md new file mode 100644 index 000000000..58029b50d --- /dev/null +++ b/keyboards/handwired/MS-sculpt-mobile/readme.md @@ -0,0 +1,58 @@ + +This is a way to take a Microsoft ergonomic bluetooth keyboard, and make it +into a hard-wired keyboard running QMK. + +The keyboard is known under several different names: +Mobile Bluetooth 5000, Mobile 6000, Sculpt mobile, and Asus rebranded + +I had a stack of them,since they're cheap on ebay, travel well, and are just ergo enough. + +The ribbon cable is 1mm pitch, which is hard to hand solder. I bought a cheap set of +"pitch adapter" boards https://www.amazon.com/Double-Sided-0-4mm-1-0-Adapter-60mmx38mm/dp/B00OK42118 + +Cut the original ribbon cable sockets off the bluetooth board using a razor, they're hard to desolder. +They're also allow the cable to be inserted on top or bottom. + +If I was going to do it again, I'd make the MCU connection come out the top of the keyboard +and avoid the wires dangling out the bottom. + +As I was debugging the matrix, I started to get random failures. In desparation I tried a second MCU, +but had the same problems. It turns out that the ribbon cable connections can get worn. Shave a +half millimeter off the end of the ribbon cable & the errors go away. + +My method for discovering the matrix was to set up a KEYMAP macro that included all pins. +See MATRIX_TESTING_KEYMAP if you need it. Then set up a keymap that has all printable symbols +in the first 4 rows. test each key & record output. Then switch the printable symbols to the +bottom 4 rows & repeat. This was enough to show the matrix. + + +The full original keymap for the sculpt is + A B C D E F G H ---> +0 b n m , . / +1 g h " +2 7 8 9 0 Del PgUp +3 p [ ] \ +4 y u i o +5 ~ - += j k l ; 5 +6 a s d q w e, Up left +7 F7 F8 F9 F10 F11 F12 f + +-----> I J K L M N O P Q R +0 Caps FN +1 Vol+ mute Rctl vol- pgdn LCTL +2 Rshift LShift +3 Ralt LAlt +4 LGUI +5 6 bakspc 1 2 3 4 F4 F5 F6 +6 Down right spc F1 F2 F3 tab +7 r t z x c v enter Esc + +This works with 18 cols + 8 rows on a Teensy++, or Arm based Teensy. + +The Astar mini has all pins exposed , so you can do 18x8 +If you want a speaker, LEDs &etc, you'll need to free up a pin. I recommend joining columns +R and L to the same pin. + +Building - edit rules.mk to set ASTAR=1 or comment it out for teensy2++ + + diff --git a/keyboards/handwired/MS-sculpt-mobile/rules.mk b/keyboards/handwired/MS-sculpt-mobile/rules.mk new file mode 100644 index 000000000..cb9d5813c --- /dev/null +++ b/keyboards/handwired/MS-sculpt-mobile/rules.mk @@ -0,0 +1,43 @@ +#CFLAGS=-D ASTAR + +ifdef ASTAR + OPT_DEFS += -DBOOTLOADER_SIZE=4096 + MCU = atmega32u4 + OPT_DEFS += -DCATERINA_BOOTLOADER + SCULPT_UPLOAD_COMMAND = while [ ! -r $(USB) ]; do sleep 1; done ; \ + avrdude -p $(MCU) -c avr109 -U flash:w:$(TARGET).hex -P $(USB) + +else + MCU = at90usb1286 + OPT_DEFS += -DBOOTLOADER_SIZE=2048 + SCULPT_UPLOAD_COMMAND = teensy_loader_cli -w -mmcu=$(MCU) $(TARGET).hex +endif + +F_CPU = 16000000 +ARCH = AVR8 +F_USB = $(F_CPU) +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + +# +BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= no # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= yes # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE ?= no # USB Nkey Rollover +BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default +MIDI_ENABLE ?= no # MIDI controls +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE ?= no # Audio output on port C6 + + +USB ?= /dev/cu.usbmodem1421 + + +upload: build + $(SCULPT_UPLOAD_COMMAND) -- cgit v1.2.3 From 274b1c53fbc8c0838305e7837c4594d67431f2b6 Mon Sep 17 00:00:00 2001 From: milestogo Date: Sat, 11 Feb 2017 22:10:44 -0800 Subject: keymap update --- .../MS-sculpt-mobile/keymaps/milestogo/Makefile | 2 +- .../MS-sculpt-mobile/keymaps/milestogo/keymap.c | 34 +++++++++++++++------- 2 files changed, 24 insertions(+), 12 deletions(-) (limited to 'keyboards') diff --git a/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/Makefile b/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/Makefile index 9d3df5964..a82d80dee 100644 --- a/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/Makefile +++ b/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/Makefile @@ -17,5 +17,5 @@ RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend ifndef QUANTUM_DIR - include ../../../../Makefile + include ../../../../../Makefile endif diff --git a/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/keymap.c b/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/keymap.c index a80d5beaa..0551fbde7 100644 --- a/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/keymap.c +++ b/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/keymap.c @@ -16,7 +16,7 @@ /* Fn Keys */ #define TT_SYM MO(_SYM) #define TO_CDH TG(_CDH) -#define TO_MOV MO(_MOV) +#define TT_MOV KC_FN2 #define TT_NUM MO(_NUM) #define SSFT ACTION_MODS_ONESHOT(MOD_LSFT) @@ -42,18 +42,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_VOLD, KC_VOLU, TO_CDH,\ KC_ESC, KC_1, KC_2, KC_3 ,KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQL, KC_BSPC, KC_DEL,\ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,\ - TT_SYM, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,\ + TT_MOV, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,\ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT,KC_SLSH,KC_RSFT, KC_UP, KC_PGDN,\ - KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_RGUI,TT_SYM,KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + KC_LCTL, KC_LGUI, KC_LALT, KC_FN1, KC_RGUI,TT_SYM,KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT ), [_CDH] = KEYMAP (\ ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ KC_ESC, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, ____, ____, ____,\ - TO_MOV, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, ____,\ - KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, ____, ____,\ - ____, ____, ____ , TT_SYM, ____, ____, ____, ____, ____, ____ + TT_MOV, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, ____,\ + KC_LSFT, KC_Z, KC_X, KC_C, M(1), KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, ____, ____,\ + ____, ____, ____ , KC_FN1, ____, ____, ____, ____, ____, ____ ), @@ -70,7 +70,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ ____, ____, RGUI(KC_TAB), ____, ____, RCTL(KC_B), ____, ____, ____, ____, ____, ____, ____, ____, \ - ____, RCTL(KC_A), KC_S, RCTL(KC_K), RCTL(KC_E), ____, ____, KC_LEFT,KC_DOWN, KC_UP, KC_RIGHT, ____,____,____,\ + ____, RCTL(KC_A), KC_S, RCTL(KC_K), RCTL(KC_E), ____, KC_LEFT,KC_DOWN, KC_UP, KC_RIGHT, ____, ____,____,____,\ ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ ), @@ -87,6 +87,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM fn_actions[] = { +[1] = ACTION_LAYER_TAP_KEY(_SYM,KC_SPACE), +[2] = ACTION_LAYER_TAP_KEY(_MOV,KC_BSPC), }; const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) @@ -102,11 +104,21 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) break; - case KC_N: + case 1 : if(keyboard_report->mods & MOD_BIT(KC_LGUI) ) { - clear_keyboard_but_mods(); - register_code(KC_V); - } + if (record->event.pressed) { + clear_keyboard_but_mods(); + register_code(KC_V); + } else { + unregister_code(KC_V); + } + }else { + if (record->event.pressed) { + register_code(KC_D); + } else { + unregister_code(KC_D); + } + } break; -- cgit v1.2.3 From 8d0fdf10086a0e8a1615f0521fccf1f5a2806497 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sun, 12 Feb 2017 11:29:42 -0500 Subject: adds soft pwm for non-timed ports --- keyboards/planck/rules.mk | 4 ++-- keyboards/preonic/rules.mk | 4 ++-- quantum/quantum.c | 59 +++++++++++++++++++++++++++++++++++----------- quantum/quantum.h | 1 + 4 files changed, 50 insertions(+), 18 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/rules.mk b/keyboards/planck/rules.mk index 4423d422f..6776062f6 100644 --- a/keyboards/planck/rules.mk +++ b/keyboards/planck/rules.mk @@ -56,13 +56,13 @@ EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) CONSOLE_ENABLE ?= no # Console for debug(+400) COMMAND_ENABLE ?= no # Commands for debug and configuration NKRO_ENABLE ?= no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality +BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality MIDI_ENABLE ?= yes # MIDI controls AUDIO_ENABLE ?= yes # 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. -API_SYSEX_ENABLE = yes +API_SYSEX_ENABLE = no # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend diff --git a/keyboards/preonic/rules.mk b/keyboards/preonic/rules.mk index 62473e356..6be5b55bc 100644 --- a/keyboards/preonic/rules.mk +++ b/keyboards/preonic/rules.mk @@ -58,13 +58,13 @@ EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) CONSOLE_ENABLE ?= no # Console for debug(+400) COMMAND_ENABLE ?= no # Commands for debug and configuration NKRO_ENABLE ?= no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality +BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality MIDI_ENABLE ?= yes # MIDI controls AUDIO_ENABLE ?= yes # 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. -API_SYSEX_ENABLE ?= yes +API_SYSEX_ENABLE ?= no # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend \ No newline at end of file diff --git a/quantum/quantum.c b/quantum/quantum.c index 45ea8cb73..95f06d95d 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -7,6 +7,9 @@ #define TAPPING_TERM 200 #endif +#include "backlight.h" +extern backlight_config_t backlight_config; + static void do_code16 (uint16_t code, void (*f) (uint8_t)) { switch (code) { case QK_MODS ... QK_MODS_MAX: @@ -577,6 +580,10 @@ void matrix_scan_quantum() { matrix_scan_combo(); #endif + #if defined(BACKLIGHT_ENABLE) && defined(BACKLIGHT_PIN) + backlight_task(); + #endif + matrix_scan_kb(); } @@ -644,13 +651,13 @@ __attribute__ ((weak)) void backlight_set(uint8_t level) { // Prevent backlight blink on lowest level - #if BACKLIGHT_ON_STATE == 0 - // PORTx &= ~n - _SFR_IO8((backlight_pin >> 4) + 2) &= ~_BV(backlight_pin & 0xF); - #else - // PORTx |= n - _SFR_IO8((backlight_pin >> 4) + 2) |= _BV(backlight_pin & 0xF); - #endif + // #if BACKLIGHT_ON_STATE == 0 + // // PORTx &= ~n + // _SFR_IO8((backlight_pin >> 4) + 2) &= ~_BV(backlight_pin & 0xF); + // #else + // // PORTx |= n + // _SFR_IO8((backlight_pin >> 4) + 2) |= _BV(backlight_pin & 0xF); + // #endif if ( level == 0 ) { #ifndef NO_BACKLIGHT_CLOCK @@ -658,13 +665,13 @@ void backlight_set(uint8_t level) TCCR1A &= ~(_BV(COM1x1)); OCR1x = 0x0; #else - #if BACKLIGHT_ON_STATE == 0 - // PORTx |= n - _SFR_IO8((backlight_pin >> 4) + 2) |= _BV(backlight_pin & 0xF); - #else - // PORTx &= ~n - _SFR_IO8((backlight_pin >> 4) + 2) &= ~_BV(backlight_pin & 0xF); - #endif + // #if BACKLIGHT_ON_STATE == 0 + // // PORTx |= n + // _SFR_IO8((backlight_pin >> 4) + 2) |= _BV(backlight_pin & 0xF); + // #else + // // PORTx &= ~n + // _SFR_IO8((backlight_pin >> 4) + 2) &= ~_BV(backlight_pin & 0xF); + // #endif #endif } #ifndef NO_BACKLIGHT_CLOCK @@ -687,6 +694,30 @@ void backlight_set(uint8_t level) #endif } +uint8_t backlight_tick = 0; + +void backlight_task(void) { + #ifdef NO_BACKLIGHT_CLOCK + if ((0xFFFF >> ((BACKLIGHT_LEVELS - backlight_config.level) * ((BACKLIGHT_LEVELS + 1) / 2))) & (1 << backlight_tick)) { + #if BACKLIGHT_ON_STATE == 0 + // PORTx &= ~n + _SFR_IO8((backlight_pin >> 4) + 2) &= ~_BV(backlight_pin & 0xF); + #else + // PORTx |= n + _SFR_IO8((backlight_pin >> 4) + 2) |= _BV(backlight_pin & 0xF); + #endif + } else { + #if BACKLIGHT_ON_STATE == 0 + // PORTx |= n + _SFR_IO8((backlight_pin >> 4) + 2) |= _BV(backlight_pin & 0xF); + #else + // PORTx &= ~n + _SFR_IO8((backlight_pin >> 4) + 2) &= ~_BV(backlight_pin & 0xF); + #endif + } + backlight_tick = (backlight_tick + 1) % 16; + #endif +} #ifdef BACKLIGHT_BREATHING diff --git a/quantum/quantum.h b/quantum/quantum.h index 18f072189..2470d8c7d 100644 --- a/quantum/quantum.h +++ b/quantum/quantum.h @@ -95,6 +95,7 @@ void unregister_code16 (uint16_t code); #ifdef BACKLIGHT_ENABLE void backlight_init_ports(void); +void backlight_task(void); #ifdef BACKLIGHT_BREATHING void breathing_enable(void); -- cgit v1.2.3 From 334edc3c7d594674a44bc66e70fb08e45b27e644 Mon Sep 17 00:00:00 2001 From: Stephen Tudor Date: Thu, 16 Feb 2017 14:32:24 -0500 Subject: Add smt keymap for Let's Split (based on serial) --- keyboards/lets_split/keymaps/smt/config.h | 34 +++++ keyboards/lets_split/keymaps/smt/keymap.c | 213 ++++++++++++++++++++++++++++++ 2 files changed, 247 insertions(+) create mode 100644 keyboards/lets_split/keymaps/smt/config.h create mode 100644 keyboards/lets_split/keymaps/smt/keymap.c (limited to 'keyboards') diff --git a/keyboards/lets_split/keymaps/smt/config.h b/keyboards/lets_split/keymaps/smt/config.h new file mode 100644 index 000000000..ba271d1ac --- /dev/null +++ b/keyboards/lets_split/keymaps/smt/config.h @@ -0,0 +1,34 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + + +#define USE_SERIAL + +#define MASTER_LEFT +// #define _MASTER_RIGHT +// #define EE_HANDS + + +#ifdef SUBPROJECT_rev1 + #include "../../rev1/config.h" +#endif +#ifdef SUBPROJECT_rev2 + #include "../../rev2/config.h" +#endif +#ifdef SUBPROJECT_rev2fliphalf + #include "../../rev2fliphalf/config.h" +#endif diff --git a/keyboards/lets_split/keymaps/smt/keymap.c b/keyboards/lets_split/keymaps/smt/keymap.c new file mode 100644 index 000000000..5ba5417a9 --- /dev/null +++ b/keyboards/lets_split/keymaps/smt/keymap.c @@ -0,0 +1,213 @@ +#include "lets_split.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 _QWERTY 0 +#define _COLEMAK 1 +#define _DVORAK 2 +#define _LOWER 3 +#define _RAISE 4 +#define _ADJUST 16 + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + LOWER, + RAISE, + ADJUST, +}; + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ` | Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = KEYMAP( \ + ALL_T(KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + SFT_T(KC_ESC), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT), \ + MEH_T(KC_GRV), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ` | Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = KEYMAP( \ + ALL_T(KC_TAB), KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \ + CTL_T(KC_ESC), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ + SFT_T(KC_ESC), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT), \ + MEH_T(KC_GRV), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | - | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ` | Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DVORAK] = KEYMAP( \ + ALL_T(KC_TAB), KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, \ + CTL_T(KC_ESC), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, \ + SFT_T(KC_ESC), KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_T(KC_ENT), \ + MEH_T(KC_GRV), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | $ | F1 | F2 | F3 | F4 | F5 | F6 | 4 | 5 | 6 | Home |PageUp| + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | 1 | 2 | 3 | End |PageDn| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = KEYMAP( \ + KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ + KC_DLR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_4, KC_5, KC_6, KC_HOME, KC_PGUP, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_1, KC_2, KC_3, KC_END, KC_PGDN, \ + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | | | _ | ? | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | - | / | = | [ | ] | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = KEYMAP( \ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, \ + _______, _______, _______, _______, _______, _______, KC_UNDS, KC_QUES, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ + _______, _______, _______, _______, _______, _______, KC_MINS, KC_SLSH, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | Reset| | | | | | | | | | Reset| + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = KEYMAP( \ + _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, \ + _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) + +}; + +#ifdef AUDIO_ENABLE +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +#endif + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_qwerty, false, 0); + #endif + persistant_default_layer_set(1UL<<_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_colemak, false, 0); + #endif + persistant_default_layer_set(1UL<<_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_dvorak, false, 0); + #endif + persistant_default_layer_set(1UL<<_DVORAK); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case ADJUST: + if (record->event.pressed) { + layer_on(_ADJUST); + } else { + layer_off(_ADJUST); + } + return false; + break; + } + return true; +} -- cgit v1.2.3 From 33bc4c070c2d592ba706ba89ff6786699bc9133f Mon Sep 17 00:00:00 2001 From: Stephen Tudor Date: Thu, 16 Feb 2017 14:32:46 -0500 Subject: Update smt Planck keymap --- keyboards/planck/keymaps/smt/keymap.c | 98 +++++++++++++++++++++++------------ 1 file changed, 64 insertions(+), 34 deletions(-) (limited to 'keyboards') diff --git a/keyboards/planck/keymaps/smt/keymap.c b/keyboards/planck/keymaps/smt/keymap.c index 51e5a40bf..afc82b49f 100644 --- a/keyboards/planck/keymaps/smt/keymap.c +++ b/keyboards/planck/keymaps/smt/keymap.c @@ -11,15 +11,17 @@ extern keymap_config_t keymap_config; // 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 _DVORAK 0 -#define _QWERTY 1 -#define _LOWER 2 -#define _RAISE 3 +#define _QWERTY 0 +#define _COLEMAK 1 +#define _DVORAK 2 +#define _LOWER 3 +#define _RAISE 4 #define _ADJUST 16 enum planck_keycodes { - DVORAK = SAFE_RANGE, - QWERTY, + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, LOWER, RAISE, BACKLIT @@ -31,40 +33,58 @@ enum planck_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Dvorak +/* Qwerty * ,-----------------------------------------------------------------------------------. - * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | O | E | U | I | D | H | T | N | S | - | + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | ` | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * | ` | Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_DVORAK] = { - {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, - {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS}, - {SFT_T(KC_ESC), KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_T(KC_ENT)}, - {ALL_T(KC_GRV), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +[_QWERTY] = { + {ALL_T(KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {SFT_T(KC_ESC), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT)}, + {MEH_T(KC_GRV), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, -/* Qwerty +/* Colemak * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * | Esc | A | R | S | T | D | H | N | E | I | O | " | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | ` | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * | ` | Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_QWERTY] = { - {_______, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {_______, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {_______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +[_COLEMAK] = { + {ALL_T(KC_TAB), KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {CTL_T(KC_ESC), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {SFT_T(KC_ESC), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT)}, + {MEH_T(KC_GRV), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | - | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ` | Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DVORAK] = { + {ALL_T(KC_TAB), KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {CTL_T(KC_ESC), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS}, + {SFT_T(KC_ESC), KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_T(KC_ENT)}, + {MEH_T(KC_GRV), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Lower @@ -107,7 +127,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | | Reset| | | | | | | | | | Del | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | |Aud on|Audoff|AGnorm|AGswap|Dvorak|Qwerty| | | | + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | * |------+------+------+------+------+------|------+------+------+------+------+------| * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| @@ -116,7 +136,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = { {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, - {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, DVORAK, QWERTY, _______, _______, _______}, + {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} } @@ -128,6 +148,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { float tone_startup[][2] = SONG(STARTUP_SOUND); float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); float tone_dvorak[][2] = SONG(DVORAK_SOUND); float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); @@ -142,21 +163,30 @@ void persistant_default_layer_set(uint16_t default_layer) { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case DVORAK: + case QWERTY: if (record->event.pressed) { #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_dvorak, false, 0); + PLAY_NOTE_ARRAY(tone_qwerty, false, 0); #endif - persistant_default_layer_set(1UL<<_DVORAK); + persistant_default_layer_set(1UL<<_QWERTY); } return false; break; - case QWERTY: + case COLEMAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_qwerty, false, 0); + PLAY_NOTE_ARRAY(tone_colemak, false, 0); #endif - persistant_default_layer_set(1UL<<_QWERTY); + persistant_default_layer_set(1UL<<_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_dvorak, false, 0); + #endif + persistant_default_layer_set(1UL<<_DVORAK); } return false; break; -- cgit v1.2.3 From 748401e5c180e91181bc10a80491d7d5568c008a Mon Sep 17 00:00:00 2001 From: milestogo Date: Tue, 28 Feb 2017 21:53:42 -0800 Subject: keymap and C6 audio testing --- .../MS-sculpt-mobile/keymaps/milestogo/Makefile | 2 +- .../MS-sculpt-mobile/keymaps/milestogo/config.h | 1 - .../MS-sculpt-mobile/keymaps/milestogo/keymap.c | 150 +++++++++++++++++---- 3 files changed, 125 insertions(+), 28 deletions(-) (limited to 'keyboards') diff --git a/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/Makefile b/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/Makefile index a82d80dee..1209ad781 100644 --- a/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/Makefile +++ b/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/Makefile @@ -10,7 +10,7 @@ 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 = no # Enable keyboard backlight functionality MIDI_ENABLE = no # MIDI controls -AUDIO_ENABLE = no # Audio output on port C6 +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. diff --git a/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/config.h b/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/config.h index 8893d122e..aaf0077b1 100644 --- a/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/config.h +++ b/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/config.h @@ -4,5 +4,4 @@ #include "../../config.h" // place overrides here - #endif diff --git a/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/keymap.c b/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/keymap.c index 0551fbde7..244d52dc5 100644 --- a/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/keymap.c +++ b/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/keymap.c @@ -1,11 +1,26 @@ #include "MS-sculpt-mobile.h" +#include "action_layer.h" + +#ifdef AUDIO_ENABLE + #include "audio.h" +#endif #define _QWR 0 -#define _CDH 1 -#define _SYM 2 -#define _MOV 3 -#define _NUM 4 -#define _TRAN 9 +#define _CDH 2 +#define _SYM 3 +#define _MOV 4 +#define _TRAN 5 + + +enum layer_keycodes { +QWR, +CDH, +SYM, +MOV, +NUM, +TRAN +}; + // Shorter spacing #define XXXX KC_NO @@ -15,31 +30,36 @@ /* Fn Keys */ #define TT_SYM MO(_SYM) -#define TO_CDH TG(_CDH) #define TT_MOV KC_FN2 #define TT_NUM MO(_NUM) #define SSFT ACTION_MODS_ONESHOT(MOD_LSFT) +enum macro_keycodes { +DHPASTE=1, +VIBRK, +TO_CDH, +}; + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* QWERTY * -* |ESC | F1 | F2 | F3 | F4 | F5 | F6 | f7 | F8 | F9 | F10| F11| F12|Vol-|Vol+|Mute| +* |ESC | F1 | F2 | F3 | F4 | F5 | F6 | f7 | F8 | F9 | F10| F11| F12|Vol-|Vol+|_CDH| * -------------------------------------------------------------------------------' -* | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |Bakspace| Del | -* -------------------------------------------------------------------------- -* | tab | q | w | e | r | t | y | u | i | o | p | [ | ] | \ | | +* | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |Bakspace| Del| +* --------------------------------------------------------------------------- +* | tab | q | w | e | r | t | y | u | i | o | p | [ | ] | \ | | * -------------------------------------------------------------------------------' -* | caps | a | s | d | f | g | h | j | k | l | ; | ' | enter |PgUp| +* |Bak/Mov| a | s | d | f | g | h | j | k | l | ; | ' | enter |PgUp| * -------------------------------------------------------------------------------- * |Lsft | z | x | c | v | b | n | m | , | . | / | Rsft| Up| PgDn| * --------------------------------------------------------------------------------- -* |Lctl |Lgui |Lalt | Space |Ralt | FN | Rctl |Left|Down|Rght| +* |Lctl |Lgui |Lalt | Space/Sym | GUI | Sym | Rctl |Left|Down|Rght| * --------------------------------------------------------------------------------- */ [_QWR] = KEYMAP( \ - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_VOLD, KC_VOLU, TO_CDH,\ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_VOLD, KC_VOLU, CDH,\ KC_ESC, KC_1, KC_2, KC_3 ,KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQL, KC_BSPC, KC_DEL,\ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,\ TT_MOV, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,\ @@ -48,29 +68,46 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_CDH] = KEYMAP (\ - ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, QWR, \ KC_ESC, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, ____, ____, ____,\ TT_MOV, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, ____,\ - KC_LSFT, KC_Z, KC_X, KC_C, M(1), KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, ____, ____,\ + KC_LSFT, KC_Z, KC_X, KC_C, M(DHPASTE), KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, ____, ____,\ ____, ____, ____ , KC_FN1, ____, ____, ____, ____, ____, ____ ), + +/* SYM +* +* |ESC | F1 | F2 | F3 | F4 | F5 | F6 | f7 | F8 | F9 | F10| F11| F12|Vol-|Vol+|_CDH| +* -------------------------------------------------------------------------------' +* | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |Bakspace|Del | +* -------------------------------------------------------------------------- +* | ESC: | ^ | { | } | @ | % | | [ | ( | ) | _ | [ | ] | \ | | +* -------------------------------------------------------------------------------' +* |Bak/Mov| ! | # | 0 | = | | * | - | 1 | + | ] | ` | enter |PgUp| +* -------------------------------------------------------------------------------- +* |Lsft | ; | ~ | : | ~ | "|"| $ | ~ | | | / | Rsft| Up| PgDn| +* --------------------------------------------------------------------------------- +* |Lctl |Lgui |Lalt | Space/Sym | GUI | Sym | Rctl |Left|Down|Rght| +* --------------------------------------------------------------------------------- +*/ + [_SYM] = KEYMAP (\ ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ - ____, KC_CIRC, KC_LCBR, KC_RCBR,KC_AT, KC_PERC, ____, KC_LBRC,KC_LPRN,KC_RPRN,KC_UNDS, ____, ____, ____,\ - ____, KC_EXLM, KC_HASH, KC_0, KC_EQL, ____, KC_ASTR,KC_MINS,KC_1, KC_PLUS,KC_RBRC, KC_GRV, ____, ____,\ - ____, ____, ____, ____, KC_TILDE, KC_PIPE, KC_DLR, ____, ____, ____, ____, ____, ____, ____,\ + M(VIBRK), KC_CIRC, KC_LCBR, KC_RCBR,KC_AT, KC_PERC, ____, KC_LBRC,KC_LPRN,KC_RPRN,KC_UNDS, ____, ____, ____,\ + ____, KC_EXLM, KC_HASH, KC_0, KC_EQL, ____, KC_ASTR,KC_MINS,KC_1, KC_PLUS,KC_RBRC, KC_GRV, ____, ____,\ + ____, KC_SCLN, KC_TILDE, KC_COLN, KC_TILDE, KC_PIPE, KC_DLR, KC_TILDE,____, ____, KC_SLSH, ____, ____, ____,\ ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ ), [_MOV] = KEYMAP (\ ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ - ____, ____, RGUI(KC_TAB), ____, ____, RCTL(KC_B), ____, ____, ____, ____, ____, ____, ____, ____, \ - ____, RCTL(KC_A), KC_S, RCTL(KC_K), RCTL(KC_E), ____, KC_LEFT,KC_DOWN, KC_UP, KC_RIGHT, ____, ____,____,____,\ + ____, ____,RGUI(KC_TAB), ____, ____, RCTL(KC_B), ____, ____, KC_UP, ____, ____, ____, ____, ____, \ + ____, RCTL(KC_A), KC_S, RCTL(KC_K), RCTL(KC_E), ____, ____, KC_LEFT,KC_DOWN, KC_RIGHT, ____, ____,____,____,\ ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ ), @@ -88,9 +125,54 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM fn_actions[] = { [1] = ACTION_LAYER_TAP_KEY(_SYM,KC_SPACE), -[2] = ACTION_LAYER_TAP_KEY(_MOV,KC_BSPC), +[2] = ACTION_LAYER_TAP_KEY(_MOV,KC_BSPC) }; +#ifdef AUDIO_ENABLE + +float tone_startup[][2] = SONG(STARTUP_SOUND); +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +#endif + + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWR: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_qwerty, false, 0); + #endif + layer_off(_CDH); + } + return false; + break; + + case CDH: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_colemak, false, 0); + #endif + layer_on(_CDH); + } + return false; + break; + + case SYM: + if (record->event.pressed) { + layer_on(_SYM); + } else { + layer_off(_SYM); + } + return false; + break; + + } + return true; + +} + + const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // MACRODOWN only works in this function @@ -104,7 +186,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) break; - case 1 : + case DHPASTE: if(keyboard_report->mods & MOD_BIT(KC_LGUI) ) { if (record->event.pressed) { clear_keyboard_but_mods(); @@ -121,12 +203,29 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } break; - + case VIBRK: // vi esc: + if (record->event.pressed) { + return MACRO( T(E),D(LSFT),T(SCLN),U(LSFT), END ); + } + break; } + + return MACRO_NONE; }; +#ifdef AUDIO_ENABLE + + +void startup_user() +{ + _delay_ms(20); // gets rid of tick + PLAY_NOTE_ARRAY(tone_startup, false, 0); +} +#endif + + void matrix_init_user(void) { } @@ -135,10 +234,9 @@ void matrix_scan_user(void) { } -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} void led_set_user(uint8_t usb_led) { } + + -- cgit v1.2.3 From 0834c520c0c4adf0d4f59f4b149116b95726aec6 Mon Sep 17 00:00:00 2001 From: milestogo Date: Tue, 28 Feb 2017 21:54:35 -0800 Subject: missed config.h stuck modifiers change --- keyboards/handwired/MS-sculpt-mobile/config.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'keyboards') diff --git a/keyboards/handwired/MS-sculpt-mobile/config.h b/keyboards/handwired/MS-sculpt-mobile/config.h index 1ac40f996..d85c5c623 100644 --- a/keyboards/handwired/MS-sculpt-mobile/config.h +++ b/keyboards/handwired/MS-sculpt-mobile/config.h @@ -24,7 +24,7 @@ along with this program. If not, see . #define VENDOR_ID 0xFEED #define PRODUCT_ID 0x6060 #define DEVICE_VER 0x0001 -#define MANUFACTURER Microsoft+abit +#define MANUFACTURER Microsoftplus #define PRODUCT sculpt mobile #define DESCRIPTION 6000 @@ -44,7 +44,7 @@ along with this program. If not, see . /* 0 1 2 3 4 5 6 7 */ #define MATRIX_ROW_PINS { F7,F6,F4,F5,F3,F2,F1,F0} /* A B C D E F G H I J K L M N O P Q R */ -#define MATRIX_COL_PINS { B7, D0, D1, D2, D3, D4, D5, D6, D7, E0,E1,C1, C0, C3, C2, C5, C4,C6} +#define MATRIX_COL_PINS { B7, D0, D1, D2, D3, D4, D5, D6, D7, E0,E1,C1, C0, C3, C2, C5, C4,C7} #define UNUSED_PINS { B6,B5,B4,B3,B2,B1,B0 } @@ -96,4 +96,6 @@ along with this program. If not, see . //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION +#define PREVENT_STUCK_MODIFIERS + #endif -- cgit v1.2.3 From b80c97b712de41871be1a25a30d6ec838ea9eda3 Mon Sep 17 00:00:00 2001 From: milestogo Date: Tue, 28 Feb 2017 23:27:49 -0800 Subject: clean up babblepaste --- keyboards/handwired/MS-sculpt-mobile/babblePaste.c | 468 ++++++++++++++++++++ keyboards/handwired/MS-sculpt-mobile/babblePaste.h | 72 +++ .../handwired/MS-sculpt-mobile/babblePaste.txt | 489 +++++++++++++++++++++ 3 files changed, 1029 insertions(+) create mode 100644 keyboards/handwired/MS-sculpt-mobile/babblePaste.c create mode 100644 keyboards/handwired/MS-sculpt-mobile/babblePaste.h create mode 100644 keyboards/handwired/MS-sculpt-mobile/babblePaste.txt (limited to 'keyboards') diff --git a/keyboards/handwired/MS-sculpt-mobile/babblePaste.c b/keyboards/handwired/MS-sculpt-mobile/babblePaste.c new file mode 100644 index 000000000..00e8416f4 --- /dev/null +++ b/keyboards/handwired/MS-sculpt-mobile/babblePaste.c @@ -0,0 +1,468 @@ +/* A library to output the right key shortcut in any common app. +Given a global variable babble_mode to show the environment and a +key that calls the paste macro, do the right type of paste. +Setting the context is done by another macro, or TBD interaction with the host. + +Huge thanks to https://en.wikipedia.org/wiki/Table_of_keyboard_shortcuts +and https://github.com/qmk/qmk_firmware/blob/master/keyboards/planck/keymaps/jeebak/keymap.c +*/ + +#include "babblePaste.h" +#include "action_layer.h" + +// GLOBAL variable. Sets startup default if no eeppom +char babble_mode = MAC_MODE ; + + +const static macro_t *babblePaste (keyrecord_t *record, uint16_t shortcut) { + + switch(babble_mode) { + +#ifdef MS_MODE + case MS_MODE: + switch(shortcut) { + + case BABL_DEL_RIGHT_1C: + return (static macro_t *) MACRO( D(DEL), END ); + case BABL_DEL_LEFT_WORD: + return MACRO( D(LCTRL), T(BSPACE), U(LCTRL), END ); + case BABL_DEL_RIGHT_WORD: + return MACRO( D(LCTRL), T(DEL), U(LCTRL), END ); + case BABL_GO_LEFT_1C: + return MACRO( T(LEFT), END ); + case BABL_GO_RIGHT_1C: + return MACRO( T(RIGHT), END ); + case BABL_GO_LEFT_WORD: + return MACRO( D(LCTRL), T(LEFT), U(LCTRL), END ); + case BABL_GO_RIGHT_WORD: + return MACRO( D(LCTRL), T(RIGHT), U(LCTRL), END ); + case BABL_GO_START_LINE: + return MACRO( T(HOME), END ); + case BABL_GO_START_DOC: + return MACRO( D(LCTRL),T(HOME), U(LCTRL),END ); + case BABL_GO_END_LINE: + return MACRO( T(END), END ); + case BABL_GO_END_DOC: + return MACRO( D(LCTRL),T(END), U(LCTRL),END ); + case BABL_GO_NEXT_LINE: + return MACRO( T(DOWN), END ); + case BABL_GO_PREV_LINE: + return MACRO( T(UP), END ); + case BABL_PGDN: + return MACRO( T(PGDN), END ); + case BABL_PGUP: + return MACRO( T(PGUP), END ); +#ifndef BABL_MOVEMENTONLY + case BABL_UNDO: + return MACRO( D(LCTRL), T(Z), U(LCTRL), END ); + case BABL_REDO: + return MACRO( D(LCTRL), T(Y), U(LCTRL), END ); + case BABL_CUT: + return MACRO( D(LCTRL), T(X), U(LCTRL), END ); + case BABL_COPY: + return MACRO( D(LCTRL), T(C), U(LCTRL), END ); + case BABL_PASTE: + return MACRO( D(LCTRL), T(V), U(LCTRL), END ); + case BABL_SELECT_ALL: + return MACRO( D(LCTRL), T(A), U(LCTRL), END ); + case BABL_UNDO: + return MACRO( D(LCTRL), T(Z), U(LCTRL), END ); + case BABL_REDO: + return MACRO( D(LCTRL), T(Y), U(LCTRL), END ); + case BABL_CUT: + return MACRO( D(LCTRL), T(X), U(LCTRL), END ); + case BABL_COPY: + return MACRO( D(LCTRL), T(C), U(LCTRL), END ); + case BABL_PASTE: + return MACRO( D(LCTRL), T(V), U(LCTRL), END ); + case BABL_SELECT_ALL: + return MACRO( D(LCTRL), T(A), U(LCTRL), END ); + case BABL_FIND: + return MACRO( D(LCTRL),T(F), U(LCTRL),END ); + case BABL_FIND_NEXT: + return MACRO( T(F3),END ); + case BABL_FIND_REPLACE: + return MACRO( D(LCTRL),T(H), U(LCTRL),END ); + case BABL_RUNAPP: + return MACRO( D(LGUI),T(R), U(LGUI),END ); + case BABL_SWITCH_APP_NEXT: + return MACRO( D(LALT),T(TAB), U(LALT),END ); + case BABL_SWITCH_APP_LAST: + return MACRO( D(LSFT),D(LALT),T(TAB), U(LALT), U(LSFT),END ); + case BABL_CLOSE_APP: + return MACRO( D(LALT),T(F4), U(LALT),END ); + case BABL_HELP: + return MACRO( T(F1),END ); +#endif + break; + + return MACRO_NONE; + } + +#endif +#ifdef LINUX_MODE + case LINUX_MODE: + switch(shortcut) { + + case BABL_DEL_RIGHT_1C: + return MACRO( D(DEL), END ); + case BABL_DEL_LEFT_WORD: + return MACRO( D(LCTRL), T(BSPACE), U(LCTRL), END ); + case BABL_DEL_RIGHT_WORD: + return MACRO( D(LCTRL), T(DEL), U(LCTRL), END ); + case BABL_GO_LEFT_1C: + return MACRO( T(LEFT), END ); + case BABL_GO_RIGHT_1C: + return MACRO( T(RIGHT), END ); + case BABL_GO_LEFT_WORD: + return MACRO( D(LCTRL), T(LEFT), U(LCTRL), END ); + case BABL_GO_RIGHT_WORD: + return MACRO( D(LCTRL), T(RIGHT), U(LCTRL), END ); + case BABL_GO_START_LINE: + return MACRO( T(HOME), END ); + case BABL_GO_START_DOC: + return MACRO( D(LCTRL),T(HOME), U(LCTRL),END ); + case BABL_GO_END_LINE: + return MACRO( T(END), END ); + case BABL_GO_END_DOC: + return MACRO( D(LCTRL),T(END), U(LCTRL),END ); + case BABL_GO_NEXT_LINE: + return MACRO( T(DOWN), END ); + case BABL_GO_PREV_LINE: + return MACRO( T(UP), END ); + case BABL_PGDN: + return MACRO( T(PGDN), END ); + case BABL_PGUP: + return MACRO( T(PGUP), END ); +#ifndef BABL_MOVEMENTONLY + case BABL_UNDO: + return MACRO( D(LCTRL), T(Z), U(LCTRL), END ); + case BABL_REDO: + return MACRO( D(LCTRL), T(Y), U(LCTRL), END ); + case BABL_CUT: + return MACRO( D(LCTRL), T(X), U(LCTRL), END ); + case BABL_COPY: + return MACRO( D(LCTRL), T(C), U(LCTRL), END ); + case BABL_PASTE: + return MACRO( D(LCTRL), T(V), U(LCTRL), END ); + case BABL_SELECT_ALL: + return MACRO( D(LCTRL), T(A), U(LCTRL), END ); + + case BABL_FIND: + return MACRO( D(LCTRL),T(F), U(LCTRL),END ); + case BABL_FIND_NEXT: + /* return MACRO( T(F3),END ); KDE */ + return MACRO( D(LCTRL),T(G), U(LCTRL),END ); // Gnome*/ + case BABL_FIND_REPLACE: + /* return MACRO( D(LCTRL),T(R), U(LCTRL),END ); KDE */ + return MACRO( D(LCTRL),T(H), U(LCTRL),END ); // Gnome*/ + case BABL_RUNAPP: + return MACRO( D(LALT),T(F2), U(LALT),END ); + case BABL_SWITCH_APP_NEXT: + return MACRO( D(LCTL),T(TAB), U(LCTL),END ); + case BABL_SWITCH_APP_LAST: + return MACRO( D(LSFT),D(LCTL),T(TAB), U(LCTL), U(LSFT),END ); + case BABL_CLOSE_APP: + return MACRO( D(LALT),T(F4), U(LALT),END ); + case BABL_HELP: + return MACRO_NONE; +#endif + break; + + return MACRO_NONE; + } + +#endif + +#ifdef MAC_MODE + case MAC_MODE: + switch(shortcut) { + + + case BABL_DEL_RIGHT_1C: + return MACRO( D(DEL), END ); + case BABL_DEL_LEFT_WORD: + return MACRO( D(LALT), T(BSPACE), U(LALT), END ); + case BABL_DEL_RIGHT_WORD: + return MACRO( D(LALT), T(DEL), U(LALT), END ); + case BABL_GO_LEFT_1C: + return MACRO( T(LEFT), END ); + case BABL_GO_RIGHT_1C: + return MACRO( T(RIGHT), END ); + case BABL_GO_LEFT_WORD: + return MACRO( D(LALT), T(LEFT), U(LALT), END ); + case BABL_GO_RIGHT_WORD: + return MACRO( D(LALT), T(RIGHT), U(LALT), END ); + case BABL_GO_START_LINE: + return MACRO( D(LGUI), T(LEFT), U(LGUI), END ); + case BABL_GO_START_DOC: + return MACRO( D(LGUI),T(UP), U(LGUI),END ); + case BABL_GO_END_LINE: + return MACRO( D(LGUI), T(RIGHT), U(LGUI), END ); + case BABL_GO_END_DOC: + return MACRO( D(LGUI),T(DOWN), U(LGUI),END ); + case BABL_GO_NEXT_LINE: + return MACRO( T(DOWN), END ); + case BABL_GO_PREV_LINE: + return MACRO( T(UP), END ); + case BABL_PGDN: + return MACRO( D(LALT), T(DOWN), U(LALT), END ); + case BABL_PGUP: + return MACRO( D(LALT), T(UP), U(LALT), END ); +#ifndef BABL_MOVEMENTONLY + case BABL_UNDO: + return MACRO( D(LGUI), T(Z), U(LGUI), END ); + case BABL_REDO: + return MACRO( D(LSFT),D(LGUI), T(Z), U(LSFT),U(LGUI), END ); + case BABL_CUT: + return MACRO( D(LGUI), T(X), U(LGUI), END ); + case BABL_COPY: + return MACRO( D(LGUI), T(C), U(LGUI), END ); + case BABL_PASTE: + return MACRO( D(LGUI), T(V), U(LGUI), END ); + case BABL_SELECT_ALL: + return MACRO( D(LGUI), T(A), U(LGUI), END ); + case BABL_FIND: + return MACRO( D(LGUI),T(F), U(LGUI),END ); + case BABL_FIND_NEXT: + return MACRO( D(LGUI),T(G), U(LGUI),END ); + case BABL_FIND_REPLACE: + return MACRO( D(LGUI),T(F), U(LGUI),END ); + case BABL_RUNAPP: + return MACRO( D(LGUI),T(R), U(LGUI),END ); + case BABL_SWITCH_APP_NEXT: + return MACRO( D(LGUI),T(TAB), U(LGUI),END ); + case BABL_SWITCH_APP_LAST: + return MACRO( D(LSFT),D(LGUI),T(TAB), U(LGUI), U(LSFT),END ); + case BABL_CLOSE_APP: + return MACRO( D(LGUI),T(Q), U(LGUI),END ); + case BABL_HELP: + return MACRO( D(LSFT),D(LGUI),T(SLASH), U(LGUI), U(LSFT),END ); +#endif + break; + + return MACRO_NONE; + } + +#endif + +#ifdef EMACS_MODE + case EMACS_MODE: + switch(shortcut) { +//probably should allow meta to not be ALT + + case BABL_DEL_RIGHT_1C: + return MACRO( D(LCTL), T(D), U(LCTL),END ); + case BABL_DEL_LEFT_WORD: + return MACRO( D(LCTL), T(BSPACE), U(LCTL), END ); + case BABL_DEL_RIGHT_WORD: + return MACRO( D(LALT), T(D), U(LALT), END ); + case BABL_GO_LEFT_1C: + return MACRO( T(LEFT), END ); + case BABL_GO_RIGHT_1C: + return MACRO( T(RIGHT), END ); + case BABL_GO_LEFT_WORD: + return MACRO( D(LALT), T(B), U(LALT), END ); + case BABL_GO_RIGHT_WORD: + return MACRO( D(LALT), T(F), U(LALT), END ); + case BABL_GO_START_LINE: + return MACRO( D(LCTRL), T(A), U(LCTRL), END ); + case BABL_GO_START_DOC: + return MACRO( D(LALT), D(LSFT), T(COMM),U(LSFT), U(LALT) ,END ); + case BABL_GO_END_LINE: + return MACRO( D(LCTRL), T(E), U(LCTRL), END ); + case BABL_GO_END_DOC: + return MACRO( D(LALT), D(LSFT), T(DOT),U(LSFT), U(LALT) ,END ); + case BABL_GO_NEXT_LINE: + return MACRO( D(LCTRL), T(N), U(LCTRL), END ); + case BABL_GO_PREV_LINE: + return MACRO( D(LCTRL), T(P), U(LCTRL), END ); + case BABL_PGDN: + return MACRO(D(LCTRL), T(V), U(LCTRL), END ); + case BABL_PGUP: + return MACRO( D(LALT), T(V), U(LALT), END ); +#ifndef BABL_MOVEMENTONLY + case BABL_UNDO: + return MACRO( D(LCTL), T(X), U(LCTL),T(C), END ); + case BABL_REDO: + return MACRO( D(LCTL), T(X), U(LCTL),T(C), END ); // arguably + case BABL_CUT: + return MACRO( D(LCTL), T(W), U(LCTL), END ); + case BABL_COPY: + return MACRO( D(LALT), T(W), U(LALT), END ); //really? + case BABL_PASTE: + return MACRO( D(LCTL), T(Y), U(LCTL), END ); + case BABL_SELECT_ALL: + return MACRO(D(LCTL), T(X), U(LCTL),T(H), END ); + case BABL_FIND: + return MACRO( D(LCTRL), T(S), U(LCTRL),END ); + case BABL_FIND_NEXT: + return MACRO( D(LCTRL), T(S), U(LCTRL),END ); + case BABL_FIND_REPLACE: + return MACRO( D(LALT),D(LSFT), T(5),U(LSFT), U(LALT), END ); + case BABL_RUNAPP: + return MACRO( D(LALT), T(X), U(LALT),T(S),T(H),T(E),T(L),T(L),END );// arguably + case BABL_SWITCH_APP_NEXT: + return MACRO( D(LCTL), T(X), U(LCTL),T(RIGHT), END ); // arguably + case BABL_SWITCH_APP_LAST: + return MACRO( D(LCTL), T(X), U(LCTL),T(LEFT), END ); // arguably + case BABL_CLOSE_APP: + return MACRO(D(LCTL), T(X), U(LCTL),T(C),END ); + case BABL_HELP: + return MACRO( D(LCTL),T(H), U(LCTL),T(A),END); // start search in help +#endif + break; + + return MACRO_NONE; + } + +#endif +#ifdef VI_MODE + case VI_MODE: + switch(shortcut) { +//assume esc is already called + + case BABL_DEL_RIGHT_1C: + return MACRO( T(X),END ); + case BABL_DEL_LEFT_WORD: + return MACRO( T(D),T(G),T(E),END ); + case BABL_DEL_RIGHT_WORD: + return MACRO( T(D),T(W),END ); + case BABL_GO_LEFT_1C: + return MACRO( T(H), END ); + case BABL_GO_RIGHT_1C: + return MACRO( T(L), END ); + case BABL_GO_LEFT_WORD: + return MACRO( T(B),END ); + case BABL_GO_RIGHT_WORD: + return MACRO( T(W), END ); + case BABL_GO_START_LINE: + return MACRO( D(LSFT), T(6),U(LSFT), END ); //^ + case BABL_GO_START_DOC: + return MACRO( T(G),T(G) ,END ); + case BABL_GO_END_LINE: + return MACRO( D(LSFT), T(4),U(LSFT) , END ); //$ + case BABL_GO_END_DOC: + return MACRO( D(LSFT), T(G),U(LSFT),END ); + case BABL_GO_NEXT_LINE: + return MACRO( T(J), END ); + case BABL_GO_PREV_LINE: + return MACRO( T(K), END ); + case BABL_PGDN: + return MACRO(D(LCTRL), T(F), U(LCTRL), END ); + case BABL_PGUP: + return MACRO( D(LCTRL), T(B), U(LCTRL), END ); +#ifndef BABL_MOVEMENTONLY + case BABL_UNDO: + return MACRO( T(U), END ); + case BABL_REDO: + return MACRO( D(LCTL), T(R), U(LCTL), END ); + case BABL_CUT: + return MACRO( T(X), END ); + case BABL_COPY: + return MACRO( T(Y),END ); + case BABL_PASTE: + return MACRO( T(P), END ); + case BABL_SELECT_ALL: + return MACRO( D(LSFT), T(SCLN),U(LSFT),D(LSFT), T(5),U(LSFT),T(Y), END ); // wrong but helpful? + case BABL_FIND: + return MACRO( T(SLASH),END ); + case BABL_FIND_NEXT: + return MACRO( T(N),END ); + case BABL_FIND_REPLACE: + return MACRO( D(LALT),D(LSFT), T(5),U(LSFT), U(LALT), END ); + case BABL_RUNAPP: + return MACRO_NONE; + case BABL_SWITCH_APP_NEXT: + return MACRO_NONE; + case BABL_SWITCH_APP_LAST: + return MACRO_NONE; + case BABL_CLOSE_APP: + return MACRO(D(LSFT), T(SCLN),U(LSFT), T(Q), D(RSFT), T(1),U(RSFT), END ); + case BABL_HELP: + return MACRO(D(LSFT), T(SCLN),U(LSFT),T(H),END); // start search in help + break; +#endif + return MACRO_NONE; + } + +#endif +#ifdef READMUX_MODE +// Readline command line editing + tmux windowing +// I havent decided how much to do readline and how much tmux + case READMUX_MODE: + switch(shortcut) { + + case BABL_DEL_RIGHT_1C: + return MACRO( D(LCTL), T(D), U(LCTL),END ); + case BABL_DEL_LEFT_WORD: + return MACRO( D(LCTL), T(W), U(LCTL), END ); + case BABL_DEL_RIGHT_WORD: + return MACRO( D(LALT), T(D), U(LALT), END ); + case BABL_GO_LEFT_1C: + return MACRO( T(LEFT), END ); + case BABL_GO_RIGHT_1C: + return MACRO( T(RIGHT), END ); + case BABL_GO_LEFT_WORD: + return MACRO( D(LALT), T(B), U(LALT), END ); + case BABL_GO_RIGHT_WORD: + return MACRO( D(LALT), T(F), U(LALT), END ); + case BABL_GO_START_LINE: + return MACRO( D(LCTRL), T(A), U(LCTRL), END ); + case BABL_GO_START_DOC: + return MACRO_NONE; // tmux? + case BABL_GO_END_LINE: + return MACRO( D(LCTRL), T(E), U(LCTRL), END ); + case BABL_GO_END_DOC: + return MACRO_NONE; // tmux? + case BABL_GO_NEXT_LINE: + return MACRO( D(LCTRL), T(N), U(LCTRL), END ); + case BABL_GO_PREV_LINE: + return MACRO( D(LCTRL), T(P), U(LCTRL), END ); + case BABL_PGDN: + return MACRO( T(PGDN), END ); + case BABL_PGUP: + return MACRO( T(PGUP), END ); +#ifndef BABL_MOVEMENTONLY + case BABL_UNDO: + return MACRO( D(LALT), T(R), U(LALT) , END ); + case BABL_REDO: + return MACRO( D(LCTL), T(X), U(LCTL),T(C), END ); // arguably + case BABL_CUT: + return MACRO( D(LCTL), T(K), U(LCTL), END ); // wrong half the time + case BABL_COPY: + return MACRO_NONE; + case BABL_PASTE: + return MACRO( D(LCTL), T(Y), U(LCTL), END ); + case BABL_SELECT_ALL: + return MACRO(D(LCTL), T(A), T(K), T(Y), U(LCTL) , END ); + case BABL_FIND: + return MACRO( D(LCTRL), T(R), U(LCTRL), END ); // search history + case BABL_FIND_NEXT: + eturn MACRO( D(LCTRL), T(S), U(LCTRL), END ); + case BABL_FIND_REPLACE: + return MACRO_NONE; // tmux? + case BABL_RUNAPP: + return MACRO( D(LCTRL), T(B), U(LCTRL), T(C),END ); //tmux + case BABL_SWITCH_APP_NEXT: + return MACRO( D(LCTRL), T(B), U(LCTRL), T(N),END ); //tmux + case BABL_SWITCH_APP_LAST: + return MACRO( D(LCTRL), T(B), U(LCTRL), T(P),END ); //tmux + case BABL_CLOSE_APP: + return MACRO( D(LCTRL), T(B), U(LCTRL), T(D),END); // usually what I want + break; + case BABL_HELP: + return MACRO_NONE; +#endif + break; + + return MACRO_NONE; + } + +#endif + return MACRO_NONE; + } + + +} + diff --git a/keyboards/handwired/MS-sculpt-mobile/babblePaste.h b/keyboards/handwired/MS-sculpt-mobile/babblePaste.h new file mode 100644 index 000000000..63b79a205 --- /dev/null +++ b/keyboards/handwired/MS-sculpt-mobile/babblePaste.h @@ -0,0 +1,72 @@ +/* A library to output the right key shortcut in any common app. +Given a global variable babble_mode to show the environment and a +key that calls the paste macro, do the right type of paste. + +Setting the bable_mode is done by another macro, or TBD interaction with the host. + +Huge thanks to https://en.wikipedia.org/wiki/Table_of_keyboard_shortcuts +and jeebak & algernon's keymap +*/ +#ifndef _babblePaste_h_included__ +#define _babblePaste_h_included__ + + +/* Add this to your config.h +// Uncomment any modes you want. +// Windows. +//#define MS_MODE 0 +//#define MAC_MODE 1 +//aka gnome+KDE +//#define LINUX_MODE 2 +//#define EMACS_MODE 3 +//#define VI_MODE 4 +//#define WORDSTAR_MODE 5 +// Readline and tmux +//#define READMUX 6 +*/ + +/* Macros handled by babblepaste. Most should be available for all platforms. */ +enum { + + // Movement + BABL_DEL_RIGHT_1C=200, + BABL_DEL_LEFT_WORD, + BABL_DEL_RIGHT_WORD, + BABL_GO_LEFT_1C, + BABL_GO_RIGHT_1C, + BABL_GO_LEFT_WORD, + BABL_GO_RIGHT_WORD, + BABL_GO_START_LINE, + BABL_GO_END_LINE, + BABL_GO_START_DOC, + BABL_GO_END_DOC, + BABL_GO_NEXT_LINE, + BABL_GO_PREV_LINE, + BABL_PGDN, + BABL_PGUP, +#ifndef BABL_MOVEMENTONLY + // Cut & Paste + BABL_UNDO, + BABL_REDO, + BABL_CUT, + BABL_COPY, + BABL_PASTE, + BABL_SELECT_ALL, + // GUI or app + BABL_FIND, + BABL_FIND_NEXT, + BABL_FIND_REPLACE, + BABL_RUNAPP, + BABL_SWITCH_APP_NEXT, + BABL_SWITCH_APP_LAST, // previous + BABL_CLOSE_APP, + BABL_HELP +#endif +}; + + + + +//static macro_t *babblePaste(keyrecord_t *record, uint16_t shortcut) + + #endif \ No newline at end of file diff --git a/keyboards/handwired/MS-sculpt-mobile/babblePaste.txt b/keyboards/handwired/MS-sculpt-mobile/babblePaste.txt new file mode 100644 index 000000000..6170ec7af --- /dev/null +++ b/keyboards/handwired/MS-sculpt-mobile/babblePaste.txt @@ -0,0 +1,489 @@ +/* A library to output the right key shortcut in any common app. +Given a global variable babble_mode to show the environment and a +key that calls the paste macro, do the right type of paste. +Setting the context is done by another macro, or TBD interaction with the host. + +Huge thanks to https://en.wikipedia.org/wiki/Table_of_keyboard_shortcuts +and https://github.com/qmk/qmk_firmware/blob/master/keyboards/planck/keymaps/jeebak/keymap.c +*/ + +#include "eeconfig.h" + + +// Comment out anything you will never use. +// Windows. +#define MS_MODE 0 +#define MAC_MODE 1 +//aka gnome+KDE +#define LINUX_MODE 2 +#define EMACS_MODE 3 +#define VI_MODE 4 +//#define WORDSTAR_MODE 5 +// Readline and tmux +#define READMUX 6 + +// GLOBAL variable. Sets startup default if no eeppom +char babble_mode = MAC_MODE ; + + +/* minimum set required for babble: + // Cut & Paste + BABL_UNDO + BABL_REDO + BABL_CUT + BABL_COPY + BABL_PASTE + BABL_SELECT_ALL + + // Movement + BABL_DEL_RIGHT_1C + BABL_DEL_RIGHT_1C + BABL_DEL_LEFT_WORD + BABL_DEL_RIGHT_WORD + BABL_GO_LEFT_1C + BABL_GO_LEFT_WORD + BABL_GO_RIGHT_WORD + BABL_GOTO_START_LINE + BABL_GOTO_START_DOC + BABL_GOTO_END_LINE + BABL_GOTO_END_DOC + BABL_GOTO_NEXT_LINE // down arrow will do. + BABL_GOTO_PREV_LINE // up arrow will do. + BABL_PGDN + BABL_PGUP + + // GUI + BABL_FIND + BABL_FIND_NEXT + BABL_FIND_REPLACE + BABL_RUNAPP + BABL_SWITCH_NEXT + BABL_SWITCH_LAST // previous + BABL_CLOSE_APP + BABL_HELP +*/ + + + + +static macro_t *babblePaste (keyrecord_t *record, uint16_t shortcut) { + + switch(babble_mode) { + +#ifdef MS_MODE + case MS_MODE: + switch(shortcut) { + + case BABL_UNDO: + return MACRO( D(LCTRL), T(Z), U(LCTRL), END ); + case BABL_REDO: + return MACRO( D(LCTRL), T(Y), U(LCTRL), END ); + case BABL_CUT: + return MACRO( D(LCTRL), T(X), U(LCTRL), END ); + case BABL_COPY: + return MACRO( D(LCTRL), T(C), U(LCTRL), END ); + case BABL_PASTE: + return MACRO( D(LCTRL), T(V), U(LCTRL), END ); + case BABL_SELECT_ALL: + return MACRO( D(LCTRL), T(A), U(LCTRL), END ); + case BABL_DEL_RIGHT_1C: + return MACRO( D(DEL), END ); + case BABL_DEL_LEFT_WORD: + return MACRO( D(LCTRL), T(BSPACE), U(LCTRL), END ); + case BABL_DEL_RIGHT_WORD: + return MACRO( D(LCTRL), T(DEL), U(LCTRL), END ); + case BABL_GO_LEFT_1C: + return MACRO( T(LEFT), END ); + case BABL_GO_RIGHT_1C: + return MACRO( T(RIGHT), END ); + case BABL_GO_LEFT_WORD: + return MACRO( D(LCTRL), T(LEFT), U(LCTRL), END ); + case BABL_GO_RIGHT_WORD: + return MACRO( D(LCTRL), T(RIGHT), U(LCTRL), END ); + case BABL_GOTO_START_LINE: + return MACRO( T(HOME), END ); + case BABL_GOTO_START_DOC: + return MACRO( D(LCTRL),T(HOME), U(LCTRL),END ); + case BABL_GOTO_END_LINE: + return MACRO( T(END), END ); + case BABL_GOTO_END_DOC: + return MACRO( D(LCTRL),T(END), U(LCTRL),END ); + case BABL_GOTO_NEXT_LINE: + return MACRO( T(DOWN), END ); + case BABL_GOTO_PREV_LINE: + return MACRO( T(UP), END ); + case BABL_PGDN: + return MACRO( T(PGDN), END ); + case BABL_PGUP: + return MACRO( T(PGUP), END ); + case BABL_FIND: + return MACRO( D(LCTRL),T(F), U(LCTRL),END ); + case BABL_FIND_NEXT: + return MACRO( T(F3),END ); + case BABL_FIND_REPLACE: + return MACRO( D(LCTRL),T(H), U(LCTRL),END ); + case BABL_RUNAPP: + return MACRO( D(LGUI),T(R), U(LGUI),END ); + case BABL_SWITCH_APP_NEXT: + return MACRO( D(LALT),T(TAB), U(LALT),END ); + case BABL_SWITCH_APP_LAST: + return MACRO( D(LSFT),D(LALT),T(TAB), U(LALT), U(LSFT),END ); + case BABL_CLOSE_APP: + return MACRO( D(LALT),T(F4), U(LALT),END ); + case BABL_HELP: + return MACRO( T(F1),END ); + break; + + return MACRO_NONE; + } + +#endif +#ifdef LINUX_MODE + case LINUX_MODE: + switch(shortcut) { + + case BABL_UNDO: + return MACRO( D(LCTRL), T(Z), U(LCTRL), END ); + case BABL_REDO: + return MACRO( D(LCTRL), T(Y), U(LCTRL), END ); + case BABL_CUT: + return MACRO( D(LCTRL), T(X), U(LCTRL), END ); + case BABL_COPY: + return MACRO( D(LCTRL), T(C), U(LCTRL), END ); + case BABL_PASTE: + return MACRO( D(LCTRL), T(V), U(LCTRL), END ); + case BABL_SELECT_ALL: + return MACRO( D(LCTRL), T(A), U(LCTRL), END ); + case BABL_DEL_RIGHT_1C: + return MACRO( D(DEL), END ); + case BABL_DEL_LEFT_WORD: + return MACRO( D(LCTRL), T(BSPACE), U(LCTRL), END ); + case BABL_DEL_RIGHT_WORD: + return MACRO( D(LCTRL), T(DEL), U(LCTRL), END ); + case BABL_GO_LEFT_1C: + return MACRO( T(LEFT), END ); + case BABL_GO_RIGHT_1C: + return MACRO( T(RIGHT), END ); + case BABL_GO_LEFT_WORD: + return MACRO( D(LCTRL), T(LEFT), U(LCTRL), END ); + case BABL_GO_RIGHT_WORD: + return MACRO( D(LCTRL), T(RIGHT), U(LCTRL), END ); + case BABL_GOTO_START_LINE: + return MACRO( T(HOME), END ); + case BABL_GOTO_START_DOC: + return MACRO( D(LCTRL),T(HOME), U(LCTRL),END ); + case BABL_GOTO_END_LINE: + return MACRO( T(END), END ); + case BABL_GOTO_END_DOC: + return MACRO( D(LCTRL),T(END), U(LCTRL),END ); + case BABL_GOTO_NEXT_LINE: + return MACRO( T(DOWN), END ); + case BABL_GOTO_PREV_LINE: + return MACRO( T(UP), END ); + case BABL_PGDN: + return MACRO( T(PGDN), END ); + case BABL_PGUP: + return MACRO( T(PGUP), END ); + case BABL_FIND: + return MACRO( D(LCTRL),T(F), U(LCTRL),END ); + case BABL_FIND_NEXT: + /* return MACRO( T(F3),END ); KDE */ + return MACRO( D(LCTRL),T(G), U(LCTRL),END ); // Gnome*/ + case BABL_FIND_REPLACE: + /* return MACRO( D(LCTRL),T(R), U(LCTRL),END ); KDE */ + return MACRO( D(LCTRL),T(H), U(LCTRL),END ); // Gnome*/ + case BABL_RUNAPP: + return MACRO( D(LALT),T(F2), U(LALT),END ); + case BABL_SWITCH_APP_NEXT: + return MACRO( D(LCTL),T(TAB), U(LCTL),END ); + case BABL_SWITCH_APP_LAST: + return MACRO( D(LSFT),D(LCTL),T(TAB), U(LCTL), U(LSFT),END ); + case BABL_CLOSE_APP: + return MACRO( D(LALT),T(F4), U(LALT),END ); + case BABL_HELP: + return MACRO_NONE; + break; + + return MACRO_NONE; + } + +#endif + + + +#ifdef MAC_MODE + case MAC_MODE: + switch(shortcut) { + + case BABL_UNDO: + return MACRO( D(LGUI), T(Z), U(LGUI), END ); + case BABL_REDO: + return MACRO( D(LSFT),D(LGUI), T(Z), U(LSFT),U(LGUI), END ); + case BABL_CUT: + return MACRO( D(LGUI), T(X), U(LGUI), END ); + case BABL_COPY: + return MACRO( D(LGUI), T(C), U(LGUI), END ); + case BABL_PASTE: + return MACRO( D(LGUI), T(V), U(LGUI), END ); + case BABL_SELECT_ALL: + return MACRO( D(LGUI), T(A), U(LGUI), END ); + case BABL_DEL_RIGHT_1C: + return MACRO( D(DEL), END ); + case BABL_DEL_LEFT_WORD: + return MACRO( D(LALT), T(BSPACE), U(LALT), END ); + case BABL_DEL_RIGHT_WORD: + return MACRO( D(LALT), T(DEL), U(LALT), END ); + case BABL_GO_LEFT_1C: + return MACRO( T(LEFT), END ); + case BABL_GO_RIGHT_1C: + return MACRO( T(RIGHT), END ); + case BABL_GO_LEFT_WORD: + return MACRO( D(LALT), T(LEFT), U(LALT), END ); + case BABL_GO_RIGHT_WORD: + return MACRO( D(LALT), T(RIGHT), U(LALT), END ); + case BABL_GOTO_START_LINE: + return MACRO( D(LGUI), T(LEFT), U(LGUI), END ); + case BABL_GOTO_START_DOC: + return MACRO( D(LGUI),T(UP), U(LGUI),END ); + case BABL_GOTO_END_LINE: + return MACRO( D(LGUI), T(RIGHT), U(LGUI), END ); + case BABL_GOTO_END_DOC: + return MACRO( D(LGUI),T(DOWN), U(LGUI),END ); + case BABL_GOTO_NEXT_LINE: + return MACRO( T(DOWN), END ); + case BABL_GOTO_PREV_LINE: + return MACRO( T(UP), END ); + case BABL_PGDN: + return MACRO( D(LALT), T(DOWN), U(LALT), END ); + case BABL_PGUP: + return MACRO( D(LALT), T(UP), U(LALT), END ); + case BABL_FIND: + return MACRO( D(LGUI),T(F), U(LGUI),END ); + case BABL_FIND_NEXT: + return MACRO( D(LGUI),T(G), U(LGUI),END ); + case BABL_FIND_REPLACE: + return MACRO( D(LGUI),T(F), U(LGUI),END ); + case BABL_RUNAPP: + return MACRO( D(LGUI),T(R), U(LGUI),END ); + case BABL_SWITCH_APP_NEXT: + return MACRO( D(LGUI),T(TAB), U(LGUI),END ); + case BABL_SWITCH_APP_LAST: + return MACRO( D(LSFT),D(LGUI),T(TAB), U(LGUI), U(LSFT),END ); + case BABL_CLOSE_APP: + return MACRO( D(LGUI),T(Q), U(LGUI),END ); + case BABL_HELP: + return MACRO( D(LSFT),D(LGUI),T(SLASH), U(LGUI), U(LSFT),END ); + break; + + return MACRO_NONE; + } + +#endif + +#ifdef EMACS_MODE + case EMACS_MODE: + switch(shortcut) { +//probably should allow meta to not be ALT + case BABL_UNDO: + return MACRO( D(LCTL), T(X), U(LCTL),T(C), END ); + case BABL_REDO: + return MACRO( D(LCTL), T(X), U(LCTL),T(C), END ); // arguably + case BABL_CUT: + return MACRO( D(LCTL), T(W), U(LCTL), END ); + case BABL_COPY: + return MACRO( D(LALT), T(W), U(LALT), END ); + case BABL_PASTE: + return MACRO( D(LCTL), T(Y), U(LCTL), END ); + case BABL_SELECT_ALL: + return MACRO(D(LCTL), T(X), U(LCTL),T(H), END ); + case BABL_DEL_RIGHT_1C: + return MACRO( D(LCTL), T(D), U(LCTL),END ); + case BABL_DEL_LEFT_WORD: + return MACRO( D(LCTL), T(BSPACE), U(LCTL), END ); + case BABL_DEL_RIGHT_WORD: + return MACRO( D(LALT), T(D), U(LALT), END ); + case BABL_GO_LEFT_1C: + return MACRO( T(LEFT), END ); + case BABL_GO_RIGHT_1C: + return MACRO( T(RIGHT), END ); + case BABL_GO_LEFT_WORD: + return MACRO( D(LALT), T(B), U(LALT), END ); + case BABL_GO_RIGHT_WORD: + return MACRO( D(LALT), T(F), U(LALT), END ); + case BABL_GOTO_START_LINE: + return MACRO( D(LCTRL), T(A), U(LCTRL), END ); + case BABL_GOTO_START_DOC: + return MACRO( D(LALT), D(LSFT), T(COMM),U(LSFT), U(LALT) ,END ); + case BABL_GOTO_END_LINE: + return MACRO( D(LCTRL), T(E), U(LCTRL), END ); + case BABL_GOTO_END_DOC: + return MACRO( D(LALT), D(LSFT), T(DOT),U(LSFT), U(LALT) ,END ); + case BABL_GOTO_NEXT_LINE: + return MACRO( D(LCTRL), T(N), U(LCTRL), END ); + case BABL_GOTO_PREV_LINE: + rreturn MACRO( D(LCTRL), T(P), U(LCTRL), END ); + case BABL_PGDN: + return MACRO(D(LCTRL), T(V), U(LCTRL), END ); + case BABL_PGUP: + return MACRO( D(LALT), T(V), U(LALT), END ); + case BABL_FIND: + return MACRO( D(LCTRL), T(S), U(LCTRL),END ); + case BABL_FIND_NEXT: + return MACRO( D(LCTRL), T(S), U(LCTRL),END ); + case BABL_FIND_REPLACE: + return MACRO( D(LALT),D(LSFT), T(5),U(LSFT), U(LALT), END ); + case BABL_RUNAPP: + return MACRO( D(LALT), T(X), U(LALT),T(S),T(H),T(E),T(L),T(L),END );// arguably + case BABL_SWITCH_APP_NEXT: + return MACRO( D(LCTL), T(X), U(LCTL),T(RIGHT), END ); // arguably + case BABL_SWITCH_APP_LAST: + return MACRO( D(LCTL), T(X), U(LCTL),T(LEFT), END ); // arguably + case BABL_CLOSE_APP: + return MACRO(D(LCTL), T(X), U(LCTL),T(C),END ); + case BABL_HELP: + return MACRO( D(LCTL),T(H), U(LCTL),T(A),END); // start search in help + break; + + return MACRO_NONE; + } + +#endif +#ifdef VI_MODE + case VI_MODE: + switch(shortcut) { +//assume esc is already called + case BABL_UNDO: + return MACRO( T(U), END ); + case BABL_REDO: + return MACRO( D(LCTL), T(R), U(LCTL), END ); + case BABL_CUT: + return MACRO( T(X), END ); + case BABL_COPY: + return MACRO( T(Y),END ); + case BABL_PASTE: + return MACRO( T(P), END ); + case BABL_SELECT_ALL: + return MACRO( T(COLN),T(PERC),T(Y), END ); // wrong but helpful? + case BABL_DEL_RIGHT_1C: + return MACRO( T(X),END ); + case BABL_DEL_LEFT_WORD: + return MACRO( T(D),T(G),T(E),END ); + case BABL_DEL_RIGHT_WORD: + return MACRO( T(D),T(W),END ); + case BABL_GO_LEFT_1C: + return MACRO( T(H), END ); + case BABL_GO_RIGHT_1C: + return MACRO( T(L), END ); + case BABL_GO_LEFT_WORD: + return MACRO( T(B),END ); + case BABL_GO_RIGHT_WORD: + return MACRO( T(W), END ); + case BABL_GOTO_START_LINE: + return MACRO( T(CIRC), END ); + case BABL_GOTO_START_DOC: + return MACRO( T(G),T(G) ,END ); + case BABL_GOTO_END_LINE: + return MACRO( T(DLR), END ); + case BABL_GOTO_END_DOC: + return MACRO( D(LSFT), T(G),U(LSFT), ,END ); + case BABL_GOTO_NEXT_LINE: + return MACRO( T(J), END ); + case BABL_GOTO_PREV_LINE: + rreturn MACRO( T(K), END ); + case BABL_PGDN: + return MACRO(D(LCTRL), T(F), U(LCTRL), END ); + case BABL_PGUP: + return MACRO( D(LCTRL), T(B), U(LCTRL), END ); + case BABL_FIND: + return MACRO( T(SLASH),END ); + case BABL_FIND_NEXT: + return MACRO( T(N),END ); + case BABL_FIND_REPLACE: + return MACRO( D(LALT),D(LSFT), T(5),U(LSFT), U(LALT), END ); + case BABL_RUNAPP: + return MACRO_NONE; + case BABL_SWITCH_APP_NEXT: + return MACRO_NONE; + case BABL_SWITCH_APP_LAST: + return MACRO_NONE; + case BABL_CLOSE_APP: + return MACRO(T(COLN), T(Q), T(EXLM),END ); + case BABL_HELP: + return MACRO(T(COLN),T(H),END); // start search in help + break; + + return MACRO_NONE; + } + +#endif +#ifdef READMUX_MODE +// I havent decided how much to do bash and how much tmux + case READMUX_MODE: + switch(shortcut) { + case BABL_UNDO: + return MACRO( D(LALT), T(R), U(LALT) , END ); + case BABL_REDO: + return MACRO( D(LCTL), T(X), U(LCTL),T(C), END ); // arguably + case BABL_CUT: + return MACRO( D(LCTL), T(K), U(LCTL), END ); // wrong half the time + case BABL_COPY: + return MACRO_NONE; + case BABL_PASTE: + return MACRO( D(LCTL), T(Y), U(LCTL), END ); + case BABL_SELECT_ALL: + return MACRO(D(LCTL), T(A), T(K), T(Y), U(LCTL) , END ); // should this be tmux all? + case BABL_DEL_RIGHT_1C: + return MACRO( D(LCTL), T(D), U(LCTL),END ); + case BABL_DEL_LEFT_WORD: + return MACRO( D(LCTL), T(W), U(LCTL), END ); + case BABL_DEL_RIGHT_WORD: + return MACRO( D(LALT), T(D), U(LALT), END ); + case BABL_GO_LEFT_1C: + return MACRO( T(LEFT), END ); + case BABL_GO_RIGHT_1C: + return MACRO( T(RIGHT), END ); + case BABL_GO_LEFT_WORD: + return MACRO( D(LALT), T(B), U(LALT), END ); + case BABL_GO_RIGHT_WORD: + return MACRO( D(LALT), T(F), U(LALT), END ); + case BABL_GOTO_START_LINE: + return MACRO( D(LCTRL), T(A), U(LCTRL), END ); + case BABL_GOTO_START_DOC: + return MACRO_NONE; // tmux? + case BABL_GOTO_END_LINE: + return MACRO( D(LCTRL), T(E), U(LCTRL), END ); + case BABL_GOTO_END_DOC: + return MACRO_NONE; // tmux? + case BABL_GOTO_NEXT_LINE: + return MACRO( D(LCTRL), T(N), U(LCTRL), END ); + case BABL_GOTO_PREV_LINE: + return MACRO( D(LCTRL), T(P), U(LCTRL), END ); + case BABL_PGDN: + return MACRO( T(PGDN), END ); + case BABL_PGUP: + return MACRO( T(PGUP), END ); + case BABL_FIND: + return MACRO( D(LCTRL), T(R), U(LCTRL), END ); // search history + case BABL_FIND_NEXT: + eturn MACRO( D(LCTRL), T(S), U(LCTRL), END ); + case BABL_FIND_REPLACE: + return MACRO_NONE; // tmux? + case BABL_RUNAPP: + return MACRO( D(LCTRL), T(B), U(LCTRL), T(C),END ); //tmux + case BABL_SWITCH_APP_NEXT: + return MACRO( D(LCTRL), T(B), U(LCTRL), T(N),END ); //tmux + case BABL_SWITCH_APP_LAST: + return MACRO( D(LCTRL), T(B), U(LCTRL), T(P),END ); //tmux + case BABL_CLOSE_APP: + return MACRO( D(LCTRL), T(B), U(LCTRL), T(D),END); // usually what I want + break; + case BABL_HELP: + return MACRO_NONE; + break; + + return MACRO_NONE; + } + +#endif + return MACRO_NONE; +} \ No newline at end of file -- cgit v1.2.3 From 2f677c24a8fcf936e92a0a5acfbbf95b5f47fdb7 Mon Sep 17 00:00:00 2001 From: milestogo Date: Mon, 6 Mar 2017 00:16:44 -0800 Subject: working with preprocessor macros for babblepaste --- keyboards/handwired/MS-sculpt-mobile/babblePaste.c | 609 ++++++++------------- keyboards/handwired/MS-sculpt-mobile/babblePaste.h | 57 +- .../MS-sculpt-mobile/keymaps/milestogo/config.h | 20 + .../MS-sculpt-mobile/keymaps/milestogo/keymap.c | 136 +++-- keyboards/handwired/MS-sculpt-mobile/rules.mk | 4 + 5 files changed, 395 insertions(+), 431 deletions(-) (limited to 'keyboards') diff --git a/keyboards/handwired/MS-sculpt-mobile/babblePaste.c b/keyboards/handwired/MS-sculpt-mobile/babblePaste.c index 00e8416f4..93ff486e0 100644 --- a/keyboards/handwired/MS-sculpt-mobile/babblePaste.c +++ b/keyboards/handwired/MS-sculpt-mobile/babblePaste.c @@ -8,242 +8,159 @@ and https://github.com/qmk/qmk_firmware/blob/master/keyboards/planck/keymaps/jee */ #include "babblePaste.h" -#include "action_layer.h" +#include "action_macro.h" -// GLOBAL variable. Sets startup default if no eeppom -char babble_mode = MAC_MODE ; +#ifdef USE_BABLPASTE +// GLOBAL variable to determine mode. Sets startup default if no eeppom +uint8_t babble_mode =0 ; -const static macro_t *babblePaste (keyrecord_t *record, uint16_t shortcut) { + +// Today I learned that the preprocessor can not create a switch statement label from an argument +// And else statements have problems, see https://gcc.gnu.org/onlinedocs/gcc-3.0.1/cpp_3.html#SEC15 +#define BABLM(ent, macro...) \ + if ( ent == shortcut ) \ + { action_macro_play( MACRO(macro)); return MACRO_NONE; } - switch(babble_mode) { - + +const macro_t *babblePaste (keyrecord_t *record, uint8_t shortcut) { +/* this function runs the appropriate babblepaste macro, given +the global babble_mode, and a shortcut from the ENUM in babblePaste.h +TODO, the pointers in this function should be stored in a PROGMEM array, not ram. +But that requires even more clever preprocessor foo. +*/ + + if ( shortcut < BABL_START_NUM || \ + shortcut >= (BABL_START_NUM + BABL_NUM_MACROS ) ) { + return MACRO_NONE; + } + + + switch(babble_mode) { + #ifdef MS_MODE - case MS_MODE: - switch(shortcut) { - - case BABL_DEL_RIGHT_1C: - return (static macro_t *) MACRO( D(DEL), END ); - case BABL_DEL_LEFT_WORD: - return MACRO( D(LCTRL), T(BSPACE), U(LCTRL), END ); - case BABL_DEL_RIGHT_WORD: - return MACRO( D(LCTRL), T(DEL), U(LCTRL), END ); - case BABL_GO_LEFT_1C: - return MACRO( T(LEFT), END ); - case BABL_GO_RIGHT_1C: - return MACRO( T(RIGHT), END ); - case BABL_GO_LEFT_WORD: - return MACRO( D(LCTRL), T(LEFT), U(LCTRL), END ); - case BABL_GO_RIGHT_WORD: - return MACRO( D(LCTRL), T(RIGHT), U(LCTRL), END ); - case BABL_GO_START_LINE: - return MACRO( T(HOME), END ); - case BABL_GO_START_DOC: - return MACRO( D(LCTRL),T(HOME), U(LCTRL),END ); - case BABL_GO_END_LINE: - return MACRO( T(END), END ); - case BABL_GO_END_DOC: - return MACRO( D(LCTRL),T(END), U(LCTRL),END ); - case BABL_GO_NEXT_LINE: - return MACRO( T(DOWN), END ); - case BABL_GO_PREV_LINE: - return MACRO( T(UP), END ); - case BABL_PGDN: - return MACRO( T(PGDN), END ); - case BABL_PGUP: - return MACRO( T(PGUP), END ); + + case MS_MODE: + BABLM( BABL_DEL_RIGHT_1C, T(DEL), END ); + BABLM( BABL_DEL_LEFT_WORD, D(LCTRL), T(BSPACE), U(LCTRL), END ); + BABLM( BABL_DEL_RIGHT_WORD,D(LCTRL), T(DEL), U(LCTRL), END ); + BABLM( BABL_GO_LEFT_1C, T(LEFT), END ); + BABLM( BABL_GO_RIGHT_1C , T(RIGHT), END ); + BABLM( BABL_GO_LEFT_WORD, D(LCTRL), T(LEFT), U(LCTRL), END ); + BABLM( BABL_GO_RIGHT_WORD, D(LCTRL), T(RIGHT), U(LCTRL), END ); + BABLM( BABL_GO_START_LINE, T(HOME), END ); + BABLM( BABL_GO_START_DOC, D(LCTRL),T(HOME), U(LCTRL),END ); + BABLM( BABL_GO_END_LINE, T(END), END ); + BABLM( BABL_GO_END_DOC, D(LCTRL),T(END), U(LCTRL),END ); + BABLM( BABL_GO_NEXT_LINE, T(DOWN), END ); + BABLM( BABL_GO_PREV_LINE, T(UP), END ); + BABLM( BABL_PGDN, T(PGDN), END ); + BABLM( BABL_PGUP, T(PGUP), END ); #ifndef BABL_MOVEMENTONLY - case BABL_UNDO: - return MACRO( D(LCTRL), T(Z), U(LCTRL), END ); - case BABL_REDO: - return MACRO( D(LCTRL), T(Y), U(LCTRL), END ); - case BABL_CUT: - return MACRO( D(LCTRL), T(X), U(LCTRL), END ); - case BABL_COPY: - return MACRO( D(LCTRL), T(C), U(LCTRL), END ); - case BABL_PASTE: - return MACRO( D(LCTRL), T(V), U(LCTRL), END ); - case BABL_SELECT_ALL: - return MACRO( D(LCTRL), T(A), U(LCTRL), END ); - case BABL_UNDO: - return MACRO( D(LCTRL), T(Z), U(LCTRL), END ); - case BABL_REDO: - return MACRO( D(LCTRL), T(Y), U(LCTRL), END ); - case BABL_CUT: - return MACRO( D(LCTRL), T(X), U(LCTRL), END ); - case BABL_COPY: - return MACRO( D(LCTRL), T(C), U(LCTRL), END ); - case BABL_PASTE: - return MACRO( D(LCTRL), T(V), U(LCTRL), END ); - case BABL_SELECT_ALL: - return MACRO( D(LCTRL), T(A), U(LCTRL), END ); - case BABL_FIND: - return MACRO( D(LCTRL),T(F), U(LCTRL),END ); - case BABL_FIND_NEXT: - return MACRO( T(F3),END ); - case BABL_FIND_REPLACE: - return MACRO( D(LCTRL),T(H), U(LCTRL),END ); - case BABL_RUNAPP: - return MACRO( D(LGUI),T(R), U(LGUI),END ); - case BABL_SWITCH_APP_NEXT: - return MACRO( D(LALT),T(TAB), U(LALT),END ); - case BABL_SWITCH_APP_LAST: - return MACRO( D(LSFT),D(LALT),T(TAB), U(LALT), U(LSFT),END ); - case BABL_CLOSE_APP: - return MACRO( D(LALT),T(F4), U(LALT),END ); - case BABL_HELP: - return MACRO( T(F1),END ); + BABLM( BABL_UNDO, D(LCTRL), T(Z), U(LCTRL), END ); + BABLM( BABL_REDO, D(LCTRL), T(Y), U(LCTRL), END ); + BABLM( BABL_CUT, D(LCTRL), T(X), U(LCTRL), END ); + BABLM( BABL_COPY, D(LCTRL), T(C), U(LCTRL), END ); + BABLM( BABL_PASTE, D(LCTRL), T(V), U(LCTRL), END ); + BABLM( BABL_SELECT_ALL, D(LCTRL), T(A), U(LCTRL), END ); + BABLM( BABL_UNDO, D(LCTRL), T(Z), U(LCTRL), END ); + BABLM( BABL_REDO, D(LCTRL), T(Y), U(LCTRL), END ); + BABLM( BABL_CUT, D(LCTRL), T(X), U(LCTRL), END ); + BABLM( BABL_COPY, D(LCTRL), T(C), U(LCTRL), END ); + BABLM( BABL_PASTE, D(LCTRL), T(V), U(LCTRL), END ); + BABLM( BABL_SELECT_ALL, D(LCTRL), T(A), U(LCTRL), END ); + BABLM( BABL_FIND, D(LCTRL),T(F), U(LCTRL),END ); + BABLM( BABL_FIND_NEXT, T(F3),END ); + BABLM( BABL_FIND_REPLACE, D(LCTRL),T(H), U(LCTRL),END ); + BABLM( BABL_RUNAPP, D(LGUI),T(R), U(LGUI),END ); + BABLM( BABL_SWITCH_APP_NEXT, D(LALT),T(TAB), U(LALT),END ); + BABLM( BABL_SWITCH_APP_LAST, D(LSFT),D(LALT),T(TAB), U(LALT), U(LSFT),END ); + BABLM( BABL_CLOSE_APP, D(LALT),T(F4), U(LALT),END ); + BABLM( BABL_HELP, T(F1),END ); #endif - break; - - return MACRO_NONE; - } - -#endif + + + return MACRO_NONE; + + +#endif /* MS_MODE*/ + + #ifdef LINUX_MODE case LINUX_MODE: - switch(shortcut) { - - case BABL_DEL_RIGHT_1C: - return MACRO( D(DEL), END ); - case BABL_DEL_LEFT_WORD: - return MACRO( D(LCTRL), T(BSPACE), U(LCTRL), END ); - case BABL_DEL_RIGHT_WORD: - return MACRO( D(LCTRL), T(DEL), U(LCTRL), END ); - case BABL_GO_LEFT_1C: - return MACRO( T(LEFT), END ); - case BABL_GO_RIGHT_1C: - return MACRO( T(RIGHT), END ); - case BABL_GO_LEFT_WORD: - return MACRO( D(LCTRL), T(LEFT), U(LCTRL), END ); - case BABL_GO_RIGHT_WORD: - return MACRO( D(LCTRL), T(RIGHT), U(LCTRL), END ); - case BABL_GO_START_LINE: - return MACRO( T(HOME), END ); - case BABL_GO_START_DOC: - return MACRO( D(LCTRL),T(HOME), U(LCTRL),END ); - case BABL_GO_END_LINE: - return MACRO( T(END), END ); - case BABL_GO_END_DOC: - return MACRO( D(LCTRL),T(END), U(LCTRL),END ); - case BABL_GO_NEXT_LINE: - return MACRO( T(DOWN), END ); - case BABL_GO_PREV_LINE: - return MACRO( T(UP), END ); - case BABL_PGDN: - return MACRO( T(PGDN), END ); - case BABL_PGUP: - return MACRO( T(PGUP), END ); + + BABLM( BABL_DEL_RIGHT_1C , D(DEL), END ); + BABLM( BABL_DEL_LEFT_WORD , D(LCTRL), T(BSPACE), U(LCTRL), END ); + BABLM( BABL_DEL_RIGHT_WORD , D(LCTRL), T(DEL), U(LCTRL), END ); + BABLM( BABL_GO_LEFT_1C , T(LEFT), END ); + BABLM( BABL_GO_RIGHT_1C , T(RIGHT), END ); + BABLM( BABL_GO_LEFT_WORD , D(LCTRL), T(LEFT), U(LCTRL), END ); + BABLM( BABL_GO_RIGHT_WORD , D(LCTRL), T(RIGHT), U(LCTRL), END ); + BABLM( BABL_GO_START_LINE , T(HOME), END ); + BABLM( BABL_GO_START_DOC , D(LCTRL),T(HOME), U(LCTRL),END ); + BABLM( BABL_GO_END_LINE , T(END), END ); + BABLM( BABL_GO_END_DOC , D(LCTRL),T(END), U(LCTRL),END ); + BABLM( BABL_GO_NEXT_LINE , T(DOWN), END ); + BABLM( BABL_GO_PREV_LINE , T(UP), END ); + BABLM( BABL_PGDN , T(PGDN), END ); + BABLM( BABL_PGUP , T(PGUP), END ); #ifndef BABL_MOVEMENTONLY - case BABL_UNDO: - return MACRO( D(LCTRL), T(Z), U(LCTRL), END ); - case BABL_REDO: - return MACRO( D(LCTRL), T(Y), U(LCTRL), END ); - case BABL_CUT: - return MACRO( D(LCTRL), T(X), U(LCTRL), END ); - case BABL_COPY: - return MACRO( D(LCTRL), T(C), U(LCTRL), END ); - case BABL_PASTE: - return MACRO( D(LCTRL), T(V), U(LCTRL), END ); - case BABL_SELECT_ALL: - return MACRO( D(LCTRL), T(A), U(LCTRL), END ); - - case BABL_FIND: - return MACRO( D(LCTRL),T(F), U(LCTRL),END ); - case BABL_FIND_NEXT: - /* return MACRO( T(F3),END ); KDE */ - return MACRO( D(LCTRL),T(G), U(LCTRL),END ); // Gnome*/ - case BABL_FIND_REPLACE: - /* return MACRO( D(LCTRL),T(R), U(LCTRL),END ); KDE */ - return MACRO( D(LCTRL),T(H), U(LCTRL),END ); // Gnome*/ - case BABL_RUNAPP: - return MACRO( D(LALT),T(F2), U(LALT),END ); - case BABL_SWITCH_APP_NEXT: - return MACRO( D(LCTL),T(TAB), U(LCTL),END ); - case BABL_SWITCH_APP_LAST: - return MACRO( D(LSFT),D(LCTL),T(TAB), U(LCTL), U(LSFT),END ); - case BABL_CLOSE_APP: - return MACRO( D(LALT),T(F4), U(LALT),END ); - case BABL_HELP: - return MACRO_NONE; + BABLM( BABL_UNDO , D(LCTRL), T(Z), U(LCTRL), END ); + BABLM( BABL_REDO , D(LCTRL), T(Y), U(LCTRL), END ); + BABLM( BABL_CUT , D(LCTRL), T(X), U(LCTRL), END ); + BABLM( BABL_COPY , D(LCTRL), T(C), U(LCTRL), END ); + BABLM( BABL_PASTE , D(LCTRL), T(V), U(LCTRL), END ); + BABLM( BABL_SELECT_ALL, D(LCTRL), T(A), U(LCTRL), END ); + BABLM( BABL_FIND, D(LCTRL),T(F), U(LCTRL),END ); + /* BABLM(BABL_FIND_NEXT , T(F3),END ); KDE */ + BABLM( BABL_FIND_NEXT, D(LCTRL),T(G), U(LCTRL),END ); // Gnome*/ + /* BABLM( , D(LCTRL),T(R), U(LCTRL),END ); KDE */ + BABLM( BABL_FIND_REPLACE, D(LCTRL),T(H), U(LCTRL),END ); // Gnome*/ + BABLM( BABL_RUNAPP, D(LALT),T(F2), U(LALT),END ); + BABLM( BABL_SWITCH_APP_NEXT, D(LCTL),T(TAB), U(LCTL),END ); + BABLM( BABL_SWITCH_APP_LAST, D(LSFT),D(LCTL),T(TAB), U(LCTL), U(LSFT),END ); + BABLM( BABL_CLOSE_APP, D(LALT),T(F4), U(LALT),END ); + BABLM( BABL_HELP, END ); #endif - break; - return MACRO_NONE; - } #endif #ifdef MAC_MODE case MAC_MODE: - switch(shortcut) { - - - case BABL_DEL_RIGHT_1C: - return MACRO( D(DEL), END ); - case BABL_DEL_LEFT_WORD: - return MACRO( D(LALT), T(BSPACE), U(LALT), END ); - case BABL_DEL_RIGHT_WORD: - return MACRO( D(LALT), T(DEL), U(LALT), END ); - case BABL_GO_LEFT_1C: - return MACRO( T(LEFT), END ); - case BABL_GO_RIGHT_1C: - return MACRO( T(RIGHT), END ); - case BABL_GO_LEFT_WORD: - return MACRO( D(LALT), T(LEFT), U(LALT), END ); - case BABL_GO_RIGHT_WORD: - return MACRO( D(LALT), T(RIGHT), U(LALT), END ); - case BABL_GO_START_LINE: - return MACRO( D(LGUI), T(LEFT), U(LGUI), END ); - case BABL_GO_START_DOC: - return MACRO( D(LGUI),T(UP), U(LGUI),END ); - case BABL_GO_END_LINE: - return MACRO( D(LGUI), T(RIGHT), U(LGUI), END ); - case BABL_GO_END_DOC: - return MACRO( D(LGUI),T(DOWN), U(LGUI),END ); - case BABL_GO_NEXT_LINE: - return MACRO( T(DOWN), END ); - case BABL_GO_PREV_LINE: - return MACRO( T(UP), END ); - case BABL_PGDN: - return MACRO( D(LALT), T(DOWN), U(LALT), END ); - case BABL_PGUP: - return MACRO( D(LALT), T(UP), U(LALT), END ); + BABLM( BABL_DEL_RIGHT_1C , D(DEL), END ); + BABLM( BABL_DEL_LEFT_WORD , D(LALT), T(BSPACE), U(LALT), END ); + BABLM( BABL_DEL_RIGHT_WORD, D(LALT), T(DEL), U(LALT), END ); + BABLM( BABL_GO_LEFT_1C , T(LEFT), END ); + BABLM( BABL_GO_RIGHT_1C, T(RIGHT), END ); + BABLM( BABL_GO_LEFT_WORD , D(LALT), T(LEFT), U(LALT), END ); + BABLM( BABL_GO_RIGHT_WORD , D(LALT), T(RIGHT), U(LALT), END ); + BABLM( BABL_GO_START_LINE , D(LGUI), T(LEFT), U(LGUI), END ); + BABLM( BABL_GO_START_DOC , D(LGUI),T(UP), U(LGUI),END ); + BABLM( BABL_GO_END_LINE , D(LGUI), T(RIGHT), U(LGUI), END ); + BABLM( BABL_GO_END_DOC , D(LGUI),T(DOWN), U(LGUI),END ); + BABLM( BABL_GO_NEXT_LINE , T(DOWN), END ); + BABLM( BABL_GO_PREV_LINE , T(UP), END ); + BABLM( BABL_PGDN , D(LALT),T(DOWN), U(LALT), END ); + BABLM( BABL_PGUP , D(LALT),T(UP), U(LALT), END ); #ifndef BABL_MOVEMENTONLY - case BABL_UNDO: - return MACRO( D(LGUI), T(Z), U(LGUI), END ); - case BABL_REDO: - return MACRO( D(LSFT),D(LGUI), T(Z), U(LSFT),U(LGUI), END ); - case BABL_CUT: - return MACRO( D(LGUI), T(X), U(LGUI), END ); - case BABL_COPY: - return MACRO( D(LGUI), T(C), U(LGUI), END ); - case BABL_PASTE: - return MACRO( D(LGUI), T(V), U(LGUI), END ); - case BABL_SELECT_ALL: - return MACRO( D(LGUI), T(A), U(LGUI), END ); - case BABL_FIND: - return MACRO( D(LGUI),T(F), U(LGUI),END ); - case BABL_FIND_NEXT: - return MACRO( D(LGUI),T(G), U(LGUI),END ); - case BABL_FIND_REPLACE: - return MACRO( D(LGUI),T(F), U(LGUI),END ); - case BABL_RUNAPP: - return MACRO( D(LGUI),T(R), U(LGUI),END ); - case BABL_SWITCH_APP_NEXT: - return MACRO( D(LGUI),T(TAB), U(LGUI),END ); - case BABL_SWITCH_APP_LAST: - return MACRO( D(LSFT),D(LGUI),T(TAB), U(LGUI), U(LSFT),END ); - case BABL_CLOSE_APP: - return MACRO( D(LGUI),T(Q), U(LGUI),END ); - case BABL_HELP: - return MACRO( D(LSFT),D(LGUI),T(SLASH), U(LGUI), U(LSFT),END ); + BABLM( BABL_UNDO , D(1), D(LGUI), T(Z), U(LGUI), END ); + BABLM( BABL_REDO , D(LSFT),D(LGUI), T(Z), U(LSFT),U(LGUI), END ); + BABLM( BABL_CUT , D(LGUI), T(X), U(LGUI), END ); + BABLM( BABL_COPY , D(LGUI), T(C), U(LGUI), END ); + BABLM( BABL_PASTE , D(LGUI), T(V), U(LGUI), END ); + BABLM( BABL_SELECT_ALL , D(LGUI), T(A), U(LGUI), END ); + BABLM( BABL_FIND , D(LGUI),T(F), U(LGUI),END ); + BABLM( BABL_FIND_NEXT, D(LGUI),T(G), U(LGUI),END ); + BABLM( BABL_FIND_REPLACE, D(LGUI),T(F), U(LGUI),END ); + BABLM( BABL_RUNAPP , D(LGUI),T(R), U(LGUI),END ); + BABLM( BABL_SWITCH_APP_NEXT , D(LGUI),T(TAB), U(LGUI),END ); + BABLM( BABL_SWITCH_APP_LAST , D(LSFT),D(LGUI),T(TAB), U(LGUI), U(LSFT),END ); + BABLM( BABL_CLOSE_APP , D(LGUI),T(Q), U(LGUI),END ); + BABLM( BABL_HELP , D(LSFT),D(LGUI),T(SLASH), U(LGUI), U(LSFT),END ); #endif - break; - + return MACRO_NONE; - } - #endif #ifdef EMACS_MODE @@ -252,64 +169,64 @@ const static macro_t *babblePaste (keyrecord_t *record, uint16_t shortcut) { //probably should allow meta to not be ALT case BABL_DEL_RIGHT_1C: - return MACRO( D(LCTL), T(D), U(LCTL),END ); + BABLM( , D(LCTL), T(D), U(LCTL),END ); case BABL_DEL_LEFT_WORD: - return MACRO( D(LCTL), T(BSPACE), U(LCTL), END ); + BABLM( , D(LCTL), T(BSPACE), U(LCTL), END ); case BABL_DEL_RIGHT_WORD: - return MACRO( D(LALT), T(D), U(LALT), END ); + BABLM( , D(LALT), T(D), U(LALT), END ); case BABL_GO_LEFT_1C: - return MACRO( T(LEFT), END ); + BABLM( , T(LEFT), END ); case BABL_GO_RIGHT_1C: - return MACRO( T(RIGHT), END ); + BABLM( , T(RIGHT), END ); case BABL_GO_LEFT_WORD: - return MACRO( D(LALT), T(B), U(LALT), END ); + BABLM( , D(LALT), T(B), U(LALT), END ); case BABL_GO_RIGHT_WORD: - return MACRO( D(LALT), T(F), U(LALT), END ); + BABLM( , D(LALT), T(F), U(LALT), END ); case BABL_GO_START_LINE: - return MACRO( D(LCTRL), T(A), U(LCTRL), END ); + BABLM( , D(LCTRL), T(A), U(LCTRL), END ); case BABL_GO_START_DOC: - return MACRO( D(LALT), D(LSFT), T(COMM),U(LSFT), U(LALT) ,END ); + BABLM( , D(LALT), D(LSFT), T(COMM),U(LSFT), U(LALT) ,END ); case BABL_GO_END_LINE: - return MACRO( D(LCTRL), T(E), U(LCTRL), END ); + BABLM( , D(LCTRL), T(E), U(LCTRL), END ); case BABL_GO_END_DOC: - return MACRO( D(LALT), D(LSFT), T(DOT),U(LSFT), U(LALT) ,END ); + BABLM( , D(LALT), D(LSFT), T(DOT),U(LSFT), U(LALT) ,END ); case BABL_GO_NEXT_LINE: - return MACRO( D(LCTRL), T(N), U(LCTRL), END ); + BABLM( , D(LCTRL), T(N), U(LCTRL), END ); case BABL_GO_PREV_LINE: - return MACRO( D(LCTRL), T(P), U(LCTRL), END ); + BABLM( , D(LCTRL), T(P), U(LCTRL), END ); case BABL_PGDN: - return MACRO(D(LCTRL), T(V), U(LCTRL), END ); + BABLM( ,D(LCTRL), T(V), U(LCTRL), END ); case BABL_PGUP: - return MACRO( D(LALT), T(V), U(LALT), END ); + BABLM( , D(LALT), T(V), U(LALT), END ); #ifndef BABL_MOVEMENTONLY case BABL_UNDO: - return MACRO( D(LCTL), T(X), U(LCTL),T(C), END ); + BABLM( , D(LCTL), T(X), U(LCTL),T(C), END ); case BABL_REDO: - return MACRO( D(LCTL), T(X), U(LCTL),T(C), END ); // arguably + BABLM( , D(LCTL), T(X), U(LCTL),T(C), END ); // arguably case BABL_CUT: - return MACRO( D(LCTL), T(W), U(LCTL), END ); + BABLM( , D(LCTL), T(W), U(LCTL), END ); case BABL_COPY: - return MACRO( D(LALT), T(W), U(LALT), END ); //really? + BABLM( , D(LALT), T(W), U(LALT), END ); //really? case BABL_PASTE: - return MACRO( D(LCTL), T(Y), U(LCTL), END ); + BABLM( , D(LCTL), T(Y), U(LCTL), END ); case BABL_SELECT_ALL: - return MACRO(D(LCTL), T(X), U(LCTL),T(H), END ); + BABLM( ,D(LCTL), T(X), U(LCTL),T(H), END ); case BABL_FIND: - return MACRO( D(LCTRL), T(S), U(LCTRL),END ); + BABLM( , D(LCTRL), T(S), U(LCTRL),END ); case BABL_FIND_NEXT: - return MACRO( D(LCTRL), T(S), U(LCTRL),END ); + BABLM( , D(LCTRL), T(S), U(LCTRL),END ); case BABL_FIND_REPLACE: - return MACRO( D(LALT),D(LSFT), T(5),U(LSFT), U(LALT), END ); + BABLM( , D(LALT),D(LSFT), T(5),U(LSFT), U(LALT), END ); case BABL_RUNAPP: - return MACRO( D(LALT), T(X), U(LALT),T(S),T(H),T(E),T(L),T(L),END );// arguably + BABLM( , D(LALT), T(X), U(LALT),T(S),T(H),T(E),T(L),T(L),END );// arguably case BABL_SWITCH_APP_NEXT: - return MACRO( D(LCTL), T(X), U(LCTL),T(RIGHT), END ); // arguably + BABLM( , D(LCTL), T(X), U(LCTL),T(RIGHT), END ); // arguably case BABL_SWITCH_APP_LAST: - return MACRO( D(LCTL), T(X), U(LCTL),T(LEFT), END ); // arguably + BABLM( , D(LCTL), T(X), U(LCTL),T(LEFT), END ); // arguably case BABL_CLOSE_APP: - return MACRO(D(LCTL), T(X), U(LCTL),T(C),END ); + BABLM( ,D(LCTL), T(X), U(LCTL),T(C),END ); case BABL_HELP: - return MACRO( D(LCTL),T(H), U(LCTL),T(A),END); // start search in help + BABLM( , D(LCTL),T(H), U(LCTL),T(A),END); // start search in help #endif break; @@ -319,150 +236,90 @@ const static macro_t *babblePaste (keyrecord_t *record, uint16_t shortcut) { #endif #ifdef VI_MODE case VI_MODE: - switch(shortcut) { //assume esc is already called - case BABL_DEL_RIGHT_1C: - return MACRO( T(X),END ); - case BABL_DEL_LEFT_WORD: - return MACRO( T(D),T(G),T(E),END ); - case BABL_DEL_RIGHT_WORD: - return MACRO( T(D),T(W),END ); - case BABL_GO_LEFT_1C: - return MACRO( T(H), END ); - case BABL_GO_RIGHT_1C: - return MACRO( T(L), END ); - case BABL_GO_LEFT_WORD: - return MACRO( T(B),END ); - case BABL_GO_RIGHT_WORD: - return MACRO( T(W), END ); - case BABL_GO_START_LINE: - return MACRO( D(LSFT), T(6),U(LSFT), END ); //^ - case BABL_GO_START_DOC: - return MACRO( T(G),T(G) ,END ); - case BABL_GO_END_LINE: - return MACRO( D(LSFT), T(4),U(LSFT) , END ); //$ - case BABL_GO_END_DOC: - return MACRO( D(LSFT), T(G),U(LSFT),END ); - case BABL_GO_NEXT_LINE: - return MACRO( T(J), END ); - case BABL_GO_PREV_LINE: - return MACRO( T(K), END ); - case BABL_PGDN: - return MACRO(D(LCTRL), T(F), U(LCTRL), END ); - case BABL_PGUP: - return MACRO( D(LCTRL), T(B), U(LCTRL), END ); + BABLM( BABL_DEL_RIGHT_1C , T(X),END ); + BABLM( BABL_DEL_LEFT_WORD , T(D),T(G),T(E),END ); + BABLM( BABL_DEL_RIGHT_WORD , T(D),T(W),END ); + BABLM( BABL_GO_LEFT_1C , T(H), END ); + BABLM( BABL_GO_RIGHT_1C , T(L), END ); + BABLM( BABL_GO_LEFT_WORD , T(B),END ); + BABLM( BABL_GO_RIGHT_WORD , T(W), END ); + BABLM( BABL_GO_START_LINE , D(LSFT), T(6),U(LSFT), END ); //^ + BABLM( BABL_GO_START_DOC , T(G),T(G) ,END ); + BABLM( BABL_GO_END_LINE , D(LSFT), T(4),U(LSFT) , END ); //$ + BABLM( BABL_GO_END_DOC , D(LSFT), T(G),U(LSFT),END ); + BABLM( BABL_GO_NEXT_LINE , T(J), END ); + BABLM( BABL_GO_PREV_LINE, T(K), END ); + BABLM( BABL_PGDN ,D(LCTRL), T(F), U(LCTRL), END ); + BABLM( BABL_PGUP , D(LCTRL), T(B), U(LCTRL), END ); #ifndef BABL_MOVEMENTONLY - case BABL_UNDO: - return MACRO( T(U), END ); - case BABL_REDO: - return MACRO( D(LCTL), T(R), U(LCTL), END ); - case BABL_CUT: - return MACRO( T(X), END ); - case BABL_COPY: - return MACRO( T(Y),END ); - case BABL_PASTE: - return MACRO( T(P), END ); - case BABL_SELECT_ALL: - return MACRO( D(LSFT), T(SCLN),U(LSFT),D(LSFT), T(5),U(LSFT),T(Y), END ); // wrong but helpful? - case BABL_FIND: - return MACRO( T(SLASH),END ); - case BABL_FIND_NEXT: - return MACRO( T(N),END ); - case BABL_FIND_REPLACE: - return MACRO( D(LALT),D(LSFT), T(5),U(LSFT), U(LALT), END ); - case BABL_RUNAPP: - return MACRO_NONE; - case BABL_SWITCH_APP_NEXT: - return MACRO_NONE; - case BABL_SWITCH_APP_LAST: - return MACRO_NONE; - case BABL_CLOSE_APP: - return MACRO(D(LSFT), T(SCLN),U(LSFT), T(Q), D(RSFT), T(1),U(RSFT), END ); - case BABL_HELP: - return MACRO(D(LSFT), T(SCLN),U(LSFT),T(H),END); // start search in help - break; + BABLM( BABL_UNDO , T(U), END ); + BABLM( BABL_REDO , D(LCTL), T(R), U(LCTL), END ); + BABLM( BABL_CUT , T(X), END ); + BABLM( BABL_COPY , T(Y),END ); + BABLM( BABL_PASTE , T(P), END ); + BABLM( BABL_SELECT_ALL , D(LSFT), T(SCLN),U(LSFT),D(LSFT), T(5),U(LSFT),T(Y), END ); // wrong but helpful? + BABLM( BABL_FIND , T(SLASH),END ); + BABLM( BABL_FIND_NEXT , T(N),END ); + BABLM( BABL_FIND_REPLACE , D(LALT),D(LSFT), T(5),U(LSFT), U(LALT), END ); + BABLM( BABL_RUNAPP,END ); + BABLM( BABL_SWITCH_APP_NEXT ,END ); + BABLM( BABL_SWITCH_APP_LAST ,END ); + BABLM(BABL_CLOSE_APP, D(LSFT), T(SCLN),U(LSFT), T(Q), D(RSFT), T(1),U(RSFT), END ); + BABLM(BABL_HELP, D(LSFT), T(SCLN),U(LSFT),T(H),END); // start search in help #endif - return MACRO_NONE; - } - + return MACRO_NONE; #endif + + + + #ifdef READMUX_MODE // Readline command line editing + tmux windowing // I havent decided how much to do readline and how much tmux - case READMUX_MODE: - switch(shortcut) { - - case BABL_DEL_RIGHT_1C: - return MACRO( D(LCTL), T(D), U(LCTL),END ); - case BABL_DEL_LEFT_WORD: - return MACRO( D(LCTL), T(W), U(LCTL), END ); - case BABL_DEL_RIGHT_WORD: - return MACRO( D(LALT), T(D), U(LALT), END ); - case BABL_GO_LEFT_1C: - return MACRO( T(LEFT), END ); - case BABL_GO_RIGHT_1C: - return MACRO( T(RIGHT), END ); - case BABL_GO_LEFT_WORD: - return MACRO( D(LALT), T(B), U(LALT), END ); - case BABL_GO_RIGHT_WORD: - return MACRO( D(LALT), T(F), U(LALT), END ); - case BABL_GO_START_LINE: - return MACRO( D(LCTRL), T(A), U(LCTRL), END ); - case BABL_GO_START_DOC: - return MACRO_NONE; // tmux? - case BABL_GO_END_LINE: - return MACRO( D(LCTRL), T(E), U(LCTRL), END ); - case BABL_GO_END_DOC: - return MACRO_NONE; // tmux? - case BABL_GO_NEXT_LINE: - return MACRO( D(LCTRL), T(N), U(LCTRL), END ); - case BABL_GO_PREV_LINE: - return MACRO( D(LCTRL), T(P), U(LCTRL), END ); - case BABL_PGDN: - return MACRO( T(PGDN), END ); - case BABL_PGUP: - return MACRO( T(PGUP), END ); + case READMUX_MODE: + BABLM( BABL_DEL_RIGHT_1C , D(LCTL), T(D), U(LCTL),END ); + BABLM( BABL_DEL_LEFT_WORD , D(LCTL), T(W), U(LCTL), END ); + BABLM( BABL_DEL_RIGHT_WORD , D(LALT), T(D), U(LALT), END ); + BABLM( BABL_GO_LEFT_1C , T(LEFT), END ); + BABLM( BABL_GO_RIGHT_1C , T(RIGHT), END ); + BABLM( BABL_GO_LEFT_WORD , D(LALT), T(B), U(LALT), END ); + BABLM( BABL_GO_RIGHT_WORD , D(LALT), T(F), U(LALT), END ); + BABLM( BABL_GO_START_LINE , D(LCTRL), T(A), U(LCTRL), END ); + BABLM( BABL_GO_START_DOC ,END );// tmux? + BABLM( BABL_GO_END_LINE , D(LCTRL), T(E), U(LCTRL), END ); + BABLM( BABL_GO_END_DOC ,END ); // tmux? + BABLM( BABL_GO_NEXT_LINE , D(LCTRL), T(N), U(LCTRL), END ); + BABLM( BABL_GO_PREV_LINE , D(LCTRL), T(P), U(LCTRL), END ); + BABLM( BABL_PGDN , T(PGDN), END ); + BABLM( BABL_PGUP , T(PGUP), END ); #ifndef BABL_MOVEMENTONLY - case BABL_UNDO: - return MACRO( D(LALT), T(R), U(LALT) , END ); - case BABL_REDO: - return MACRO( D(LCTL), T(X), U(LCTL),T(C), END ); // arguably - case BABL_CUT: - return MACRO( D(LCTL), T(K), U(LCTL), END ); // wrong half the time - case BABL_COPY: - return MACRO_NONE; - case BABL_PASTE: - return MACRO( D(LCTL), T(Y), U(LCTL), END ); - case BABL_SELECT_ALL: - return MACRO(D(LCTL), T(A), T(K), T(Y), U(LCTL) , END ); - case BABL_FIND: - return MACRO( D(LCTRL), T(R), U(LCTRL), END ); // search history - case BABL_FIND_NEXT: - eturn MACRO( D(LCTRL), T(S), U(LCTRL), END ); - case BABL_FIND_REPLACE: - return MACRO_NONE; // tmux? - case BABL_RUNAPP: - return MACRO( D(LCTRL), T(B), U(LCTRL), T(C),END ); //tmux - case BABL_SWITCH_APP_NEXT: - return MACRO( D(LCTRL), T(B), U(LCTRL), T(N),END ); //tmux - case BABL_SWITCH_APP_LAST: - return MACRO( D(LCTRL), T(B), U(LCTRL), T(P),END ); //tmux - case BABL_CLOSE_APP: - return MACRO( D(LCTRL), T(B), U(LCTRL), T(D),END); // usually what I want - break; - case BABL_HELP: - return MACRO_NONE; + BABLM( BABL_UNDO , D(LALT), T(R), U(LALT) , END ); + BABLM( BABL_REDO , D(LCTL), T(X), U(LCTL),T(C), END ); // arguably + BABLM( BABL_CUT , D(LCTL), T(K), U(LCTL), END ); // wrong half the time + BABLM( BABL_COPY ,END ); + BABLM( BABL_PASTE , D(LCTL), T(Y), U(LCTL), END ); + BABLM( BABL_SELECT_ALL ,D(LCTL), T(A), T(K), T(Y), U(LCTL) , END ); + BABLM( BABL_FIND , D(LCTRL), T(R), U(LCTRL), END ); // search history + BABLM(BABL_FIND_NEXT, D(LCTRL), T(S), U(LCTRL), END ); + BABLM( BABL_FIND_REPLACE ,END ); + BABLM( BABL_RUNAPP , D(LCTRL), T(B), U(LCTRL), T(C),END ); //tmux + BABLM( BABL_SWITCH_APP_NEXT , D(LCTRL), T(B), U(LCTRL), T(N),END ); //tmux + BABLM( BABL_SWITCH_APP_LAST , D(LCTRL), T(B), U(LCTRL), T(P),END ); //tmux + BABLM( BABL_CLOSE_APP , D(LCTRL), T(B), U(LCTRL), T(D),END); // usually what I want + BABLM( BABL_HELP ,END ); #endif - break; - - return MACRO_NONE; - } + + return MACRO_NONE; #endif - return MACRO_NONE; - } + default: + return MACRO_NONE; + } } + +#endif \ No newline at end of file diff --git a/keyboards/handwired/MS-sculpt-mobile/babblePaste.h b/keyboards/handwired/MS-sculpt-mobile/babblePaste.h index 63b79a205..313fa80ec 100644 --- a/keyboards/handwired/MS-sculpt-mobile/babblePaste.h +++ b/keyboards/handwired/MS-sculpt-mobile/babblePaste.h @@ -9,27 +9,39 @@ and jeebak & algernon's keymap */ #ifndef _babblePaste_h_included__ #define _babblePaste_h_included__ +#include "action_layer.h" +#ifdef USE_BABLPASTE -/* Add this to your config.h -// Uncomment any modes you want. -// Windows. -//#define MS_MODE 0 +/* *************************** + +// Uncomment any modes you want. Whatever mode = 0 will be the default on boot + +//#define MS_MODE 0 // Windows. //#define MAC_MODE 1 -//aka gnome+KDE -//#define LINUX_MODE 2 +//#define LINUX_MODE 2 //aka gnome+KDE //#define EMACS_MODE 3 //#define VI_MODE 4 //#define WORDSTAR_MODE 5 -// Readline and tmux -//#define READMUX 6 -*/ +//#define READMUX 6 // Readline and tmux +****************************/ + + +// Uncomment if you need more free flash space +// It removes everything but cursor movement +//#define BABL_MOVEMENTONLY -/* Macros handled by babblepaste. Most should be available for all platforms. */ + +// Define starting number for BABL macros in the macro range. +// Probably can start the default even lower +#define BABL_START_NUM 50 + +/* Macros handled by babblepaste. Most should be available for all platforms. +Whatever isn't defined will NOP */ enum { // Movement - BABL_DEL_RIGHT_1C=200, + BABL_DEL_RIGHT_1C= BABL_START_NUM, BABL_DEL_LEFT_WORD, BABL_DEL_RIGHT_WORD, BABL_GO_LEFT_1C, @@ -64,9 +76,26 @@ enum { #endif }; +// How many macros/ how many array elements? +#define BABL_NUM_MACROS 28 +/* from action_macro.h +typedef uint8_t macro_t; + +#define MACRO_NONE (macro_t*)0 +#define MACRO(...) ({ static const macro_t __m[] PROGMEM = { __VA_ARGS__ }; &__m[0]; }) +#define MACRO_GET(p) pgm_read_byte(p) + +#define BABL_MSTART (entry, os, macro...) ( const macro_t bablDict[entry][os] PROGMEM = { macro... }; ) + +*/ + +const macro_t *babblePaste(keyrecord_t *record, uint8_t shortcut); + +macro_t* switch_babble_mode( uint8_t id); + + +#endif +#endif -//static macro_t *babblePaste(keyrecord_t *record, uint16_t shortcut) - - #endif \ No newline at end of file diff --git a/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/config.h b/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/config.h index aaf0077b1..7ad1b0f0f 100644 --- a/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/config.h +++ b/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/config.h @@ -3,5 +3,25 @@ #include "../../config.h" +#define USE_BABLPASTE + +#ifdef USE_BABLPASTE +//define BabblePaste maps +// Windows. +//#define MS_MODE 1 +#define MAC_MODE 0 +//aka gnome+KDE +//#define LINUX_MODE 2 +//#define EMACS_MODE 3 +//#define VI_MODE 4 +//#define WORDSTAR_MODE 5 +// Readline and tmux +#define READMUX_MODE 6 +#endif + +// Uncomment if you need more free flash space +// It removes everything but cursor movement +//#define BABL_MOVEMENTONLY + // place overrides here #endif diff --git a/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/keymap.c b/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/keymap.c index 244d52dc5..3a162db86 100644 --- a/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/keymap.c +++ b/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/keymap.c @@ -1,5 +1,7 @@ #include "MS-sculpt-mobile.h" #include "action_layer.h" +#include "action_util.h" +#include "babblePaste.h" #ifdef AUDIO_ENABLE #include "audio.h" @@ -12,6 +14,13 @@ #define _TRAN 5 + + +// adjust babblemode default +extern uint8_t babble_mode; + + + enum layer_keycodes { QWR, CDH, @@ -37,7 +46,11 @@ TRAN enum macro_keycodes { DHPASTE=1, VIBRK, -TO_CDH, +B_LNX, +B_WIN, +B_MAC, +B_VI, +B_READ , }; @@ -71,8 +84,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, QWR, \ KC_ESC, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, ____, ____, ____,\ - TT_MOV, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, ____,\ - KC_LSFT, KC_Z, KC_X, KC_C, M(DHPASTE), KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, ____, ____,\ + TT_MOV, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_2,\ + KC_LSFT, KC_Z, KC_X, KC_C, M(DHPASTE), KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, ____, KC_1,\ ____, ____, ____ , KC_FN1, ____, ____, ____, ____, ____, ____ ), @@ -86,9 +99,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * -------------------------------------------------------------------------- * | ESC: | ^ | { | } | @ | % | | [ | ( | ) | _ | [ | ] | \ | | * -------------------------------------------------------------------------------' -* |Bak/Mov| ! | # | 0 | = | | * | - | 1 | + | ] | ` | enter |PgUp| +* |Bak/Mov| ! | # | 0 | = | { | } | - | 1 | + | ] | ` | enter |PgUp| * -------------------------------------------------------------------------------- -* |Lsft | ; | ~ | : | ~ | "|"| $ | ~ | | | / | Rsft| Up| PgDn| +* |Lsft | ; | ~ | : | ~ | "|"| $ | * | | . | / | Rsft| Up| PgDn| * --------------------------------------------------------------------------------- * |Lctl |Lgui |Lalt | Space/Sym | GUI | Sym | Rctl |Left|Down|Rght| * --------------------------------------------------------------------------------- @@ -98,16 +111,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ M(VIBRK), KC_CIRC, KC_LCBR, KC_RCBR,KC_AT, KC_PERC, ____, KC_LBRC,KC_LPRN,KC_RPRN,KC_UNDS, ____, ____, ____,\ - ____, KC_EXLM, KC_HASH, KC_0, KC_EQL, ____, KC_ASTR,KC_MINS,KC_1, KC_PLUS,KC_RBRC, KC_GRV, ____, ____,\ - ____, KC_SCLN, KC_TILDE, KC_COLN, KC_TILDE, KC_PIPE, KC_DLR, KC_TILDE,____, ____, KC_SLSH, ____, ____, ____,\ + ____, KC_EXLM, KC_HASH, KC_0, KC_EQL, KC_LCBR, KC_RCBR,KC_MINS,KC_1, KC_PLUS,KC_RBRC, KC_GRV, ____, ____,\ + ____, KC_SCLN, KC_TILDE, KC_COLN, KC_TILDE, KC_PIPE, KC_DLR, KC_ASTR, ____, KC_DOT , KC_SLSH, ____, ____, ____,\ ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ ), [_MOV] = KEYMAP (\ - ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ - ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ - ____, ____,RGUI(KC_TAB), ____, ____, RCTL(KC_B), ____, ____, KC_UP, ____, ____, ____, ____, ____, \ - ____, RCTL(KC_A), KC_S, RCTL(KC_K), RCTL(KC_E), ____, ____, KC_LEFT,KC_DOWN, KC_RIGHT, ____, ____,____,____,\ + ____, M(B_WIN),M(B_MAC),M(B_READ), M(B_VI), ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ + ____, M(BABL_UNDO), ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ + ____, ____,RGUI(KC_TAB), ____, ____, RCTL(KC_B), ____, M(BABL_DEL_LEFT_WORD), KC_UP, M(BABL_DEL_RIGHT_WORD), ____, ____, ____, ____, \ + ____, RCTL(KC_A), KC_S, RCTL(KC_K), RCTL(KC_E), ____, M(BABL_GO_START_LINE), KC_LEFT,KC_DOWN, KC_RIGHT, M(BABL_GO_END_LINE), ____,____,____,\ ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ ), @@ -122,7 +135,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; - const uint16_t PROGMEM fn_actions[] = { [1] = ACTION_LAYER_TAP_KEY(_SYM,KC_SPACE), [2] = ACTION_LAYER_TAP_KEY(_MOV,KC_BSPC) @@ -171,10 +183,21 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } - - + const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + +/* If this is in the range of BABL macros, call a separate function */ +#ifdef USE_BABLPASTE + if( id >= BABL_START_NUM && id < (BABL_START_NUM + BABL_NUM_MACROS ) ) { + if (record->event.pressed) { // is there a case where this isn't desired? + + babblePaste ( record, id ); + return MACRO_NONE; + } + } +#endif + // MACRODOWN only works in this function switch(id) { case 0: @@ -185,49 +208,72 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } break; - - case DHPASTE: - if(keyboard_report->mods & MOD_BIT(KC_LGUI) ) { - if (record->event.pressed) { - clear_keyboard_but_mods(); - register_code(KC_V); - } else { - unregister_code(KC_V); - } - }else { - if (record->event.pressed) { - register_code(KC_D); + /* Colemak mod-dh moves the D key to the qwerty V position + This hack makes apple-V_position do what I mean */ + case DHPASTE: + if(keyboard_report->mods & MOD_BIT(KC_LGUI) ) { + if (record->event.pressed) { + clear_keyboard_but_mods(); + register_code(KC_V); + } else { + unregister_code(KC_V); + } + } else { + if (record->event.pressed) { + register_code(KC_D); } else { - unregister_code(KC_D); - } - } + unregister_code(KC_D); + } + } break; case VIBRK: // vi esc: if (record->event.pressed) { - return MACRO( T(E),D(LSFT),T(SCLN),U(LSFT), END ); + return MACRO( T(ESC),D(LSFT),T(SCLN),U(LSFT), END ); } break; - } - return MACRO_NONE; -}; + +#ifdef USE_BABLPASTE -#ifdef AUDIO_ENABLE +#ifdef LINUX_MODE + case B_LNX: + return switch_babble_mode(LINUX_MODE); +#endif +#ifdef MS_MODE + case B_WIN: + return switch_babble_mode(MS_MODE); +#endif +#ifdef MAC_MODE + case B_MAC: + return switch_babble_mode(MAC_MODE); +#endif +#ifdef VI_MODE + case B_VI: + return switch_babble_mode(VI_MODE); +#endif +#ifdef READMUX_MODE + case B_READ: + return switch_babble_mode(READMUX_MODE); +#endif +#endif -void startup_user() -{ - _delay_ms(20); // gets rid of tick - PLAY_NOTE_ARRAY(tone_startup, false, 0); -} -#endif + default: + return MACRO_NONE; + } -void matrix_init_user(void) { +return MACRO_NONE; +}; + + + + +void matrix_init_user(void) { } void matrix_scan_user(void) { @@ -240,3 +286,11 @@ void led_set_user(uint8_t usb_led) { } +macro_t* switch_babble_mode( uint8_t id) { + babble_mode= id; + return MACRO_NONE; //less typing above +} + + + + diff --git a/keyboards/handwired/MS-sculpt-mobile/rules.mk b/keyboards/handwired/MS-sculpt-mobile/rules.mk index cb9d5813c..34ac78da8 100644 --- a/keyboards/handwired/MS-sculpt-mobile/rules.mk +++ b/keyboards/handwired/MS-sculpt-mobile/rules.mk @@ -1,5 +1,9 @@ #CFLAGS=-D ASTAR +## Project specific files +SRC= babblePaste.c + + ifdef ASTAR OPT_DEFS += -DBOOTLOADER_SIZE=4096 MCU = atmega32u4 -- cgit v1.2.3 From 01980c96e9c1e8ab5aad0e89d03c0e15417712c8 Mon Sep 17 00:00:00 2001 From: milestogo Date: Wed, 8 Mar 2017 01:06:25 -0800 Subject: added browser babble, removed code from keymap --- keyboards/handwired/MS-sculpt-mobile/babblePaste.c | 408 +++++++++++++-------- keyboards/handwired/MS-sculpt-mobile/babblePaste.h | 151 +++++++- .../MS-sculpt-mobile/keymaps/milestogo/config.h | 13 +- .../MS-sculpt-mobile/keymaps/milestogo/keymap.c | 78 ++-- 4 files changed, 438 insertions(+), 212 deletions(-) (limited to 'keyboards') diff --git a/keyboards/handwired/MS-sculpt-mobile/babblePaste.c b/keyboards/handwired/MS-sculpt-mobile/babblePaste.c index 93ff486e0..491a79333 100644 --- a/keyboards/handwired/MS-sculpt-mobile/babblePaste.c +++ b/keyboards/handwired/MS-sculpt-mobile/babblePaste.c @@ -15,6 +15,13 @@ and https://github.com/qmk/qmk_firmware/blob/master/keyboards/planck/keymaps/jee // GLOBAL variable to determine mode. Sets startup default if no eeppom uint8_t babble_mode =0 ; +// small function that we might also want to call from a keymap. + +macro_t* switch_babble_mode( uint8_t id) { + babble_mode= id; + return MACRO_NONE; //less typing above +} + // Today I learned that the preprocessor can not create a switch statement label from an argument // And else statements have problems, see https://gcc.gnu.org/onlinedocs/gcc-3.0.1/cpp_3.html#SEC15 @@ -23,63 +30,80 @@ uint8_t babble_mode =0 ; { action_macro_play( MACRO(macro)); return MACRO_NONE; } -const macro_t *babblePaste (keyrecord_t *record, uint8_t shortcut) { /* this function runs the appropriate babblepaste macro, given the global babble_mode, and a shortcut from the ENUM in babblePaste.h TODO, the pointers in this function should be stored in a PROGMEM array, not ram. But that requires even more clever preprocessor foo. */ - +const macro_t *babblePaste (keyrecord_t *record, uint8_t shortcut) { +/* if ( shortcut < BABL_START_NUM || \ shortcut >= (BABL_START_NUM + BABL_NUM_MACROS ) ) { return MACRO_NONE; } - - +*/ switch(babble_mode) { - -#ifdef MS_MODE + + +#ifdef MS_MODE + if ( BABL_WINDOWS == shortcut ) { return switch_babble_mode(MS_MODE); } + case MS_MODE: - BABLM( BABL_DEL_RIGHT_1C, T(DEL), END ); - BABLM( BABL_DEL_LEFT_WORD, D(LCTRL), T(BSPACE), U(LCTRL), END ); - BABLM( BABL_DEL_RIGHT_WORD,D(LCTRL), T(DEL), U(LCTRL), END ); BABLM( BABL_GO_LEFT_1C, T(LEFT), END ); BABLM( BABL_GO_RIGHT_1C , T(RIGHT), END ); - BABLM( BABL_GO_LEFT_WORD, D(LCTRL), T(LEFT), U(LCTRL), END ); - BABLM( BABL_GO_RIGHT_WORD, D(LCTRL), T(RIGHT), U(LCTRL), END ); + BABLM( BABL_GO_LEFT_WORD, D(LCTL), T(LEFT), U(LCTL), END ); + BABLM( BABL_GO_RIGHT_WORD, D(LCTL), T(RIGHT), U(LCTL), END ); BABLM( BABL_GO_START_LINE, T(HOME), END ); - BABLM( BABL_GO_START_DOC, D(LCTRL),T(HOME), U(LCTRL),END ); BABLM( BABL_GO_END_LINE, T(END), END ); - BABLM( BABL_GO_END_DOC, D(LCTRL),T(END), U(LCTRL),END ); + BABLM( BABL_GO_START_DOC, D(LCTL),T(HOME), U(LCTL),END ); + BABLM( BABL_GO_END_DOC, D(LCTL),T(END), U(LCTL),END ); BABLM( BABL_GO_NEXT_LINE, T(DOWN), END ); BABLM( BABL_GO_PREV_LINE, T(UP), END ); BABLM( BABL_PGDN, T(PGDN), END ); BABLM( BABL_PGUP, T(PGUP), END ); + BABLM( BABL_DEL_RIGHT_1C, T(DEL), END ); + BABLM( BABL_DEL_LEFT_WORD, D(LCTL), T(BSPACE), U(LCTL), END ); + BABLM( BABL_DEL_RIGHT_WORD, D(LCTL), T(DEL), U(LCTL), END ); + BABLM( BABL_DEL_TO_LINE_END, D(RSFT), T(HOME), U(RSFT), T(DEL), END); + BABLM( BABL_DEL_TO_LINE_START, D(RSFT), T(END), U(RSFT), T(DEL), END ); #ifndef BABL_MOVEMENTONLY - BABLM( BABL_UNDO, D(LCTRL), T(Z), U(LCTRL), END ); - BABLM( BABL_REDO, D(LCTRL), T(Y), U(LCTRL), END ); - BABLM( BABL_CUT, D(LCTRL), T(X), U(LCTRL), END ); - BABLM( BABL_COPY, D(LCTRL), T(C), U(LCTRL), END ); - BABLM( BABL_PASTE, D(LCTRL), T(V), U(LCTRL), END ); - BABLM( BABL_SELECT_ALL, D(LCTRL), T(A), U(LCTRL), END ); - BABLM( BABL_UNDO, D(LCTRL), T(Z), U(LCTRL), END ); - BABLM( BABL_REDO, D(LCTRL), T(Y), U(LCTRL), END ); - BABLM( BABL_CUT, D(LCTRL), T(X), U(LCTRL), END ); - BABLM( BABL_COPY, D(LCTRL), T(C), U(LCTRL), END ); - BABLM( BABL_PASTE, D(LCTRL), T(V), U(LCTRL), END ); - BABLM( BABL_SELECT_ALL, D(LCTRL), T(A), U(LCTRL), END ); - BABLM( BABL_FIND, D(LCTRL),T(F), U(LCTRL),END ); + BABLM( BABL_UNDO, D(LCTL), T(Z), U(LCTL), END ); + BABLM( BABL_REDO, D(LCTL), T(Y), U(LCTL), END ); + BABLM( BABL_CUT, D(LCTL), T(X), U(LCTL), END ); + BABLM( BABL_COPY, D(LCTL), T(C), U(LCTL), END ); + BABLM( BABL_PASTE, D(LCTL), T(V), U(LCTL), END ); + BABLM( BABL_SELECT_ALL, D(LCTL), T(A), U(LCTL), END ); + BABLM( BABL_FIND, D(LCTL),T(F), U(LCTL),END ); BABLM( BABL_FIND_NEXT, T(F3),END ); - BABLM( BABL_FIND_REPLACE, D(LCTRL),T(H), U(LCTRL),END ); + BABLM( BABL_FIND_REPLACE, D(LCTL),T(H), U(LCTL),END ); BABLM( BABL_RUNAPP, D(LGUI),T(R), U(LGUI),END ); BABLM( BABL_SWITCH_APP_NEXT, D(LALT),T(TAB), U(LALT),END ); BABLM( BABL_SWITCH_APP_LAST, D(LSFT),D(LALT),T(TAB), U(LALT), U(LSFT),END ); BABLM( BABL_CLOSE_APP, D(LALT),T(F4), U(LALT),END ); BABLM( BABL_HELP, T(F1),END ); +#ifndef BABL_NOBROWSER + BABLM( BABL_BROWSER_NEW_TAB, D(LCTL), T(T), U(LCTL),END ); + BABLM( BABL_BROWSER_CLOSE_TAB, D(LCTL), T(W), U(LCTL),END ); + BABLM( BABL_BROWSER_REOPEN_LAST_TAB, D(LCTL), D(RSFT),T(T), U(RSFT),U(LCTL),END ); + BABLM( BABL_BROWSER_NEXT_TAB, D(LCTL), T(TAB), U(LCTL),END ); + BABLM( BABL_BROWSER_PREV_TAB, D(LCTL), D(RSFT), T(TAB), U(RSFT), U(LCTL),END ); + BABLM( BABL_BROWSER_URL_BAR, D(LCTL), T(L), U(LCTL),END ); + BABLM( BABL_BROWSER_FORWARD, D(LALT), T(RIGHT), U(LALT),END ); + BABLM( BABL_BROWSER_BACK, D(LALT), T(LEFT), U(LALT),END ); + BABLM( BABL_BROWSER_FIND, D(LCTL), T(F), U(LCTL),END ); + BABLM( BABL_BROWSER_BOOKMARK, D(LCTL), T(D), U(LCTL),END ); + //BABLM( BABL_BROWSER_DEV_TOOLS, T(F12), U(LCTL),END ); // EDGE + BABLM( BABL_BROWSER_DEV_TOOLS, D(LCTL), T(T), U(LCTL),END ); // Chrome + // Chrome + BABLM( BABL_BROWSER_RELOAD, D(LCTL), T(F5), U(LCTL),END ); // hard reload w/o cache + BABLM( BABL_BROWSER_FULLSCREEN, T(F11),END ); //command shift F + BABLM( BABL_BROWSER_ZOOM_IN, D(LCTL), D(RSFT), T(EQL), U(RSFT), U(LCTL),END ); // ctr+ + + BABLM( BABL_BROWSER_ZOOM_OUT, D(LCTL), T(MINS), U(LCTL),END ); +#endif #endif - + // Todo, ring bell, flash light, show user this isn't supported return MACRO_NONE; @@ -87,62 +111,87 @@ But that requires even more clever preprocessor foo. #ifdef LINUX_MODE + if ( BABL_LINUX == shortcut ) { return switch_babble_mode(LINUX_MODE); } + case LINUX_MODE: - - BABLM( BABL_DEL_RIGHT_1C , D(DEL), END ); - BABLM( BABL_DEL_LEFT_WORD , D(LCTRL), T(BSPACE), U(LCTRL), END ); - BABLM( BABL_DEL_RIGHT_WORD , D(LCTRL), T(DEL), U(LCTRL), END ); BABLM( BABL_GO_LEFT_1C , T(LEFT), END ); BABLM( BABL_GO_RIGHT_1C , T(RIGHT), END ); - BABLM( BABL_GO_LEFT_WORD , D(LCTRL), T(LEFT), U(LCTRL), END ); - BABLM( BABL_GO_RIGHT_WORD , D(LCTRL), T(RIGHT), U(LCTRL), END ); + BABLM( BABL_GO_LEFT_WORD , D(LCTL), T(LEFT), U(LCTL), END ); + BABLM( BABL_GO_RIGHT_WORD , D(LCTL), T(RIGHT), U(LCTL), END ); BABLM( BABL_GO_START_LINE , T(HOME), END ); - BABLM( BABL_GO_START_DOC , D(LCTRL),T(HOME), U(LCTRL),END ); BABLM( BABL_GO_END_LINE , T(END), END ); - BABLM( BABL_GO_END_DOC , D(LCTRL),T(END), U(LCTRL),END ); + BABLM( BABL_GO_START_DOC , D(LCTL),T(HOME), U(LCTL),END ); + BABLM( BABL_GO_END_DOC , D(LCTL),T(END), U(LCTL),END ); BABLM( BABL_GO_NEXT_LINE , T(DOWN), END ); BABLM( BABL_GO_PREV_LINE , T(UP), END ); BABLM( BABL_PGDN , T(PGDN), END ); BABLM( BABL_PGUP , T(PGUP), END ); + BABLM( BABL_DEL_RIGHT_1C , D(DEL), END ); + BABLM( BABL_DEL_LEFT_WORD , D(LCTL), T(BSPACE), U(LCTL), END ); + BABLM( BABL_DEL_RIGHT_WORD , D(LCTL), T(DEL), U(LCTL), END ); + BABLM( BABL_DEL_TO_LINE_END, D(RSFT), T(HOME), U(RSFT), T(DEL), END); + BABLM( BABL_DEL_TO_LINE_START, D(RSFT), T(END), U(RSFT), T(DEL), END ); #ifndef BABL_MOVEMENTONLY - BABLM( BABL_UNDO , D(LCTRL), T(Z), U(LCTRL), END ); - BABLM( BABL_REDO , D(LCTRL), T(Y), U(LCTRL), END ); - BABLM( BABL_CUT , D(LCTRL), T(X), U(LCTRL), END ); - BABLM( BABL_COPY , D(LCTRL), T(C), U(LCTRL), END ); - BABLM( BABL_PASTE , D(LCTRL), T(V), U(LCTRL), END ); - BABLM( BABL_SELECT_ALL, D(LCTRL), T(A), U(LCTRL), END ); - BABLM( BABL_FIND, D(LCTRL),T(F), U(LCTRL),END ); + BABLM( BABL_UNDO , D(LCTL), T(Z), U(LCTL), END ); + BABLM( BABL_REDO , D(LCTL), T(Y), U(LCTL), END ); + BABLM( BABL_CUT , D(LCTL), T(X), U(LCTL), END ); + BABLM( BABL_COPY , D(LCTL), T(C), U(LCTL), END ); + BABLM( BABL_PASTE , D(LCTL), T(V), U(LCTL), END ); + BABLM( BABL_SELECT_ALL, D(LCTL), T(A), U(LCTL), END ); + BABLM( BABL_FIND, D(LCTL),T(F), U(LCTL),END ); /* BABLM(BABL_FIND_NEXT , T(F3),END ); KDE */ - BABLM( BABL_FIND_NEXT, D(LCTRL),T(G), U(LCTRL),END ); // Gnome*/ - /* BABLM( , D(LCTRL),T(R), U(LCTRL),END ); KDE */ - BABLM( BABL_FIND_REPLACE, D(LCTRL),T(H), U(LCTRL),END ); // Gnome*/ + BABLM( BABL_FIND_NEXT, D(LCTL),T(G), U(LCTL),END ); // Gnome*/ + /* BABLM( , D(LCTL),T(R), U(LCTL),END ); KDE */ + BABLM( BABL_FIND_REPLACE, D(LCTL),T(H), U(LCTL),END ); // Gnome*/ BABLM( BABL_RUNAPP, D(LALT),T(F2), U(LALT),END ); BABLM( BABL_SWITCH_APP_NEXT, D(LCTL),T(TAB), U(LCTL),END ); BABLM( BABL_SWITCH_APP_LAST, D(LSFT),D(LCTL),T(TAB), U(LCTL), U(LSFT),END ); BABLM( BABL_CLOSE_APP, D(LALT),T(F4), U(LALT),END ); - BABLM( BABL_HELP, END ); + //BABLM( BABL_HELP, END ); + +#ifndef BABL_NOBROWSER + BABLM( BABL_BROWSER_NEW_TAB, D(LCTL), T(T), U(LCTL),END ); + BABLM( BABL_BROWSER_CLOSE_TAB, D(LCTL), T(W), U(LCTL),END ); + BABLM( BABL_BROWSER_REOPEN_LAST_TAB, D(LCTL), D(RSFT),T(T), U(RSFT),U(LCTL),END ); + BABLM( BABL_BROWSER_NEXT_TAB, D(LCTL), T(TAB), U(LCTL),END ); + BABLM( BABL_BROWSER_PREV_TAB, D(LCTL), D(RSFT), T(TAB), U(RSFT), U(LCTL),END ); + BABLM( BABL_BROWSER_URL_BAR, D(LCTL), T(L), U(LCTL),END ); + BABLM( BABL_BROWSER_FORWARD, D(LALT), T(RIGHT), U(LALT),END ); + BABLM( BABL_BROWSER_BACK, D(LALT), T(LEFT), U(LALT),END ); + BABLM( BABL_BROWSER_FIND, D(LCTL), T(F), U(LCTL),END ); + BABLM( BABL_BROWSER_BOOKMARK, D(LCTL), T(D), U(LCTL),END ); + BABLM( BABL_BROWSER_DEV_TOOLS, D(LCTL), T(T), U(LCTL),END ); // Chrome + BABLM( BABL_BROWSER_RELOAD, D(LCTL), T(F5), U(LCTL),END ); // hard reload w/o cache + BABLM( BABL_BROWSER_FULLSCREEN, T(F11),END ); //command shift F + BABLM( BABL_BROWSER_ZOOM_IN, D(LCTL), T(PLUS), U(LCTL),END ); + BABLM( BABL_BROWSER_ZOOM_OUT, D(LCTL), T(MINS), U(LCTL),END ); +#endif #endif return MACRO_NONE; #endif #ifdef MAC_MODE + if ( BABL_MAC == shortcut) { return switch_babble_mode(MAC_MODE); } + case MAC_MODE: - BABLM( BABL_DEL_RIGHT_1C , D(DEL), END ); - BABLM( BABL_DEL_LEFT_WORD , D(LALT), T(BSPACE), U(LALT), END ); - BABLM( BABL_DEL_RIGHT_WORD, D(LALT), T(DEL), U(LALT), END ); BABLM( BABL_GO_LEFT_1C , T(LEFT), END ); BABLM( BABL_GO_RIGHT_1C, T(RIGHT), END ); BABLM( BABL_GO_LEFT_WORD , D(LALT), T(LEFT), U(LALT), END ); BABLM( BABL_GO_RIGHT_WORD , D(LALT), T(RIGHT), U(LALT), END ); BABLM( BABL_GO_START_LINE , D(LGUI), T(LEFT), U(LGUI), END ); - BABLM( BABL_GO_START_DOC , D(LGUI),T(UP), U(LGUI),END ); BABLM( BABL_GO_END_LINE , D(LGUI), T(RIGHT), U(LGUI), END ); + BABLM( BABL_GO_START_DOC , D(LGUI),T(UP), U(LGUI),END ); BABLM( BABL_GO_END_DOC , D(LGUI),T(DOWN), U(LGUI),END ); BABLM( BABL_GO_NEXT_LINE , T(DOWN), END ); BABLM( BABL_GO_PREV_LINE , T(UP), END ); BABLM( BABL_PGDN , D(LALT),T(DOWN), U(LALT), END ); BABLM( BABL_PGUP , D(LALT),T(UP), U(LALT), END ); + BABLM( BABL_DEL_RIGHT_1C , D(DEL), END ); + BABLM( BABL_DEL_LEFT_WORD , D(LALT), T(BSPACE), U(LALT), END ); + BABLM( BABL_DEL_RIGHT_WORD, D(LALT), T(DEL), U(LALT), END ); + BABLM( BABL_DEL_TO_LINE_END, D(LCTL), T(K), U(LCTL), END );// there must be another way + BABLM( BABL_DEL_TO_LINE_START, D(LGUI), T(BSPACE), U(LGUI), END ); #ifndef BABL_MOVEMENTONLY BABLM( BABL_UNDO , D(1), D(LGUI), T(Z), U(LGUI), END ); BABLM( BABL_REDO , D(LSFT),D(LGUI), T(Z), U(LSFT),U(LGUI), END ); @@ -158,75 +207,92 @@ But that requires even more clever preprocessor foo. BABLM( BABL_SWITCH_APP_LAST , D(LSFT),D(LGUI),T(TAB), U(LGUI), U(LSFT),END ); BABLM( BABL_CLOSE_APP , D(LGUI),T(Q), U(LGUI),END ); BABLM( BABL_HELP , D(LSFT),D(LGUI),T(SLASH), U(LGUI), U(LSFT),END ); + +#ifndef BABL_NOBROWSER + BABLM( BABL_BROWSER_NEW_TAB, D(LGUI), T(T), U(LGUI),END ); + BABLM( BABL_BROWSER_CLOSE_TAB, D(LGUI), T(W), U(LGUI),END ); + BABLM( BABL_BROWSER_REOPEN_LAST_TAB, D(LGUI), D(RSFT),T(T), U(RSFT),U(LGUI),END ); + BABLM( BABL_BROWSER_NEXT_TAB, D(LGUI),D(LALT), T(RIGHT),U(LALT), U(LGUI),END ); + BABLM( BABL_BROWSER_PREV_TAB, D(LGUI), D(RSFT), T(LEFT), U(RSFT), U(LGUI),END ); + BABLM( BABL_BROWSER_URL_BAR, D(LGUI), T(L), U(LGUI),END ); + BABLM( BABL_BROWSER_FORWARD, D(LGUI), T(RIGHT), U(LGUI),END ); + BABLM( BABL_BROWSER_BACK, D(LGUI), T(LEFT), U(LGUI),END ); + BABLM( BABL_BROWSER_FIND, D(LGUI), T(F), U(LGUI),END ); + BABLM( BABL_BROWSER_BOOKMARK, D(LGUI), T(D), U(LGUI),END ); + //BABLM( BABL_BROWSER_DEV_TOOLS, T(F12), U(LGUI),END ); // EDGE + BABLM( BABL_BROWSER_DEV_TOOLS, D(LGUI), D(LALT), T(I), U(LALT),U(LGUI),END ); // Chrome + // Chrome + BABLM( BABL_BROWSER_RELOAD, D(LGUI), T(R), U(LGUI),END ); // add shift for reload w/o cache + BABLM( BABL_BROWSER_FULLSCREEN, D(LGUI), D(LCTL), T(P), U(LCTL), U(LGUI),END ); //command shift F + BABLM( BABL_BROWSER_ZOOM_IN, D(LGUI), D(RSFT), T(EQL), U(RSFT), U(LGUI),END ); // ctr+ + + BABLM( BABL_BROWSER_ZOOM_OUT, D(LGUI), T(MINS), U(LGUI),END ); +#endif #endif return MACRO_NONE; #endif #ifdef EMACS_MODE + + if ( BABL_EMACS == shortcut ) { return switch_babble_mode(EMACS_MODE); } + case EMACS_MODE: switch(shortcut) { //probably should allow meta to not be ALT - - case BABL_DEL_RIGHT_1C: - BABLM( , D(LCTL), T(D), U(LCTL),END ); - case BABL_DEL_LEFT_WORD: - BABLM( , D(LCTL), T(BSPACE), U(LCTL), END ); - case BABL_DEL_RIGHT_WORD: - BABLM( , D(LALT), T(D), U(LALT), END ); - case BABL_GO_LEFT_1C: - BABLM( , T(LEFT), END ); - case BABL_GO_RIGHT_1C: - BABLM( , T(RIGHT), END ); - case BABL_GO_LEFT_WORD: - BABLM( , D(LALT), T(B), U(LALT), END ); - case BABL_GO_RIGHT_WORD: - BABLM( , D(LALT), T(F), U(LALT), END ); - case BABL_GO_START_LINE: - BABLM( , D(LCTRL), T(A), U(LCTRL), END ); - case BABL_GO_START_DOC: - BABLM( , D(LALT), D(LSFT), T(COMM),U(LSFT), U(LALT) ,END ); - case BABL_GO_END_LINE: - BABLM( , D(LCTRL), T(E), U(LCTRL), END ); - case BABL_GO_END_DOC: - BABLM( , D(LALT), D(LSFT), T(DOT),U(LSFT), U(LALT) ,END ); - case BABL_GO_NEXT_LINE: - BABLM( , D(LCTRL), T(N), U(LCTRL), END ); - case BABL_GO_PREV_LINE: - BABLM( , D(LCTRL), T(P), U(LCTRL), END ); - case BABL_PGDN: - BABLM( ,D(LCTRL), T(V), U(LCTRL), END ); - case BABL_PGUP: - BABLM( , D(LALT), T(V), U(LALT), END ); + + BABLM( BABL_GO_LEFT_1C, T(LEFT), END ); + BABLM( BABL_GO_RIGHT_1C, T(RIGHT), END ); + BABLM( BABL_GO_LEFT_WORD, D(LALT), T(B), U(LALT), END ); + BABLM( BABL_GO_RIGHT_WORD , D(LALT), T(F), U(LALT), END ); + BABLM( BABL_GO_START_LINE , D(LCTL), T(A), U(LCTL), END ); + BABLM( BABL_GO_END_LINE , D(LCTL), T(E), U(LCTL), END ); + BABLM( BABL_GO_START_DOC , D(LALT), D(LSFT), T(COMM),U(LSFT), U(LALT) ,END ); + BABLM( BABL_GO_END_DOC , D(LALT), D(LSFT), T(DOT), U(LSFT), U(LALT) ,END ); + BABLM( BABL_GO_NEXT_LINE , D(LCTL), T(N), U(LCTL), END ); + BABLM( BABL_GO_PREV_LINE , D(LCTL), T(P), U(LCTL), END ); + BABLM( BABL_PGDN , D(LCTL), T(V), U(LCTL), END ); + BABLM( BABL_PGUP , D(LALT), T(V), U(LALT), END ); + BABLM( BABL_DEL_RIGHT_1C, D(LCTL), T(D), U(LCTL),END ); + BABLM( BABL_DEL_LEFT_WORD , D(LCTL), T(BSPACE), U(LCTL), END ); + BABLM( BABL_DEL_RIGHT_WORD , D(LALT), T(D), U(LALT), END ); + BABLM( BABL_DEL_TO_LINE_END, D(LCTL), T(K), U(LCTL), END ); + BABLM( BABL_DEL_TO_LINE_START, T(ESC), T(0), D(LCTL), T(K), U(LCTL), END ); #ifndef BABL_MOVEMENTONLY - case BABL_UNDO: - BABLM( , D(LCTL), T(X), U(LCTL),T(C), END ); - case BABL_REDO: - BABLM( , D(LCTL), T(X), U(LCTL),T(C), END ); // arguably - case BABL_CUT: - BABLM( , D(LCTL), T(W), U(LCTL), END ); - case BABL_COPY: - BABLM( , D(LALT), T(W), U(LALT), END ); //really? - case BABL_PASTE: - BABLM( , D(LCTL), T(Y), U(LCTL), END ); - case BABL_SELECT_ALL: - BABLM( ,D(LCTL), T(X), U(LCTL),T(H), END ); - case BABL_FIND: - BABLM( , D(LCTRL), T(S), U(LCTRL),END ); - case BABL_FIND_NEXT: - BABLM( , D(LCTRL), T(S), U(LCTRL),END ); - case BABL_FIND_REPLACE: - BABLM( , D(LALT),D(LSFT), T(5),U(LSFT), U(LALT), END ); - case BABL_RUNAPP: - BABLM( , D(LALT), T(X), U(LALT),T(S),T(H),T(E),T(L),T(L),END );// arguably - case BABL_SWITCH_APP_NEXT: - BABLM( , D(LCTL), T(X), U(LCTL),T(RIGHT), END ); // arguably - case BABL_SWITCH_APP_LAST: - BABLM( , D(LCTL), T(X), U(LCTL),T(LEFT), END ); // arguably - case BABL_CLOSE_APP: - BABLM( ,D(LCTL), T(X), U(LCTL),T(C),END ); - case BABL_HELP: - BABLM( , D(LCTL),T(H), U(LCTL),T(A),END); // start search in help + BABLM( BABL_UNDO , D(LCTL), T(X), U(LCTL),T(C), END ); + BABLM( BABL_REDO , D(LCTL), T(X), U(LCTL),T(C), END ); // arguably + BABLM( BABL_CUT , D(LCTL), T(W), U(LCTL), END ); + BABLM( BABL_COPY , D(LALT), T(W), U(LALT), END ); //really? + BABLM( BABL_PASTE , D(LCTL), T(Y), U(LCTL), END ); + BABLM( BABL_SELECT_ALL ,D(LCTL), T(X), U(LCTL),T(H), END ); + BABLM( BABL_FIND , D(LCTL), T(S), U(LCTL),END ); + BABLM( BABL_FIND_NEXT , D(LCTL), T(S), U(LCTL),END ); + BABLM( BABL_FIND_REPLACE , D(LALT),D(LSFT), T(5),U(LSFT), U(LALT), END ); + BABLM( BABL_RUNAPP , D(LALT), T(X), U(LALT),T(S),T(H),T(E),T(L),T(L),END );// arguably + BABLM( BABL_SWITCH_APP_NEXT , D(LCTL), T(X), U(LCTL),T(RIGHT), END ); // arguably + BABLM( BABL_SWITCH_APP_LAST , D(LCTL), T(X), U(LCTL),T(LEFT), END ); // arguably + BABLM( BABL_CLOSE_APP , D(LCTL), T(X), U(LCTL),T(C),END ); + BABLM( BABL_HELP , D(LCTL),T(H), U(LCTL),T(A),END); // start search in help +#ifndef BABL_NOBROWSER +/* you get to figure w3 out + BABLM( BABL_BROWSER_NEW_TAB, D(LGUI), T(T), U(LGUI),END ); + BABLM( BABL_BROWSER_CLOSE_TAB, D(LGUI), T(W), U(LGUI),END ); + BABLM( BABL_BROWSER_REOPEN_LAST_TAB, D(LGUI), D(RSFT),T(T), U(RSFT),U(LGUI),END ); + BABLM( BABL_BROWSER_NEXT_TAB, D(LGUI),D(LALT), T(RIGHT),U(LALT), U(LGUI),END ); + BABLM( BABL_BROWSER_PREV_TAB, D(LGUI), D(RSFT), T(LEFT), U(RSFT), U(LGUI),END ); + BABLM( BABL_BROWSER_URL_BAR, D(LGUI), T(L), U(LGUI),END ); + BABLM( BABL_BROWSER_FORWARD, D(LGUI), T(RIGHT), U(LGUI),END ); + BABLM( BABL_BROWSER_BACK, D(LGUI), T(LEFT), U(LGUI),END ); + BABLM( BABL_BROWSER_FIND, D(LGUI), T(F), U(LGUI),END ); + BABLM( BABL_BROWSER_BOOKMARK, D(LGUI), T(D), U(LGUI),END ); + //BABLM( BABL_BROWSER_DEV_TOOLS, T(F12), U(LGUI),END ); // EDGE + BABLM( BABL_BROWSER_DEV_TOOLS, D(LGUI), D(LALT), T(I), U(LALT),U(LGUI),END ); // Chrome + // Chrome + BABLM( BABL_BROWSER_RELOAD, D(LGUI), T(R), U(LGUI),END ); // add shift for reload w/o cache + BABLM( BABL_BROWSER_FULLSCREEN, D(LGUI), D(LCTL), T(P), U(LCTL), U(LGUI),END ); //command shift F + BABLM( BABL_BROWSER_ZOOM_IN, D(LGUI), D(RSFT), T(EQL), U(RSFT), U(LGUI),END ); // ctr+ + + BABLM( BABL_BROWSER_ZOOM_OUT, D(LGUI), T(MINS), U(LGUI),END ); +*/ +#endif #endif break; @@ -234,25 +300,31 @@ But that requires even more clever preprocessor foo. } #endif + + #ifdef VI_MODE + if ( BABL_VI == shortcut ) { return switch_babble_mode(VI_MODE); } case VI_MODE: -//assume esc is already called +// you have to track the modes yourself. Otherwise motion is awful (bell, bell, bell) + - BABLM( BABL_DEL_RIGHT_1C , T(X),END ); - BABLM( BABL_DEL_LEFT_WORD , T(D),T(G),T(E),END ); - BABLM( BABL_DEL_RIGHT_WORD , T(D),T(W),END ); BABLM( BABL_GO_LEFT_1C , T(H), END ); BABLM( BABL_GO_RIGHT_1C , T(L), END ); BABLM( BABL_GO_LEFT_WORD , T(B),END ); BABLM( BABL_GO_RIGHT_WORD , T(W), END ); BABLM( BABL_GO_START_LINE , D(LSFT), T(6),U(LSFT), END ); //^ - BABLM( BABL_GO_START_DOC , T(G),T(G) ,END ); BABLM( BABL_GO_END_LINE , D(LSFT), T(4),U(LSFT) , END ); //$ + BABLM( BABL_GO_START_DOC , T(G),T(G) ,END ); BABLM( BABL_GO_END_DOC , D(LSFT), T(G),U(LSFT),END ); BABLM( BABL_GO_NEXT_LINE , T(J), END ); BABLM( BABL_GO_PREV_LINE, T(K), END ); - BABLM( BABL_PGDN ,D(LCTRL), T(F), U(LCTRL), END ); - BABLM( BABL_PGUP , D(LCTRL), T(B), U(LCTRL), END ); + BABLM( BABL_PGDN ,D(LCTL), T(F), U(LCTL), END ); + BABLM( BABL_PGUP , D(LCTL), T(B), U(LCTL), END ); + BABLM( BABL_DEL_RIGHT_1C , T(X),END ); + BABLM( BABL_DEL_LEFT_WORD , T(D),T(G),T(E),END ); + BABLM( BABL_DEL_RIGHT_WORD , T(D),T(W),END ); + BABLM( BABL_DEL_TO_LINE_END, T(D),D(LSFT), T(4),U(LSFT) ,END ); // d$ + BABLM( BABL_DEL_TO_LINE_START, T(D),D(LSFT), T(6),U(LSFT) ,END ); #ifndef BABL_MOVEMENTONLY BABLM( BABL_UNDO , T(U), END ); BABLM( BABL_REDO , D(LCTL), T(R), U(LCTL), END ); @@ -268,6 +340,27 @@ But that requires even more clever preprocessor foo. BABLM( BABL_SWITCH_APP_LAST ,END ); BABLM(BABL_CLOSE_APP, D(LSFT), T(SCLN),U(LSFT), T(Q), D(RSFT), T(1),U(RSFT), END ); BABLM(BABL_HELP, D(LSFT), T(SCLN),U(LSFT),T(H),END); // start search in help +#ifndef BABL_NOBROWSER +/* you get to figure this out + BABLM( BABL_BROWSER_NEW_TAB, D(LGUI), T(T), U(LGUI),END ); + BABLM( BABL_BROWSER_CLOSE_TAB, D(LGUI), T(W), U(LGUI),END ); + BABLM( BABL_BROWSER_REOPEN_LAST_TAB, D(LGUI), D(RSFT),T(T), U(RSFT),U(LGUI),END ); + BABLM( BABL_BROWSER_NEXT_TAB, D(LGUI),D(LALT), T(RIGHT),U(LALT), U(LGUI),END ); + BABLM( BABL_BROWSER_PREV_TAB, D(LGUI), D(RSFT), T(LEFT), U(RSFT), U(LGUI),END ); + BABLM( BABL_BROWSER_URL_BAR, D(LGUI), T(L), U(LGUI),END ); + BABLM( BABL_BROWSER_FORWARD, D(LGUI), T(RIGHT), U(LGUI),END ); + BABLM( BABL_BROWSER_BACK, D(LGUI), T(LEFT), U(LGUI),END ); + BABLM( BABL_BROWSER_FIND, D(LGUI), T(F), U(LGUI),END ); + BABLM( BABL_BROWSER_BOOKMARK, D(LGUI), T(D), U(LGUI),END ); + //BABLM( BABL_BROWSER_DEV_TOOLS, T(F12), U(LGUI),END ); // EDGE + BABLM( BABL_BROWSER_DEV_TOOLS, D(LGUI), D(LALT), T(I), U(LALT),U(LGUI),END ); // Chrome + // Chrome + BABLM( BABL_BROWSER_RELOAD, D(LGUI), T(R), U(LGUI),END ); // add shift for reload w/o cache + BABLM( BABL_BROWSER_FULLSCREEN, D(LGUI), D(LCTL), T(P), U(LCTL), U(LGUI),END ); //command shift F + BABLM( BABL_BROWSER_ZOOM_IN, D(LGUI), T(PLUS), U(LGUI),END ); + BABLM( BABL_BROWSER_ZOOM_OUT, D(LGUI), T(MINS), U(LGUI),END ); +*/ +#endif #endif return MACRO_NONE; #endif @@ -278,37 +371,62 @@ But that requires even more clever preprocessor foo. #ifdef READMUX_MODE // Readline command line editing + tmux windowing // I havent decided how much to do readline and how much tmux + if ( BABL_READLINE == shortcut ) { switch_babble_mode(READMUX_MODE); return MACRO_NONE; } case READMUX_MODE: - BABLM( BABL_DEL_RIGHT_1C , D(LCTL), T(D), U(LCTL),END ); + + BABLM( BABL_GO_LEFT_1C , T(LEFT), END ); + BABLM( BABL_GO_RIGHT_1C , T(RIGHT), END ); + BABLM( BABL_GO_LEFT_WORD , D(LALT), T(B), U(LALT), END ); + BABLM( BABL_GO_RIGHT_WORD , D(LALT), T(F), U(LALT), END ); + BABLM( BABL_GO_START_LINE , D(LCTL), T(A), U(LCTL), END ); + BABLM( BABL_GO_END_LINE , D(LCTL), T(E), U(LCTL), END ); + //BABLM( BABL_GO_START_DOC ,END );// tmux? + //BABLM( BABL_GO_END_DOC ,END ); // tmux? + BABLM( BABL_GO_NEXT_LINE , D(LCTL), T(N), U(LCTL), END ); + BABLM( BABL_GO_PREV_LINE , D(LCTL), T(P), U(LCTL), END ); + BABLM( BABL_PGDN , T(PGDN), END ); + BABLM( BABL_PGUP , T(PGUP), END ); + BABLM( BABL_DEL_RIGHT_1C , D(LCTL), T(D), U(LCTL),END ); BABLM( BABL_DEL_LEFT_WORD , D(LCTL), T(W), U(LCTL), END ); - BABLM( BABL_DEL_RIGHT_WORD , D(LALT), T(D), U(LALT), END ); - BABLM( BABL_GO_LEFT_1C , T(LEFT), END ); - BABLM( BABL_GO_RIGHT_1C , T(RIGHT), END ); - BABLM( BABL_GO_LEFT_WORD , D(LALT), T(B), U(LALT), END ); - BABLM( BABL_GO_RIGHT_WORD , D(LALT), T(F), U(LALT), END ); - BABLM( BABL_GO_START_LINE , D(LCTRL), T(A), U(LCTRL), END ); - BABLM( BABL_GO_START_DOC ,END );// tmux? - BABLM( BABL_GO_END_LINE , D(LCTRL), T(E), U(LCTRL), END ); - BABLM( BABL_GO_END_DOC ,END ); // tmux? - BABLM( BABL_GO_NEXT_LINE , D(LCTRL), T(N), U(LCTRL), END ); - BABLM( BABL_GO_PREV_LINE , D(LCTRL), T(P), U(LCTRL), END ); - BABLM( BABL_PGDN , T(PGDN), END ); - BABLM( BABL_PGUP , T(PGUP), END ); + BABLM( BABL_DEL_RIGHT_WORD , D(LALT), T(D), U(LALT), END ); + BABLM( BABL_DEL_TO_LINE_END, D(LCTL), T(K), U(LCTL), END ); + BABLM( BABL_DEL_TO_LINE_START, D(LCTL), T(U), U(LCTL), END ); #ifndef BABL_MOVEMENTONLY - BABLM( BABL_UNDO , D(LALT), T(R), U(LALT) , END ); - BABLM( BABL_REDO , D(LCTL), T(X), U(LCTL),T(C), END ); // arguably - BABLM( BABL_CUT , D(LCTL), T(K), U(LCTL), END ); // wrong half the time - BABLM( BABL_COPY ,END ); - BABLM( BABL_PASTE , D(LCTL), T(Y), U(LCTL), END ); - BABLM( BABL_SELECT_ALL ,D(LCTL), T(A), T(K), T(Y), U(LCTL) , END ); - BABLM( BABL_FIND , D(LCTRL), T(R), U(LCTRL), END ); // search history - BABLM(BABL_FIND_NEXT, D(LCTRL), T(S), U(LCTRL), END ); - BABLM( BABL_FIND_REPLACE ,END ); - BABLM( BABL_RUNAPP , D(LCTRL), T(B), U(LCTRL), T(C),END ); //tmux - BABLM( BABL_SWITCH_APP_NEXT , D(LCTRL), T(B), U(LCTRL), T(N),END ); //tmux - BABLM( BABL_SWITCH_APP_LAST , D(LCTRL), T(B), U(LCTRL), T(P),END ); //tmux - BABLM( BABL_CLOSE_APP , D(LCTRL), T(B), U(LCTRL), T(D),END); // usually what I want - BABLM( BABL_HELP ,END ); + BABLM( BABL_UNDO , D(LALT), T(R), U(LALT) , END ); + BABLM( BABL_REDO , D(LCTL), T(X), U(LCTL),T(C), END ); // arguably + BABLM( BABL_CUT , D(LCTL), T(K), U(LCTL), END ); // wrong half the time + //BABLM( BABL_COPY ,END ); + BABLM( BABL_PASTE , D(LCTL), T(Y), U(LCTL), END ); + BABLM( BABL_SELECT_ALL , D(LCTL), T(A), T(K), T(Y), U(LCTL) , END ); + BABLM( BABL_FIND , D(LCTL), T(R), U(LCTL), END ); // search history + BABLM(BABL_FIND_NEXT, D(LCTL), T(S), U(LCTL), END ); + //BABLM( BABL_FIND_REPLACE ,END ); + BABLM( BABL_RUNAPP , D(LCTL), T(B), U(LCTL), T(C),END ); //tmux + BABLM( BABL_SWITCH_APP_NEXT , D(LCTL), T(B), U(LCTL), T(N),END ); //tmux + BABLM( BABL_SWITCH_APP_LAST , D(LCTL), T(B), U(LCTL), T(P),END ); //tmux + BABLM( BABL_CLOSE_APP , D(LCTL), T(B), U(LCTL), T(D),END); // usually what I want + // BABLM( BABL_HELP ,END ); +#ifndef BABL_NOBROWSER +/* Add lynx shortcuts? + BABLM( BABL_BROWSER_NEW_TAB, D(LGUI), T(T), U(LGUI),END ); + BABLM( BABL_BROWSER_CLOSE_TAB, D(LGUI), T(W), U(LGUI),END ); + BABLM( BABL_BROWSER_REOPEN_LAST_TAB, D(LGUI), D(RSFT),T(T), U(RSFT),U(LGUI),END ); + BABLM( BABL_BROWSER_NEXT_TAB, D(LGUI),D(LALT), T(RIGHT),U(LALT), U(LGUI),END ); + BABLM( BABL_BROWSER_PREV_TAB, D(LGUI), D(RSFT), T(LEFT), U(RSFT), U(LGUI),END ); + BABLM( BABL_BROWSER_URL_BAR, D(LGUI), T(L), U(LGUI),END ); + BABLM( BABL_BROWSER_FORWARD, D(LGUI), T(RIGHT), U(LGUI),END ); + BABLM( BABL_BROWSER_BACK, D(LGUI), T(LEFT), U(LGUI),END ); + BABLM( BABL_BROWSER_FIND, D(LGUI), T(F), U(LGUI),END ); + BABLM( BABL_BROWSER_BOOKMARK, D(LGUI), T(D), U(LGUI),END ); + //BABLM( BABL_BROWSER_DEV_TOOLS, T(F12), U(LGUI),END ); // EDGE + BABLM( BABL_BROWSER_DEV_TOOLS, D(LGUI), D(LALT), T(I), U(LALT),U(LGUI),END ); // Chrome + // Chrome + BABLM( BABL_BROWSER_RELOAD, D(LGUI), T(R), U(LGUI),END ); // add shift for reload w/o cache + BABLM( BABL_BROWSER_FULLSCREEN, D(LGUI), D(LCTL), T(P), U(LCTL), U(LGUI),END ); //command shift F + BABLM( BABL_BROWSER_ZOOM_IN, D(LGUI), T(PLUS), U(LGUI),END ); + BABLM( BABL_BROWSER_ZOOM_OUT, D(LGUI), T(MINS), U(LGUI),END ); +*/ +#endif #endif return MACRO_NONE; diff --git a/keyboards/handwired/MS-sculpt-mobile/babblePaste.h b/keyboards/handwired/MS-sculpt-mobile/babblePaste.h index 313fa80ec..67153fb0d 100644 --- a/keyboards/handwired/MS-sculpt-mobile/babblePaste.h +++ b/keyboards/handwired/MS-sculpt-mobile/babblePaste.h @@ -10,6 +10,8 @@ and jeebak & algernon's keymap #ifndef _babblePaste_h_included__ #define _babblePaste_h_included__ #include "action_layer.h" +#include "quantum_keycodes.h" +#include "config.h" #ifdef USE_BABLPASTE @@ -39,23 +41,28 @@ and jeebak & algernon's keymap /* Macros handled by babblepaste. Most should be available for all platforms. Whatever isn't defined will NOP */ enum { - - // Movement - BABL_DEL_RIGHT_1C= BABL_START_NUM, - BABL_DEL_LEFT_WORD, - BABL_DEL_RIGHT_WORD, - BABL_GO_LEFT_1C, +// Movement macros + // left & right + BABL_GO_LEFT_1C= BABL_START_NUM, BABL_GO_RIGHT_1C, - BABL_GO_LEFT_WORD, + BABL_GO_LEFT_WORD, BABL_GO_RIGHT_WORD, BABL_GO_START_LINE, BABL_GO_END_LINE, + // now up & down BABL_GO_START_DOC, BABL_GO_END_DOC, BABL_GO_NEXT_LINE, BABL_GO_PREV_LINE, BABL_PGDN, BABL_PGUP, + // And the delete options + //BABL_DEL_LEFT_1C == backspace, so why bother. + BABL_DEL_RIGHT_1C, // usually = Del + BABL_DEL_LEFT_WORD, + BABL_DEL_RIGHT_WORD, + BABL_DEL_TO_LINE_END, // delete from cursor to end of line + BABL_DEL_TO_LINE_START, // delete from cursor to begining line #ifndef BABL_MOVEMENTONLY // Cut & Paste BABL_UNDO, @@ -64,20 +71,142 @@ enum { BABL_COPY, BABL_PASTE, BABL_SELECT_ALL, - // GUI or app + /* not yet implemented + BABL_SWAP_LAST2C // swap last characters before the cursor + BABL_SWAP_LAST2W // Swap the last two words before the cursor + */ + // find & replace BABL_FIND, BABL_FIND_NEXT, BABL_FIND_REPLACE, + // GUI or app BABL_RUNAPP, BABL_SWITCH_APP_NEXT, BABL_SWITCH_APP_LAST, // previous BABL_CLOSE_APP, - BABL_HELP + BABL_HELP, + +#ifndef BABL_NOBROWSER + BABL_BROWSER_NEW_TAB, + BABL_BROWSER_CLOSE_TAB, + BABL_BROWSER_REOPEN_LAST_TAB, + BABL_BROWSER_NEXT_TAB, + BABL_BROWSER_PREV_TAB, + BABL_BROWSER_URL_BAR, + BABL_BROWSER_FORWARD, + BABL_BROWSER_BACK, + BABL_BROWSER_FIND, + BABL_BROWSER_BOOKMARK, + BABL_BROWSER_DEV_TOOLS, // hard one to remember + BABL_BROWSER_RELOAD, + BABL_BROWSER_FULLSCREEN, + BABL_BROWSER_ZOOM_IN, + BABL_BROWSER_ZOOM_OUT, + +#endif + #endif +// Macros for mode switching +#ifdef MS_MODE + BABL_WINDOWS, +#endif +#ifdef MAC_MODE + BABL_MAC, +#endif +#ifdef LINUX_MODE + BABL_LINUX, +#endif +#ifdef EMACS_MODE + BABL_EMACS, +#endif +#ifdef VI_MODE + BABL_VI, +#endif +#ifdef READMUX_MODE + BABL_READLINE, +#endif + + }; -// How many macros/ how many array elements? -#define BABL_NUM_MACROS 28 +// BUG, used to jump to babble functiion. Surely there is a way to calculate size of enum? +#define BABL_NUM_MACROS 48 + 4 // 48 + # of defined modes. + +/* And all the shorthand keymap ready versions */ +// First the mode switching macros +#ifdef MS_MODE +#define B_WIN M(BABL_WINDOWS) +#endif +#ifdef MAC_MODE +#define B_MAC M(BABL_MAC) +#endif +#ifdef LINUX_MODE +#define B_LNX M(BABL_LINUX) +#endif +#ifdef EMACS_MODE +#define B_EMAX M(BABL_EMACS) +#endif +#ifdef VI_MODE +#define B_VI M(BABL_VI) +#endif +#ifdef READMUX_MODE +#define B_READ M(BABL_READLINE) +#endif + +// and all the movement & action. + +#define B_L1C M(BABL_GO_LEFT_1C) +#define B_R1C M(BABL_GO_RIGHT_1C) +#define B_L1W M(BABL_GO_LEFT_WORD) +#define B_R1W M(BABL_GO_RIGHT_WORD) +#define B_GSOL M(BABL_GO_START_LINE) +#define B_GEOL M(BABL_GO_END_LINE) +#define B_GTOP M(BABL_GO_START_DOC) +#define B_GEND M(BABL_GO_END_DOC) +#define B_DOWN M(BABL_GO_NEXT_LINE) +#define B_UP M(BABL_GO_PREV_LINE) +#define B_PGDN M(BABL_PGDN) +#define B_PGUP M(BABL_PGUP) +//#define B_BKSP M(BABL_DEL_LEFT_1C) == backspace so why bother. +#define B_DEL M(BABL_DEL_RIGHT_1C) // usually = Del +#define B_DLW M(BABL_DEL_LEFT_WORD) +#define B_DRW M(BABL_DEL_RIGHT_WORD) +#define B_DEOL M(BABL_DEL_TO_LINE_END) // delete from cursor to end of line +#define B_DSOL M(BABL_DEL_TO_LINE_START) // delete from cursor to begining line +#define B_UNDO M(BABL_UNDO) +#define B_REDO M(BABL_REDO) +#define B_CUT M(BABL_CUT) +#define B_COPY M(BABL_COPY) +#define B_PAST M(BABL_PASTE) +#define B_SELA M(BABL_SELECT_ALL) +#define B_FIND M(BABL_FIND) +#define B_FINDN M(BABL_FIND_NEXT) +#define B_FINDR M(BABL_FIND_REPLACE) +#define B_RAPP M(BABL_RUNAPP) +#define B_NAPP M(BABL_SWITCH_APP_NEXT) +#define B_PAPP M(BABL_SWITCH_APP_LAST) // previous +#define B_CAPP M(BABL_CLOSE_APP) +#define B_HELP M(BABL_HELP) +#define B_NTAB M(BABL_BROWSER_NEW_TAB) +#define B_CTAB M(BABL_BROWSER_CLOSE_TAB) +#define B_ROTB M(BABL_BROWSER_REOPEN_LAST_TAB) +#define B_NXTB M(BABL_BROWSER_NEXT_TAB) +#define B_PTAB M(BABL_BROWSER_PREV_TAB) +#define B_NURL M(BABL_BROWSER_URL_BAR) +#define B_BFWD M(BABL_BROWSER_FORWARD) +#define B_BBAK M(BABL_BROWSER_BACK) +#define B_BFND M(BABL_BROWSER_FIND) +#define B_BOOK M(BABL_BROWSER_BOOKMARK) +#define B_BDEV M(BABL_BROWSER_DEV_TOOLS) // hard one to remember +#define B_BRLD M(BABL_BROWSER_RELOAD) +#define B_BFUlL M(BABL_BROWSER_FULLSCREEN) +#define B_ZMIN M(BABL_BROWSER_ZOOM_IN) +#define B_ZMOT M(BABL_BROWSER_ZOOM_OUT) + + + + + /* from action_macro.h diff --git a/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/config.h b/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/config.h index 7ad1b0f0f..9f9b05094 100644 --- a/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/config.h +++ b/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/config.h @@ -5,23 +5,28 @@ #define USE_BABLPASTE +// Expect to get errors if you comment a feature out and leave it in your keymap. + #ifdef USE_BABLPASTE //define BabblePaste maps // Windows. -//#define MS_MODE 1 -#define MAC_MODE 0 +#define MS_MODE 0 +#define MAC_MODE 1 //aka gnome+KDE //#define LINUX_MODE 2 //#define EMACS_MODE 3 -//#define VI_MODE 4 +#define VI_MODE 4 //#define WORDSTAR_MODE 5 // Readline and tmux #define READMUX_MODE 6 #endif // Uncomment if you need more free flash space -// It removes everything but cursor movement + +// This removes everything but cursor movement //#define BABL_MOVEMENTONLY +// and this just removes browser shortcuts +//#define BABL_NOBROWSER // place overrides here #endif diff --git a/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/keymap.c b/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/keymap.c index 3a162db86..a66282547 100644 --- a/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/keymap.c +++ b/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/keymap.c @@ -14,13 +14,6 @@ #define _TRAN 5 - - -// adjust babblemode default -extern uint8_t babble_mode; - - - enum layer_keycodes { QWR, CDH, @@ -46,11 +39,6 @@ TRAN enum macro_keycodes { DHPASTE=1, VIBRK, -B_LNX, -B_WIN, -B_MAC, -B_VI, -B_READ , }; @@ -115,24 +103,38 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ____, KC_SCLN, KC_TILDE, KC_COLN, KC_TILDE, KC_PIPE, KC_DLR, KC_ASTR, ____, KC_DOT , KC_SLSH, ____, ____, ____,\ ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ ), +/* +* |ESC | Win| MAC|RdLn| VI | | | | | | | | | | | | +* -------------------------------------------------------------------------------' +* | | | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |Bakspace| Del| +* --------------------------------------------------------------------------- +* | tab | q | w |Find| |pTab |DSOL|DelW| Up |DelW|DEOL| [ | ] | \ | | +* -------------------------------------------------------------------------------' +* |Bak/Mov| a | s | d | |nTab |GSOL| <- | Dwn | -> | EOL | ' | enter |PgUp| +* -------------------------------------------------------------------------------- +* |Lsft |Undo| Cut|Copy|Pste| b | n | m | , | . | / | Rsft| Up| PgDn| +* --------------------------------------------------------------------------------- +* |Lctl |Lgui |Lalt | Space/Sym | GUI | Sym | Rctl |Left|Down|Rght| +* --------------------------------------------------------------------------------- +*/ [_MOV] = KEYMAP (\ - ____, M(B_WIN),M(B_MAC),M(B_READ), M(B_VI), ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ - ____, M(BABL_UNDO), ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ - ____, ____,RGUI(KC_TAB), ____, ____, RCTL(KC_B), ____, M(BABL_DEL_LEFT_WORD), KC_UP, M(BABL_DEL_RIGHT_WORD), ____, ____, ____, ____, \ - ____, RCTL(KC_A), KC_S, RCTL(KC_K), RCTL(KC_E), ____, M(BABL_GO_START_LINE), KC_LEFT,KC_DOWN, KC_RIGHT, M(BABL_GO_END_LINE), ____,____,____,\ - ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ + ____, B_MAC,B_WIN,B_READ, B_VI, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ + ____, ____, B_PAPP, B_NAPP, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ + ____, B_UNDO, ____, B_BFND, ____, B_PTAB, B_DSOL, B_DLW, B_UP, B_DRW, B_DEOL, ____, ____, ____, \ + ____, B_SELA, B_BRLD, ____, ____, B_NXTB, B_GSOL, B_L1C, B_DOWN, B_R1C,B_GEOL, ____, ____, ____,\ + ____, B_UNDO,B_CUT, B_COPY, B_PAST, B_PAST, ____, ____, ____, ____, ____, ____, ____, ____, \ ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ ), [_TRAN] = KEYMAP (\ ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ - ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ - ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ - ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ - ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ - ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ -) + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ + ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ +) }; const uint16_t PROGMEM fn_actions[] = { @@ -188,6 +190,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { /* If this is in the range of BABL macros, call a separate function */ +/* Any clever remapping with modifiers should happen here e.g. shift bablkey does opposite*/ #ifdef USE_BABLPASTE if( id >= BABL_START_NUM && id < (BABL_START_NUM + BABL_NUM_MACROS ) ) { if (record->event.pressed) { // is there a case where this isn't desired? @@ -235,31 +238,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) - -#ifdef USE_BABLPASTE - -#ifdef LINUX_MODE - case B_LNX: - return switch_babble_mode(LINUX_MODE); -#endif -#ifdef MS_MODE - case B_WIN: - return switch_babble_mode(MS_MODE); -#endif -#ifdef MAC_MODE - case B_MAC: - return switch_babble_mode(MAC_MODE); -#endif -#ifdef VI_MODE - case B_VI: - return switch_babble_mode(VI_MODE); -#endif -#ifdef READMUX_MODE - case B_READ: - return switch_babble_mode(READMUX_MODE); -#endif -#endif - default: return MACRO_NONE; @@ -286,10 +264,6 @@ void led_set_user(uint8_t usb_led) { } -macro_t* switch_babble_mode( uint8_t id) { - babble_mode= id; - return MACRO_NONE; //less typing above -} -- cgit v1.2.3 From 89aba30c7f50aa733262f4add253817e2fb84e8a Mon Sep 17 00:00:00 2001 From: milestogo Date: Wed, 8 Mar 2017 01:25:33 -0800 Subject: fix stupid error w/ mode switch --- keyboards/handwired/MS-sculpt-mobile/babblePaste.c | 38 +++++++++++++++------- keyboards/handwired/MS-sculpt-mobile/babblePaste.h | 10 +++++- keyboards/handwired/MS-sculpt-mobile/config.h | 5 ++- .../MS-sculpt-mobile/keymaps/default/Makefile | 2 +- .../MS-sculpt-mobile/keymaps/milestogo/config.h | 10 +++--- .../MS-sculpt-mobile/keymaps/milestogo/keymap.c | 4 ++- keyboards/handwired/MS-sculpt-mobile/readme.md | 2 +- keyboards/handwired/MS-sculpt-mobile/rules.mk | 5 +-- 8 files changed, 51 insertions(+), 25 deletions(-) (limited to 'keyboards') diff --git a/keyboards/handwired/MS-sculpt-mobile/babblePaste.c b/keyboards/handwired/MS-sculpt-mobile/babblePaste.c index 491a79333..3a9b86997 100644 --- a/keyboards/handwired/MS-sculpt-mobile/babblePaste.c +++ b/keyboards/handwired/MS-sculpt-mobile/babblePaste.c @@ -19,7 +19,7 @@ uint8_t babble_mode =0 ; macro_t* switch_babble_mode( uint8_t id) { babble_mode= id; - return MACRO_NONE; //less typing above + return MACRO_NONE; //less typing where called } @@ -42,12 +42,32 @@ const macro_t *babblePaste (keyrecord_t *record, uint8_t shortcut) { return MACRO_NONE; } */ - switch(babble_mode) { - - + + +#ifdef MS_MODE + if ( BABL_WINDOWS == shortcut ) { return switch_babble_mode(MS_MODE); } +#endif +#ifdef MAC_MODE + if ( BABL_MAC == shortcut) { return switch_babble_mode(MAC_MODE); } +#endif +#ifdef LINUX_MODE + if ( BABL_LINUX == shortcut ) { return switch_babble_mode(LINUX_MODE); } +#endif + #ifdef READMUX_MODE + if ( BABL_READLINE == shortcut ) { switch_babble_mode(READMUX_MODE); return MACRO_NONE; } +#endif +#ifdef VI_MODE + if ( BABL_VI == shortcut ) { return switch_babble_mode(VI_MODE); } +#endif +#ifdef EMACS_MODE + if ( BABL_EMACS == shortcut ) { return switch_babble_mode(EMACS_MODE); } +#endif + + + + switch(babble_mode) { #ifdef MS_MODE - if ( BABL_WINDOWS == shortcut ) { return switch_babble_mode(MS_MODE); } case MS_MODE: BABLM( BABL_GO_LEFT_1C, T(LEFT), END ); @@ -111,7 +131,6 @@ const macro_t *babblePaste (keyrecord_t *record, uint8_t shortcut) { #ifdef LINUX_MODE - if ( BABL_LINUX == shortcut ) { return switch_babble_mode(LINUX_MODE); } case LINUX_MODE: BABLM( BABL_GO_LEFT_1C , T(LEFT), END ); @@ -172,7 +191,6 @@ const macro_t *babblePaste (keyrecord_t *record, uint8_t shortcut) { #endif #ifdef MAC_MODE - if ( BABL_MAC == shortcut) { return switch_babble_mode(MAC_MODE); } case MAC_MODE: BABLM( BABL_GO_LEFT_1C , T(LEFT), END ); @@ -234,8 +252,6 @@ const macro_t *babblePaste (keyrecord_t *record, uint8_t shortcut) { #ifdef EMACS_MODE - if ( BABL_EMACS == shortcut ) { return switch_babble_mode(EMACS_MODE); } - case EMACS_MODE: switch(shortcut) { //probably should allow meta to not be ALT @@ -303,7 +319,6 @@ const macro_t *babblePaste (keyrecord_t *record, uint8_t shortcut) { #ifdef VI_MODE - if ( BABL_VI == shortcut ) { return switch_babble_mode(VI_MODE); } case VI_MODE: // you have to track the modes yourself. Otherwise motion is awful (bell, bell, bell) @@ -371,7 +386,8 @@ const macro_t *babblePaste (keyrecord_t *record, uint8_t shortcut) { #ifdef READMUX_MODE // Readline command line editing + tmux windowing // I havent decided how much to do readline and how much tmux - if ( BABL_READLINE == shortcut ) { switch_babble_mode(READMUX_MODE); return MACRO_NONE; } + + case READMUX_MODE: BABLM( BABL_GO_LEFT_1C , T(LEFT), END ); diff --git a/keyboards/handwired/MS-sculpt-mobile/babblePaste.h b/keyboards/handwired/MS-sculpt-mobile/babblePaste.h index 67153fb0d..3067c854d 100644 --- a/keyboards/handwired/MS-sculpt-mobile/babblePaste.h +++ b/keyboards/handwired/MS-sculpt-mobile/babblePaste.h @@ -18,6 +18,9 @@ and jeebak & algernon's keymap /* *************************** // Uncomment any modes you want. Whatever mode = 0 will be the default on boot +// Expect to get errors if you comment a feature out and leave it in your keymap. + +#define USE_BABLPASTE //#define MS_MODE 0 // Windows. //#define MAC_MODE 1 @@ -26,6 +29,11 @@ and jeebak & algernon's keymap //#define VI_MODE 4 //#define WORDSTAR_MODE 5 //#define READMUX 6 // Readline and tmux + +// This removes everything but cursor movement +//#define BABL_MOVEMENTONLY +// and this just removes browser shortcuts +//#define BABL_NOBROWSER ****************************/ @@ -130,7 +138,7 @@ enum { }; // BUG, used to jump to babble functiion. Surely there is a way to calculate size of enum? -#define BABL_NUM_MACROS 48 + 4 // 48 + # of defined modes. +#define BABL_NUM_MACROS 48+4 // 48 + # of defined modes. /* And all the shorthand keymap ready versions */ // First the mode switching macros diff --git a/keyboards/handwired/MS-sculpt-mobile/config.h b/keyboards/handwired/MS-sculpt-mobile/config.h index d85c5c623..f89514278 100644 --- a/keyboards/handwired/MS-sculpt-mobile/config.h +++ b/keyboards/handwired/MS-sculpt-mobile/config.h @@ -25,7 +25,6 @@ along with this program. If not, see . #define PRODUCT_ID 0x6060 #define DEVICE_VER 0x0001 #define MANUFACTURER Microsoftplus -#define PRODUCT sculpt mobile #define DESCRIPTION 6000 /* key matrix size */ @@ -33,14 +32,14 @@ along with this program. If not, see . #define MATRIX_COLS 18 #ifdef ASTAR - +#define PRODUCT sculpt mobile astar /*0 1 2 3 4 5 6 7 8 */ #define MATRIX_ROW_PINS {D7, C6, D4, D0, D1, D3, D2, E2} /* A B C D E F G H I J K L M N O P Q R */ #define MATRIX_COL_PINS {B4, B5, E6, B7, B6, D6, C7, F7, F6, F4,F5, F1,F0, D5, B0, B1, B2, B3} #else - +#define PRODUCT sculpt mobile teensypp /* 0 1 2 3 4 5 6 7 */ #define MATRIX_ROW_PINS { F7,F6,F4,F5,F3,F2,F1,F0} /* A B C D E F G H I J K L M N O P Q R */ diff --git a/keyboards/handwired/MS-sculpt-mobile/keymaps/default/Makefile b/keyboards/handwired/MS-sculpt-mobile/keymaps/default/Makefile index 9d3df5964..8b829218b 100644 --- a/keyboards/handwired/MS-sculpt-mobile/keymaps/default/Makefile +++ b/keyboards/handwired/MS-sculpt-mobile/keymaps/default/Makefile @@ -17,5 +17,5 @@ RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend ifndef QUANTUM_DIR - include ../../../../Makefile + include ../../../../../Makefile endif diff --git a/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/config.h b/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/config.h index 9f9b05094..8cf4202cd 100644 --- a/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/config.h +++ b/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/config.h @@ -10,15 +10,15 @@ #ifdef USE_BABLPASTE //define BabblePaste maps // Windows. -#define MS_MODE 0 -#define MAC_MODE 1 +#define MAC_MODE 0 +#define MS_MODE 1 //aka gnome+KDE //#define LINUX_MODE 2 //#define EMACS_MODE 3 -#define VI_MODE 4 -//#define WORDSTAR_MODE 5 +#define VI_MODE 3 // Readline and tmux -#define READMUX_MODE 6 +#define READMUX_MODE 2 +//#define WORDSTAR_MODE 5 #endif // Uncomment if you need more free flash space diff --git a/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/keymap.c b/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/keymap.c index a66282547..3b2f53a0c 100644 --- a/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/keymap.c +++ b/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/keymap.c @@ -104,7 +104,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ ), /* -* |ESC | Win| MAC|RdLn| VI | | | | | | | | | | | | +* |ESC | MAC| Win|RdLn| VI | | | | | | | | | | | | * -------------------------------------------------------------------------------' * | | | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |Bakspace| Del| * --------------------------------------------------------------------------- @@ -192,6 +192,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) /* If this is in the range of BABL macros, call a separate function */ /* Any clever remapping with modifiers should happen here e.g. shift bablkey does opposite*/ #ifdef USE_BABLPASTE + if( id >= BABL_START_NUM && id < (BABL_START_NUM + BABL_NUM_MACROS ) ) { if (record->event.pressed) { // is there a case where this isn't desired? @@ -201,6 +202,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } #endif + // MACRODOWN only works in this function switch(id) { case 0: diff --git a/keyboards/handwired/MS-sculpt-mobile/readme.md b/keyboards/handwired/MS-sculpt-mobile/readme.md index 58029b50d..d435b449f 100644 --- a/keyboards/handwired/MS-sculpt-mobile/readme.md +++ b/keyboards/handwired/MS-sculpt-mobile/readme.md @@ -53,6 +53,6 @@ The Astar mini has all pins exposed , so you can do 18x8 If you want a speaker, LEDs &etc, you'll need to free up a pin. I recommend joining columns R and L to the same pin. -Building - edit rules.mk to set ASTAR=1 or comment it out for teensy2++ +Building - add ASTAR=1 to the compile line or leave out for teensy2++ diff --git a/keyboards/handwired/MS-sculpt-mobile/rules.mk b/keyboards/handwired/MS-sculpt-mobile/rules.mk index 34ac78da8..680389c84 100644 --- a/keyboards/handwired/MS-sculpt-mobile/rules.mk +++ b/keyboards/handwired/MS-sculpt-mobile/rules.mk @@ -1,10 +1,10 @@ -#CFLAGS=-D ASTAR ## Project specific files SRC= babblePaste.c ifdef ASTAR + CFLAGS=-D ASTAR OPT_DEFS += -DBOOTLOADER_SIZE=4096 MCU = atmega32u4 OPT_DEFS += -DCATERINA_BOOTLOADER @@ -40,7 +40,8 @@ BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE ?= no # Audio output on port C6 -USB ?= /dev/cu.usbmodem1421 +USB ?= /dev/cu.usbmodem14141 + upload: build -- cgit v1.2.3 From 88e862e4728343fab4ed7e8dc44ae5594b702955 Mon Sep 17 00:00:00 2001 From: Stephen Tudor Date: Wed, 8 Mar 2017 16:00:23 -0500 Subject: Update smt keymaps for consistency --- keyboards/lets_split/keymaps/smt/keymap.c | 52 ++++++----- keyboards/planck/keymaps/smt/keymap.c | 56 ++++++------ keyboards/preonic/keymaps/smt/keymap.c | 143 +++++++++++++++++++----------- keyboards/tv44/keymaps/smt/keymap.c | 24 ++--- 4 files changed, 163 insertions(+), 112 deletions(-) (limited to 'keyboards') diff --git a/keyboards/lets_split/keymaps/smt/keymap.c b/keyboards/lets_split/keymaps/smt/keymap.c index 5ba5417a9..b7db699fd 100644 --- a/keyboards/lets_split/keymaps/smt/keymap.c +++ b/keyboards/lets_split/keymaps/smt/keymap.c @@ -28,6 +28,12 @@ enum custom_keycodes { #define _______ KC_TRNS #define XXXXXXX KC_NO +// Custom macros +#define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctrl +#define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift +#define HPR_TAB ALL_T(KC_TAB) // Tap for Tab, hold for Hyper (Super+Ctrl+Alt+Shift) +#define MEH_GRV MEH_T(KC_GRV) // Tap for Backtick, hold for Meh (Ctrl+Alt+Shift) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -42,10 +48,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_QWERTY] = KEYMAP( \ - ALL_T(KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ - CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ - SFT_T(KC_ESC), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT), \ - MEH_T(KC_GRV), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + HPR_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ + CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT, \ + MEH_GRV, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), /* Colemak @@ -60,10 +66,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_COLEMAK] = KEYMAP( \ - ALL_T(KC_TAB), KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \ - CTL_T(KC_ESC), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ - SFT_T(KC_ESC), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT), \ - MEH_T(KC_GRV), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \ + CTL_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT, \ + MEH_GRV, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), /* Dvorak @@ -78,28 +84,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_DVORAK] = KEYMAP( \ - ALL_T(KC_TAB), KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, \ - CTL_T(KC_ESC), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, \ - SFT_T(KC_ESC), KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_T(KC_ENT), \ - MEH_T(KC_GRV), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + HPR_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, \ + CTL_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, \ + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_ENT, \ + MEH_GRV, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), /* Lower * ,-----------------------------------------------------------------------------------. * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | $ | F1 | F2 | F3 | F4 | F5 | F6 | 4 | 5 | 6 | Home |PageUp| + * | $ | F1 | F2 | F3 | F4 | F5 | F6 | 4 | 5 | 6 | | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 | 1 | 2 | 3 | End |PageDn| + * | | F7 | F8 | F9 | F10 | F11 | F12 | 1 | 2 | 3 | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ [_LOWER] = KEYMAP( \ - KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ - KC_DLR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_4, KC_5, KC_6, KC_HOME, KC_PGUP, \ - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_1, KC_2, KC_3, KC_END, KC_PGDN, \ - _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ALL_T(KC_0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ + CTL_T(KC_DLR), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_4, KC_5, KC_6, _______, _______, \ + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_1, KC_2, KC_3, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY ), /* Raise @@ -110,14 +116,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | | | | | | | - | / | = | [ | ] | \ | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | Next | Vol- | Vol+ | Play | + * | | | | | | | | | Home |PageDn|PageUp| End | * `-----------------------------------------------------------------------------------' */ [_RAISE] = KEYMAP( \ - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, \ - _______, _______, _______, _______, _______, _______, KC_UNDS, KC_QUES, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ - _______, _______, _______, _______, _______, _______, KC_MINS, KC_SLSH, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \ - _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ALL_T(KC_TILD), KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, \ + _______, _______, _______, _______, _______, _______, KC_UNDS, KC_QUES, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \ + _______, _______, _______, _______, _______, _______, KC_MINS, KC_SLSH, KC_EQL, KC_LBRC, KC_RBRC, SFT_T(KC_BSLS), \ + _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END ), /* Adjust (Lower + Raise) diff --git a/keyboards/planck/keymaps/smt/keymap.c b/keyboards/planck/keymaps/smt/keymap.c index afc82b49f..2e1c35547 100644 --- a/keyboards/planck/keymaps/smt/keymap.c +++ b/keyboards/planck/keymaps/smt/keymap.c @@ -31,6 +31,12 @@ enum planck_keycodes { #define _______ KC_TRNS #define XXXXXXX KC_NO +// Custom macros +#define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctrl +#define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift +#define HPR_TAB ALL_T(KC_TAB) // Tap for Tab, hold for Hyper (Super+Ctrl+Alt+Shift) +#define MEH_GRV MEH_T(KC_GRV) // Tap for Backtick, hold for Meh (Ctrl+Alt+Shift) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -45,10 +51,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_QWERTY] = { - {ALL_T(KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {SFT_T(KC_ESC), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT)}, - {MEH_T(KC_GRV), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {HPR_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT}, + {MEH_GRV, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Colemak @@ -63,10 +69,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_COLEMAK] = { - {ALL_T(KC_TAB), KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {CTL_T(KC_ESC), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {SFT_T(KC_ESC), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT)}, - {MEH_T(KC_GRV), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {CTL_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT}, + {MEH_GRV, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Dvorak @@ -81,17 +87,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_DVORAK] = { - {ALL_T(KC_TAB), KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, - {CTL_T(KC_ESC), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS}, - {SFT_T(KC_ESC), KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_T(KC_ENT)}, - {MEH_T(KC_GRV), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {HPR_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {CTL_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_ENT}, + {MEH_GRV, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Lower * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | + * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | F1 | F2 | F3 | F4 | F5 | F6 | 4 | 5 | 6 | Home |PageUp| + * | $ | F1 | F2 | F3 | F4 | F5 | F6 | 4 | 5 | 6 | Home |PageUp| * |------+------+------+------+------+------|------+------+------+------+------+------| * | | F7 | F8 | F9 | F10 | F11 | F12 | 1 | 2 | 3 | End |PageDn| * |------+------+------+------+------+------+------+------+------+------+------+------| @@ -99,10 +105,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_LOWER] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, - {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_4, KC_5, KC_6, KC_HOME, KC_PGUP}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_1, KC_2, KC_3, KC_END, KC_PGDN}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} + {ALL_T(KC_0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, + {CTL_T(KC_DLR), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_4, KC_5, KC_6, _______, _______}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_1, KC_2, KC_3, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, /* Raise @@ -113,19 +119,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | | | | | | | - | / | = | [ | ] | \ | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | Next | Vol- | Vol+ | Play | + * | | | | | | | | | Home |PageDn|PageUp| End | * `-----------------------------------------------------------------------------------' */ [_RAISE] = { - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL}, - {_______, _______, _______, _______, _______, _______, KC_UNDS, KC_QUES, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {_______, _______, _______, _______, _______, _______, KC_MINS, KC_SLSH, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} + {ALL_T(KC_TILD), KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL}, + {_______, _______, _______, _______, _______, _______, KC_UNDS, KC_QUES, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, _______, _______, _______, _______, _______, KC_MINS, KC_SLSH, KC_EQL, KC_LBRC, KC_RBRC, SFT_T(KC_BSLS)}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END} }, /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. - * | | Reset| | | | | | | | | | Del | + * | | Reset| | | | | | | | | | Reset| * |------+------+------+------+------+-------------+------+------+------+------+------| * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | * |------+------+------+------+------+------|------+------+------+------+------+------| @@ -135,7 +141,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_ADJUST] = { - {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, + {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET}, {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} diff --git a/keyboards/preonic/keymaps/smt/keymap.c b/keyboards/preonic/keymaps/smt/keymap.c index ba05d9ad5..690feca47 100644 --- a/keyboards/preonic/keymaps/smt/keymap.c +++ b/keyboards/preonic/keymaps/smt/keymap.c @@ -9,15 +9,17 @@ // 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 _DVORAK 0 -#define _QWERTY 1 -#define _LOWER 2 -#define _RAISE 3 +#define _QWERTY 0 +#define _COLEMAK 1 +#define _DVORAK 2 +#define _LOWER 3 +#define _RAISE 4 #define _ADJUST 16 enum preonic_keycodes { - DVORAK = SAFE_RANGE, - QWERTY, + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, LOWER, RAISE, BACKLIT @@ -27,57 +29,84 @@ enum preonic_keycodes { #define _______ KC_TRNS #define XXXXXXX KC_NO +// Custom macros +#define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctrl +#define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift +#define HPR_TAB ALL_T(KC_TAB) // Tap for Tab, hold for Hyper (Super+Ctrl+Alt+Shift) +#define MEH_GRV MEH_T(KC_GRV) // Tap for Backtick, hold for Meh (Ctrl+Alt+Shift) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Dvorak +/* Qwerty * ,-----------------------------------------------------------------------------------. * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | O | E | U | I | D | H | T | N | S | - | + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | ` | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * | ` | Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_DVORAK] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, - {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS}, - {SFT_T(KC_ESC), KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_T(KC_ENT)}, - {ALL_T(KC_GRV), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +[_QWERTY] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {HPR_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT}, + {MEH_GRV, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, -/* Qwerty +/* Colemak * ,-----------------------------------------------------------------------------------. * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * | Esc | A | R | S | T | D | H | N | E | I | O | " | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | ` | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * | ` | Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_QWERTY] = { - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, _______}, - {_______, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {_______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +[_COLEMAK] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {CTL_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT}, + {MEH_GRV, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | - | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ` | Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DVORAK] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {HPR_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {CTL_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_ENT}, + {MEH_GRV, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Lower * ,-----------------------------------------------------------------------------------. * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | + * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | F1 | F2 | F3 | F4 | F5 | F6 | 4 | 5 | 6 | Home |PageUp| + * | $ | F1 | F2 | F3 | F4 | F5 | F6 | 4 | 5 | 6 | Home |PageUp| * |------+------+------+------+------+------|------+------+------+------+------+------| * | | F7 | F8 | F9 | F10 | F11 | F12 | 1 | 2 | 3 | End |PageDn| * |------+------+------+------+------+------+------+------+------+------+------+------| @@ -85,11 +114,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_LOWER] = { - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, - {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_4, KC_5, KC_6, KC_HOME, KC_PGUP}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_1, KC_2, KC_3, KC_END, KC_PGDN}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} + {ALL_T(KC_GRV), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, + {ALL_T(KC_0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, + {CTL_T(KC_DLR), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_4, KC_5, KC_6, _______, _______}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_1, KC_2, KC_3, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, /* Raise @@ -102,24 +131,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | | | | | | | - | / | = | [ | ] | \ | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | Next | Vol- | Vol+ | Play | + * | | | | | | | | | Home |PageDn|PageUp| End | * `-----------------------------------------------------------------------------------' */ [_RAISE] = { - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL}, - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL}, - {_______, _______, _______, _______, _______, _______, KC_UNDS, KC_QUES, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {_______, _______, _______, _______, _______, _______, KC_MINS, KC_SLSH, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} + {ALL_T(KC_TILD), KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL}, + {ALL_T(KC_TILD), KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL}, + {_______, _______, _______, _______, _______, _______, KC_UNDS, KC_QUES, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, _______, _______, _______, _______, _______, KC_MINS, KC_SLSH, KC_EQL, KC_LBRC, KC_RBRC, SFT_T(KC_BSLS)}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END} }, /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | Reset| | | | | | | | | | Del | + * | | Reset| | | | | | | | | | Reset| * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | |Aud on|AudOff|AGnorm|AGswap|Dvorak|Qwerty| | | | + * | | | |Aud on|AudOff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | * |------+------+------+------+------+------|------+------+------+------+------+------| * | |Voice-|Voice+|Mus on|MusOff|MidiOn|MidOff| | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| @@ -128,8 +157,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = { {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, - {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, - {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, DVORAK, QWERTY, _______, _______, _______}, + {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET}, + {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} } @@ -145,8 +174,9 @@ float tone_startup[][2] = { {NOTE_B6, 8} }; -float tone_dvorak[][2] = SONG(DVORAK_SOUND); float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); float tone_goodbye[][2] = SONG(GOODBYE_SOUND); @@ -160,21 +190,30 @@ void persistant_default_layer_set(uint16_t default_layer) { bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case DVORAK: + case QWERTY: if (record->event.pressed) { #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_dvorak, false, 0); + PLAY_NOTE_ARRAY(tone_qwerty, false, 0); #endif - persistant_default_layer_set(1UL<<_DVORAK); + persistant_default_layer_set(1UL<<_QWERTY); } return false; break; - case QWERTY: + case COLEMAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_qwerty, false, 0); + PLAY_NOTE_ARRAY(tone_colemak, false, 0); #endif - persistant_default_layer_set(1UL<<_QWERTY); + persistant_default_layer_set(1UL<<_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_dvorak, false, 0); + #endif + persistant_default_layer_set(1UL<<_DVORAK); } return false; break; diff --git a/keyboards/tv44/keymaps/smt/keymap.c b/keyboards/tv44/keymaps/smt/keymap.c index de5ce03e2..532e74de0 100644 --- a/keyboards/tv44/keymaps/smt/keymap.c +++ b/keyboards/tv44/keymaps/smt/keymap.c @@ -32,8 +32,8 @@ enum planck_keycodes { // Custom macros #define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctrl #define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift -#define HPR_TAB ALL_T(KC_TAB) // Tap for Tab, hold for Hyper -#define ALT_GRV ALT_T(KC_GRV) // Tap for Backtick, hold for Alt +#define HPR_TAB ALL_T(KC_TAB) // Tap for Tab, hold for Hyper (Super+Ctrl+Alt+Shift) +#define ALT_GRV ALT_T(KC_GRV) // Tap for Backtick, hold for Alt (Ctrl+Alt+Shift) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -117,13 +117,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_LOWER] = KEYMAP_TV45( /*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/ - KC_0 , KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL , +ALL_T(KC_0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL , /*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/ - KC_DLR , KC_4, KC_5, KC_6, KC_DOT, KC_PLUS, KC_ASTR, KC_4, KC_5, KC_6, KC_DOT, KC_PGUP , +CTL_T(KC_DLR), KC_4, KC_5, KC_6, KC_DOT, KC_PLUS, KC_ASTR, KC_4, KC_5, KC_6, KC_DOT, KC_PGUP , /*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/ - KC_EQL , KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_SLSH, KC_1, KC_2, KC_3, KC_UP, KC_PGDN , +SFT_T(KC_EQL), KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_SLSH, KC_1, KC_2, KC_3, KC_UP, SFT_T(KC_PGDN), /*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/ - BACKLIT , _______ , _______ , KC_HOME , KC_END , _______ , KC_LEFT, KC_DOWN, KC_RGHT ), +ALT_T(BACKLIT), _______ , _______ , KC_HOME , KC_END , _______ , KC_LEFT, KC_DOWN, KC_RGHT ), /*`---------+---------------+---------+-------^^^------+-------^^^-------+----------+--------+--------+--------------'*/ /* Raise @@ -139,18 +139,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_RAISE] = KEYMAP_TV45( /*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/ - KC_TILD,KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL , +ALL_T(KC_TILD),KC_EXLM,KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL , /*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/ - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_QUES, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE , +CTL_T(KC_F1), KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_QUES, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE , /*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/ - KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MINS, KC_SLSH, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS , + SFT_T(KC_F7), KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MINS, KC_SLSH, KC_EQL, KC_LBRC, KC_RBRC, SFT_T(KC_BSLS), /*|----------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`---------------|*/ - BACKLIT , _______ , _______ , KC_MPLY , KC_MNXT , _______ , KC_MUTE, KC_VOLD, KC_VOLU ), +ALT_T(BACKLIT), _______ , _______ , KC_MPLY , KC_MNXT , _______ , KC_MUTE, KC_VOLD, KC_VOLU ), /*`---------+---------------+---------+-------^^^------+-------^^^-------+----------+--------+--------+--------------'*/ /* Adjust (Lower + Raise) * ,---------+------+------+------+------+------+------+------+------+------+------+---------. - * | | Reset| | | | | | | | | | Del | + * | | Reset| | | | | | | | | | Reset | * |---------`------`------`------`------`------`------`------`------`------`------`---------| * | | | | | |AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | * |----------`------`------`------`------`------`------`------`------`------`------`--------| @@ -161,7 +161,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = KEYMAP_TV45( /*,--------+-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------.*/ - _______, RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL , + _______, RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET , /*|--------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`-----------------|*/ _______ ,_______, _______, _______, _______, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______ , /*|---------`-------`--------`--------`--------`--------`--------`--------`--------`--------`--------`----------------|*/ -- cgit v1.2.3 From b5bfb5104b63766ab9a54509302a3f4b0b1d7b16 Mon Sep 17 00:00:00 2001 From: milestogo Date: Wed, 8 Mar 2017 15:48:39 -0800 Subject: docs for babblepaste --- .../handwired/MS-sculpt-mobile/babblePaste.txt | 586 ++++----------------- .../MS-sculpt-mobile/keymaps/milestogo/keymap.c | 10 +- 2 files changed, 115 insertions(+), 481 deletions(-) (limited to 'keyboards') diff --git a/keyboards/handwired/MS-sculpt-mobile/babblePaste.txt b/keyboards/handwired/MS-sculpt-mobile/babblePaste.txt index 6170ec7af..cf75e153e 100644 --- a/keyboards/handwired/MS-sculpt-mobile/babblePaste.txt +++ b/keyboards/handwired/MS-sculpt-mobile/babblePaste.txt @@ -1,489 +1,123 @@ -/* A library to output the right key shortcut in any common app. -Given a global variable babble_mode to show the environment and a -key that calls the paste macro, do the right type of paste. -Setting the context is done by another macro, or TBD interaction with the host. + BabblePaste is a library of common macros used to make sure that +you can have one "paste" button on one layer, and it will do the +right thing on any OS or app. Windows=Ctrl-V. Mac = Command-V and so on. -Huge thanks to https://en.wikipedia.org/wiki/Table_of_keyboard_shortcuts -and https://github.com/qmk/qmk_firmware/blob/master/keyboards/planck/keymaps/jeebak/keymap.c -*/ +The babblepaste library looks for the current status in a babble_mode global variable. +To switch modes, run the switch_babble_mode() function, or a pre defined macro. +Currently supported are Windows, OS X, Gnome/kde, Emacs, VI and readline, +across 42+ common macro actions. -#include "eeconfig.h" +###To use the library +1) Paste the following into your config.h. -// Comment out anything you will never use. -// Windows. -#define MS_MODE 0 -#define MAC_MODE 1 -//aka gnome+KDE -#define LINUX_MODE 2 -#define EMACS_MODE 3 -#define VI_MODE 4 -//#define WORDSTAR_MODE 5 +//////Begin////// +#define USE_BABLPASTE 1 + +#ifdef USE_BABLPASTE +/* define BabblePaste maps. Whatever = 0 will be the default. */ +// MAC_MODE 0 +// MS_MODE 1 +// LINUX_MODE 2 +// EMACS_MODE 3 +// VI_MODE 3 // Readline and tmux -#define READMUX 6 +// READMUX_MODE 2 +// WORDSTAR_MODE 5 +#endif -// GLOBAL variable. Sets startup default if no eeppom -char babble_mode = MAC_MODE ; +// Uncomment these to remove options an free up flash space +// This removes everything but cursor movement +// BABL_MOVEMENTONLY +// and this just removes browser shortcuts +// BABL_NOBROWSER +///////End/////// -/* minimum set required for babble: - // Cut & Paste - BABL_UNDO - BABL_REDO - BABL_CUT - BABL_COPY - BABL_PASTE - BABL_SELECT_ALL - - // Movement - BABL_DEL_RIGHT_1C - BABL_DEL_RIGHT_1C - BABL_DEL_LEFT_WORD - BABL_DEL_RIGHT_WORD - BABL_GO_LEFT_1C - BABL_GO_LEFT_WORD - BABL_GO_RIGHT_WORD - BABL_GOTO_START_LINE - BABL_GOTO_START_DOC - BABL_GOTO_END_LINE - BABL_GOTO_END_DOC - BABL_GOTO_NEXT_LINE // down arrow will do. - BABL_GOTO_PREV_LINE // up arrow will do. - BABL_PGDN - BABL_PGUP - - // GUI - BABL_FIND - BABL_FIND_NEXT - BABL_FIND_REPLACE - BABL_RUNAPP - BABL_SWITCH_NEXT - BABL_SWITCH_LAST // previous - BABL_CLOSE_APP - BABL_HELP -*/ +2) Add the following to your keymap in the action_get_macro +//////Begin////// +#ifdef USE_BABLPASTE + if( id >= BABL_START_NUM && id < (BABL_START_NUM + BABL_NUM_MACROS ) ) { + if (record->event.pressed) { // is there a case where this isn't desired? + + babblePaste ( record, id ); + return MACRO_NONE; + } + } +#endif +///////End/////// +3) add Babbelpaste actions to your keymap. See the full list in babblePaste.h, or the +list below +B_L1C // go left 1 char +B_R1C // go Right 1 char + B_L1W //GO_LEFT_1 WORD + B_R1W //BABL_GO_RIGHT_1 WORD + B_GSOL // BABL_GOTO_START of _LINE + B_GEOL // BABL_GOTO_END_LINE + B_GTOP //BABL_GOTO_START_DOC + B_GEND //BABL_GO_END_DOC + B_DOWN //BABL_GO_NEXT_LINE + B_UP // BABL_GO_PREV_LINE + B_PGDN //PGDN + B_PGUP //PGUP +// B_BKSP //backspace so why bother. + B_DEL // DEL_RIGHT_1 Char // usually = Del + B_DLW // DEL_LEFT_ 1 WORD) + B_DRW //DEL_RIGHT_1 WORD + B_DEOL // delete from cursor to end of line + B_DSOL // delete from cursor to begining line + B_UNDO //UNDO + B_REDO // REDO + B_CUT // CUT) + B_COPY // COPY) + B_PAST // PASTE) + B_SELA // SELECT_ALL + B_FIND // FIND) + B_FINDN //FIND_NEXT) + B_FINDR // FIND_REPLACE) + B_RAPP // open application launcher + B_NAPP // switch to next app + B_PAPP // switch to previous app + B_CAPP // CLOSE_APP) + B_HELP // HELP) + B_NTAB // BROWSER_NEW_TAB) + B_CTAB //BROWSER_CLOSE_TAB) + B_ROTB //BROWSER_REOPEN_LAST_TAB) + B_NXTB //BROWSER_NEXT_TAB) + B_PTAB //BROWSER_PREV_TAB) + B_NURL //BROWSER_jump to URL_BAR) + B_BFWD // BROWSER_FORWARD (in history) + B_BBAK //BROWSER_BACK (in history) + B_BFND // BROWSER_FIND) + B_BOOK //BROWSER_New BOOKMARK) + B_BDEV //BROWSER_ Open DEV_TOOLS) // hard one to remember + B_BRLD // BROWSER_RELOAD Page + B_BFUlL // BROWSER_FULLSCREEN) + B_ZMIN // BROWSER_ZOOM_IN) + B_ZMOT //BROWSER_ZOOM_OUT) -static macro_t *babblePaste (keyrecord_t *record, uint16_t shortcut) { - switch(babble_mode) { - -#ifdef MS_MODE - case MS_MODE: - switch(shortcut) { - - case BABL_UNDO: - return MACRO( D(LCTRL), T(Z), U(LCTRL), END ); - case BABL_REDO: - return MACRO( D(LCTRL), T(Y), U(LCTRL), END ); - case BABL_CUT: - return MACRO( D(LCTRL), T(X), U(LCTRL), END ); - case BABL_COPY: - return MACRO( D(LCTRL), T(C), U(LCTRL), END ); - case BABL_PASTE: - return MACRO( D(LCTRL), T(V), U(LCTRL), END ); - case BABL_SELECT_ALL: - return MACRO( D(LCTRL), T(A), U(LCTRL), END ); - case BABL_DEL_RIGHT_1C: - return MACRO( D(DEL), END ); - case BABL_DEL_LEFT_WORD: - return MACRO( D(LCTRL), T(BSPACE), U(LCTRL), END ); - case BABL_DEL_RIGHT_WORD: - return MACRO( D(LCTRL), T(DEL), U(LCTRL), END ); - case BABL_GO_LEFT_1C: - return MACRO( T(LEFT), END ); - case BABL_GO_RIGHT_1C: - return MACRO( T(RIGHT), END ); - case BABL_GO_LEFT_WORD: - return MACRO( D(LCTRL), T(LEFT), U(LCTRL), END ); - case BABL_GO_RIGHT_WORD: - return MACRO( D(LCTRL), T(RIGHT), U(LCTRL), END ); - case BABL_GOTO_START_LINE: - return MACRO( T(HOME), END ); - case BABL_GOTO_START_DOC: - return MACRO( D(LCTRL),T(HOME), U(LCTRL),END ); - case BABL_GOTO_END_LINE: - return MACRO( T(END), END ); - case BABL_GOTO_END_DOC: - return MACRO( D(LCTRL),T(END), U(LCTRL),END ); - case BABL_GOTO_NEXT_LINE: - return MACRO( T(DOWN), END ); - case BABL_GOTO_PREV_LINE: - return MACRO( T(UP), END ); - case BABL_PGDN: - return MACRO( T(PGDN), END ); - case BABL_PGUP: - return MACRO( T(PGUP), END ); - case BABL_FIND: - return MACRO( D(LCTRL),T(F), U(LCTRL),END ); - case BABL_FIND_NEXT: - return MACRO( T(F3),END ); - case BABL_FIND_REPLACE: - return MACRO( D(LCTRL),T(H), U(LCTRL),END ); - case BABL_RUNAPP: - return MACRO( D(LGUI),T(R), U(LGUI),END ); - case BABL_SWITCH_APP_NEXT: - return MACRO( D(LALT),T(TAB), U(LALT),END ); - case BABL_SWITCH_APP_LAST: - return MACRO( D(LSFT),D(LALT),T(TAB), U(LALT), U(LSFT),END ); - case BABL_CLOSE_APP: - return MACRO( D(LALT),T(F4), U(LALT),END ); - case BABL_HELP: - return MACRO( T(F1),END ); - break; - - return MACRO_NONE; - } - -#endif -#ifdef LINUX_MODE - case LINUX_MODE: - switch(shortcut) { - - case BABL_UNDO: - return MACRO( D(LCTRL), T(Z), U(LCTRL), END ); - case BABL_REDO: - return MACRO( D(LCTRL), T(Y), U(LCTRL), END ); - case BABL_CUT: - return MACRO( D(LCTRL), T(X), U(LCTRL), END ); - case BABL_COPY: - return MACRO( D(LCTRL), T(C), U(LCTRL), END ); - case BABL_PASTE: - return MACRO( D(LCTRL), T(V), U(LCTRL), END ); - case BABL_SELECT_ALL: - return MACRO( D(LCTRL), T(A), U(LCTRL), END ); - case BABL_DEL_RIGHT_1C: - return MACRO( D(DEL), END ); - case BABL_DEL_LEFT_WORD: - return MACRO( D(LCTRL), T(BSPACE), U(LCTRL), END ); - case BABL_DEL_RIGHT_WORD: - return MACRO( D(LCTRL), T(DEL), U(LCTRL), END ); - case BABL_GO_LEFT_1C: - return MACRO( T(LEFT), END ); - case BABL_GO_RIGHT_1C: - return MACRO( T(RIGHT), END ); - case BABL_GO_LEFT_WORD: - return MACRO( D(LCTRL), T(LEFT), U(LCTRL), END ); - case BABL_GO_RIGHT_WORD: - return MACRO( D(LCTRL), T(RIGHT), U(LCTRL), END ); - case BABL_GOTO_START_LINE: - return MACRO( T(HOME), END ); - case BABL_GOTO_START_DOC: - return MACRO( D(LCTRL),T(HOME), U(LCTRL),END ); - case BABL_GOTO_END_LINE: - return MACRO( T(END), END ); - case BABL_GOTO_END_DOC: - return MACRO( D(LCTRL),T(END), U(LCTRL),END ); - case BABL_GOTO_NEXT_LINE: - return MACRO( T(DOWN), END ); - case BABL_GOTO_PREV_LINE: - return MACRO( T(UP), END ); - case BABL_PGDN: - return MACRO( T(PGDN), END ); - case BABL_PGUP: - return MACRO( T(PGUP), END ); - case BABL_FIND: - return MACRO( D(LCTRL),T(F), U(LCTRL),END ); - case BABL_FIND_NEXT: - /* return MACRO( T(F3),END ); KDE */ - return MACRO( D(LCTRL),T(G), U(LCTRL),END ); // Gnome*/ - case BABL_FIND_REPLACE: - /* return MACRO( D(LCTRL),T(R), U(LCTRL),END ); KDE */ - return MACRO( D(LCTRL),T(H), U(LCTRL),END ); // Gnome*/ - case BABL_RUNAPP: - return MACRO( D(LALT),T(F2), U(LALT),END ); - case BABL_SWITCH_APP_NEXT: - return MACRO( D(LCTL),T(TAB), U(LCTL),END ); - case BABL_SWITCH_APP_LAST: - return MACRO( D(LSFT),D(LCTL),T(TAB), U(LCTL), U(LSFT),END ); - case BABL_CLOSE_APP: - return MACRO( D(LALT),T(F4), U(LALT),END ); - case BABL_HELP: - return MACRO_NONE; - break; - - return MACRO_NONE; - } - -#endif - - - -#ifdef MAC_MODE - case MAC_MODE: - switch(shortcut) { - - case BABL_UNDO: - return MACRO( D(LGUI), T(Z), U(LGUI), END ); - case BABL_REDO: - return MACRO( D(LSFT),D(LGUI), T(Z), U(LSFT),U(LGUI), END ); - case BABL_CUT: - return MACRO( D(LGUI), T(X), U(LGUI), END ); - case BABL_COPY: - return MACRO( D(LGUI), T(C), U(LGUI), END ); - case BABL_PASTE: - return MACRO( D(LGUI), T(V), U(LGUI), END ); - case BABL_SELECT_ALL: - return MACRO( D(LGUI), T(A), U(LGUI), END ); - case BABL_DEL_RIGHT_1C: - return MACRO( D(DEL), END ); - case BABL_DEL_LEFT_WORD: - return MACRO( D(LALT), T(BSPACE), U(LALT), END ); - case BABL_DEL_RIGHT_WORD: - return MACRO( D(LALT), T(DEL), U(LALT), END ); - case BABL_GO_LEFT_1C: - return MACRO( T(LEFT), END ); - case BABL_GO_RIGHT_1C: - return MACRO( T(RIGHT), END ); - case BABL_GO_LEFT_WORD: - return MACRO( D(LALT), T(LEFT), U(LALT), END ); - case BABL_GO_RIGHT_WORD: - return MACRO( D(LALT), T(RIGHT), U(LALT), END ); - case BABL_GOTO_START_LINE: - return MACRO( D(LGUI), T(LEFT), U(LGUI), END ); - case BABL_GOTO_START_DOC: - return MACRO( D(LGUI),T(UP), U(LGUI),END ); - case BABL_GOTO_END_LINE: - return MACRO( D(LGUI), T(RIGHT), U(LGUI), END ); - case BABL_GOTO_END_DOC: - return MACRO( D(LGUI),T(DOWN), U(LGUI),END ); - case BABL_GOTO_NEXT_LINE: - return MACRO( T(DOWN), END ); - case BABL_GOTO_PREV_LINE: - return MACRO( T(UP), END ); - case BABL_PGDN: - return MACRO( D(LALT), T(DOWN), U(LALT), END ); - case BABL_PGUP: - return MACRO( D(LALT), T(UP), U(LALT), END ); - case BABL_FIND: - return MACRO( D(LGUI),T(F), U(LGUI),END ); - case BABL_FIND_NEXT: - return MACRO( D(LGUI),T(G), U(LGUI),END ); - case BABL_FIND_REPLACE: - return MACRO( D(LGUI),T(F), U(LGUI),END ); - case BABL_RUNAPP: - return MACRO( D(LGUI),T(R), U(LGUI),END ); - case BABL_SWITCH_APP_NEXT: - return MACRO( D(LGUI),T(TAB), U(LGUI),END ); - case BABL_SWITCH_APP_LAST: - return MACRO( D(LSFT),D(LGUI),T(TAB), U(LGUI), U(LSFT),END ); - case BABL_CLOSE_APP: - return MACRO( D(LGUI),T(Q), U(LGUI),END ); - case BABL_HELP: - return MACRO( D(LSFT),D(LGUI),T(SLASH), U(LGUI), U(LSFT),END ); - break; - - return MACRO_NONE; - } - -#endif - -#ifdef EMACS_MODE - case EMACS_MODE: - switch(shortcut) { -//probably should allow meta to not be ALT - case BABL_UNDO: - return MACRO( D(LCTL), T(X), U(LCTL),T(C), END ); - case BABL_REDO: - return MACRO( D(LCTL), T(X), U(LCTL),T(C), END ); // arguably - case BABL_CUT: - return MACRO( D(LCTL), T(W), U(LCTL), END ); - case BABL_COPY: - return MACRO( D(LALT), T(W), U(LALT), END ); - case BABL_PASTE: - return MACRO( D(LCTL), T(Y), U(LCTL), END ); - case BABL_SELECT_ALL: - return MACRO(D(LCTL), T(X), U(LCTL),T(H), END ); - case BABL_DEL_RIGHT_1C: - return MACRO( D(LCTL), T(D), U(LCTL),END ); - case BABL_DEL_LEFT_WORD: - return MACRO( D(LCTL), T(BSPACE), U(LCTL), END ); - case BABL_DEL_RIGHT_WORD: - return MACRO( D(LALT), T(D), U(LALT), END ); - case BABL_GO_LEFT_1C: - return MACRO( T(LEFT), END ); - case BABL_GO_RIGHT_1C: - return MACRO( T(RIGHT), END ); - case BABL_GO_LEFT_WORD: - return MACRO( D(LALT), T(B), U(LALT), END ); - case BABL_GO_RIGHT_WORD: - return MACRO( D(LALT), T(F), U(LALT), END ); - case BABL_GOTO_START_LINE: - return MACRO( D(LCTRL), T(A), U(LCTRL), END ); - case BABL_GOTO_START_DOC: - return MACRO( D(LALT), D(LSFT), T(COMM),U(LSFT), U(LALT) ,END ); - case BABL_GOTO_END_LINE: - return MACRO( D(LCTRL), T(E), U(LCTRL), END ); - case BABL_GOTO_END_DOC: - return MACRO( D(LALT), D(LSFT), T(DOT),U(LSFT), U(LALT) ,END ); - case BABL_GOTO_NEXT_LINE: - return MACRO( D(LCTRL), T(N), U(LCTRL), END ); - case BABL_GOTO_PREV_LINE: - rreturn MACRO( D(LCTRL), T(P), U(LCTRL), END ); - case BABL_PGDN: - return MACRO(D(LCTRL), T(V), U(LCTRL), END ); - case BABL_PGUP: - return MACRO( D(LALT), T(V), U(LALT), END ); - case BABL_FIND: - return MACRO( D(LCTRL), T(S), U(LCTRL),END ); - case BABL_FIND_NEXT: - return MACRO( D(LCTRL), T(S), U(LCTRL),END ); - case BABL_FIND_REPLACE: - return MACRO( D(LALT),D(LSFT), T(5),U(LSFT), U(LALT), END ); - case BABL_RUNAPP: - return MACRO( D(LALT), T(X), U(LALT),T(S),T(H),T(E),T(L),T(L),END );// arguably - case BABL_SWITCH_APP_NEXT: - return MACRO( D(LCTL), T(X), U(LCTL),T(RIGHT), END ); // arguably - case BABL_SWITCH_APP_LAST: - return MACRO( D(LCTL), T(X), U(LCTL),T(LEFT), END ); // arguably - case BABL_CLOSE_APP: - return MACRO(D(LCTL), T(X), U(LCTL),T(C),END ); - case BABL_HELP: - return MACRO( D(LCTL),T(H), U(LCTL),T(A),END); // start search in help - break; - - return MACRO_NONE; - } - -#endif -#ifdef VI_MODE - case VI_MODE: - switch(shortcut) { -//assume esc is already called - case BABL_UNDO: - return MACRO( T(U), END ); - case BABL_REDO: - return MACRO( D(LCTL), T(R), U(LCTL), END ); - case BABL_CUT: - return MACRO( T(X), END ); - case BABL_COPY: - return MACRO( T(Y),END ); - case BABL_PASTE: - return MACRO( T(P), END ); - case BABL_SELECT_ALL: - return MACRO( T(COLN),T(PERC),T(Y), END ); // wrong but helpful? - case BABL_DEL_RIGHT_1C: - return MACRO( T(X),END ); - case BABL_DEL_LEFT_WORD: - return MACRO( T(D),T(G),T(E),END ); - case BABL_DEL_RIGHT_WORD: - return MACRO( T(D),T(W),END ); - case BABL_GO_LEFT_1C: - return MACRO( T(H), END ); - case BABL_GO_RIGHT_1C: - return MACRO( T(L), END ); - case BABL_GO_LEFT_WORD: - return MACRO( T(B),END ); - case BABL_GO_RIGHT_WORD: - return MACRO( T(W), END ); - case BABL_GOTO_START_LINE: - return MACRO( T(CIRC), END ); - case BABL_GOTO_START_DOC: - return MACRO( T(G),T(G) ,END ); - case BABL_GOTO_END_LINE: - return MACRO( T(DLR), END ); - case BABL_GOTO_END_DOC: - return MACRO( D(LSFT), T(G),U(LSFT), ,END ); - case BABL_GOTO_NEXT_LINE: - return MACRO( T(J), END ); - case BABL_GOTO_PREV_LINE: - rreturn MACRO( T(K), END ); - case BABL_PGDN: - return MACRO(D(LCTRL), T(F), U(LCTRL), END ); - case BABL_PGUP: - return MACRO( D(LCTRL), T(B), U(LCTRL), END ); - case BABL_FIND: - return MACRO( T(SLASH),END ); - case BABL_FIND_NEXT: - return MACRO( T(N),END ); - case BABL_FIND_REPLACE: - return MACRO( D(LALT),D(LSFT), T(5),U(LSFT), U(LALT), END ); - case BABL_RUNAPP: - return MACRO_NONE; - case BABL_SWITCH_APP_NEXT: - return MACRO_NONE; - case BABL_SWITCH_APP_LAST: - return MACRO_NONE; - case BABL_CLOSE_APP: - return MACRO(T(COLN), T(Q), T(EXLM),END ); - case BABL_HELP: - return MACRO(T(COLN),T(H),END); // start search in help - break; - - return MACRO_NONE; - } - -#endif -#ifdef READMUX_MODE -// I havent decided how much to do bash and how much tmux - case READMUX_MODE: - switch(shortcut) { - case BABL_UNDO: - return MACRO( D(LALT), T(R), U(LALT) , END ); - case BABL_REDO: - return MACRO( D(LCTL), T(X), U(LCTL),T(C), END ); // arguably - case BABL_CUT: - return MACRO( D(LCTL), T(K), U(LCTL), END ); // wrong half the time - case BABL_COPY: - return MACRO_NONE; - case BABL_PASTE: - return MACRO( D(LCTL), T(Y), U(LCTL), END ); - case BABL_SELECT_ALL: - return MACRO(D(LCTL), T(A), T(K), T(Y), U(LCTL) , END ); // should this be tmux all? - case BABL_DEL_RIGHT_1C: - return MACRO( D(LCTL), T(D), U(LCTL),END ); - case BABL_DEL_LEFT_WORD: - return MACRO( D(LCTL), T(W), U(LCTL), END ); - case BABL_DEL_RIGHT_WORD: - return MACRO( D(LALT), T(D), U(LALT), END ); - case BABL_GO_LEFT_1C: - return MACRO( T(LEFT), END ); - case BABL_GO_RIGHT_1C: - return MACRO( T(RIGHT), END ); - case BABL_GO_LEFT_WORD: - return MACRO( D(LALT), T(B), U(LALT), END ); - case BABL_GO_RIGHT_WORD: - return MACRO( D(LALT), T(F), U(LALT), END ); - case BABL_GOTO_START_LINE: - return MACRO( D(LCTRL), T(A), U(LCTRL), END ); - case BABL_GOTO_START_DOC: - return MACRO_NONE; // tmux? - case BABL_GOTO_END_LINE: - return MACRO( D(LCTRL), T(E), U(LCTRL), END ); - case BABL_GOTO_END_DOC: - return MACRO_NONE; // tmux? - case BABL_GOTO_NEXT_LINE: - return MACRO( D(LCTRL), T(N), U(LCTRL), END ); - case BABL_GOTO_PREV_LINE: - return MACRO( D(LCTRL), T(P), U(LCTRL), END ); - case BABL_PGDN: - return MACRO( T(PGDN), END ); - case BABL_PGUP: - return MACRO( T(PGUP), END ); - case BABL_FIND: - return MACRO( D(LCTRL), T(R), U(LCTRL), END ); // search history - case BABL_FIND_NEXT: - eturn MACRO( D(LCTRL), T(S), U(LCTRL), END ); - case BABL_FIND_REPLACE: - return MACRO_NONE; // tmux? - case BABL_RUNAPP: - return MACRO( D(LCTRL), T(B), U(LCTRL), T(C),END ); //tmux - case BABL_SWITCH_APP_NEXT: - return MACRO( D(LCTRL), T(B), U(LCTRL), T(N),END ); //tmux - case BABL_SWITCH_APP_LAST: - return MACRO( D(LCTRL), T(B), U(LCTRL), T(P),END ); //tmux - case BABL_CLOSE_APP: - return MACRO( D(LCTRL), T(B), U(LCTRL), T(D),END); // usually what I want - break; - case BABL_HELP: - return MACRO_NONE; - break; - - return MACRO_NONE; - } - -#endif - return MACRO_NONE; -} \ No newline at end of file +#### Development notes +-Why a new function? Because it would make the keymap too ugly to put it there. +-Why not return the macro to action_get_macro? Because I kept running into scope problems +and pointers to the wrong type. +-Why not an array of arrays as a lookup instead of a function? That would allow you +to store the lookup table in PROGMEM. True, but that takes more pre-processor skill +than I had. + +-Have you tested this on every platform? No. Submit a patch. + + +### Next steps for someone. +Make it easier to pair macros with modifiers. So key foo will jump to start of line, and +Shift(foo) will jump to the first tab in a browser. + +## Thanks + +Thanks to https://en.wikipedia.org/wiki/Table_of_keyboard_shortcuts +and https://github.com/qmk/qmk_firmware/blob/master/keyboards/planck/keymaps/jeebak/keymap.c +And of course QMK... + diff --git a/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/keymap.c b/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/keymap.c index 3b2f53a0c..395a9fb47 100644 --- a/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/keymap.c +++ b/keyboards/handwired/MS-sculpt-mobile/keymaps/milestogo/keymap.c @@ -100,7 +100,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, \ M(VIBRK), KC_CIRC, KC_LCBR, KC_RCBR,KC_AT, KC_PERC, ____, KC_LBRC,KC_LPRN,KC_RPRN,KC_UNDS, ____, ____, ____,\ ____, KC_EXLM, KC_HASH, KC_0, KC_EQL, KC_LCBR, KC_RCBR,KC_MINS,KC_1, KC_PLUS,KC_RBRC, KC_GRV, ____, ____,\ - ____, KC_SCLN, KC_TILDE, KC_COLN, KC_TILDE, KC_PIPE, KC_DLR, KC_ASTR, ____, KC_DOT , KC_SLSH, ____, ____, ____,\ + ____, KC_SCLN, KC_TILDE, KC_COLN, KC_TILDE, KC_PIPE, KC_DLR, KC_ASTR, ____, KC_DOT , KC_SLSH, ____, ____, ____,\ ____, ____, ____, ____, ____, ____, ____, ____, ____, ____ ), /* @@ -108,11 +108,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * -------------------------------------------------------------------------------' * | | | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |Bakspace| Del| * --------------------------------------------------------------------------- -* | tab | q | w |Find| |pTab |DSOL|DelW| Up |DelW|DEOL| [ | ] | \ | | +* | tab | | |Find| |pTab |DSOL|DelW| Up |DelW|DEOL| [ | ] | \ | | * -------------------------------------------------------------------------------' -* |Bak/Mov| a | s | d | |nTab |GSOL| <- | Dwn | -> | EOL | ' | enter |PgUp| +* |Bak/Mov| | | | |nTab |GSOL| <- | Dwn | -> | EOL | ' | enter |PgUp| * -------------------------------------------------------------------------------- -* |Lsft |Undo| Cut|Copy|Pste| b | n | m | , | . | / | Rsft| Up| PgDn| +* |Lsft |Undo| Cut|Copy|Pste| | | | | | / | Rsft| Up| PgDn| * --------------------------------------------------------------------------------- * |Lctl |Lgui |Lalt | Space/Sym | GUI | Sym | Rctl |Left|Down|Rght| * --------------------------------------------------------------------------------- @@ -189,7 +189,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { -/* If this is in the range of BABL macros, call a separate function */ +/* If id is in the range of BABL macros, call the babl function */ /* Any clever remapping with modifiers should happen here e.g. shift bablkey does opposite*/ #ifdef USE_BABLPASTE -- cgit v1.2.3 From 8d4bc714e4e69dd89b0ef7f1bad60e6ca6c0f791 Mon Sep 17 00:00:00 2001 From: Stephen Tudor Date: Wed, 8 Mar 2017 23:16:58 -0500 Subject: Update smt keymap READMEs --- keyboards/lets_split/keymaps/smt/keymap.c | 108 ++++++++++++++--------------- keyboards/lets_split/keymaps/smt/readme.md | 88 +++++++++++++++++++++++ keyboards/planck/keymaps/smt/keymap.c | 4 +- keyboards/planck/keymaps/smt/readme.md | 79 +++++++++++++-------- keyboards/preonic/keymaps/smt/keymap.c | 4 +- keyboards/preonic/keymaps/smt/readme.md | 77 ++++++++++++-------- 6 files changed, 246 insertions(+), 114 deletions(-) create mode 100644 keyboards/lets_split/keymaps/smt/readme.md (limited to 'keyboards') diff --git a/keyboards/lets_split/keymaps/smt/keymap.c b/keyboards/lets_split/keymaps/smt/keymap.c index b7db699fd..c4bdb7ebc 100644 --- a/keyboards/lets_split/keymaps/smt/keymap.c +++ b/keyboards/lets_split/keymaps/smt/keymap.c @@ -37,15 +37,15 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | S | D | F | G | H | J | K | L | ; | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | ` | Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' + * ,-----------------------------------------. ,-----------------------------------------. + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Esc | A | S | D | F | G | | H | J | K | L | ; | " | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | | N | M | , | . | / |Enter | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ` | Ctrl | Alt | GUI |Lower |Space | |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------' `-----------------------------------------' */ [_QWERTY] = KEYMAP( \ HPR_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \ @@ -55,15 +55,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), /* Colemak - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | R | S | T | D | H | N | E | I | O | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | ` | Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' + * ,-----------------------------------------. ,-----------------------------------------. + * | Tab | Q | W | F | P | G | | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Esc | A | R | S | T | D | | H | N | E | I | O | " | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | | K | M | , | . | / |Enter | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ` | Ctrl | Alt | GUI |Lower |Space | |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------' `-----------------------------------------' */ [_COLEMAK] = KEYMAP( \ HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \ @@ -73,15 +73,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), /* Dvorak - * ,-----------------------------------------------------------------------------------. - * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | O | E | U | I | D | H | T | N | S | - | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | ` | Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' + * ,-----------------------------------------. ,-----------------------------------------. + * | Tab | " | , | . | P | Y | | F | G | C | R | L | Bksp | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Esc | A | O | E | U | I | | D | H | T | N | S | - | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ` | Ctrl | Alt | GUI |Lower |Space | |Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------' `-----------------------------------------' */ [_DVORAK] = KEYMAP( \ HPR_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, \ @@ -91,15 +91,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), /* Lower - * ,-----------------------------------------------------------------------------------. - * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | $ | F1 | F2 | F3 | F4 | F5 | F6 | 4 | 5 | 6 | | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 | 1 | 2 | 3 | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' + * ,-----------------------------------------. ,-----------------------------------------. + * | 0 | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | $ | F1 | F2 | F3 | F4 | F5 | | F6 | 4 | 5 | 6 | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | | F12 | 1 | 2 | 3 | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------' `-----------------------------------------' */ [_LOWER] = KEYMAP( \ ALL_T(KC_0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ @@ -109,15 +109,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), /* Raise - * ,-----------------------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | | | | | _ | ? | + | { | } | | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | | | | | | - | / | = | [ | ] | \ | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | Home |PageDn|PageUp| End | - * `-----------------------------------------------------------------------------------' + * ,-----------------------------------------. ,-----------------------------------------. + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | Del | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | _ | ? | + | { | } | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | - | / | = | [ | ] | \ | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | | | Home |PageDn|PageUp| End | + * `-----------------------------------------' `-----------------------------------------' */ [_RAISE] = KEYMAP( \ ALL_T(KC_TILD), KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, \ @@ -127,15 +127,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), /* Adjust (Lower + Raise) - * ,-----------------------------------------------------------------------------------. - * | | Reset| | | | | | | | | | Reset| - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | | | | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | - * `-----------------------------------------------------------------------------------' + * ,-----------------------------------------. ,-----------------------------------------. + * | | Reset| | | | | | | | | | | Reset| + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | |Aud on|Audoff|AGnorm| |AGswap|Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | | | | | | | | | | | | | | + * `-----------------------------------------' `-----------------------------------------' */ [_ADJUST] = KEYMAP( \ _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, \ diff --git a/keyboards/lets_split/keymaps/smt/readme.md b/keyboards/lets_split/keymaps/smt/readme.md new file mode 100644 index 000000000..20bc662f0 --- /dev/null +++ b/keyboards/lets_split/keymaps/smt/readme.md @@ -0,0 +1,88 @@ +# smt's Let's Split keymap + +This keymap is ported from my Planck keymap. + + +## Qwerty + +``` +,-----------------------------------------. ,-----------------------------------------. +| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| Esc | A | S | D | F | G | | H | J | K | L | ; | " | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| Shift| Z | X | C | V | B | | N | M | , | . | / |Enter | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| ` | Ctrl | Alt | GUI |Lower |Space | |Space |Raise | Left | Down | Up |Right | +`-----------------------------------------' `-----------------------------------------' +``` + +## Colemak + +``` +,-----------------------------------------. ,-----------------------------------------. +| Tab | Q | W | F | P | G | | J | L | U | Y | ; | Bksp | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| Esc | A | R | S | T | D | | H | N | E | I | O | " | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| Shift| Z | X | C | V | B | | K | M | , | . | / |Enter | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| ` | Ctrl | Alt | GUI |Lower |Space | |Space |Raise | Left | Down | Up |Right | +`-----------------------------------------' `-----------------------------------------' +``` + +## Dvorak + +``` +,-----------------------------------------. ,-----------------------------------------. +| Tab | " | , | . | P | Y | | F | G | C | R | L | Bksp | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| Esc | A | O | E | U | I | | D | H | T | N | S | - | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| Shift| ; | Q | J | K | X | | B | M | W | V | Z |Enter | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| ` | Ctrl | Alt | GUI |Lower |Space | |Space |Raise | Left | Down | Up |Right | +`-----------------------------------------' `-----------------------------------------' +``` + +## Lower + +``` +,-----------------------------------------. ,-----------------------------------------. +| 0 | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| $ | F1 | F2 | F3 | F4 | F5 | | F6 | 4 | 5 | 6 | | | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| | F7 | F8 | F9 | F10 | F11 | | F12 | 1 | 2 | 3 | | | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| | | | | | | | | | Next | Vol- | Vol+ | Play | +`-----------------------------------------' `-----------------------------------------' +``` + +## Raise + +``` +,-----------------------------------------. ,-----------------------------------------. +| ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | Del | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| | | | | | | | _ | ? | + | { | } | | | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| | | | | | | | - | / | = | [ | ] | \ | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| | | | | | | | | | Home |PageDn|PageUp| End | +`-----------------------------------------' `-----------------------------------------' +``` + +## Adjust (Lower + Raise) + +``` +,-----------------------------------------. ,-----------------------------------------. +| | Reset| | | | | | | | | | | Reset| +|------+------+------+------+------+------| |------+------+------+------+------+------| +| | | |Aud on|Audoff|AGnorm| |AGswap|Qwerty|Colemk|Dvorak| | | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| | | | | | | | | | | | | | +|------+------+------+------+------+------| |------+------+------+------+------+------| +| | | | | | | | | | | | | | +`-----------------------------------------' `-----------------------------------------' +``` diff --git a/keyboards/planck/keymaps/smt/keymap.c b/keyboards/planck/keymaps/smt/keymap.c index 2e1c35547..708f699da 100644 --- a/keyboards/planck/keymaps/smt/keymap.c +++ b/keyboards/planck/keymaps/smt/keymap.c @@ -97,9 +97,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | $ | F1 | F2 | F3 | F4 | F5 | F6 | 4 | 5 | 6 | Home |PageUp| + * | $ | F1 | F2 | F3 | F4 | F5 | F6 | 4 | 5 | 6 | | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 | 1 | 2 | 3 | End |PageDn| + * | | F7 | F8 | F9 | F10 | F11 | F12 | 1 | 2 | 3 | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' diff --git a/keyboards/planck/keymaps/smt/readme.md b/keyboards/planck/keymaps/smt/readme.md index 0e955a574..dc7c9cf9f 100644 --- a/keyboards/planck/keymaps/smt/readme.md +++ b/keyboards/planck/keymaps/smt/readme.md @@ -4,49 +4,70 @@ This keymap is primarily based on the default Planck keymap. Notable differences from the default are: -1. **Dvorak by default** +- **[Mod-Tap](https://github.com/jackhumbert/qmk_firmware/wiki#fun-with-modifier-keys) keys** - I happen to type in Dvorak, and prefer that layer to be the default on my keyboard. This is easy enough to switch around with Qwerty, Colemak, or whatever. + - `Esc/Ctrl` -2. **Right Shift** + I am experimenting with using Left Shift as a mod-tap key for Escape, similar to how I use the Enter key. It's set up like this on my Minivan, so in the interest of consistency... - I use both the left and right shift keys when I type. When I want to modify a key with shift, I hold shift with the hand opposite the one typing the key. In the default keymap, Enter is where shift would be on a standard keyboard layout. Oh, muscle memory. + - `Enter/Shift` - Thankfully, QMK supports [mod-tap](https://github.com/jackhumbert/qmk_firmware/wiki#fun-with-modifier-keys) keys, and this allows me to set the Enter key to send a modifier (MOD_LSFT) when held, and KC_ENT when tapped. Awesome! + I use both the left and right shift keys when I type. When I want to modify a key with shift, I hold shift with the hand opposite the one typing the key. In the default keymap, Enter is where shift would be on a standard keyboard layout. Oh, muscle memory. -3. Escape + - `Tab/Hyper` (Super+Ctrl+Shift+Alt) - I am experimenting with using Left Shift as a mod-tap key for Escape, similar to how I use the Enter key. It's set up like this on my Minivan, so in the interest of consistency... + It's great to be able to use Tab as a custom modifier key. I tend to use [Hyper](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/) commands for various OS-specific operations depending on what machine I'm working on. -4. Backtick + - `Backtick/Meh` (Ctrl+Shift+Alt) - I don't currently have LEDs on any of my keyboards, and even if I did, I don't think I would want their controls on a base layer. + Why use backtick in the lower left corner? I use it as my tmux prefix key, so I need to type it more frequently than most people. Putting it on the base layer works well for me. The "Meh" mapping is just a less-cool "Hyper"; the same, just without Super. - So, why use backtick in the lower left corner? I use it as my tmux prefix key, so I need to type it more frequently than most people. Putting it on the base layer works well for me. +- **Swapped responsibilities of "lower" and "raise" layers** -## Dvorak (default) + I prefer to use symbols via the "raise" layer, and numbers via the "lower" layer. + +- **Removed Plover layer** + + I don't intend to use stenography anytime soon, so Plover just didn't have a place in my keymap. + + +## Qwerty ``` ,-----------------------------------------------------------------------------------. -| Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | +| Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | |------+------+------+------+------+-------------+------+------+------+------+------| -| Esc | A | O | E | U | I | D | H | T | N | S | - | +| Esc | A | S | D | F | G | H | J | K | L | ; | " | |------+------+------+------+------+------|------+------+------+------+------+------| -| Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | +| Shift| Z | X | C | V | B | N | M | , | . | / |Enter | |------+------+------+------+------+------+------+------+------+------+------+------| -| ` | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | +| ` | Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | `-----------------------------------------------------------------------------------' ``` -## Qwerty (same as default) +## Colemak ``` ,-----------------------------------------------------------------------------------. -| Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | +| Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | |------+------+------+------+------+-------------+------+------+------+------+------| -| Esc | A | S | D | F | G | H | J | K | L | ; | " | +| Esc | A | R | S | T | D | H | N | E | I | O | " | |------+------+------+------+------+------|------+------+------+------+------+------| -| Shift| Z | X | C | V | B | N | M | , | . | / |Enter | +| Shift| Z | X | C | V | B | K | M | , | . | / |Enter | +|------+------+------+------+------+------+------+------+------+------+------+------| +| ` | Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | +`-----------------------------------------------------------------------------------' +``` + +## Dvorak + +``` +,-----------------------------------------------------------------------------------. +| Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | +|------+------+------+------+------+-------------+------+------+------+------+------| +| Esc | A | O | E | U | I | D | H | T | N | S | - | +|------+------+------+------+------+------|------+------+------+------+------+------| +| Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | |------+------+------+------+------+------+------+------+------+------+------+------| | ` | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | `-----------------------------------------------------------------------------------' @@ -54,15 +75,15 @@ Notable differences from the default are: ## Lower -This is where I put the number row, a numpad cluster, function keys, and some light navigation via Home/End/PageUp/PageDn. Like the "Raise" layer, the top row is redundant to help with Planck compatibility. +This is where I put the number row, a numpad cluster, function keys, and media controls. ``` ,-----------------------------------------------------------------------------------. -| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | +| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | |------+------+------+------+------+-------------+------+------+------+------+------| -| | F1 | F2 | F3 | F4 | F5 | F6 | 4 | 5 | 6 | Home |PageUp| +| $ | F1 | F2 | F3 | F4 | F5 | F6 | 4 | 5 | 6 | | | |------+------+------+------+------+------|------+------+------+------+------+------| -| | F7 | F8 | F9 | F10 | F11 | F12 | 1 | 2 | 3 | End |PageDn| +| | F7 | F8 | F9 | F10 | F11 | F12 | 1 | 2 | 3 | | | |------+------+------+------+------+------+------+------+------+------+------+------| | | | | | | | | Next | Vol- | Vol+ | Play | `-----------------------------------------------------------------------------------' @@ -70,7 +91,7 @@ This is where I put the number row, a numpad cluster, function keys, and some li ## Raise -As a developer, it makes the most sense for me to group all the commonly-used symbols that don't fit on the main layer. In particular, having the dual-column of parens-braces-brackets really helps a lot. +As a developer, it makes the most sense for me to group all the commonly-used symbols that don't fit on the main layer. In particular, having the dual-column of parens-braces-brackets really helps a lot. I've also added cursorkeys to correspond to the arrows. I haven't completely filled this layer, which leaves room for future mappings and macros. @@ -82,21 +103,21 @@ I haven't completely filled this layer, which leaves room for future mappings an |------+------+------+------+------+------|------+------+------+------+------+------| | | | | | | | - | / | = | [ | ] | \ | |------+------+------+------+------+------+------+------+------+------+------+------| -| | | | | | | | Next | Vol- | Vol+ | Play | +| | | | | | | | | Home |PageDn|PageUp| End | `-----------------------------------------------------------------------------------' ``` ## Adjust (Lower + Raise) -Utility layer. This is where I'd switch to Qwerty, or ~~fool around with~~ adjust the audio/music settings. +Utility layer. This is where I'd switch between Qwerty and Dvorak, ~~fool around with~~ adjust the audio/music settings, or put the Planck into bootloader mode. ``` ,-----------------------------------------------------------------------------------. -| | Reset| | | | | | | | | | Del | +| | Reset| | | | | | | | | | Reset| |------+------+------+------+------+-------------+------+------+------+------+------| -| | | |Aud on|AudOff|AGnorm|AGswap|Dvorak|Qwerty| | | | +| | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | |------+------+------+------+------+------|------+------+------+------+------+------| -| |Voice-|Voice+|Mus on|MusOff|MidiOn|MidOff| | | | | | +| |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | |------+------+------+------+------+------+------+------+------+------+------+------| | | | | | | | | | | | | `-----------------------------------------------------------------------------------' diff --git a/keyboards/preonic/keymaps/smt/keymap.c b/keyboards/preonic/keymaps/smt/keymap.c index 690feca47..a10deb750 100644 --- a/keyboards/preonic/keymaps/smt/keymap.c +++ b/keyboards/preonic/keymaps/smt/keymap.c @@ -106,9 +106,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | $ | F1 | F2 | F3 | F4 | F5 | F6 | 4 | 5 | 6 | Home |PageUp| + * | $ | F1 | F2 | F3 | F4 | F5 | F6 | 4 | 5 | 6 | | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 | 1 | 2 | 3 | End |PageDn| + * | | F7 | F8 | F9 | F10 | F11 | F12 | 1 | 2 | 3 | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' diff --git a/keyboards/preonic/keymaps/smt/readme.md b/keyboards/preonic/keymaps/smt/readme.md index 016da7b01..2ec2603f3 100644 --- a/keyboards/preonic/keymaps/smt/readme.md +++ b/keyboards/preonic/keymaps/smt/readme.md @@ -4,53 +4,76 @@ This keymap is primarily based on the default Preonic keymap, which in turn is d Notable differences from the default are: -1. **Dvorak by default** +- **[Mod-Tap](https://github.com/jackhumbert/qmk_firmware/wiki#fun-with-modifier-keys) keys** - I happen to type in Dvorak, and prefer that layer to be the default on my keyboard. This is easy enough to switch around with Qwerty, Colemak, or whatever. + - `Esc/Ctrl` -2. **Right Shift** + I am experimenting with using Left Shift as a mod-tap key for Escape, similar to how I use the Enter key. It's set up like this on my Minivan, so in the interest of consistency... - I use both the left and right shift keys when I type. When I want to modify a key with shift, I hold shift with the hand opposite the one typing the key. In the default keymap, Enter is where shift would be on a standard keyboard layout. Oh, muscle memory. + - `Enter/Shift` - Thankfully, QMK supports [mod-tap](https://github.com/jackhumbert/qmk_firmware/wiki#fun-with-modifier-keys) keys, and this allows me to set the Enter key to send a modifier (MOD_LSFT) when held, and KC_ENT when tapped. Awesome! + I use both the left and right shift keys when I type. When I want to modify a key with shift, I hold shift with the hand opposite the one typing the key. In the default keymap, Enter is where shift would be on a standard keyboard layout. Oh, muscle memory. -3. Escape + - `Tab/Hyper` (Super+Ctrl+Shift+Alt) - I am experimenting with using Left Shift as a mod-tap key for Escape, similar to how I use the Enter key. It's set up like this on my Minivan, so in the interest of consistency... + It's great to be able to use Tab as a custom modifier key. I tend to use [Hyper](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/) commands for various OS-specific operations depending on what machine I'm working on. -4. Backtick + - `Backtick/Meh` (Ctrl+Shift+Alt) - I don't currently have LEDs on any of my keyboards, and even if I did, I don't think I would want their controls on a base layer. + Why use backtick in the lower left corner? I use it as my tmux prefix key, so I need to type it more frequently than most people. Putting it on the base layer works well for me. The "Meh" mapping is just a less-cool "Hyper"; the same, just without Super. - So, why use backtick in the lower left corner? I use it as my tmux prefix key, so I need to type it more frequently than most people. Putting it on the base layer works well for me. +- **Swapped responsibilities of "lower" and "raise" layers** -## Dvorak (default) + I prefer to use symbols via the "raise" layer, and numbers via the "lower" layer. + +- **Removed Plover layer** + + I don't intend to use stenography anytime soon, so Plover just didn't have a place in my keymap. + + +## Qwerty ``` ,-----------------------------------------------------------------------------------. | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | |------+------+------+------+------+------+------+------+------+------+------+------| -| Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | +| Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | |------+------+------+------+------+-------------+------+------+------+------+------| -| Esc | A | O | E | U | I | D | H | T | N | S | - | +| Esc | A | S | D | F | G | H | J | K | L | ; | " | |------+------+------+------+------+------|------+------+------+------+------+------| -| Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | +| Shift| Z | X | C | V | B | N | M | , | . | / |Enter | |------+------+------+------+------+------+------+------+------+------+------+------| | ` | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | `-----------------------------------------------------------------------------------' ``` -## Qwerty (same as default) +## Colemak ``` ,-----------------------------------------------------------------------------------. | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | |------+------+------+------+------+------+------+------+------+------+------+------| -| Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | +| Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | |------+------+------+------+------+-------------+------+------+------+------+------| -| Esc | A | S | D | F | G | H | J | K | L | ; | " | +| Esc | A | R | S | T | D | H | N | E | I | O | " | |------+------+------+------+------+------|------+------+------+------+------+------| -| Shift| Z | X | C | V | B | N | M | , | . | / |Enter | +| Shift| Z | X | C | V | B | K | M | , | . | / |Enter | +|------+------+------+------+------+------+------+------+------+------+------+------| +| ` | Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | +`-----------------------------------------------------------------------------------' +``` + +## Dvorak + +``` +,-----------------------------------------------------------------------------------. +| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | +|------+------+------+------+------+------+------+------+------+------+------+------| +| Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | +|------+------+------+------+------+-------------+------+------+------+------+------| +| Esc | A | O | E | U | I | D | H | T | N | S | - | +|------+------+------+------+------+------|------+------+------+------+------+------| +| Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | |------+------+------+------+------+------+------+------+------+------+------+------| | ` | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | `-----------------------------------------------------------------------------------' @@ -58,17 +81,17 @@ Notable differences from the default are: ## Lower -This is where I put the number row, a numpad cluster, function keys, and some light navigation via Home/End/PageUp/PageDn. Like the "Raise" layer, the top row is redundant to help with Planck compatibility. +This is where I put the number row, a numpad cluster, function keys, and media controls. Like the "Raise" layer, the top row is redundant to help with Planck compatibility. ``` ,-----------------------------------------------------------------------------------. | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | |------+------+------+------+------+------+------+------+------+------+------+------| -| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | +| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | |------+------+------+------+------+-------------+------+------+------+------+------| -| | F1 | F2 | F3 | F4 | F5 | F6 | 4 | 5 | 6 | Home |PageUp| +| $ | F1 | F2 | F3 | F4 | F5 | F6 | 4 | 5 | 6 | | | |------+------+------+------+------+------|------+------+------+------+------+------| -| | F7 | F8 | F9 | F10 | F11 | F12 | 1 | 2 | 3 | End |PageDn| +| | F7 | F8 | F9 | F10 | F11 | F12 | 1 | 2 | 3 | | | |------+------+------+------+------+------+------+------+------+------+------+------| | | | | | | | | Next | Vol- | Vol+ | Play | `-----------------------------------------------------------------------------------' @@ -76,7 +99,7 @@ This is where I put the number row, a numpad cluster, function keys, and some li ## Raise -As a developer, it makes the most sense for me to group all the commonly-used symbols that don't fit on the main layer. In particular, having the dual-column of parens-braces-brackets really helps a lot. +As a developer, it makes the most sense for me to group all the commonly-used symbols that don't fit on the main layer. In particular, having the dual-column of parens-braces-brackets really helps a lot. I've also added cursorkeys to correspond to the arrows. I haven't completely filled this layer, which leaves room for future mappings and macros. @@ -90,21 +113,21 @@ I haven't completely filled this layer, which leaves room for future mappings an |------+------+------+------+------+------|------+------+------+------+------+------| | | | | | | | - | / | = | [ | ] | \ | |------+------+------+------+------+------+------+------+------+------+------+------| -| | | | | | | | Next | Vol- | Vol+ | Play | +| | | | | | | | | Home |PageDn|PageUp| End | `-----------------------------------------------------------------------------------' ``` ## Adjust (Lower + Raise) -Utility layer. This is where I'd switch to Qwerty, or ~~fool around with~~ adjust the audio/music settings. +Utility layer. This is where I'd switch between Qwerty and Dvorak, ~~fool around with~~ adjust the audio/music settings, or put the Preonic into bootloader mode. ``` ,-----------------------------------------------------------------------------------. | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | |------+------+------+------+------+------+------+------+------+------+------+------| -| | Reset| | | | | | | | | | Del | +| | Reset| | | | | | | | | | Reset| |------+------+------+------+------+-------------+------+------+------+------+------| -| | | |Aud on|AudOff|AGnorm|AGswap|Dvorak|Qwerty| | | | +| | | |Aud on|AudOff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | |------+------+------+------+------+------|------+------+------+------+------+------| | |Voice-|Voice+|Mus on|MusOff|MidiOn|MidOff| | | | | | |------+------+------+------+------+------+------+------+------+------+------+------| -- cgit v1.2.3 From 06e4b3fe1abbc938678a3e3abcddf5658ca5dca2 Mon Sep 17 00:00:00 2001 From: Kevin Hogeland Date: Thu, 9 Mar 2017 02:40:01 -0800 Subject: Colemak layout for Clueboard --- keyboards/clueboard/keymaps/colemak/keymap.c | 83 ++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 keyboards/clueboard/keymaps/colemak/keymap.c (limited to 'keyboards') diff --git a/keyboards/clueboard/keymaps/colemak/keymap.c b/keyboards/clueboard/keymaps/colemak/keymap.c new file mode 100644 index 000000000..6b1fc7c9c --- /dev/null +++ b/keyboards/clueboard/keymaps/colemak/keymap.c @@ -0,0 +1,83 @@ +#include "clueboard.h" + +// Helpful defines +#define GRAVE_MODS (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)|MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI)|MOD_BIT(KC_LALT)|MOD_BIT(KC_RALT)) +#define _______ KC_TRNS + +// 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 _BL 0 +#define _FL 1 +#define _CL 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: Base Layer (Default Layer) + */ +[_BL] = KEYMAP( + F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PGUP, \ + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, \ + KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_NUHS, KC_ENT, \ + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, \ + KC_LCTL, MO(_FL), KC_LGUI,KC_MHEN, KC_SPC,KC_SPC, KC_HENK, KC_RALT, KC_RCTL, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT), + + /* Keymap _FL: Function Layer + */ +[_FL] = KEYMAP( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_CAPS, BL_STEP, \ + _______, _______, _______,_______,_______,_______,_______,KC_HOME,KC_PGDN,KC_PGUP, KC_END, _______, _______, _______, _______, \ + KC_DEL, _______, MO(_CL),_______,_______,_______,_______,KC_LEFT,KC_DOWN,KC_UP, KC_RGHT, _______, _______, _______, \ + _______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, KC_PGUP, \ + _______, _______, _______,_______, _______,_______, _______, _______, _______, MO(_FL), KC_HOME, KC_PGDN, KC_END), + + /* Keymap _CL: Control layer + */ +[_CL] = KEYMAP( + _______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, RGB_TOG, RGB_VAI, \ + _______, _______, _______,_______,RESET, _______,_______,_______,_______,_______, _______, _______, _______, _______, RGB_VAD, \ + _______, _______, MO(_CL),_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, \ + MO(_FL), _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, MO(_FL), RGB_SAI, \ + _______, _______, _______,_______, RGB_MOD, RGB_MOD, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_HUI), +}; + +/* This is a list of user defined functions. F(N) corresponds to item N + of this list. + */ +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_FUNCTION(0), // Calls action_function() +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + static uint8_t mods_pressed; + + switch (id) { + case 0: + /* Handle the combined Grave/Esc key + */ + mods_pressed = get_mods()&GRAVE_MODS; // Check to see what mods are pressed + + if (record->event.pressed) { + /* The key is being pressed. + */ + if (mods_pressed) { + add_key(KC_GRV); + send_keyboard_report(); + } else { + add_key(KC_ESC); + send_keyboard_report(); + } + } else { + /* The key is being released. + */ + if (mods_pressed) { + del_key(KC_GRV); + send_keyboard_report(); + } else { + del_key(KC_ESC); + send_keyboard_report(); + } + } + break; + } +} -- cgit v1.2.3 From 718b9648061be99a82e6dddfdebd3eb2e5386f19 Mon Sep 17 00:00:00 2001 From: Danny Nguyen Date: Tue, 7 Mar 2017 13:30:32 -0500 Subject: Add hexwire layout for Let’s Split --- keyboards/lets_split/keymaps/hexwire/config.h | 29 ++++ keyboards/lets_split/keymaps/hexwire/keymap.c | 230 ++++++++++++++++++++++++++ 2 files changed, 259 insertions(+) create mode 100644 keyboards/lets_split/keymaps/hexwire/config.h create mode 100644 keyboards/lets_split/keymaps/hexwire/keymap.c (limited to 'keyboards') diff --git a/keyboards/lets_split/keymaps/hexwire/config.h b/keyboards/lets_split/keymaps/hexwire/config.h new file mode 100644 index 000000000..cd766cc4f --- /dev/null +++ b/keyboards/lets_split/keymaps/hexwire/config.h @@ -0,0 +1,29 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + + +#define USE_SERIAL + +#define EE_HANDS + + +#ifdef SUBPROJECT_rev1 + #include "../../rev1/config.h" +#endif +#ifdef SUBPROJECT_rev2 + #include "../../rev2/config.h" +#endif \ No newline at end of file diff --git a/keyboards/lets_split/keymaps/hexwire/keymap.c b/keyboards/lets_split/keymaps/hexwire/keymap.c new file mode 100644 index 000000000..403987dbe --- /dev/null +++ b/keyboards/lets_split/keymaps/hexwire/keymap.c @@ -0,0 +1,230 @@ +#include "lets_split.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 _QWERTY 0 +#define _COLEMAK 1 +#define _DVORAK 2 +#define _LOWER 3 +#define _RAISE 4 +#define _FN3 5 +#define _FN4 6 +#define _ADJUST 16 + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + LOWER, + RAISE, + FN3, + FN4, + ADJUST, +}; + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +#define KC_CAPW LGUI(LSFT(KC_3)) // Capture whole screen +#define KC_CPYW LGUI(LSFT(LCTL(KC_3))) // Copy whole screen +#define KC_CAPP LGUI(LSFT(KC_4)) // Capture portion of screen +#define KC_CPYP LGUI(LSFT(LCTL(KC_4))) // Copy portion of screen + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | - | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ` | Ctrl | Alt | GUI |Lower |Space | Bksp |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = KEYMAP( \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, \ + MT(MOD_LCTL,KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT(MOD_LSFT,KC_ENT) , \ + LT(_FN3,KC_GRV), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_BSPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | - | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ` | Ctrl | Alt | GUI |Lower |Space | Bksp |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = KEYMAP( \ + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_MINS, \ + KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ + KC_GRV, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_BSPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Tab | " | , | . | P | Y | F | G | C | R | L | - | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ` | Ctrl | Alt | GUI |Lower |Space | Bksp |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DVORAK] = KEYMAP( \ + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_MINS, \ + KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, \ + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , \ + KC_GRV, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_BSPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ +), + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | | \ | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = KEYMAP( \ + _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, \ + KC_DEL, KC_CAPP, KC_LEFT, KC_RGHT, KC_UP, KC_LBRC, KC_RBRC, KC_P4, KC_P5, KC_P6, KC_PLUS, KC_PIPE, \ + _______, KC_CPYP, _______, _______, KC_DOWN, KC_LCBR, KC_RCBR, KC_P1, KC_P2, KC_P3, KC_MINS, _______, \ + _______, _______, _______, _______, _______, _______, KC_DEL, KC_P0, KC_PDOT, _______, _______, _______ \ +), + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = KEYMAP( \ + _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, \ + KC_DEL, KC_MPRV, KC_MNXT, KC_VOLU, KC_PGUP, KC_UNDS, KC_EQL , KC_HOME, _______, _______, _______, KC_BSLS, \ + _______, KC_MSTP, KC_MPLY, KC_VOLD, KC_PGDN, KC_MINS, KC_PLUS, KC_END, _______, _______, _______, _______, \ + _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______ \ +), + +[_FN3] = KEYMAP( \ + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_UP, KC_F9, KC_F10, KC_F11, \ + _______, _______, _______, _______, _______, KC_F8, KC_F12, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ +), + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = KEYMAP( \ + _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \ + _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ +) + + +}; + +#ifdef AUDIO_ENABLE +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +#endif + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_qwerty, false, 0); + #endif + persistant_default_layer_set(1UL<<_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_colemak, false, 0); + #endif + persistant_default_layer_set(1UL<<_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_dvorak, false, 0); + #endif + persistant_default_layer_set(1UL<<_DVORAK); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case ADJUST: + if (record->event.pressed) { + layer_on(_ADJUST); + } else { + layer_off(_ADJUST); + } + return false; + break; + } + return true; +} \ No newline at end of file -- cgit v1.2.3 From 74c6c3d277bc76c319b5d28d578fbda9009efcbf Mon Sep 17 00:00:00 2001 From: Danny Nguyen Date: Tue, 7 Mar 2017 15:39:59 -0500 Subject: Convert keymap to compact version --- .../lets_split/keymaps/hexwire/compact_keymap.h | 23 +++ keyboards/lets_split/keymaps/hexwire/keymap.c | 193 +++++++++------------ 2 files changed, 107 insertions(+), 109 deletions(-) create mode 100644 keyboards/lets_split/keymaps/hexwire/compact_keymap.h (limited to 'keyboards') diff --git a/keyboards/lets_split/keymaps/hexwire/compact_keymap.h b/keyboards/lets_split/keymaps/hexwire/compact_keymap.h new file mode 100644 index 000000000..d9d063fbf --- /dev/null +++ b/keyboards/lets_split/keymaps/hexwire/compact_keymap.h @@ -0,0 +1,23 @@ +#ifndef COMPACT_KEYMAP_H +#define COMPACT_KEYMAP_H + +#define COMPACT_KEYMAP( \ + k00, k01, k02, k03, k04, k05, k45, k44, k43, k42, k41, k40, \ + k10, k11, k12, k13, k14, k15, k55, k54, k53, k52, k51, k50, \ + k20, k21, k22, k23, k24, k25, k65, k64, k63, k62, k61, k60, \ + k30, k31, k32, k33, k34, k35, k75, k74, k73, k72, k71, k70 \ + ) \ + { \ + { KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05 }, \ + { KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15 }, \ + { KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25 }, \ + { KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35 }, \ + { KC_##k40, KC_##k41, KC_##k42, KC_##k43, KC_##k44, KC_##k45 }, \ + { KC_##k50, KC_##k51, KC_##k52, KC_##k53, KC_##k54, KC_##k55 }, \ + { KC_##k60, KC_##k61, KC_##k62, KC_##k63, KC_##k64, KC_##k65 }, \ + { KC_##k70, KC_##k71, KC_##k72, KC_##k73, KC_##k74, KC_##k75 } \ + } + +#define KC_ KC_TRNS + +#endif \ No newline at end of file diff --git a/keyboards/lets_split/keymaps/hexwire/keymap.c b/keyboards/lets_split/keymaps/hexwire/keymap.c index 403987dbe..bae2e687e 100644 --- a/keyboards/lets_split/keymaps/hexwire/keymap.c +++ b/keyboards/lets_split/keymaps/hexwire/keymap.c @@ -1,13 +1,10 @@ #include "lets_split.h" #include "action_layer.h" #include "eeconfig.h" +#include "compact_keymap.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 _QWERTY 0 #define _COLEMAK 1 #define _DVORAK 2 @@ -28,113 +25,91 @@ enum custom_keycodes { ADJUST, }; -// Fillers to make layering more clear #define _______ KC_TRNS -#define XXXXXXX KC_NO #define KC_CAPW LGUI(LSFT(KC_3)) // Capture whole screen #define KC_CPYW LGUI(LSFT(LCTL(KC_3))) // Copy whole screen #define KC_CAPP LGUI(LSFT(KC_4)) // Capture portion of screen #define KC_CPYP LGUI(LSFT(LCTL(KC_4))) // Copy portion of screen +#define KC_X0 MT(MOD_LCTL, KC_ESC) +#define KC_X1 LOWER +#define KC_X2 RAISE +#define KC_X3 LT(_FN3, KC_GRV) +#define KC_X4 MT(MOD_LSFT, KC_ENT) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Qwerty - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | E | R | T | Y | U | I | O | P | - | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | S | D | F | G | H | J | K | L | ; | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | ` | Ctrl | Alt | GUI |Lower |Space | Bksp |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_QWERTY] = KEYMAP( \ - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, \ - MT(MOD_LCTL,KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT(MOD_LSFT,KC_ENT) , \ - LT(_FN3,KC_GRV), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_BSPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ -), - -/* Colemak - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | F | P | G | J | L | U | Y | ; | - | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | R | S | T | D | H | N | E | I | O | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | ` | Ctrl | Alt | GUI |Lower |Space | Bksp |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_COLEMAK] = KEYMAP( \ - KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_MINS, \ - KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \ - KC_GRV, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_BSPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ -), - -/* Dvorak - * ,-----------------------------------------------------------------------------------. - * | Tab | " | , | . | P | Y | F | G | C | R | L | - | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | O | E | U | I | D | H | T | N | S | / | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | ` | Ctrl | Alt | GUI |Lower |Space | Bksp |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_DVORAK] = KEYMAP( \ - KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_MINS, \ - KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, \ - KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , \ - KC_GRV, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_BSPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ -), - -/* Lower - * ,-----------------------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | | \ | | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ -[_LOWER] = KEYMAP( \ - _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, \ - KC_DEL, KC_CAPP, KC_LEFT, KC_RGHT, KC_UP, KC_LBRC, KC_RBRC, KC_P4, KC_P5, KC_P6, KC_PLUS, KC_PIPE, \ - _______, KC_CPYP, _______, _______, KC_DOWN, KC_LCBR, KC_RCBR, KC_P1, KC_P2, KC_P3, KC_MINS, _______, \ - _______, _______, _______, _______, _______, _______, KC_DEL, KC_P0, KC_PDOT, _______, _______, _______ \ -), - -/* Raise - * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ -[_RAISE] = KEYMAP( \ - _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, \ - KC_DEL, KC_MPRV, KC_MNXT, KC_VOLU, KC_PGUP, KC_UNDS, KC_EQL , KC_HOME, _______, _______, _______, KC_BSLS, \ - _______, KC_MSTP, KC_MPLY, KC_VOLD, KC_PGDN, KC_MINS, KC_PLUS, KC_END, _______, _______, _______, _______, \ - _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______ \ -), - -[_FN3] = KEYMAP( \ - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_UP, KC_F9, KC_F10, KC_F11, \ - _______, _______, _______, _______, _______, KC_F8, KC_F12, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ -), + [_QWERTY] = COMPACT_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + TAB , Q , W , E , R , T , Y , U , I , O , P ,MINS, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + X0 , A , S , D , F , G , H , J , K , L ,SCLN,QUOT, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + LSFT, Z , X , C , V , B , N , M ,COMM,DOT ,SLSH, X4 , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + X3 ,LCTL,LALT,LGUI, X1 ,SPC , BSPC, X2 ,LEFT,DOWN, UP ,RGHT + //`----+----+----+----+----+----' `----+----+----+----+----+----' + ), + + [_COLEMAK] = COMPACT_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + TAB , Q , W , F , P , G , J , L , U , Y ,SCLN,MINS, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + X0 , A , R , S , T , D , H , N , E , I , O ,QUOT, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + LSFT, Z , X , C , V , B , K , M ,COMM,DOT ,SLSH, X4 , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + X3 ,LCTL,LALT,LGUI, X1 ,SPC , BSPC, X2 ,LEFT,DOWN, UP ,RGHT + //`----+----+----+----+----+----' `----+----+----+----+----+----' + ), + + [_DVORAK] = COMPACT_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + TAB ,QUOT,COMM,DOT , P , Y , F , G , C , R , L ,MINS, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + X0 , A , O , E , U , I , D , H , R , N , S ,SLSH, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + LSFT,SCLN, Q , J , K , X , B , M , W , V , Z , X4 , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + X3 ,LCTL,LALT,LGUI, X1 ,SPC , BSPC, X2 ,LEFT,DOWN, UP ,RGHT + //`----+----+----+----+----+----' `----+----+----+----+----+----' + ), + + [_LOWER] = COMPACT_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + DEL ,CAPP,LEFT,RGHT, UP ,LBRC, RBRC, P4 , P5 , P6 ,PLUS,PIPE, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + ,CPYP, , ,DOWN,LCBR, RCBR, P1 , P2 , P3 ,MINS, , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + , , , , , , DEL , P0 ,PDOT, , , + //`----+----+----+----+----+----' `----+----+----+----+----+----' + ), + + [_RAISE] = COMPACT_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + ,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN, , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + DEL ,MPRV,MNXT,VOLU,PGUP,UNDS, EQL ,HOME, , , ,BSLS, + //|----+----+----+----+----+----| |----+----+----+----+----+----| + ,MSTP,MPLY,VOLD,PGDN,MINS, PLUS,END , , , , , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + , , , ,MUTE, , , , , , , + //`----+----+----+----+----+----' `----+----+----+----+----+----' + ), + + [_FN3] = COMPACT_KEYMAP( + //,----+----+----+----+----+----. ,----+----+----+----+----+----. + F12 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + , , , , , , , , , , , , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + , , , , , , , , , , , , + //|----+----+----+----+----+----| |----+----+----+----+----+----| + , , , , , , , , , , , + //`----+----+----+----+----+----' `----+----+----+----+----+----' + ), /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. @@ -147,12 +122,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[_ADJUST] = KEYMAP( \ - _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \ - _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ -) + [_ADJUST] = KEYMAP( \ + _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ + ) }; @@ -227,4 +202,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; } return true; -} \ No newline at end of file +} -- cgit v1.2.3 From 3df35f712eca0fddcd3aabf62de7f32d8a5cb11b Mon Sep 17 00:00:00 2001 From: Danny Nguyen Date: Thu, 9 Mar 2017 09:52:33 -0500 Subject: Add readme for layout --- keyboards/lets_split/keymaps/hexwire/README.md | 108 +++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 keyboards/lets_split/keymaps/hexwire/README.md (limited to 'keyboards') diff --git a/keyboards/lets_split/keymaps/hexwire/README.md b/keyboards/lets_split/keymaps/hexwire/README.md new file mode 100644 index 000000000..2dc044646 --- /dev/null +++ b/keyboards/lets_split/keymaps/hexwire/README.md @@ -0,0 +1,108 @@ +Hexwire's Let's Split Layout +============================ + +### Changes from default layout + +- Main layer + - The right space bar key has been changed to backspace, as I only hit space with my left thumb + - Backtick is at the lower right and also serves goes to the 3rd function layer when held + - Enter key acts as shift when held + - Escape key acts as control when held + - Minus key at upper right +- Lower layer + - Numbers are on the lower layer, to make it easier to use a numpad on the right hand + - Arrow keys + - Straight and curly brackets in the middle two columns + - Screenshot keys for MacOS +- Upper layer + - Symbols are on the upper layer + - Media keys + - Page Up/Down, Home/End +- 3rd function layer + - Function keys + +## Layouts + +### Qwerty + +``` +,----+----+----+----+----+----. ,----+----+----+----+----+----. + TAB , Q , W , E , R , T , Y , U , I , O , P ,MINS, +|----+----+----+----+----+----| |----+----+----+----+----+----| + X0 , A , S , D , F , G , H , J , K , L ,SCLN,QUOT, +|----+----+----+----+----+----| |----+----+----+----+----+----| + LSFT, Z , X , C , V , B , N , M ,COMM,DOT ,SLSH, X4 , +|----+----+----+----+----+----| |----+----+----+----+----+----| + X3 ,LCTL,LALT,LGUI, X1 ,SPC , BSPC, X2 ,LEFT,DOWN, UP ,RGHT +`----+----+----+----+----+----' `----+----+----+----+----+----' +``` + +### Colemak + +``` +,----+----+----+----+----+----. ,----+----+----+----+----+----. + TAB , Q , W , F , P , G , J , L , U , Y ,SCLN,MINS, +|----+----+----+----+----+----| |----+----+----+----+----+----| + X0 , A , R , S , T , D , H , N , E , I , O ,QUOT, +|----+----+----+----+----+----| |----+----+----+----+----+----| + LSFT, Z , X , C , V , B , K , M ,COMM,DOT ,SLSH, X4 , +|----+----+----+----+----+----| |----+----+----+----+----+----| + X3 ,LCTL,LALT,LGUI, X1 ,SPC , BSPC, X2 ,LEFT,DOWN, UP ,RGHT +`----+----+----+----+----+----' `----+----+----+----+----+----' +``` + +### Dvorak + +``` +,----+----+----+----+----+----. ,----+----+----+----+----+----. + TAB ,QUOT,COMM,DOT , P , Y , F , G , C , R , L ,MINS, +|----+----+----+----+----+----| |----+----+----+----+----+----| + X0 , A , O , E , U , I , D , H , R , N , S ,SLSH, +|----+----+----+----+----+----| |----+----+----+----+----+----| + LSFT,SCLN, Q , J , K , X , B , M , W , V , Z , X4 , +|----+----+----+----+----+----| |----+----+----+----+----+----| + X3 ,LCTL,LALT,LGUI, X1 ,SPC , BSPC, X2 ,LEFT,DOWN, UP ,RGHT +`----+----+----+----+----+----' `----+----+----+----+----+----' +``` + +### Lower + +``` +,----+----+----+----+----+----. ,----+----+----+----+----+----. + , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , , +|----+----+----+----+----+----| |----+----+----+----+----+----| + DEL ,CAPP,LEFT,RGHT, UP ,LBRC, RBRC, P4 , P5 , P6 ,PLUS,PIPE, +|----+----+----+----+----+----| |----+----+----+----+----+----| + ,CPYP, , ,DOWN,LCBR, RCBR, P1 , P2 , P3 ,MINS, , +|----+----+----+----+----+----| |----+----+----+----+----+----| + , , , , , , DEL , P0 ,PDOT, , , +`----+----+----+----+----+----' `----+----+----+----+----+----' +``` + +### Raise + +``` +,----+----+----+----+----+----. ,----+----+----+----+----+----. + ,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN, , +|----+----+----+----+----+----| |----+----+----+----+----+----| + DEL ,MPRV,MNXT,VOLU,PGUP,UNDS, EQL ,HOME, , , ,BSLS, +|----+----+----+----+----+----| |----+----+----+----+----+----| + ,MSTP,MPLY,VOLD,PGDN,MINS, PLUS,END , , , , , +|----+----+----+----+----+----| |----+----+----+----+----+----| + , , , ,MUTE, , , , , , , +`----+----+----+----+----+----' `----+----+----+----+----+----' +``` + +### 3rd function layer + +``` +,----+----+----+----+----+----. ,----+----+----+----+----+----. + F12 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 , +|----+----+----+----+----+----| |----+----+----+----+----+----| + , , , , , , , , , , , , +|----+----+----+----+----+----| |----+----+----+----+----+----| + , , , , , , , , , , , , +|----+----+----+----+----+----| |----+----+----+----+----+----| + , , , , , , , , , , , +`----+----+----+----+----+----' `----+----+----+----+----+----' +``` -- cgit v1.2.3 From a8f872e728cde990f7b272306480eedc96a7f3f7 Mon Sep 17 00:00:00 2001 From: Danny Nguyen Date: Thu, 9 Mar 2017 09:21:25 -0500 Subject: Initial commit for handwired numpad --- keyboards/handwired/numpad20/Makefile | 3 + keyboards/handwired/numpad20/config.h | 162 +++++++++++++++++++++ .../handwired/numpad20/keymaps/default/keymap.c | 16 ++ keyboards/handwired/numpad20/numpad20.c | 8 + keyboards/handwired/numpad20/numpad20.h | 20 +++ keyboards/handwired/numpad20/rules.mk | 83 +++++++++++ 6 files changed, 292 insertions(+) create mode 100644 keyboards/handwired/numpad20/Makefile create mode 100644 keyboards/handwired/numpad20/config.h create mode 100644 keyboards/handwired/numpad20/keymaps/default/keymap.c create mode 100644 keyboards/handwired/numpad20/numpad20.c create mode 100644 keyboards/handwired/numpad20/numpad20.h create mode 100644 keyboards/handwired/numpad20/rules.mk (limited to 'keyboards') diff --git a/keyboards/handwired/numpad20/Makefile b/keyboards/handwired/numpad20/Makefile new file mode 100644 index 000000000..191c6bb66 --- /dev/null +++ b/keyboards/handwired/numpad20/Makefile @@ -0,0 +1,3 @@ +ifndef MAKEFILE_INCLUDED + include ../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/handwired/numpad20/config.h b/keyboards/handwired/numpad20/config.h new file mode 100644 index 000000000..847f2111f --- /dev/null +++ b/keyboards/handwired/numpad20/config.h @@ -0,0 +1,162 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xBB80 +#define PRODUCT_ID 0x0504 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Hexwire +#define PRODUCT Numpad 20 +#define DESCRIPTION Handwired 4x5 numpad + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 4 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { F6, B1, B3, B6, B5 } +#define MATRIX_COL_PINS { D1, D0, F5, F4 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/handwired/numpad20/keymaps/default/keymap.c b/keyboards/handwired/numpad20/keymaps/default/keymap.c new file mode 100644 index 000000000..37031206a --- /dev/null +++ b/keyboards/handwired/numpad20/keymaps/default/keymap.c @@ -0,0 +1,16 @@ +#include "numpad20.h" + +#define KC_ KC_TRNS + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = COMPACT_KEYMAP( + LEFT,RGHT, UP ,DOWN, \ + P7 , P8 , P9 ,PLUS, \ + P4 , P5 , P6 ,MINS, \ + P1 , P2 , P3 , ENT, \ + P0 ,DOT ,RGHT, TAB \ + ) +}; + +const uint16_t PROGMEM fn_actions[] = { +}; diff --git a/keyboards/handwired/numpad20/numpad20.c b/keyboards/handwired/numpad20/numpad20.c new file mode 100644 index 000000000..101cf2cb4 --- /dev/null +++ b/keyboards/handwired/numpad20/numpad20.c @@ -0,0 +1,8 @@ +#include "numpad20.h" + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + matrix_init_user(); +} diff --git a/keyboards/handwired/numpad20/numpad20.h b/keyboards/handwired/numpad20/numpad20.h new file mode 100644 index 000000000..191979be0 --- /dev/null +++ b/keyboards/handwired/numpad20/numpad20.h @@ -0,0 +1,20 @@ +#ifndef NUMPAD20_H +#define NUMPAD20_H + +#include "quantum.h" + +#define COMPACT_KEYMAP( \ + K00, K01, K02, K03, \ + K10, K11, K12, K13, \ + K20, K21, K22, K23, \ + K30, K31, K32, K33, \ + K40, K41, K42, K43 \ + ) { \ + { KC_##K00, KC_##K01, KC_##K02, KC_##K03 }, \ + { KC_##K10, KC_##K11, KC_##K12, KC_##K13 }, \ + { KC_##K20, KC_##K21, KC_##K22, KC_##K23 }, \ + { KC_##K30, KC_##K31, KC_##K32, KC_##K33 }, \ + { KC_##K40, KC_##K41, KC_##K42, KC_##K43 } \ +} + +#endif \ No newline at end of file diff --git a/keyboards/handwired/numpad20/rules.mk b/keyboards/handwired/numpad20/rules.mk new file mode 100644 index 000000000..e897ef252 --- /dev/null +++ b/keyboards/handwired/numpad20/rules.mk @@ -0,0 +1,83 @@ + +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=512 + + +# Build Options +# change yes to no to disable +# +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 ?= yes # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE ?= no # USB Nkey Rollover +BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default +MIDI_ENABLE ?= no # MIDI controls +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE ?= no # Audio output on port C6 + +ifndef QUANTUM_DIR + include ../../../Makefile +endif + +avrdude: build + ls /dev/tty* > /tmp/1; \ + echo "Reset your Pro Micro now"; \ + while [[ -z $$USB ]]; do \ + sleep 1; \ + ls /dev/tty* > /tmp/2; \ + USB=`diff /tmp/1 /tmp/2 | grep -o '/dev/tty.*'`; \ + done; \ + avrdude -p $(MCU) -c avr109 -P $$USB -U flash:w:$(BUILD_DIR)/$(TARGET).hex + +.PHONY: avrdude -- cgit v1.2.3 From 20a48e0198b02a246dce2b729c14809ccaa471c6 Mon Sep 17 00:00:00 2001 From: Danny Nguyen Date: Thu, 9 Mar 2017 12:02:05 -0500 Subject: Add handwired 5x13 ortholinear keyboard --- keyboards/handwired/ortho5x13/Makefile | 3 + keyboards/handwired/ortho5x13/config.h | 162 ++++++++++++ .../handwired/ortho5x13/keymaps/default/keymap.c | 289 +++++++++++++++++++++ keyboards/handwired/ortho5x13/ortho5x13.c | 8 + keyboards/handwired/ortho5x13/ortho5x13.h | 36 +++ keyboards/handwired/ortho5x13/rules.mk | 83 ++++++ 6 files changed, 581 insertions(+) create mode 100644 keyboards/handwired/ortho5x13/Makefile create mode 100644 keyboards/handwired/ortho5x13/config.h create mode 100644 keyboards/handwired/ortho5x13/keymaps/default/keymap.c create mode 100644 keyboards/handwired/ortho5x13/ortho5x13.c create mode 100644 keyboards/handwired/ortho5x13/ortho5x13.h create mode 100644 keyboards/handwired/ortho5x13/rules.mk (limited to 'keyboards') diff --git a/keyboards/handwired/ortho5x13/Makefile b/keyboards/handwired/ortho5x13/Makefile new file mode 100644 index 000000000..191c6bb66 --- /dev/null +++ b/keyboards/handwired/ortho5x13/Makefile @@ -0,0 +1,3 @@ +ifndef MAKEFILE_INCLUDED + include ../../../Makefile +endif \ No newline at end of file diff --git a/keyboards/handwired/ortho5x13/config.h b/keyboards/handwired/ortho5x13/config.h new file mode 100644 index 000000000..f85159596 --- /dev/null +++ b/keyboards/handwired/ortho5x13/config.h @@ -0,0 +1,162 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xBB80 +#define PRODUCT_ID 0x050D +#define DEVICE_VER 0x0001 +#define MANUFACTURER Hexwire +#define PRODUCT Ortho 5x13 +#define DESCRIPTION Handwired 5x13 ortholinear keyboard + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 13 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { D3, D2, D1, D0, D4 } +#define MATRIX_COL_PINS { C6, D7, E6, B4, B5, B6, B2, B3, B1, F7, F6, F5, F4 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +// #define BACKLIGHT_PIN B7 +// #define BACKLIGHT_BREATHING +// #define BACKLIGHT_LEVELS 3 + + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/handwired/ortho5x13/keymaps/default/keymap.c b/keyboards/handwired/ortho5x13/keymaps/default/keymap.c new file mode 100644 index 000000000..c1262a83d --- /dev/null +++ b/keyboards/handwired/ortho5x13/keymaps/default/keymap.c @@ -0,0 +1,289 @@ +#include "ortho5x13.h" +#include "action_layer.h" +#include "eeconfig.h" +#ifdef AUDIO_ENABLE + #include "audio.h" +#endif + +// 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 _QWERTY 0 +#define _COLEMAK 1 +#define _DVORAK 2 +#define _LOWER 3 +#define _RAISE 4 +#define _ADJUST 16 + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + COLEMAK, + DVORAK, + LOWER, + RAISE, + BACKLIT +}; + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +#define KC_L1 LOWER +#define KC_L2 RAISE + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,------------------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | + * |------+------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | + * |------+------+------+------+------+-------------+------+------+------+------+------+------| + * | ` | A | S | D | F | G | H | J | K | L | ; | ' | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | Up | + * |------+------+------+------+------+------+------+------+------+------+------+------+------| + * | Hyper| Ctrl | Alt | GUI |Lower | Space |Raise | Bksp |Shift | Left | Down |Right | + * `------------------------------------------------------------------------------------------' + */ +[_QWERTY] = COMPACT_KEYMAP( + //,----+----+----+----+----+----+----+----+----+----+----+----+----. + ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS,EQL , + //|----+----+----+----+----+----+----+----+----+----+----+----+----| + TAB , Q , W , E , R , T , Y , U , I , O , P ,LBRC,RBRC, + //|----+----+----+----+----+----+----+----+----+----+----+----+----| + GRV , A , S , D , F , G , H , J , K , L ,SCLN,QUOT,BSLS, + //|----+----+----+----+----+----+----+----+----+----+----+----+----| + LSFT, Z , X , C , V , B , N , M ,COMM,DOT ,SLSH,ENT , UP , + //|----+----+----+----+----+---------+----+----+----+----+----+----| + HYPR,LCTL,LALT,LGUI, L1 , SPACE , L2 ,BSPC,RSFT,LEFT,RGHT,DOWN + //`----+----+----+----+----+---------+----+----+----+----+----+----' + ), + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | " | , | . | P | Y | F | G | C | R | L | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DVORAK] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL}, + {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, + {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = { + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Audoff|Aud on|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Voice-|Voice+|Musoff|Mus on| | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = { + {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, + {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, + {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, + {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +} + + +}; + +#ifdef AUDIO_ENABLE +float tone_startup[][2] = { + {NOTE_B5, 20}, + {NOTE_B6, 8}, + {NOTE_DS6, 20}, + {NOTE_B6, 8} +}; + +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); + +float tone_goodbye[][2] = SONG(GOODBYE_SOUND); + +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); +#endif + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_qwerty, false, 0); + #endif + persistant_default_layer_set(1UL<<_QWERTY); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_colemak, false, 0); + #endif + persistant_default_layer_set(1UL<<_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_dvorak, false, 0); + #endif + persistant_default_layer_set(1UL<<_DVORAK); + } + return false; + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case BACKLIT: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + return false; + break; + } + return true; +}; + +void matrix_init_user(void) { + #ifdef AUDIO_ENABLE + startup_user(); + #endif +} + +#ifdef AUDIO_ENABLE + +void startup_user() +{ + _delay_ms(20); // gets rid of tick + PLAY_NOTE_ARRAY(tone_startup, false, 0); +} + +void shutdown_user() +{ + PLAY_NOTE_ARRAY(tone_goodbye, false, 0); + _delay_ms(150); + stop_all_notes(); +} + +void music_on_user(void) +{ + music_scale_user(); +} + +void music_scale_user(void) +{ + PLAY_NOTE_ARRAY(music_scale, false, 0); +} + +#endif \ No newline at end of file diff --git a/keyboards/handwired/ortho5x13/ortho5x13.c b/keyboards/handwired/ortho5x13/ortho5x13.c new file mode 100644 index 000000000..cf8352cc4 --- /dev/null +++ b/keyboards/handwired/ortho5x13/ortho5x13.c @@ -0,0 +1,8 @@ +#include "ortho5x13.h" + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + matrix_init_user(); +} diff --git a/keyboards/handwired/ortho5x13/ortho5x13.h b/keyboards/handwired/ortho5x13/ortho5x13.h new file mode 100644 index 000000000..d442212fe --- /dev/null +++ b/keyboards/handwired/ortho5x13/ortho5x13.h @@ -0,0 +1,36 @@ +#ifndef ORTHO5X13_H +#define ORTHO5X13_H + +#include "quantum.h" + +#define KEYMAP( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \ + k40, k41, k42, k43, k44, k45, k47, k48, k49, k4a, k4b, k4c \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c }, \ + { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b, k3c }, \ + { k40, k41, k42, k43, k44, k45, KC_NO, k47, k48, k49, k4a, k4b, k4c } \ +} + +#define COMPACT_KEYMAP( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \ + k40, k41, k42, k43, k44, k45, k47, k48, k49, k4a, k4b, k4c \ +) \ +{ \ + { KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_##k06, KC_##k07, KC_##k08, KC_##k09, KC_##k0a, KC_##k0b, KC_##k0c }, \ + { KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15, KC_##k16, KC_##k17, KC_##k18, KC_##k19, KC_##k1a, KC_##k1b, KC_##k1c }, \ + { KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25, KC_##k26, KC_##k27, KC_##k28, KC_##k29, KC_##k2a, KC_##k2b, KC_##k2c }, \ + { KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k35, KC_##k37, KC_##k38, KC_##k39, KC_##k3a, KC_##k3b, KC_##k3c }, \ + { KC_##k40, KC_##k41, KC_##k42, KC_##k43, KC_##k44, KC_##k45, KC_NO, KC_##k47, KC_##k48, KC_##k49, KC_##k4a, KC_##k4b, KC_##k4c } \ +} + +#endif \ No newline at end of file diff --git a/keyboards/handwired/ortho5x13/rules.mk b/keyboards/handwired/ortho5x13/rules.mk new file mode 100644 index 000000000..e897ef252 --- /dev/null +++ b/keyboards/handwired/ortho5x13/rules.mk @@ -0,0 +1,83 @@ + +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=512 + + +# Build Options +# change yes to no to disable +# +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 ?= yes # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE ?= no # USB Nkey Rollover +BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default +MIDI_ENABLE ?= no # MIDI controls +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE ?= no # Audio output on port C6 + +ifndef QUANTUM_DIR + include ../../../Makefile +endif + +avrdude: build + ls /dev/tty* > /tmp/1; \ + echo "Reset your Pro Micro now"; \ + while [[ -z $$USB ]]; do \ + sleep 1; \ + ls /dev/tty* > /tmp/2; \ + USB=`diff /tmp/1 /tmp/2 | grep -o '/dev/tty.*'`; \ + done; \ + avrdude -p $(MCU) -c avr109 -P $$USB -U flash:w:$(BUILD_DIR)/$(TARGET).hex + +.PHONY: avrdude -- cgit v1.2.3 From e66b31a648080ec7dde4a265014bf71dfd6a4114 Mon Sep 17 00:00:00 2001 From: Brendan Johan Lee Date: Sat, 11 Mar 2017 12:22:38 +0100 Subject: [deadcyclo layout] Added second unicode layer, more sane layer switches --- .../deadcyclo/images/deadcyclo-base-layout.png | Bin 79488 -> 97053 bytes .../images/deadcyclo-layer-2-media-and-mouse.png | Bin 62258 -> 66254 bytes .../images/deadcyclo-layer-3-navigation.png | Bin 58886 -> 0 bytes .../deadcyclo/images/deadcyclo-layer-3-unicode.png | Bin 0 -> 73624 bytes .../images/deadcyclo-layer-4-unicode-2.png | Bin 0 -> 66132 bytes keyboards/ergodox/keymaps/deadcyclo/keymap.c | 84 ++++++++++++++++----- keyboards/ergodox/keymaps/deadcyclo/readme.md | 9 ++- 7 files changed, 73 insertions(+), 20 deletions(-) delete mode 100644 keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-3-navigation.png create mode 100644 keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-3-unicode.png create mode 100644 keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-4-unicode-2.png (limited to 'keyboards') diff --git a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-base-layout.png b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-base-layout.png index 2c03af581..273a49778 100644 Binary files a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-base-layout.png and b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-base-layout.png differ diff --git a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-2-media-and-mouse.png b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-2-media-and-mouse.png index a267ff23d..798952aa9 100644 Binary files a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-2-media-and-mouse.png and b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-2-media-and-mouse.png differ diff --git a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-3-navigation.png b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-3-navigation.png deleted file mode 100644 index c8c90cf5c..000000000 Binary files a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-3-navigation.png and /dev/null differ diff --git a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-3-unicode.png b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-3-unicode.png new file mode 100644 index 000000000..0c6473abb Binary files /dev/null and b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-3-unicode.png differ diff --git a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-4-unicode-2.png b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-4-unicode-2.png new file mode 100644 index 000000000..4488e1b37 Binary files /dev/null and b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-4-unicode-2.png differ diff --git a/keyboards/ergodox/keymaps/deadcyclo/keymap.c b/keyboards/ergodox/keymaps/deadcyclo/keymap.c index 5774511cc..243ce94e9 100644 --- a/keyboards/ergodox/keymaps/deadcyclo/keymap.c +++ b/keyboards/ergodox/keymaps/deadcyclo/keymap.c @@ -5,8 +5,9 @@ #define BASE 0 // default layer #define SYMB 1 // symbols -#define MDIA 2 // media keys -#define NAVG 3 // navigation +#define MDIA 2 // media keys and navigation +#define UNI 3 // unicode 1 +#define UNI2 4 // unicode 2 enum macros { RUN @@ -94,11 +95,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,--------------------------------------------------. ,--------------------------------------------------. * | Esc/L3 | 1 | 2 | 3 | 4 | 5 | 6 | | 6 | 7 | 8 | 9 | 0 | - | =/L3 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Tab/L1 | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \/L1 | + * | Tab/L1 | Q | W | E | R | T | L1 | | L2 | Y | U | I | O | P | \/L1 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | LCtrl | A | S | D | F | G |------| |------| H | J | K | L |; / L2| ctrl/'| + * | LCtrl | A | S | D | F | G |------| |------| H | J | K | L | ; | ctrl/'| * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| - * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | + * | LShift |Z / L4|X / L2| C | V | B | | | | N | M | , |. / L2|/ / L4| RShift | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * |Grv/L1| UNI |AltShf| Lalt | Ralt | | Lalt | Ralt | LEAD | UNI | ~/L1 | * `----------------------------------' `----------------------------------' @@ -114,25 +115,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Otherwise, it needs KC_* [BASE] = KEYMAP( // layer 0 : default // left hand - LT(NAVG,KC_ESC), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, + LT(UNI,KC_ESC), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, LT(SYMB,KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), - KC_LCTL, LT(MDIA, KC_A), KC_S, KC_D, KC_F, KC_G, - KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, LT(4, KC_Z), LT(MDIA, KC_X), KC_C, KC_V, KC_B, ALL_T(KC_NO), LT(SYMB,KC_GRV),LCTL(LSFT(KC_U)), LALT(KC_LSFT), KC_RALT,KC_LALT, ALT_T(KC_APP), KC_HOME, KC_END, KC_SPC,KC_TAB,KC_LBRC, // right hand - KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, LT(NAVG,KC_EQL), - TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, LT(SYMB, KC_BSLS), - KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),CTL_T(KC_QUOT), - MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, LT(UNI,KC_EQL), + TG(MDIA), KC_Y, KC_U, KC_I, KC_O, KC_P, LT(SYMB, KC_BSLS), + KC_H, KC_J, KC_K, KC_L, KC_SCLN,CTL_T(KC_QUOT), + MEH_T(KC_NO),KC_N, KC_M, KC_COMM,LT(MDIA, KC_DOT), LT(UNI2, KC_SLSH), KC_RSFT, KC_LALT, KC_RALT,KC_LEAD,LCTL(LSFT(KC_U)), LT(SYMB,KC_TILD), KC_PGUP, KC_INS, KC_PGDN, - KC_RBRC,KC_BSPC, KC_ENT + KC_RBRC,KC_BSPC, KC_ENT ), -/* Keymap 1: Symbol Layer LCTL(LSFT(KC_U)) +/* Keymap 1: Symbol Layer LCTL(LSFT(KC_U)) * * ,--------------------------------------------------. ,--------------------------------------------------. * | | F1 | F2 | F3 | F4 | F5 | F6 | | F6 | F7 | F8 | F9 | F10 | F11 | F12 | @@ -177,13 +178,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 2: Media, mouse and navigation * * ,--------------------------------------------------. ,--------------------------------------------------. - * | | gg(1)| | | | | | | | | | | | | | + * | | gg(1)| gg(2)| gg(3)| gg(4)| gg(5)| gg(6)| | gg(6)| gg(7)| gg(8)| gg(9)| gg(0)| | | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * | | | | MsUp | RUN | | | | | | | Up | | | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | |MsLeft|MsDown|MsRght| |------| |------| | Left | Down | Right| | Play | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | Prev | Next | | | + * | | | | | | | | | | | Prev | Next | | | | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | * `----------------------------------' `----------------------------------' @@ -209,7 +210,7 @@ KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, M(RUN), KC_TRNS, KC_TRNS, F(I3_GO_GROUP_6), F(I3_GO_GROUP_7), F(I3_GO_GROUP_8), F(I3_GO_GROUP_9), F(I3_GO_GROUP_10), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_MPLY, - KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -238,7 +239,7 @@ KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, M(RUN), KC_TRNS, KC_TRNS, * `--------------------' `--------------------' */ // Unicode -[NAVG] = KEYMAP( +[UNI] = KEYMAP( KC_TRNS, UC(0x250c), UC(0x2510), UC(0x2514), UC(0x2518), UC(0x2502), UC(0x2500), KC_TRNS, F(EMOJI_SHRUG), F(EMOJI_YAY), F(EMOJI_HUG), F(EMOJI_SMILE), F(EMOJI_SMILE2), KC_TRNS, KC_TRNS, F(EMOJI_HMM1), F(EMOJI_HMM2), F(EMOJI_BEAR1), F(EMOJI_BEAR2), F(EMOJI_FUU), @@ -257,6 +258,48 @@ KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, M(RUN), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), + +/* Keymap 4: Unicode 2 + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | ¹ | ² | ³ | ⁴ | ⁵ | ⁶ | | ⁶ | ⁷ | ⁸ | ⁹ | ⁰ | ℃ | ™ | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ₁ | ₂ | ₃ | ₄ | ₅ | ₆ | | ₆ | ₇ | ₈ | ₉ | ₀ | ⁄ | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | ⅞ | ⅝ | ⅜ | ⅛ | ⅚ |------| |------| ⅓ | ⅒ | ⅑ | ⅐ | ¾ | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | ⅗ | ⅖ | ⅕ | ⅔ | | ¼ | ⅙ | ⅘ | ½ | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// Unicode 2 +[UNI2] = KEYMAP( + KC_TRNS, UC(0x00b9), UC(0x00b2), UC(0x00b3), UC(0x2074), UC(0x2075), UC(0x2076), + KC_TRNS, UC(0x2081), UC(0x2082), UC(0x2083), UC(0x2084), UC(0x2085), UC(0x2086), + KC_TRNS, UC(0x215e), UC(0x215d), UC(0x215c), UC(0x215b), UC(0x215a), + KC_TRNS, KC_TRNS, KC_TRNS, UC(0x2157), UC(0x2156), UC(0x2155), UC(0x2154), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + UC(0x2076), UC(0x2077), UC(0x2078), UC(0x2079), UC(0x2070), UC(0x2103), UC(0x2122), + UC(0x2086), UC(0x2087), UC(0x2088), UC(0x2089), UC(0x2080), UC(0x2044), KC_TRNS, + UC(0x2153), UC(0x2152), UC(0x2151), UC(0x2150), UC(0x00be), KC_TRNS, + UC(0x00bc), UC(0x2159), UC(0x2158), UC(0x00bd), KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), }; const uint16_t PROGMEM fn_actions[] = { @@ -506,8 +549,11 @@ void matrix_scan_user(void) { #endif break; case 4: - ergodox_right_led_1_on(); // TODO: Make a fourth layer + ergodox_right_led_1_on(); ergodox_right_led_3_on(); + #ifdef RGBLIGHT_ENABLE + rgblight_setrgb(0xff,0x00,0xff); + #endif break; default: // none diff --git a/keyboards/ergodox/keymaps/deadcyclo/readme.md b/keyboards/ergodox/keymaps/deadcyclo/readme.md index fa41f0ec1..c839f99c9 100644 --- a/keyboards/ergodox/keymaps/deadcyclo/readme.md +++ b/keyboards/ergodox/keymaps/deadcyclo/readme.md @@ -51,10 +51,16 @@ provides standard media control keys, and default arrow keys. ## Layer 3 - Unicode -[![Layer 3 - Unicode](images/deadcyclo-layer-3-navigation.png)](http://www.keyboard-layout-editor.com/#/gists/67d9613dcd873c68693d11863d0fd289) +[![Layer 3 - Unicode](images/deadcyclo-layer-3-unicode.png)](http://www.keyboard-layout-editor.com/#/gists/67d9613dcd873c68693d11863d0fd289) The unicode layer provides keys for directly typing unicode (utf-8) +## Layer 4 - Unicode 2 + +[![Layer 43 - Unicode](images/deadcyclo-layer-4-unicode-2.png)](http://www.keyboard-layout-editor.com/#/gists/7b2241110ab8311d9668a0798f3baf4a) + +The unicode 2 layer provides keys for directly typing unicode (utf-8) + # Changelog - 02.01.2017 Added delete key on second layer @@ -63,6 +69,7 @@ The unicode layer provides keys for directly typing unicode (utf-8) - 24.01.2017 Added unicode keys. Added shrug hug and yay. Moved Navigation to layer 2 - 25.01.2017 Added lots of new emojis and some unicode keys - 27.01.2017 Added new unicode keys and shortcut for ibus unicode composer key (CTRL+SHIFT+U) +- 11.03.2017 Added additional unicode layer. Moved some layer switch keys to more sane locations # TODO -- cgit v1.2.3 From 0d71e631ed5f06b28a83528ed4de3c0f7f90d1ea Mon Sep 17 00:00:00 2001 From: Brendan Johan Lee Date: Sat, 11 Mar 2017 12:27:46 +0100 Subject: [deadcyclo layout] fix an error in layer illustration --- .../images/deadcyclo-layer-2-media-and-mouse.png | Bin 66254 -> 65740 bytes 1 file changed, 0 insertions(+), 0 deletions(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-2-media-and-mouse.png b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-2-media-and-mouse.png index 798952aa9..5930e38ac 100644 Binary files a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-2-media-and-mouse.png and b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-2-media-and-mouse.png differ -- cgit v1.2.3 From 52ea58805a74fd4310f3c6a26271245001127cce Mon Sep 17 00:00:00 2001 From: Danny Nguyen Date: Tue, 14 Mar 2017 09:51:48 -0400 Subject: Add RGB underglow, move keys to allow Adjust layer to be reached --- keyboards/lets_split/keymaps/hexwire/Makefile | 1 + keyboards/lets_split/keymaps/hexwire/README.md | 6 +++--- keyboards/lets_split/keymaps/hexwire/config.h | 6 ++++++ keyboards/lets_split/keymaps/hexwire/keymap.c | 10 +++++----- 4 files changed, 15 insertions(+), 8 deletions(-) create mode 100644 keyboards/lets_split/keymaps/hexwire/Makefile (limited to 'keyboards') diff --git a/keyboards/lets_split/keymaps/hexwire/Makefile b/keyboards/lets_split/keymaps/hexwire/Makefile new file mode 100644 index 000000000..1e3cebb14 --- /dev/null +++ b/keyboards/lets_split/keymaps/hexwire/Makefile @@ -0,0 +1 @@ +RGBLIGHT_ENABLE = yes diff --git a/keyboards/lets_split/keymaps/hexwire/README.md b/keyboards/lets_split/keymaps/hexwire/README.md index 2dc044646..edf2b6627 100644 --- a/keyboards/lets_split/keymaps/hexwire/README.md +++ b/keyboards/lets_split/keymaps/hexwire/README.md @@ -75,7 +75,7 @@ Hexwire's Let's Split Layout |----+----+----+----+----+----| |----+----+----+----+----+----| ,CPYP, , ,DOWN,LCBR, RCBR, P1 , P2 , P3 ,MINS, , |----+----+----+----+----+----| |----+----+----+----+----+----| - , , , , , , DEL , P0 ,PDOT, , , + , , , , , , DEL , , P0 ,PDOT, , `----+----+----+----+----+----' `----+----+----+----+----+----' ``` @@ -87,9 +87,9 @@ Hexwire's Let's Split Layout |----+----+----+----+----+----| |----+----+----+----+----+----| DEL ,MPRV,MNXT,VOLU,PGUP,UNDS, EQL ,HOME, , , ,BSLS, |----+----+----+----+----+----| |----+----+----+----+----+----| - ,MSTP,MPLY,VOLD,PGDN,MINS, PLUS,END , , , , , + MUTE,MSTP,MPLY,VOLD,PGDN,MINS, PLUS,END , , , , , |----+----+----+----+----+----| |----+----+----+----+----+----| - , , , ,MUTE, , , , , , , + , , , , , , , , , , , `----+----+----+----+----+----' `----+----+----+----+----+----' ``` diff --git a/keyboards/lets_split/keymaps/hexwire/config.h b/keyboards/lets_split/keymaps/hexwire/config.h index cd766cc4f..b45214fe0 100644 --- a/keyboards/lets_split/keymaps/hexwire/config.h +++ b/keyboards/lets_split/keymaps/hexwire/config.h @@ -20,6 +20,12 @@ along with this program. If not, see . #define EE_HANDS +#undef RGBLED_NUM +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 8 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 #ifdef SUBPROJECT_rev1 #include "../../rev1/config.h" diff --git a/keyboards/lets_split/keymaps/hexwire/keymap.c b/keyboards/lets_split/keymaps/hexwire/keymap.c index bae2e687e..796a1fcab 100644 --- a/keyboards/lets_split/keymaps/hexwire/keymap.c +++ b/keyboards/lets_split/keymaps/hexwire/keymap.c @@ -83,7 +83,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----| |----+----+----+----+----+----| ,CPYP, , ,DOWN,LCBR, RCBR, P1 , P2 , P3 ,MINS, , //|----+----+----+----+----+----| |----+----+----+----+----+----| - , , , , , , DEL , P0 ,PDOT, , , + , , , , , , DEL , , P0 ,PDOT, , //`----+----+----+----+----+----' `----+----+----+----+----+----' ), @@ -93,9 +93,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //|----+----+----+----+----+----| |----+----+----+----+----+----| DEL ,MPRV,MNXT,VOLU,PGUP,UNDS, EQL ,HOME, , , ,BSLS, //|----+----+----+----+----+----| |----+----+----+----+----+----| - ,MSTP,MPLY,VOLD,PGDN,MINS, PLUS,END , , , , , + MUTE,MSTP,MPLY,VOLD,PGDN,MINS, PLUS,END , , , , , //|----+----+----+----+----+----| |----+----+----+----+----+----| - , , , ,MUTE, , , , , , , + , , , , , , , , , , , //`----+----+----+----+----+----' `----+----+----+----+----+----' ), @@ -113,7 +113,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. - * | | Reset| | | | | | | | | | Del | + * | | Reset|RGB Tg|RGB Md|Hue Up|Hue Dn|Sat Up|Sat Dn|Val Up|Val Dn| | | * |------+------+------+------+------+-------------+------+------+------+------+------| * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | * |------+------+------+------+------+------|------+------+------+------+------+------| @@ -123,7 +123,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_ADJUST] = KEYMAP( \ - _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, RESET , RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, _______, _______, \ _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ -- cgit v1.2.3 From 2e34d4bd85cc748c48e907154ea438f3d9653430 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 15 Mar 2017 10:57:24 -0400 Subject: update for infinity --- keyboards/ergodox/keymaps/guni/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/ergodox/keymaps/guni/keymap.c b/keyboards/ergodox/keymaps/guni/keymap.c index f33829b8a..9d9191f62 100644 --- a/keyboards/ergodox/keymaps/guni/keymap.c +++ b/keyboards/ergodox/keymaps/guni/keymap.c @@ -170,7 +170,7 @@ void action_function(keyrecord_t *event, uint8_t id, uint8_t opt) if (id == TEENSY_KEY) { clear_keyboard(); print("\n\nJump to bootloader... "); - _delay_ms(250); + wait_ms(250); bootloader_jump(); // should not return print("not supported.\n"); } -- cgit v1.2.3 From c043d1cc4709fa03e91942d9b769278994985af2 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 15 Mar 2017 23:49:38 -0400 Subject: Update config.h --- keyboards/lets_split/keymaps/hexwire/config.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/lets_split/keymaps/hexwire/config.h b/keyboards/lets_split/keymaps/hexwire/config.h index b45214fe0..3d600d64d 100644 --- a/keyboards/lets_split/keymaps/hexwire/config.h +++ b/keyboards/lets_split/keymaps/hexwire/config.h @@ -32,4 +32,7 @@ along with this program. If not, see . #endif #ifdef SUBPROJECT_rev2 #include "../../rev2/config.h" -#endif \ No newline at end of file +#endif +#ifdef SUBPROJECT_rev2fliphalf + #include "../../rev2fliphalf/config.h" +#endif -- cgit v1.2.3 From c36a4496eb190c72c492000f38ab4e98a3681fe4 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 15 Mar 2017 23:51:56 -0400 Subject: Update config.h --- keyboards/lets_split/keymaps/hexwire/config.h | 1 + 1 file changed, 1 insertion(+) (limited to 'keyboards') diff --git a/keyboards/lets_split/keymaps/hexwire/config.h b/keyboards/lets_split/keymaps/hexwire/config.h index 3d600d64d..983f8e352 100644 --- a/keyboards/lets_split/keymaps/hexwire/config.h +++ b/keyboards/lets_split/keymaps/hexwire/config.h @@ -21,6 +21,7 @@ along with this program. If not, see . #define EE_HANDS #undef RGBLED_NUM +#define RGB_DI_PIN B0 #define RGBLIGHT_ANIMATIONS #define RGBLED_NUM 8 #define RGBLIGHT_HUE_STEP 8 -- cgit v1.2.3 From 9e0ca927f950d1d396e3f45f02e0a3e7dd5b0fff Mon Sep 17 00:00:00 2001 From: tengg Date: Wed, 22 Mar 2017 00:03:30 -0400 Subject: fixed a bug related to mod + Grave with combined ESC/Grave key This only applies to keymaps that has combined esc/grave. Here we call it theKEY. Think about the motion when we do shift + theKEY (typing ~), or CMD + theKEY (switching window on MAC). Based on the original code, we must do following sequence: press shift -> press theKEY -> release theKEY -> release shift. However, it is very possible and natural that we do this stroke sequence instead: press shift -> press theKEY -> release shift -> release theKEY. If we do the 2nd stroke sequence, the code will del_key(ESC) instead of (GRV) when we release theKEY. This caused some inconvenient issues and ghost typing. By adding a flag, this issue is eliminated and will not affect any other functions.--- keyboards/clueboard/keymaps/mac_optimized/keymap.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/clueboard/keymaps/mac_optimized/keymap.c b/keyboards/clueboard/keymaps/mac_optimized/keymap.c index 59f7ff243..bb1a5d3cb 100644 --- a/keyboards/clueboard/keymaps/mac_optimized/keymap.c +++ b/keyboards/clueboard/keymaps/mac_optimized/keymap.c @@ -50,6 +50,7 @@ const uint16_t PROGMEM fn_actions[] = { void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { static uint8_t mods_pressed; + static bool mods_flag; switch (id) { case 0: @@ -62,6 +63,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { */ if (mods_pressed) { add_key(KC_GRV); + mod_flag = true; send_keyboard_report(); } else { add_key(KC_ESC); @@ -70,8 +72,9 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { } else { /* The key is being released. */ - if (mods_pressed) { + if (mod_flag) { del_key(KC_GRV); + mod_flag = false; send_keyboard_report(); } else { del_key(KC_ESC); -- cgit v1.2.3 From a89998b977ccb707767149c0fa4bbf614d4eefea Mon Sep 17 00:00:00 2001 From: tengg Date: Wed, 22 Mar 2017 00:28:59 -0400 Subject: fix typo --- keyboards/clueboard/keymaps/mac_optimized/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/clueboard/keymaps/mac_optimized/keymap.c b/keyboards/clueboard/keymaps/mac_optimized/keymap.c index bb1a5d3cb..bd9a76dc8 100644 --- a/keyboards/clueboard/keymaps/mac_optimized/keymap.c +++ b/keyboards/clueboard/keymaps/mac_optimized/keymap.c @@ -49,7 +49,7 @@ const uint16_t PROGMEM fn_actions[] = { }; void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { - static uint8_t mods_pressed; + static uint8_t mod_pressed; static bool mods_flag; switch (id) { -- cgit v1.2.3 From 3cba7a43d976be973a4fe32a058b98f092f2e26e Mon Sep 17 00:00:00 2001 From: tengg Date: Wed, 22 Mar 2017 00:33:44 -0400 Subject: typo fixed --- keyboards/clueboard/keymaps/mac_optimized/keymap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'keyboards') diff --git a/keyboards/clueboard/keymaps/mac_optimized/keymap.c b/keyboards/clueboard/keymaps/mac_optimized/keymap.c index bd9a76dc8..4a18e9a75 100644 --- a/keyboards/clueboard/keymaps/mac_optimized/keymap.c +++ b/keyboards/clueboard/keymaps/mac_optimized/keymap.c @@ -49,8 +49,8 @@ const uint16_t PROGMEM fn_actions[] = { }; void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { - static uint8_t mod_pressed; - static bool mods_flag; + static uint8_t mods_pressed; + static bool mod_flag; switch (id) { case 0: -- cgit v1.2.3 From 452949f9139a04d46748e6abc03e92d65d74eb30 Mon Sep 17 00:00:00 2001 From: skullY Date: Tue, 21 Mar 2017 22:06:47 -0700 Subject: Add #1170 to all the clueboard keymaps --- keyboards/clueboard/keymaps/caps_fn/keymap.c | 5 ++++- keyboards/clueboard/keymaps/colemak/keymap.c | 5 ++++- keyboards/clueboard/keymaps/default/keymap.c | 5 ++++- keyboards/clueboard/keymaps/mac_optimized/keymap.c | 4 ++-- keyboards/clueboard/keymaps/mouse_keys/keymap.c | 5 ++++- keyboards/clueboard/keymaps/shift_fn/keymap.c | 5 ++++- keyboards/clueboard/keymaps/skully/keymap.c | 5 ++++- keyboards/clueboard/keymaps/unix_optimized/keymap.c | 5 ++++- keyboards/clueboard/keymaps/win_optimized/keymap.c | 5 ++++- 9 files changed, 34 insertions(+), 10 deletions(-) (limited to 'keyboards') diff --git a/keyboards/clueboard/keymaps/caps_fn/keymap.c b/keyboards/clueboard/keymaps/caps_fn/keymap.c index 37f00e8d8..01779446c 100644 --- a/keyboards/clueboard/keymaps/caps_fn/keymap.c +++ b/keyboards/clueboard/keymaps/caps_fn/keymap.c @@ -50,6 +50,7 @@ const uint16_t PROGMEM fn_actions[] = { void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { static uint8_t mods_pressed; + static boot mod_flag; switch (id) { case 0: @@ -61,6 +62,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { /* The key is being pressed. */ if (mods_pressed) { + mod_flag = true; add_key(KC_GRV); send_keyboard_report(); } else { @@ -70,7 +72,8 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { } else { /* The key is being released. */ - if (mods_pressed) { + if (mod_flag) { + mod_flag = false; del_key(KC_GRV); send_keyboard_report(); } else { diff --git a/keyboards/clueboard/keymaps/colemak/keymap.c b/keyboards/clueboard/keymaps/colemak/keymap.c index 6b1fc7c9c..42c85ff9d 100644 --- a/keyboards/clueboard/keymaps/colemak/keymap.c +++ b/keyboards/clueboard/keymaps/colemak/keymap.c @@ -50,6 +50,7 @@ const uint16_t PROGMEM fn_actions[] = { void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { static uint8_t mods_pressed; + static bool mod_flag; switch (id) { case 0: @@ -61,6 +62,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { /* The key is being pressed. */ if (mods_pressed) { + mod_flag = true; add_key(KC_GRV); send_keyboard_report(); } else { @@ -70,7 +72,8 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { } else { /* The key is being released. */ - if (mods_pressed) { + if (mod_flag) { + mod_flag = false; del_key(KC_GRV); send_keyboard_report(); } else { diff --git a/keyboards/clueboard/keymaps/default/keymap.c b/keyboards/clueboard/keymaps/default/keymap.c index 37f00e8d8..7fad9c1b2 100644 --- a/keyboards/clueboard/keymaps/default/keymap.c +++ b/keyboards/clueboard/keymaps/default/keymap.c @@ -50,6 +50,7 @@ const uint16_t PROGMEM fn_actions[] = { void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { static uint8_t mods_pressed; + static bool mod_flag; switch (id) { case 0: @@ -61,6 +62,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { /* The key is being pressed. */ if (mods_pressed) { + mod_flag = true; add_key(KC_GRV); send_keyboard_report(); } else { @@ -70,7 +72,8 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { } else { /* The key is being released. */ - if (mods_pressed) { + if (mod_flag) { + mod_flag = false; del_key(KC_GRV); send_keyboard_report(); } else { diff --git a/keyboards/clueboard/keymaps/mac_optimized/keymap.c b/keyboards/clueboard/keymaps/mac_optimized/keymap.c index 4a18e9a75..7ea02d27e 100644 --- a/keyboards/clueboard/keymaps/mac_optimized/keymap.c +++ b/keyboards/clueboard/keymaps/mac_optimized/keymap.c @@ -62,8 +62,8 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { /* The key is being pressed. */ if (mods_pressed) { - add_key(KC_GRV); mod_flag = true; + add_key(KC_GRV); send_keyboard_report(); } else { add_key(KC_ESC); @@ -73,8 +73,8 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { /* The key is being released. */ if (mod_flag) { - del_key(KC_GRV); mod_flag = false; + del_key(KC_GRV); send_keyboard_report(); } else { del_key(KC_ESC); diff --git a/keyboards/clueboard/keymaps/mouse_keys/keymap.c b/keyboards/clueboard/keymaps/mouse_keys/keymap.c index a9c5cebd0..d3108d1e2 100644 --- a/keyboards/clueboard/keymaps/mouse_keys/keymap.c +++ b/keyboards/clueboard/keymaps/mouse_keys/keymap.c @@ -60,6 +60,7 @@ const uint16_t PROGMEM fn_actions[] = { void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { static uint8_t mods_pressed; + static bool mod_flag; switch (id) { case 0: @@ -71,6 +72,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { /* The key is being pressed. */ if (mods_pressed) { + mod_flag = true; add_key(KC_GRV); send_keyboard_report(); } else { @@ -80,7 +82,8 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { } else { /* The key is being released. */ - if (mods_pressed) { + if (mod_flag) { + mod_flag = false; del_key(KC_GRV); send_keyboard_report(); } else { diff --git a/keyboards/clueboard/keymaps/shift_fn/keymap.c b/keyboards/clueboard/keymaps/shift_fn/keymap.c index f21b9b589..c4fae0369 100644 --- a/keyboards/clueboard/keymaps/shift_fn/keymap.c +++ b/keyboards/clueboard/keymaps/shift_fn/keymap.c @@ -50,6 +50,7 @@ const uint16_t PROGMEM fn_actions[] = { void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { static uint8_t mods_pressed; + static bool mod_flag; switch (id) { case 0: @@ -61,6 +62,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { /* The key is being pressed. */ if (mods_pressed) { + mod_flag = true; add_key(KC_GRV); send_keyboard_report(); } else { @@ -70,7 +72,8 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { } else { /* The key is being released. */ - if (mods_pressed) { + if (mod_flag) { + mod_flag = false; del_key(KC_GRV); send_keyboard_report(); } else { diff --git a/keyboards/clueboard/keymaps/skully/keymap.c b/keyboards/clueboard/keymaps/skully/keymap.c index 295090352..077d214fa 100644 --- a/keyboards/clueboard/keymaps/skully/keymap.c +++ b/keyboards/clueboard/keymaps/skully/keymap.c @@ -47,6 +47,7 @@ const uint16_t PROGMEM fn_actions[] = { void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { static uint8_t mods_pressed; + static bool mod_flag; switch (id) { case 0: @@ -58,6 +59,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { /* The key is being pressed. */ if (mods_pressed) { + mod_flag = true; add_key(KC_GRV); send_keyboard_report(); } else { @@ -67,7 +69,8 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { } else { /* The key is being released. */ - if (mods_pressed) { + if (mod_flag) { + mod_flag = false; del_key(KC_GRV); send_keyboard_report(); } else { diff --git a/keyboards/clueboard/keymaps/unix_optimized/keymap.c b/keyboards/clueboard/keymaps/unix_optimized/keymap.c index 9fbd77240..7c1359954 100644 --- a/keyboards/clueboard/keymaps/unix_optimized/keymap.c +++ b/keyboards/clueboard/keymaps/unix_optimized/keymap.c @@ -50,6 +50,7 @@ const uint16_t PROGMEM fn_actions[] = { void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { static uint8_t mods_pressed; + static bool mod_flag; switch (id) { case 0: @@ -61,6 +62,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { /* The key is being pressed. */ if (mods_pressed) { + mod_flag = true; add_key(KC_GRV); send_keyboard_report(); } else { @@ -70,7 +72,8 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { } else { /* The key is being released. */ - if (mods_pressed) { + if (mod_flag) { + mod_flag = false; del_key(KC_GRV); send_keyboard_report(); } else { diff --git a/keyboards/clueboard/keymaps/win_optimized/keymap.c b/keyboards/clueboard/keymaps/win_optimized/keymap.c index a85f0824f..c5553ff1f 100644 --- a/keyboards/clueboard/keymaps/win_optimized/keymap.c +++ b/keyboards/clueboard/keymaps/win_optimized/keymap.c @@ -50,6 +50,7 @@ const uint16_t PROGMEM fn_actions[] = { void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { static uint8_t mods_pressed; + static bool mod_flag; switch (id) { case 0: @@ -61,6 +62,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { /* The key is being pressed. */ if (mods_pressed) { + mod_flag = true; add_key(KC_GRV); send_keyboard_report(); } else { @@ -70,7 +72,8 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { } else { /* The key is being released. */ - if (mods_pressed) { + if (mod_flag) { + mod_flag = false; del_key(KC_GRV); send_keyboard_report(); } else { -- cgit v1.2.3 From 7a9437a2e3a2597e8eef1ea293bfb3c394f588b9 Mon Sep 17 00:00:00 2001 From: skullY Date: Tue, 21 Mar 2017 22:24:34 -0700 Subject: Fix a typo --- keyboards/clueboard/keymaps/caps_fn/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboards') diff --git a/keyboards/clueboard/keymaps/caps_fn/keymap.c b/keyboards/clueboard/keymaps/caps_fn/keymap.c index 01779446c..7fad9c1b2 100644 --- a/keyboards/clueboard/keymaps/caps_fn/keymap.c +++ b/keyboards/clueboard/keymaps/caps_fn/keymap.c @@ -50,7 +50,7 @@ const uint16_t PROGMEM fn_actions[] = { void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { static uint8_t mods_pressed; - static boot mod_flag; + static bool mod_flag; switch (id) { case 0: -- cgit v1.2.3