Add Colemak keybindings to editor for osx
This commit is contained in:
parent
e10ee8765f
commit
f3fc07272c
6 changed files with 29 additions and 3 deletions
|
@ -413,6 +413,7 @@ String _OS::get_latin_keyboard_variant() const {
|
||||||
case OS::LATIN_KEYBOARD_QZERTY: return "QZERTY";
|
case OS::LATIN_KEYBOARD_QZERTY: return "QZERTY";
|
||||||
case OS::LATIN_KEYBOARD_DVORAK: return "DVORAK";
|
case OS::LATIN_KEYBOARD_DVORAK: return "DVORAK";
|
||||||
case OS::LATIN_KEYBOARD_NEO: return "NEO";
|
case OS::LATIN_KEYBOARD_NEO: return "NEO";
|
||||||
|
case OS::LATIN_KEYBOARD_COLEMAK: return "COLEMAK";
|
||||||
default: return "ERROR";
|
default: return "ERROR";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -505,6 +505,27 @@ static const _KeyCodeReplace _keycode_replace_neo[] = {
|
||||||
{ 0, 0 }
|
{ 0, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const _KeyCodeReplace _keycode_replace_colemak[] = {
|
||||||
|
{ KEY_E, KEY_F },
|
||||||
|
{ KEY_R, KEY_P },
|
||||||
|
{ KEY_T, KEY_G },
|
||||||
|
{ KEY_Y, KEY_J },
|
||||||
|
{ KEY_U, KEY_L },
|
||||||
|
{ KEY_I, KEY_U },
|
||||||
|
{ KEY_O, KEY_Y },
|
||||||
|
{ KEY_P, KEY_SEMICOLON },
|
||||||
|
{ KEY_S, KEY_R },
|
||||||
|
{ KEY_D, KEY_S },
|
||||||
|
{ KEY_F, KEY_T },
|
||||||
|
{ KEY_G, KEY_D },
|
||||||
|
{ KEY_J, KEY_N },
|
||||||
|
{ KEY_K, KEY_E },
|
||||||
|
{ KEY_L, KEY_I },
|
||||||
|
{ KEY_SEMICOLON, KEY_O },
|
||||||
|
{ KEY_N, KEY_K },
|
||||||
|
{ 0, 0 }
|
||||||
|
};
|
||||||
|
|
||||||
int keycode_get_count() {
|
int keycode_get_count() {
|
||||||
|
|
||||||
const _KeyCodeText *kct = &_keycodes[0];
|
const _KeyCodeText *kct = &_keycodes[0];
|
||||||
|
@ -537,6 +558,7 @@ int latin_keyboard_keycode_convert(int p_keycode) {
|
||||||
case OS::LATIN_KEYBOARD_QZERTY: kcr = _keycode_replace_qzerty; break;
|
case OS::LATIN_KEYBOARD_QZERTY: kcr = _keycode_replace_qzerty; break;
|
||||||
case OS::LATIN_KEYBOARD_DVORAK: kcr = _keycode_replace_dvorak; break;
|
case OS::LATIN_KEYBOARD_DVORAK: kcr = _keycode_replace_dvorak; break;
|
||||||
case OS::LATIN_KEYBOARD_NEO: kcr = _keycode_replace_neo; break;
|
case OS::LATIN_KEYBOARD_NEO: kcr = _keycode_replace_neo; break;
|
||||||
|
case OS::LATIN_KEYBOARD_COLEMAK: kcr = _keycode_replace_colemak; break;
|
||||||
default: return p_keycode;
|
default: return p_keycode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -409,6 +409,7 @@ public:
|
||||||
LATIN_KEYBOARD_QZERTY,
|
LATIN_KEYBOARD_QZERTY,
|
||||||
LATIN_KEYBOARD_DVORAK,
|
LATIN_KEYBOARD_DVORAK,
|
||||||
LATIN_KEYBOARD_NEO,
|
LATIN_KEYBOARD_NEO,
|
||||||
|
LATIN_KEYBOARD_COLEMAK,
|
||||||
};
|
};
|
||||||
|
|
||||||
virtual LatinKeyboardVariant get_latin_keyboard_variant() const;
|
virtual LatinKeyboardVariant get_latin_keyboard_variant() const;
|
||||||
|
|
|
@ -196,7 +196,7 @@
|
||||||
</return>
|
</return>
|
||||||
<description>
|
<description>
|
||||||
Returns the current latin keyboard variant as a String.
|
Returns the current latin keyboard variant as a String.
|
||||||
Possible return values are: "QWERTY", "AZERTY", "QZERTY", "DVORAK", "NEO" or "ERROR"
|
Possible return values are: "QWERTY", "AZERTY", "QZERTY", "DVORAK", "NEO", "COLEMAK" or "ERROR".
|
||||||
</description>
|
</description>
|
||||||
</method>
|
</method>
|
||||||
<method name="get_locale" qualifiers="const">
|
<method name="get_locale" qualifiers="const">
|
||||||
|
|
|
@ -1834,6 +1834,8 @@ OS::LatinKeyboardVariant OS_OSX::get_latin_keyboard_variant() const {
|
||||||
layout = LATIN_KEYBOARD_DVORAK;
|
layout = LATIN_KEYBOARD_DVORAK;
|
||||||
} else if ([test isEqualToString:@"xvlcwk"]) {
|
} else if ([test isEqualToString:@"xvlcwk"]) {
|
||||||
layout = LATIN_KEYBOARD_NEO;
|
layout = LATIN_KEYBOARD_NEO;
|
||||||
|
} else if ([test isEqualToString:@"qwfpgj"]) {
|
||||||
|
layout = LATIN_KEYBOARD_COLEMAK;
|
||||||
}
|
}
|
||||||
|
|
||||||
[test release];
|
[test release];
|
||||||
|
|
|
@ -2268,9 +2268,9 @@ OS::LatinKeyboardVariant OS_X11::get_latin_keyboard_variant() const {
|
||||||
Vector<String> info = String(layout).split("+");
|
Vector<String> info = String(layout).split("+");
|
||||||
ERR_FAIL_INDEX_V(1, info.size(), LATIN_KEYBOARD_QWERTY);
|
ERR_FAIL_INDEX_V(1, info.size(), LATIN_KEYBOARD_QWERTY);
|
||||||
|
|
||||||
/*if (info[1].find("colemak") != -1) {
|
if (info[1].find("colemak") != -1) {
|
||||||
return LATIN_KEYBOARD_COLEMAK;
|
return LATIN_KEYBOARD_COLEMAK;
|
||||||
} else*/ if (info[1].find("qwertz") != -1) {
|
} else if (info[1].find("qwertz") != -1) {
|
||||||
return LATIN_KEYBOARD_QWERTZ;
|
return LATIN_KEYBOARD_QWERTZ;
|
||||||
} else if (info[1].find("azerty") != -1) {
|
} else if (info[1].find("azerty") != -1) {
|
||||||
return LATIN_KEYBOARD_AZERTY;
|
return LATIN_KEYBOARD_AZERTY;
|
||||||
|
|
Loading…
Reference in a new issue