~ruther/qmk_firmware

f8f0ca458d246d5db70cad3b504ab435ed5977b9 — QMK Bot 4 years ago 40907fa + 6e5e346
Merge remote-tracking branch 'origin/master' into develop
M keyboards/redox/keymaps/jeherve/config.h => keyboards/redox/keymaps/jeherve/config.h +9 -1
@@ 1,5 1,5 @@
/*
Copyright 2018 Jeremy Herve <jeremy@jeremy.hu>
Copyright 2021 Jeremy Herve <jeremy@jeremy.hu>

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


@@ 36,3 36,11 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
#define RGBLIGHT_SLEEP

/* Set Unicode mode by default */
#define UNICODE_SELECTED_MODES UC_MAC

/* Custom startup sound */
#ifdef AUDIO_ENABLE
#    define STARTUP_SONG SONG(ZELDA_PUZZLE)
#endif

M keyboards/redox/keymaps/jeherve/keymap.c => keyboards/redox/keymaps/jeherve/keymap.c +152 -143
@@ 1,6 1,21 @@
#include QMK_KEYBOARD_H
/*
Copyright 2021 Jeremy Herve <jeremy@jeremy.hu>

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 <http://www.gnu.org/licenses/>.
*/

extern keymap_config_t keymap_config;
#include QMK_KEYBOARD_H

// 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.


@@ 12,126 27,127 @@ extern keymap_config_t keymap_config;
#define _INTER 3
#define _ADJUST 4

// Define song.
#ifdef AUDIO_ENABLE
float tone_zelda[][2] = SONG(ZELDA_TREASURE);
#endif

enum custom_keycodes {
	COLEMAK = SAFE_RANGE,
	SYMB,
	NAV,
	INTER,
	ADJUST,
	// These use process_record_user()
	M_BRACKET_LEFT,
	M_BRACKET_RIGHT,
	SHRUG,
	WAVE,
	YOSHI,
	THUMB_UP,
	NBSP,
  INV_1P,
  ALFRED
    COLEMAK = SAFE_RANGE,
    SYMB,
    NAV,
    INTER,
    ADJUST,
    // These use process_record_user()
    M_BRACKET_LEFT,
    M_BRACKET_RIGHT,
    SHRUG,
    WAVE,
    YOSHI,
    THUMB_UP,
    INV_1P,
    ALFRED
};

