split up unicode mapping for ansi and mac
This commit is contained in:
@@ -1,4 +1,14 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
#ifdef UNICODE_ENABLE
|
||||
#include "unicode_mac.c"
|
||||
#endif
|
||||
#ifndef UNICODE_ENABLE
|
||||
#include "unicode_ansi.c"
|
||||
#endif
|
||||
|
||||
#define ___x___ KC_NO
|
||||
#define _BASE 0
|
||||
#define _FN 1
|
||||
|
||||
void matrix_init_user(void){
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
@@ -9,18 +19,11 @@ void matrix_init_user(void){
|
||||
#endif
|
||||
#endif
|
||||
#ifdef UNICODE_ENABLE
|
||||
set_unicode_input_mode(UC_MAC);
|
||||
// go to System Preferences > Keyboard > Input Sources, add Unicode Hex Input
|
||||
set_unicode_input_mode(UC_OSX);
|
||||
#endif
|
||||
}
|
||||
|
||||
enum custom_keycodes {
|
||||
MAC_AE = SAFE_RANGE,
|
||||
MAC_OE,
|
||||
MAC_SS,
|
||||
MAC_UE,
|
||||
MAC_EUR
|
||||
};
|
||||
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
#ifdef LAYER_SWITCH_RGB
|
||||
void matrix_scan_user(void) { // runs frequently to update info
|
||||
@@ -38,10 +41,10 @@ enum custom_keycodes {
|
||||
if (has_layer_changed) {
|
||||
// change backlight based on layer. These should be numbers or whatever you defined the layers as
|
||||
switch (layer) {
|
||||
case 0:
|
||||
case _BASE:
|
||||
rgblight_sethsv(229, 70, 149);
|
||||
break;
|
||||
case 1:
|
||||
case _FN:
|
||||
rgblight_setrgb (0x66, 0x66, 0x00);
|
||||
break;
|
||||
// default:
|
||||
@@ -55,7 +58,7 @@ enum custom_keycodes {
|
||||
#endif
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* BASE
|
||||
/* _BASE
|
||||
* .--------------------------------------------------------------------------------------------------------------------------------------.
|
||||
* | ESC | 1 | 2 | 3 | 4 | 5 | - | ` | = | 6 | 7 | 8 | 9 | 0 | BACKSP |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
@@ -68,15 +71,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | LCTRL | LALT | LGUI | MO(1) | SPACE | SPACE | LEFT | DOWN | RIGHT | SPACE | SPACE | MO(1) | | | |
|
||||
* '--------------------------------------------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[0] = LAYOUT_ortho_5x15(
|
||||
[_BASE] = LAYOUT_ortho_5x15(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_GRAVE, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,\
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_BSLS, KC_RBRC, KC_Z, KC_U, KC_I, KC_O, KC_P, KC_QUOT,\
|
||||
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, XXXXXXX, XXXXXXX, XXXXXXX, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, \
|
||||
KC_LSFT, KC_Y, KC_X, KC_C, KC_V, KC_B, XXXXXXX, KC_UP, XXXXXXX, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,\
|
||||
KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_SPC, KC_SPC, MO(1), XXXXXXX, XXXXXXX, XXXXXXX \
|
||||
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, ___x___, ___x___, ___x___, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, \
|
||||
KC_LSFT, KC_Y, KC_X, KC_C, KC_V, KC_B, ___x___, KC_UP, ___x___, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,\
|
||||
KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_SPC, KC_SPC, MO(1), ___x___, ___x___, ___x___ \
|
||||
),
|
||||
|
||||
/* FN
|
||||
/* _FN
|
||||
* .--------------------------------------------------------------------------------------------------------------------------------------.
|
||||
* | | VOL - | VOL + | MUTE | | | | | | | | | | | DEL |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
@@ -89,49 +92,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* | | | | | | | | | | | | | | | |
|
||||
* '--------------------------------------------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[1] = LAYOUT_ortho_5x15(
|
||||
XXXXXXX, KC_VOLD, KC_VOLU, KC_MUTE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DEL, \
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, MAC_EUR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MAC_UE, XXXXXXX, MAC_OE, XXXXXXX, XXXXXXX,\
|
||||
XXXXXXX, MAC_AE, MAC_SS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\
|
||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,\
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX \
|
||||
[_FN] = LAYOUT_ortho_5x15(
|
||||
___x___, KC_VOLD, KC_VOLU, KC_MUTE, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, KC_DEL, \
|
||||
___x___, ___x___, ___x___, MAC_EUR, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, MAC_UE, ___x___, MAC_OE, ___x___, ___x___,\
|
||||
___x___, MAC_AE, MAC_SS, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___,\
|
||||
_______, ___x___, ___x___, ___x___, ___x___, ___x___, RGB_TOG, _______, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, _______,\
|
||||
___x___, ___x___, ___x___, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___x___, ___x___, ___x___ \
|
||||
)
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
if (record->event.pressed) {
|
||||
switch(keycode) {
|
||||
case MAC_UE:
|
||||
if(keyboard_report->mods & MOD_BIT(KC_LSFT)) {
|
||||
clear_keyboard();
|
||||
SEND_STRING(SS_LALT("u") SS_LSFT("u"));
|
||||
} else {
|
||||
SEND_STRING(SS_LALT("u")"u");
|
||||
}
|
||||
return false;
|
||||
case MAC_AE:
|
||||
if(keyboard_report->mods & MOD_BIT(KC_LSFT)) {
|
||||
clear_keyboard();
|
||||
SEND_STRING(SS_LALT("u") SS_LSFT("a"));
|
||||
} else {
|
||||
SEND_STRING(SS_LALT("u")"a");
|
||||
}
|
||||
return false;
|
||||
case MAC_OE:
|
||||
if(keyboard_report->mods & MOD_BIT(KC_LSFT)) {
|
||||
clear_keyboard();
|
||||
SEND_STRING(SS_LALT("u") SS_LSFT("o"));
|
||||
} else {
|
||||
SEND_STRING(SS_LALT("u")"o");
|
||||
}
|
||||
return false;
|
||||
case MAC_EUR:
|
||||
SEND_STRING(SS_LALT("@"));
|
||||
return false;
|
||||
case MAC_SS:
|
||||
SEND_STRING(SS_LALT("s"));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
45
keyboards/xd75/keymaps/michi/unicode_ansi.c
Normal file
45
keyboards/xd75/keymaps/michi/unicode_ansi.c
Normal file
@@ -0,0 +1,45 @@
|
||||
enum custom_keycodes {
|
||||
MAC_AE = SAFE_RANGE,
|
||||
MAC_OE,
|
||||
MAC_SS,
|
||||
MAC_UE,
|
||||
MAC_EUR
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
if (record->event.pressed) {
|
||||
switch(keycode) {
|
||||
case MAC_UE:
|
||||
if(keyboard_report->mods & MOD_BIT(KC_LSFT)) {
|
||||
clear_keyboard();
|
||||
SEND_STRING(SS_LALT("u") SS_LSFT("u"));
|
||||
} else {
|
||||
SEND_STRING(SS_LALT("u")"u");
|
||||
}
|
||||
return false;
|
||||
case MAC_AE:
|
||||
if(keyboard_report->mods & MOD_BIT(KC_LSFT)) {
|
||||
clear_keyboard();
|
||||
SEND_STRING(SS_LALT("u") SS_LSFT("a"));
|
||||
} else {
|
||||
SEND_STRING(SS_LALT("u")"a");
|
||||
}
|
||||
return false;
|
||||
case MAC_OE:
|
||||
if(keyboard_report->mods & MOD_BIT(KC_LSFT)) {
|
||||
clear_keyboard();
|
||||
SEND_STRING(SS_LALT("u") SS_LSFT("o"));
|
||||
} else {
|
||||
SEND_STRING(SS_LALT("u")"o");
|
||||
}
|
||||
return false;
|
||||
case MAC_EUR:
|
||||
SEND_STRING(SS_LALT("@"));
|
||||
return false;
|
||||
case MAC_SS:
|
||||
SEND_STRING(SS_LALT("s"));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
};
|
||||
5
keyboards/xd75/keymaps/michi/unicode_mac.c
Normal file
5
keyboards/xd75/keymaps/michi/unicode_mac.c
Normal file
@@ -0,0 +1,5 @@
|
||||
#define MAC_AE UC(L'ä')
|
||||
#define MAC_OE UC(L'ö')
|
||||
#define MAC_SS UC(L'ß')
|
||||
#define MAC_UE UC(L'ü')
|
||||
#define MAC_EUR UC(L'€')
|
||||
Reference in New Issue
Block a user