Skip to content

Instantly share code, notes, and snippets.

@xwoker
Created November 8, 2013 11:41
Show Gist options
  • Save xwoker/7369861 to your computer and use it in GitHub Desktop.
Save xwoker/7369861 to your computer and use it in GitHub Desktop.
I have an English International Keyboard (better for programming) but I still need an easy way to enter German special characters in my normal writing. This does it for me: CapsLock + a/e/i/o/u/s (the first ones also with Shift for uppercase) In addition: Shift-Left / Shift-Right work as () when pressed without additional key
<?xml version="1.0"?>
<root>
<!-- inspired and partially copied from http://stevelosh.com/blog/2012/10/a-modern-space-cadet/ and http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/ -->
<item>
<name>Shifts to Parentheses</name>
<appendix>Shifts, when pressed alone, type parentheses. When used with other keys they're normal shifts.</appendix>
<identifier>private.shifts_to_parens</identifier>
<!-- This is the basic mapping. -->
<autogen>--KeyOverlaidModifier-- KeyCode::SHIFT_R, ModifierFlag::SHIFT_R | ModifierFlag::NONE, KeyCode::SHIFT_R, KeyCode::KEY_0, ModifierFlag::SHIFT_L</autogen>
<autogen>--KeyOverlaidModifier-- KeyCode::SHIFT_L, ModifierFlag::SHIFT_L | ModifierFlag::NONE, KeyCode::SHIFT_L, KeyCode::KEY_9, ModifierFlag::SHIFT_R</autogen>
<!--
Remap the "rolls" of () and )( because it's too easy to hit one
before finishing the other, and there's no other reason to be
pressing both shift keys at once anyway
-->
<autogen>--KeyToKey-- KeyCode::SHIFT_L, ModifierFlag::SHIFT_R, KeyCode::KEY_0, ModifierFlag::SHIFT_L, KeyCode::KEY_9, ModifierFlag::SHIFT_L</autogen>
<autogen>--KeyToKey-- KeyCode::SHIFT_R, ModifierFlag::SHIFT_L, KeyCode::KEY_9, ModifierFlag::SHIFT_L, KeyCode::KEY_0, ModifierFlag::SHIFT_L</autogen>
<!--
Remap Rshift+Space to ') ', because when typing an end paren and
then a space I tend to hit space before I let go of rshift.
-->
<autogen>--KeyToKey-- KeyCode::SPACE, ModifierFlag::SHIFT_R, KeyCode::KEY_0, ModifierFlag::SHIFT_L, KeyCode::SPACE</autogen>
</item>
<item>
<name>Lazy äëïöüß Layer</name>
<appendix>Map your CapsLock to 110 (PC_APPLICATION)) with PCKeyboardHack. Choose Unicode Input Source as Keyboard in Mac </appendix>
<identifier>lazy.german_umlaute</identifier>
<autogen>
--KeyToKey--
KeyCode::PC_APPLICATION,
KeyCode::VK_STICKY_EXTRA4
</autogen>
<!-- Ä / ä -->
<autogen>
--KeyToKey--
KeyCode::A, ModifierFlag::EXTRA4 | VK_SHIFT,
KeyCode::KEY_0, ModifierFlag::OPTION_L,
KeyCode::KEY_0, ModifierFlag::OPTION_L,
KeyCode::C, ModifierFlag::OPTION_L,
KeyCode::KEY_4, ModifierFlag::OPTION_L,
</autogen>
<autogen>
--KeyToKey--
KeyCode::A, ModifierFlag::EXTRA4,
KeyCode::KEY_0, ModifierFlag::OPTION_L,
KeyCode::KEY_0, ModifierFlag::OPTION_L,
KeyCode::E, ModifierFlag::OPTION_L,
KeyCode::KEY_4, ModifierFlag::OPTION_L,
</autogen>
<!-- Ë / ë -->
<autogen>
--KeyToKey--
KeyCode::E, ModifierFlag::EXTRA4 | VK_SHIFT,
KeyCode::KEY_0, ModifierFlag::OPTION_L,
KeyCode::KEY_0, ModifierFlag::OPTION_L,
KeyCode::C, ModifierFlag::OPTION_L,
KeyCode::B, ModifierFlag::OPTION_L,
</autogen>
<autogen>
--KeyToKey--
KeyCode::E, ModifierFlag::EXTRA4,
KeyCode::KEY_0, ModifierFlag::OPTION_L,
KeyCode::KEY_0, ModifierFlag::OPTION_L,
KeyCode::E, ModifierFlag::OPTION_L,
KeyCode::B, ModifierFlag::OPTION_L,
</autogen>
<!-- Ï / ï -->
<autogen>
--KeyToKey--
KeyCode::I, ModifierFlag::EXTRA4 | VK_SHIFT,
KeyCode::KEY_0, ModifierFlag::OPTION_L,
KeyCode::KEY_0, ModifierFlag::OPTION_L,
KeyCode::C, ModifierFlag::OPTION_L,
KeyCode::F, ModifierFlag::OPTION_L,
</autogen>
<autogen>
--KeyToKey--
KeyCode::I, ModifierFlag::EXTRA4,
KeyCode::KEY_0, ModifierFlag::OPTION_L,
KeyCode::KEY_0, ModifierFlag::OPTION_L,
KeyCode::E, ModifierFlag::OPTION_L,
KeyCode::F, ModifierFlag::OPTION_L,
</autogen>
<!-- Ö / ö -->
<autogen>
--KeyToKey--
KeyCode::O, ModifierFlag::EXTRA4 | VK_SHIFT,
KeyCode::KEY_0, ModifierFlag::OPTION_L,
KeyCode::KEY_0, ModifierFlag::OPTION_L,
KeyCode::D, ModifierFlag::OPTION_L,
KeyCode::KEY_6, ModifierFlag::OPTION_L,
</autogen>
<autogen>
--KeyToKey--
KeyCode::O, ModifierFlag::EXTRA4,
KeyCode::KEY_0, ModifierFlag::OPTION_L,
KeyCode::KEY_0, ModifierFlag::OPTION_L,
KeyCode::F, ModifierFlag::OPTION_L,
KeyCode::KEY_6, ModifierFlag::OPTION_L,
</autogen>
<!-- Ü / ü -->
<autogen>
--KeyToKey--
KeyCode::U, ModifierFlag::EXTRA4 | VK_SHIFT,
KeyCode::KEY_0, ModifierFlag::OPTION_L,
KeyCode::KEY_0, ModifierFlag::OPTION_L,
KeyCode::D, ModifierFlag::OPTION_L,
KeyCode::C, ModifierFlag::OPTION_L,
</autogen>
<autogen>
--KeyToKey--
KeyCode::U, ModifierFlag::EXTRA4,
KeyCode::KEY_0, ModifierFlag::OPTION_L,
KeyCode::KEY_0, ModifierFlag::OPTION_L,
KeyCode::F, ModifierFlag::OPTION_L,
KeyCode::C, ModifierFlag::OPTION_L,
</autogen>
<!-- ß -->
<autogen>
--KeyToKey--
KeyCode::S, ModifierFlag::EXTRA4,
KeyCode::KEY_0, ModifierFlag::OPTION_L,
KeyCode::KEY_0, ModifierFlag::OPTION_L,
KeyCode::D, ModifierFlag::OPTION_L,
KeyCode::F, ModifierFlag::OPTION_L,
</autogen>
</item>
</root>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment