See Update below...
It seems (only) the input source "French - Numerical" will behave like Window Caps Lock (with iNVERSE sHIFT):
Found that info here.
But note that this will come with a rather unusual keyboard layout (at least for me).
Update: Using Ukelele this can be applied to all keyboard layouts:
Thanks Daniel for pointing the right direction.
Open Ukelele and save your (current) layout to a file (e.g. by "New from current input source" and "Save"):
Open the .xml
file in a text editor and find the mapIndex
that you want to use for the combination ⇧ + ⇪ (shift + caps-lock). For German I used mapIndex="0"
. Insert this line:
<modifier keys="shift caps"/>
Find all other occurrences of this combination and comment them out (or delete the lines). Again for German it's:
<keyMapSelect mapIndex="1">
<modifier keys="anyShift"/>
<modifier keys="shift rightShift? caps? rightOption? rightControl"/>
<modifier keys="shift rightShift? caps? rightOption rightControl?"/>
<!--<modifier keys="shift rightShift? caps rightOption? rightControl?"/> -->
</keyMapSelect>
Re-open the modified file with Ukelele.
Here is a comparison of the "German" layout before and after the modification:
Follow the instructions in Ukelele to create a new input source (Name, ID, installation).
I didn't test the modified file, should work though.
One option would be to download changeInput and assign shortcuts to shell commands like changeInput U.S.
.
You could also use KeyRemap4MacBook:
<?xml version="1.0"?>
<root>
<vkchangeinputsourcedef>
<name>KeyCode::VK_CHANGE_INPUTSOURCE_HIRAGANA</name>
<inputsourceid_equal>com.apple.inputmethod.Kotoeri.Japanese</inputsourceid_equal>
</vkchangeinputsourcedef>
<vkchangeinputsourcedef>
<name>KeyCode::VK_CHANGE_INPUTSOURCE_KATAKANA</name>
<inputsourceid_equal>com.apple.inputmethod.Kotoeri.Japanese.Katakana</inputsourceid_equal>
</vkchangeinputsourcedef>
<item>
<name>change_inputsources</name>
<identifier>change_inputsources</identifier>
<autogen>__KeyToKey__ KeyCode::E, VK_CONTROL | VK_OPTION | VK_COMMAND | ModifierFlag::NONE, KeyCode::VK_CHANGE_INPUTSOURCE_ENGLISH</autogen>
<autogen>__KeyToKey__ KeyCode::H, VK_CONTROL | VK_OPTION | VK_COMMAND | ModifierFlag::NONE, KeyCode::VK_CHANGE_INPUTSOURCE_HIRAGANA</autogen>
<autogen>__KeyToKey__ KeyCode::K, VK_CONTROL | VK_OPTION | VK_COMMAND | ModifierFlag::NONE, KeyCode::VK_CHANGE_INPUTSOURCE_KATAKANA</autogen>
</item>
</root>
See the private.xml documentation.
VK_CHANGE_INPUTSOURCE_ENGLISH is defined in vkchangeinputsourcedef.xml. You can see the IDs of input sources from EventViewer.app. Without | ModifierFlag::NONE
for example the first setting would also apply to control-option-shift-command-E. See the source for the key code values and predefined settings.
Best Answer
You might try adding Romaji to your Japanese input choices and playing with the preferences for Caps Lock and Shift Key action to see if you get the performance you want.