dotfiles

ref: b7a4e82f21936c66dd55b55143276bb91bee1a6d

osx/private.xml


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<?xml version="1.0"?>
<root>
    <appdef>
        <appname>CHROME</appname>
        <equal>com.google.Chrome</equal>
    </appdef>
    <list> 
        <item> 
            <name>Google Chrome</name> 
            <list> 
                <item>
                    <identifier>private.chrome_down</identifier>
                    <appendix>Change Control+J to Cursor Down</appendix>
                    <autogen>--KeyToKey-- KeyCode::J, VK_CONTROL, KeyCode::CURSOR_DOWN</autogen>
                    <only>CHROME</only>
                </item>
                <item>
                    <identifier>private.chrome_up</identifier>
                    <appendix>Change Control+K to Cursor Up</appendix>
                    <autogen>--KeyToKey-- KeyCode::K, VK_CONTROL, KeyCode::CURSOR_UP</autogen>
                    <only>CHROME</only>
                </item>
            </list>
        </item>
        <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>Remap Left Control to Hyper</name>
            <appendix>OS X doesn't have a Hyper. This maps Left Control to Control + Shift + Option + Command.</appendix>

            <identifier>space_cadet.left_control_to_hyper</identifier>

            <autogen>
                --KeyToKey--
                KeyCode::F19,

                KeyCode::COMMAND_L,
                ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L | ModifierFlag::CONTROL_L
            </autogen>
        </item>

<item>
    <name>Change fn+s to š</name>
    <appendix>You need to enable Czech and U.S. input sources.</appendix>
    <identifier>private.fn_s_to_czech_s</identifier>
    <autogen>__KeyToKey__
      KeyCode::S, ModifierFlag::FN,

      <!-- change input source to Czech -->
      KeyCode::VK_CHANGE_INPUTSOURCE_CZECH,

      <!-- wait until input source was changed -->
      KeyCode::VK_WAIT_10MS,
      KeyCode::VK_WAIT_10MS,
      KeyCode::VK_WAIT_10MS,

      <!-- put š -->
      KeyCode::KEY_3,

      <!-- restore input source -->
      KeyCode::VK_CHANGE_INPUTSOURCE_US,

      <!-- suppress key repeating -->
      Option::NOREPEAT,
    </autogen>
  </item>

    </list>
</root>