~ruther/qmk_firmware

7230923b051bdb32bea19c3d732fa1fbc4883a68 — Joe Wasson 7 years ago 687c707
Rename ONEHAND_ENABLE to SWAP_HANDS_ENABLE for consistency
M docs/feature_swap_hands.md => docs/feature_swap_hands.md +1 -1
@@ 1,6 1,6 @@
# Swap-Hands Action

The swap-hands action allows support for one-handed typing without requiring a separate layer. Set `ONEHAND_ENABLE` in the Makefile and define a `hand_swap_config` entry in your keymap. Now whenever the `ACTION_SWAP_HANDS` command key is pressed the keyboard is mirrored. For instance, to type "Hello, World" on QWERTY you would type `^Ge^s^s^w^c W^wr^sd`
The swap-hands action allows support for one-handed typing without requiring a separate layer. Set `SWAP_HANDS_ENABLE` in the Makefile and define a `hand_swap_config` entry in your keymap. Now whenever the `ACTION_SWAP_HANDS` command key is pressed the keyboard is mirrored. For instance, to type "Hello, World" on QWERTY you would type `^Ge^s^s^w^c W^wr^sd`

## Configuration


M keyboards/ergo42/ergo42.c => keyboards/ergo42/ergo42.c +1 -1
@@ 1,6 1,6 @@
#include "ergo42.h"

#ifdef ONEHAND_ENABLE
#ifdef SWAP_HANDS_ENABLE
__attribute__ ((weak))
const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {


M keyboards/ergodone/rules.mk => keyboards/ergodone/rules.mk +2 -2
@@ 5,7 5,7 @@
#
# make clean = Clean out built project files.
#
# That's pretty much all you need. To compile, always go make clean, 
# That's pretty much all you need. To compile, always go make clean,
# followed by make.
#
# For advanced users only:


@@ 88,7 88,7 @@ FADING_LED_ENABLE       = no  # Enable fading backlight
BREATHING_LED_ENABLE    = no  # Enable breathing backlight
LEDMAP_ENABLE           = no	# Enable LED mapping
LEDMAP_IN_EEPROM_ENABLE = no  # Read LED mapping from eeprom
ONEHAND_ENABLE          = no  # Disable Onehand
SWAP_HANDS_ENABLE       = no  # Disable Onehand
RGBLIGHT_ENABLE         = no
MIDI_ENABLE             = no


M keyboards/ergodox_ez/ergodox_ez.c => keyboards/ergodox_ez/ergodox_ez.c +2 -2
@@ 100,7 100,7 @@ void ergodox_blink_all_leds(void)
      mcp23018_status = ergodox_left_leds_update();
    }
#endif
    

    //ergodox_led_all_on();
    //_delay_ms(333);
    ergodox_led_all_off();


