--- a/keyremap4macbook/cadet.py Tue Oct 02 12:47:37 2012 +0300
+++ b/keyremap4macbook/cadet.py Wed Oct 03 09:51:24 2012 -0400
@@ -39,7 +39,7 @@
('n', u'' , u'ℕ', u'', u''),
('o', u'∨', u'', u'', u''),
('r', u'√', u'ℝ', u'', u''),
- ('t', u'⊢', u'⊥', u'', u''),
+ # ('t', u'⊢', u'⊥', u'', u''),
('u', u'∪', u'', u'', u''),
('x', u'⊻', u'', u'', u''),
('z', u'' , u'ℤ', u'', u''),
--- a/keyremap4macbook/private.xml Tue Oct 02 12:47:37 2012 +0300
+++ b/keyremap4macbook/private.xml Wed Oct 03 09:51:24 2012 -0400
@@ -4,10 +4,73 @@
<item>
<name>Space Cadet Mode</name>
<appendix>This mode emulates a few of the features of the Space Cadet keyboard.</appendix>
+ <appendix>It also adds a few other helpful mappings.</appendix>
+ <appendix>It requires the Unicode Hex Input keyboard layout for the Greek and Math layers.</appendix>
<item>
+ <name>Force yourself to use the correct shift keys.</name>
+ <identifier>space_cadet.force_correct_shifts</identifier>
+
+ <autogen>--KeyToKey-- KeyCode::Q, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
+ <autogen>--KeyToKey-- KeyCode::W, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
+ <autogen>--KeyToKey-- KeyCode::E, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
+ <autogen>--KeyToKey-- KeyCode::R, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
+ <autogen>--KeyToKey-- KeyCode::T, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
+ <autogen>--KeyToKey-- KeyCode::A, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
+ <autogen>--KeyToKey-- KeyCode::S, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
+ <autogen>--KeyToKey-- KeyCode::D, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
+ <autogen>--KeyToKey-- KeyCode::F, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
+ <autogen>--KeyToKey-- KeyCode::G, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
+ <autogen>--KeyToKey-- KeyCode::Z, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
+ <autogen>--KeyToKey-- KeyCode::X, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
+ <autogen>--KeyToKey-- KeyCode::C, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
+ <autogen>--KeyToKey-- KeyCode::V, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
+
+ <autogen>--KeyToKey-- KeyCode::Y, ModifierFlag::SHIFT_R, KeyCode::VK_NONE</autogen>
+ <autogen>--KeyToKey-- KeyCode::U, ModifierFlag::SHIFT_R, KeyCode::VK_NONE</autogen>
+ <autogen>--KeyToKey-- KeyCode::I, ModifierFlag::SHIFT_R, KeyCode::VK_NONE</autogen>
+ <autogen>--KeyToKey-- KeyCode::O, ModifierFlag::SHIFT_R, KeyCode::VK_NONE</autogen>
+ <autogen>--KeyToKey-- KeyCode::P, ModifierFlag::SHIFT_R, KeyCode::VK_NONE</autogen>
+ <autogen>--KeyToKey-- KeyCode::H, ModifierFlag::SHIFT_R, KeyCode::VK_NONE</autogen>
+ <autogen>--KeyToKey-- KeyCode::J, ModifierFlag::SHIFT_R, KeyCode::VK_NONE</autogen>
+ <autogen>--KeyToKey-- KeyCode::K, ModifierFlag::SHIFT_R, KeyCode::VK_NONE</autogen>
+ <autogen>--KeyToKey-- KeyCode::L, ModifierFlag::SHIFT_R, KeyCode::VK_NONE</autogen>
+ <autogen>--KeyToKey-- KeyCode::SEMICOLON, ModifierFlag::SHIFT_R, KeyCode::VK_NONE</autogen>
+ <autogen>--KeyToKey-- KeyCode::N, ModifierFlag::SHIFT_R, KeyCode::VK_NONE</autogen>
+ <autogen>--KeyToKey-- KeyCode::M, ModifierFlag::SHIFT_R, KeyCode::VK_NONE</autogen>
+ <autogen>--KeyToKey-- KeyCode::COMMA, ModifierFlag::SHIFT_R, KeyCode::VK_NONE</autogen>
+ <autogen>--KeyToKey-- KeyCode::DOT, ModifierFlag::SHIFT_R, KeyCode::VK_NONE</autogen>
+ <autogen>--KeyToKey-- KeyCode::QUOTE, ModifierFlag::SHIFT_R, KeyCode::VK_NONE</autogen>
+ </item>
+ <item>
+ <name>Shifts to Parentheses</name>
+ <appendix>Shifts, when pressed alone, type parentheses.</appendix>
+ <appendix>When used with other keys they're normal shifts.</appendix>
+
+ <identifier>space_cadet.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>Remap Left Control to Hyper</name>
<appendix>OS X doesn't have a Hyper. This maps Left Control to Control + Shift + Option + Command.</appendix>
+ <appendix>You can use this key in your own custom keyboard shortcuts you create in apps.</appendix>
<identifier>space_cadet.left_control_to_hyper</identifier>
@@ -20,6 +83,42 @@
</autogen>
</item>
<item>
+ <name>Restore [Shift-]Opt-(Left/Right)</name>
+ <appendix>The Unicode Hex Input keyboard layout disables these keys for some reason.</appendix>
+
+ <identifier>space_cadet.fix_opt_arrows</identifier>
+
+ <autogen>
+ --KeyToKey--
+ KeyCode::CURSOR_LEFT, VK_OPTION | VK_SHIFT,
+
+ KeyCode::B,
+ ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L | ModifierFlag::CONTROL_L
+ </autogen>
+ <autogen>
+ --KeyToKey--
+ KeyCode::CURSOR_LEFT, VK_OPTION,
+
+ KeyCode::B,
+ ModifierFlag::OPTION_L | ModifierFlag::CONTROL_L
+ </autogen>
+ <autogen>
+ --KeyToKey--
+ KeyCode::CURSOR_RIGHT, VK_OPTION | VK_SHIFT,
+
+ KeyCode::F,
+ ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L | ModifierFlag::CONTROL_L
+ </autogen>
+ <autogen>
+ --KeyToKey--
+ KeyCode::CURSOR_RIGHT, VK_OPTION,
+
+ KeyCode::F,
+ ModifierFlag::OPTION_L | ModifierFlag::CONTROL_L
+ </autogen>
+ </item>
+
+ <item>
<name>Math Layer</name>
<appendix>Right Control key activates the Math key layer.</appendix>
@@ -164,26 +263,6 @@
<autogen>
--KeyToKey--
- KeyCode::T, ModifierFlag::EXTRA3 | VK_SHIFT,
- KeyCode::KEY_2, ModifierFlag::OPTION_L,
- KeyCode::KEY_2, ModifierFlag::OPTION_L,
- KeyCode::A, ModifierFlag::OPTION_L,
- KeyCode::KEY_5, ModifierFlag::OPTION_L,
- </autogen>
-
-
- <autogen>
- --KeyToKey--
- KeyCode::T, ModifierFlag::EXTRA3,
- KeyCode::KEY_2, ModifierFlag::OPTION_L,
- KeyCode::KEY_2, ModifierFlag::OPTION_L,
- KeyCode::A, ModifierFlag::OPTION_L,
- KeyCode::KEY_2, ModifierFlag::OPTION_L,
- </autogen>
-
-
- <autogen>
- --KeyToKey--
KeyCode::U, ModifierFlag::EXTRA3,
KeyCode::KEY_2, ModifierFlag::OPTION_L,
KeyCode::KEY_2, ModifierFlag::OPTION_L,
@@ -1037,81 +1116,5 @@
</item>
</item>
</list>
-
- <list>
- <item>
- <name>sjl Swap parens and brackets</name>
- <identifier>private.swap_parens_and_brackets</identifier>
- <autogen>--KeyToKey-- KeyCode::BRACKET_LEFT, ModifierFlag::NONE, KeyCode::KEY_9, ModifierFlag::SHIFT_R</autogen>
- <autogen>--KeyToKey-- KeyCode::BRACKET_RIGHT, ModifierFlag::NONE, KeyCode::KEY_0, ModifierFlag::SHIFT_R</autogen>
- <autogen>--KeyToKey-- KeyCode::KEY_9, ModifierFlag::SHIFT_L, KeyCode::BRACKET_LEFT</autogen>
- <autogen>--KeyToKey-- KeyCode::KEY_0, ModifierFlag::SHIFT_L, KeyCode::BRACKET_RIGHT</autogen>
- </item>
- </list>
-
- <list>
- <item>
- <name>sjl 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>
- </list>
-
- <list>
- <item>
- <name>sjl Use the correct goddamned shift keys.</name>
- <identifier>private.fucking_shift_keys_how_do_they_work</identifier>
-
- <autogen>--KeyToKey-- KeyCode::Q, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
- <autogen>--KeyToKey-- KeyCode::W, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
- <autogen>--KeyToKey-- KeyCode::E, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
- <autogen>--KeyToKey-- KeyCode::R, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
- <autogen>--KeyToKey-- KeyCode::T, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
- <autogen>--KeyToKey-- KeyCode::A, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
- <autogen>--KeyToKey-- KeyCode::S, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
- <autogen>--KeyToKey-- KeyCode::D, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
- <autogen>--KeyToKey-- KeyCode::F, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
- <autogen>--KeyToKey-- KeyCode::G, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
- <autogen>--KeyToKey-- KeyCode::Z, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
- <autogen>--KeyToKey-- KeyCode::X, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
- <autogen>--KeyToKey-- KeyCode::C, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
- <autogen>--KeyToKey-- KeyCode::V, ModifierFlag::SHIFT_L, KeyCode::VK_NONE</autogen>
-
- <autogen>--KeyToKey-- KeyCode::Y, ModifierFlag::SHIFT_R, KeyCode::VK_NONE</autogen>
- <autogen>--KeyToKey-- KeyCode::U, ModifierFlag::SHIFT_R, KeyCode::VK_NONE</autogen>
- <autogen>--KeyToKey-- KeyCode::I, ModifierFlag::SHIFT_R, KeyCode::VK_NONE</autogen>
- <autogen>--KeyToKey-- KeyCode::O, ModifierFlag::SHIFT_R, KeyCode::VK_NONE</autogen>
- <autogen>--KeyToKey-- KeyCode::P, ModifierFlag::SHIFT_R, KeyCode::VK_NONE</autogen>
- <autogen>--KeyToKey-- KeyCode::H, ModifierFlag::SHIFT_R, KeyCode::VK_NONE</autogen>
- <autogen>--KeyToKey-- KeyCode::J, ModifierFlag::SHIFT_R, KeyCode::VK_NONE</autogen>
- <autogen>--KeyToKey-- KeyCode::K, ModifierFlag::SHIFT_R, KeyCode::VK_NONE</autogen>
- <autogen>--KeyToKey-- KeyCode::L, ModifierFlag::SHIFT_R, KeyCode::VK_NONE</autogen>
- <autogen>--KeyToKey-- KeyCode::SEMICOLON, ModifierFlag::SHIFT_R, KeyCode::VK_NONE</autogen>
- <autogen>--KeyToKey-- KeyCode::N, ModifierFlag::SHIFT_R, KeyCode::VK_NONE</autogen>
- <autogen>--KeyToKey-- KeyCode::M, ModifierFlag::SHIFT_R, KeyCode::VK_NONE</autogen>
- <autogen>--KeyToKey-- KeyCode::COMMA, ModifierFlag::SHIFT_R, KeyCode::VK_NONE</autogen>
- <autogen>--KeyToKey-- KeyCode::DOT, ModifierFlag::SHIFT_R, KeyCode::VK_NONE</autogen>
- <autogen>--KeyToKey-- KeyCode::QUOTE, ModifierFlag::SHIFT_R, KeyCode::VK_NONE</autogen>
- </item>
- </list>
</root>