// Is shift being held? Let's store this in a bool.
static bool shift_held = false;

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
	switch(keycode) {
		case SHRUG:
			if (record->event.pressed) {
				send_unicode_hex_string("00AF 005C 005F 0028 30C4 0029 005F 002F 00AF");
			}
			return false;
			break;
    case INV_1P:
      if (record->event.pressed) {
        SEND_STRING(SS_DOWN(X_LGUI)SS_DOWN(X_LALT)SS_TAP(X_BSLASH)SS_UP(X_LGUI)SS_UP(X_LALT));
      }
      return false;
      break;
    case ALFRED:
      if (record->event.pressed) {
        SEND_STRING(SS_DOWN(X_LALT)SS_TAP(X_SPACE)SS_UP(X_LALT));
      }
      return false;
      break;
		case YOSHI:
			if (record->event.pressed) {
				SEND_STRING(":yellow_yoshi:");
			}
			return false;
			break;
		case THUMB_UP:
			if (record->event.pressed) {
				SEND_STRING(SS_LALT("D83D+DC4D"));
			}
			return false;
			break;
		case WAVE:
			if (record->event.pressed) {
				SEND_STRING(SS_LALT("D83D+DC4B"));
			}
			return false;
			break;
		case NBSP:
			if (record->event.pressed) {
				SEND_STRING("&nbsp;");
			}
			return false;
			break;
	case KC_LSFT:
		shift_held = record->event.pressed;
		return true;
		break;
	case KC_RSFT:
		shift_held = record->event.pressed;
		return true;
		break;
		case M_BRACKET_LEFT: {
			if (record->event.pressed) {
				if (shift_held) {
					unregister_code(KC_LSFT);
					unregister_code(KC_RSFT);
					register_code(KC_LBRC);
				} else {
					register_code(KC_LSFT);
					register_code(KC_9);
				}
			} else { // Release the key
				unregister_code(KC_LBRC);
				unregister_code(KC_LSFT);
				unregister_code(KC_RSFT);
				unregister_code(KC_9);
			}
			return false;
			break;
		}
		case M_BRACKET_RIGHT: {
			if (record->event.pressed) {
				if (shift_held) {
					unregister_code(KC_LSFT);
					unregister_code(KC_RSFT);
					register_code(KC_RBRC);
				} else {
					register_code(KC_LSFT);
					register_code(KC_0);
				}
			} else { // Release the key
				unregister_code(KC_RBRC);
				unregister_code(KC_LSFT);
				unregister_code(KC_RSFT);
				unregister_code(KC_0);
			}
			return false;
			break;
		}
	}
	return true;
    switch (keycode) {
        case SHRUG:
            if (record->event.pressed) {
                send_unicode_string("¯\\_(ツ)_/¯");
            }
            return false;
            break;
        case INV_1P:
            if (record->event.pressed) {
                SEND_STRING(SS_DOWN(X_LGUI) SS_DOWN(X_LALT) SS_TAP(X_BSLASH) SS_UP(X_LGUI) SS_UP(X_LALT));
            }
            return false;
            break;
        case ALFRED:
            if (record->event.pressed) {
                SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_SPACE) SS_UP(X_LALT));
            }
            return false;
            break;
        case YOSHI:
            if (record->event.pressed) {
#ifdef AUDIO_ENABLE
                PLAY_SONG(tone_zelda);
#endif
                SEND_STRING(":yellow_yoshi:");
            }
            return false;
            break;
        case THUMB_UP:
            if (record->event.pressed) {
                register_unicode(0x1F44D);
            }
            return false;
            break;
        case WAVE:
            if (record->event.pressed) {
                register_unicode(0x1F44B);
            }
            return false;
            break;
        case KC_LSFT:
            shift_held = record->event.pressed;
            return true;
            break;
        case KC_RSFT:
            shift_held = record->event.pressed;
            return true;
            break;
        case M_BRACKET_LEFT: {
            if (record->event.pressed) {
                if (shift_held) {
                    unregister_code(KC_LSFT);
                    unregister_code(KC_RSFT);
                    register_code(KC_LBRC);
                } else {
                    register_code(KC_LSFT);
                    register_code(KC_9);
                }
            } else {  // Release the key
                unregister_code(KC_LBRC);
                unregister_code(KC_LSFT);
                unregister_code(KC_RSFT);
                unregister_code(KC_9);
            }
            return false;
            break;
        }
        case M_BRACKET_RIGHT: {
            if (record->event.pressed) {
                if (shift_held) {
                    unregister_code(KC_LSFT);
                    unregister_code(KC_RSFT);
                    register_code(KC_RBRC);
                } else {
                    register_code(KC_LSFT);
                    register_code(KC_0);
                }
            } else {  // Release the key
                unregister_code(KC_RBRC);
                unregister_code(KC_LSFT);
                unregister_code(KC_RSFT);
                unregister_code(KC_0);
            }
            return false;
            break;
        }
    }
    return true;
};

// Shortcut to make keymap more readable
#define KC_SYQT  LT(_SYMB,KC_QUOT)
#define SYM_L    MO(_SYMB)
#define MO_INTR  MO(_INTER)
#define TT_ADJ   TT(_ADJUST)
#define KC_SYQT LT(_SYMB, KC_QUOT)
#define SYM_L   MO(_SYMB)
#define MO_INTR MO(_INTER)
#define TT_ADJ  TT(_ADJUST)

#define UC_00E0 UC(0x00E0)
#define UC_00FC UC(0x00FC)


@@ 147,6 163,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#define UC_0171 UC(0x0171)
#define UC_00EA UC(0x00EA)
#define UC_0151 UC(0x0151)
// Non-breaking space.
#define UC_00A0 UC(0x00a0)

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {



@@ 202,7 220,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐       ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
     XXXXXXX ,UC_00E2 ,XXXXXXX ,UC_00E7 ,XXXXXXX ,XXXXXXX ,XXXXXXX ,_______ ,        _______ ,XXXXXXX ,XXXXXXX ,UC_0171 ,UC_00EA ,XXXXXXX ,UC_0151 ,XXXXXXX ,
  //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤       ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤
     _______ ,XXXXXXX ,XXXXXXX ,XXXXXXX ,     XXXXXXX ,    XXXXXXX ,_______ ,        _______ ,NBSP    ,    XXXXXXX ,     _______ ,XXXXXXX ,XXXXXXX ,_______
     _______ ,XXXXXXX ,XXXXXXX ,XXXXXXX ,     XXXXXXX ,    XXXXXXX ,_______ ,        _______ ,UC_00A0 ,    XXXXXXX ,     _______ ,XXXXXXX ,XXXXXXX ,_______
  //└────────┴────────┴────────┴────────┘    └────────┘   └────────┴────────┘       └────────┴────────┘   └────────┘    └────────┴────────┴────────┴────────┘
  ),



@@ 222,38 240,29 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

};

#ifdef AUDIO_ENABLE
float tone_colemak[][2]     = SONG(ZELDA_TREASURE);
#endif

void persistent_default_layer_set(uint16_t default_layer) {
	eeconfig_update_default_layer(default_layer);
	default_layer_set(default_layer);
    eeconfig_update_default_layer(default_layer);
    default_layer_set(default_layer);
}

// Set unicode in Mac OS.
void eeconfig_init_user(void) {
  set_unicode_input_mode(UC_OSX);
};

// Change LED colors depending on the layer.
uint32_t layer_state_set_user(uint32_t state) {
	switch (biton32(state)) {
		case _SYMB:
			rgblight_setrgb_orange();
			break;
		case _NAV:
			rgblight_setrgb_springgreen();
			break;
		case _INTER:
			rgblight_setrgb_teal();
			break;
		case _ADJUST:
			rgblight_setrgb_red();
			break;
		default: //  for any other layers, or the default layer
			rgblight_setrgb_yellow();
			break;
	}
	return state;
layer_state_t layer_state_set_user(layer_state_t state) {
    switch (get_highest_layer(state)) {
        case _SYMB:
            rgblight_setrgb_orange();
            break;
        case _NAV:
            rgblight_setrgb_springgreen();
            break;
        case _INTER:
            rgblight_setrgb_teal();
            break;
        case _ADJUST:
            rgblight_setrgb_red();
            break;
        default:  //  for any other layers, or the default layer
            rgblight_setrgb_yellow();
            break;
    }
    return state;
};

M keyboards/redox/keymaps/jeherve/readme.md => keyboards/redox/keymaps/jeherve/readme.md +4 -1
@@ 1,7 1,7 @@
# A Colemak keymap for the Redox keyboard

----
![jeherve-redox-layout-4](https://user-images.githubusercontent.com/426388/50276398-2664be80-0442-11e9-86b9-fbd0f4275354.png)
![jeherve-redox-layout-5](https://user-images.githubusercontent.com/426388/116534030-56f67600-a8e2-11eb-9bf3-3ce5362d717a.png)

----



@@ 25,6 25,9 @@ My keymap uses 5 layers:

## Changelog

- 2021.04.29
	- Update code to replace deprecated code.
	- Fix non-breaking space key.
- 2018.12.20
	- 2 new Macro keys, to invoke [Alfred](https://www.alfredapp.com/) and [1Password](https://1password.com/).
	- No more Right Command key or Expose key, I didn't use those much.