@@ 185,7 185,7 @@ uint8_t ergodox_left_leds_update(void) {
#endif


#ifdef ONEHAND_ENABLE
#ifdef SWAP_HANDS_ENABLE
__attribute__ ((weak))
// swap-hands action needs a matrix to define the swap
const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {

M keyboards/ergodox_ez/keymaps/bepo_tm_style/rules.mk => keyboards/ergodox_ez/keymaps/bepo_tm_style/rules.mk +1 -1
@@ 2,7 2,7 @@ MOUSEKEY_ENABLE  = yes # Mouse keys
EXTRAKEY_ENABLE  = yes # Audio control and System control
COMMAND_ENABLE   = yes # Commands for debug and configuration
NKRO_ENABLE      = yes # USB Nkey Rollover - for issues, see github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
ONEHAND_ENABLE   = yes # Allow swapping hands of keyboard
SWAP_HANDS_ENABLE= yes # Allow swapping hands of keyboard
KEY_LOCK_ENABLE  = yes # Enable the KC_LOCK key
TAP_DANCE_ENABLE = yes # Enable the tap dance feature.
CONSOLE_ENABLE   = yes  # Console for debug

M keyboards/ergodox_ez/rules.mk => keyboards/ergodox_ez/rules.mk +4 -4
@@ 5,7 5,7 @@
#
# make clean = Clean out built project files.
#
# That's pretty much all you need. To compile, always go make clean, 
# That's pretty much all you need. To compile, always go make clean,
# followed by make.
#
# For advanced users only:


@@ 56,7 56,7 @@ F_USB = $(F_CPU)

# Bootloader
#     This definition is optional, and if your keyboard supports multiple bootloaders of
#     different sizes, comment this out, and the correct address will be loaded 
#     different sizes, comment this out, and the correct address will be loaded
#     automatically (+60). See bootloader.mk for all options.
BOOTLOADER = halfkay



@@ 79,9 79,9 @@ COMMAND_ENABLE   = yes # Commands for debug and configuration
CUSTOM_MATRIX    = yes # Custom matrix file for the ErgoDox EZ
NKRO_ENABLE      = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
UNICODE_ENABLE   = yes # Unicode
ONEHAND_ENABLE   = yes # Allow swapping hands of keyboard
SWAP_HANDS_ENABLE= yes # Allow swapping hands of keyboard
SLEEP_LED_ENABLE = no
API_SYSEX_ENABLE = no
RGBLIGHT_ENABLE = yes

LAYOUTS = ergodox
\ No newline at end of file
LAYOUTS = ergodox

M keyboards/ergodox_infinity/ergodox_infinity.c => keyboards/ergodox_infinity/ergodox_infinity.c +1 -1
@@ 174,7 174,7 @@ __attribute__ ((weak))
void ergodox_right_led_3_set(uint8_t n) {
}

#ifdef ONEHAND_ENABLE
#ifdef SWAP_HANDS_ENABLE
__attribute__ ((weak))
const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
    {{0, 9}, {1, 9}, {2, 9}, {3, 9}, {4, 9}},

M keyboards/ergodox_infinity/keymaps/halfkeyboard/rules.mk => keyboards/ergodox_infinity/keymaps/halfkeyboard/rules.mk +1 -1
@@ 67,7 67,7 @@ CUSTOM_MATRIX    = yes # Custom matrix file for the ErgoDox EZ
SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
NKRO_ENABLE      = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
UNICODE_ENABLE   = yes # Unicode
ONEHAND_ENABLE   = yes # Allow swapping hands of keyboard
SWAP_HANDS_ENABLE = yes # Allow swapping hands of keyboard
STENO_ENABLE = yes  #enable plover steno mode
CUSTOM_MATRIX = yes # Custom matrix file
SERIAL_LINK_ENABLE = yes

M keyboards/ergodox_infinity/rules.mk => keyboards/ergodox_infinity/rules.mk +3 -3
@@ 67,7 67,7 @@ CUSTOM_MATRIX    = yes # Custom matrix file for the ErgoDox EZ
SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
NKRO_ENABLE      = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
UNICODE_ENABLE   = yes # Unicode
ONEHAND_ENABLE   = yes # Allow swapping hands of keyboard
SWAP_HANDS_ENABLE= yes # Allow swapping hands of keyboard

CUSTOM_MATRIX = yes # Custom matrix file
SERIAL_LINK_ENABLE = yes


@@ 79,11 79,11 @@ MIDI_ENABLE = no
RGBLIGHT_ENABLE = no

LCD_DRIVER = st7565
LCD_WIDTH = 128 
LCD_WIDTH = 128
LCD_HEIGHT = 32

LED_DRIVER = is31fl3731c
LED_WIDTH = 7 
LED_WIDTH = 7
LED_HEIGHT = 7

LAYOUTS = ergodox

M keyboards/hadron/keymaps/default/rules.mk => keyboards/hadron/keymaps/default/rules.mk +2 -2
@@ 1,7 1,7 @@


# Build Options
#   change to "no" to disable the options, or define them in the Makefile in 
#   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)


@@ 16,7 16,7 @@ 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 = yes        # Enable WS2812 RGB underlight.  Do not enable this with audio at the same time.
ONEHAND_ENABLE = no        # Enable one-hand typing
SWAP_HANDS_ENABLE = no        # Enable one-hand typing

# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend

M keyboards/hadron/keymaps/side_numpad/rules.mk => keyboards/hadron/keymaps/side_numpad/rules.mk +2 -2
@@ 1,7 1,7 @@


# Build Options
#   change to "no" to disable the options, or define them in the Makefile in 
#   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)


@@ 16,7 16,7 @@ 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 = yes        # Enable WS2812 RGB underlight.  Do not enable this with audio at the same time.
ONEHAND_ENABLE = no        # Enable one-hand typing
SWAP_HANDS_ENABLE = no        # Enable one-hand typing

# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend

M keyboards/handwired/dactyl/dactyl.c => keyboards/handwired/dactyl/dactyl.c +1 -1
@@ 57,7 57,7 @@ out:
    return mcp23018_status;
}

#ifdef ONEHAND_ENABLE
#ifdef SWAP_HANDS_ENABLE
__attribute__ ((weak))
// swap-hands action needs a matrix to define the swap
const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {

M keyboards/handwired/dactyl/rules.mk => keyboards/handwired/dactyl/rules.mk +1 -1
@@ 80,7 80,7 @@ COMMAND_ENABLE          = no  # Commands for debug and configuration
CUSTOM_MATRIX           = yes # Custom matrix file for the Dactyl
NKRO_ENABLE             = yes # USB Nkey Rollover
UNICODE_ENABLE          = yes # Unicode
ONEHAND_ENABLE          = yes # Allow swapping hands of keyboard
SWAP_HANDS_ENABLE       = yes # Allow swapping hands of keyboard
SLEEP_LED_ENABLE        = no
API_SYSEX_ENABLE        = no
RGBLIGHT_ENABLE         = no

M keyboards/helix/rev1/keymaps/OLED_sample/rules.mk => keyboards/helix/rev1/keymaps/OLED_sample/rules.mk +1 -1
@@ 15,7 15,7 @@ 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 = yes        # Enable WS2812 RGB underlight.  Do not enable this with audio at the same time.
ONEHAND_ENABLE = no        # Enable one-hand typing
SWAP_HANDS_ENABLE = no        # Enable one-hand typing

# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend

M keyboards/helix/rev2/keymaps/default/rules.mk => keyboards/helix/rev2/keymaps/default/rules.mk +1 -1
@@ 17,7 17,7 @@ BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID
# Helix keyboard : see ./config.h: RGBLED_NUM 6 or 32
# Helix keyboard : RGBLIGHT_ENABLE = no or yes
RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight.  Do not enable this with audio at the same time.
ONEHAND_ENABLE = no        # Enable one-hand typing
SWAP_HANDS_ENABLE = no        # Enable one-hand typing

# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend

M keyboards/lets_split/keymaps/OLED_sample/rules.mk => keyboards/lets_split/keymaps/OLED_sample/rules.mk +2 -2
@@ 1,6 1,6 @@

# Build Options
#   change to "no" to disable the options, or define them in the Makefile in 
#   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)


@@ 15,7 15,7 @@ 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 = yes        # Enable WS2812 RGB underlight.  Do not enable this with audio at the same time.
ONEHAND_ENABLE = no        # Enable one-hand typing
SWAP_HANDS_ENABLE = no        # Enable one-hand typing

# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend

M keyboards/lets_split/keymaps/heartrobotninja/rules.mk => keyboards/lets_split/keymaps/heartrobotninja/rules.mk +1 -1
@@ 15,7 15,7 @@ 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.
ONEHAND_ENABLE = no        # Enable one-hand typing
SWAP_HANDS_ENABLE = no        # Enable one-hand typing

# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend

M keyboards/lets_split/keymaps/mjt/rules.mk => keyboards/lets_split/keymaps/mjt/rules.mk +2 -2
@@ 1,6 1,6 @@

# Build Options
#   change to "no" to disable the options, or define them in the Makefile in 
#   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)


@@ 15,7 15,7 @@ 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 = yes        # Enable WS2812 RGB underlight.  Do not enable this with audio at the same time.
ONEHAND_ENABLE = no        # Enable one-hand typing
SWAP_HANDS_ENABLE = no        # Enable one-hand typing

# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend

M keyboards/lets_split/lets_split.c => keyboards/lets_split/lets_split.c +1 -1
@@ 1,6 1,6 @@
#include "lets_split.h"

#ifdef ONEHAND_ENABLE
#ifdef SWAP_HANDS_ENABLE
__attribute__ ((weak))
const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {


M keyboards/levinson/levinson.c => keyboards/levinson/levinson.c +1 -1
@@ 1,6 1,6 @@
#include "levinson.h"

#ifdef ONEHAND_ENABLE
#ifdef SWAP_HANDS_ENABLE
__attribute__ ((weak))
const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {


M keyboards/mitosis/mitosis.c => keyboards/mitosis/mitosis.c +1 -1
@@ 30,7 30,7 @@ void led_set_kb(uint8_t usb_led) {

}

#ifdef ONEHAND_ENABLE
#ifdef SWAP_HANDS_ENABLE
__attribute__ ((weak))
const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
{{9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}},

M keyboards/niu_mini/niu_mini.c => keyboards/niu_mini/niu_mini.c +1 -1
@@ 1,6 1,6 @@
#include "niu_mini.h"

#ifdef ONEHAND_ENABLE
#ifdef SWAP_HANDS_ENABLE
__attribute__ ((weak))
const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
  {{11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}},

M keyboards/planck/keymaps/experimental/rules.mk => keyboards/planck/keymaps/experimental/rules.mk +1 -1
@@ 16,7 16,7 @@ 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 = yes        # Enable WS2812 RGB underlight.  Do not enable this with audio at the same time.
ONEHAND_ENABLE = yes        # Enable one-hand typing
SWAP_HANDS_ENABLE = yes        # Enable one-hand typing
STENO_ENABLE = yes					# Enable TX Bolt protocol for Stenography, requires VIRTSER and may not work with mouse keys

# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE

M keyboards/planck/planck.c => keyboards/planck/planck.c +1 -1
@@ 1,6 1,6 @@
#include "planck.h"

#ifdef ONEHAND_ENABLE
#ifdef SWAP_HANDS_ENABLE
__attribute__ ((weak))
const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
  {{11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}},

M keyboards/preonic/preonic.c => keyboards/preonic/preonic.c +1 -1
@@ 1,6 1,6 @@
#include "preonic.h"

#ifdef ONEHAND_ENABLE
#ifdef SWAP_HANDS_ENABLE
__attribute__ ((weak))
const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
  {{11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}},

M tmk_core/common.mk => tmk_core/common.mk +5 -2
@@ 25,7 25,7 @@ TMK_COMMON_SRC +=	$(COMMON_DIR)/host.c \

ifeq ($(PLATFORM),AVR)
	TMK_COMMON_SRC += $(PLATFORM_COMMON_DIR)/xprintf.S
endif 
endif

ifeq ($(PLATFORM),CHIBIOS)
	TMK_COMMON_SRC += $(PLATFORM_COMMON_DIR)/printf.c


@@ 124,7 124,10 @@ ifeq ($(strip $(BLUETOOTH)), RN42)
endif

ifeq ($(strip $(ONEHAND_ENABLE)), yes)
    TMK_COMMON_DEFS += -DONEHAND_ENABLE
  SWAP_HANDS_ENABLE = yes # backwards compatibility
endif
ifeq ($(strip $(SWAP_HANDS_ENABLE)), yes)
    TMK_COMMON_DEFS += -DSWAP_HANDS_ENABLE
endif

ifeq ($(strip $(NO_USB_STARTUP_CHECK)), yes)

M tmk_core/common/action.c => tmk_core/common/action.c +3 -3
@@ 64,7 64,7 @@ void action_exec(keyevent_t event)
    fauxclicky_check();
#endif

#ifdef ONEHAND_ENABLE
#ifdef SWAP_HANDS_ENABLE
    if (!IS_NOEVENT(event)) {
        process_hand_swap(&event);
    }


@@ 91,7 91,7 @@ void action_exec(keyevent_t event)
#endif
}

#ifdef ONEHAND_ENABLE
#ifdef SWAP_HANDS_ENABLE
bool swap_hands = false;

void process_hand_swap(keyevent_t *event) {


@@ 524,7 524,7 @@ void process_action(keyrecord_t *record, action_t action)
#endif
        case ACT_COMMAND:
            break;
#ifdef ONEHAND_ENABLE
#ifdef SWAP_HANDS_ENABLE
        case ACT_SWAP_HANDS:
            switch (action.swap.code) {
                case OP_SH_TOGGLE:

M tmk_core/common/action.h => tmk_core/common/action.h +1 -1
@@ 67,7 67,7 @@ extern bool disable_action_cache;
#endif

/* Code for handling one-handed key modifiers. */
#ifdef ONEHAND_ENABLE
#ifdef SWAP_HANDS_ENABLE
extern bool swap_hands;
extern const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS];
#if (MATRIX_COLS <= 8)