Toggle language by pressing Shift + Command

I've moved from PC to Mac and I'm used to pressing Shift + Ctrl, while on Mac I have to press Ctrl + Space. This is a bit frustrating (probably because I've only used it for 2 days), so I opened System Preferences > Keyboard > Shortcuts and tried to change the shortcut to Shift + Command and for some reason it refuses to change.

I tried to test some other shortcuts such as Command + Z and it works fine. I'd still like to change it to Shift + Command. Is there a way I can achieve this?


With macOS' system shortcuts you can't set keyboards shortcuts solely using modifier keys.

You need to specify an additional (non-modifier) key for macOS to accept and save your shortcut.

Sierra does have an extra setting (in system prefs/keyboard/input sources) for switching between certain keyboards via Caps Lock alone, but that does not help solve your problem.


With freshest version (11.4.0 at 13.12.2017) of Karabiner Elements and Cmd + e for previous language source:

enter image description here

You can put this json gist to ~/.config/karabiner/assets/complex_modifications/<filename>.json, add gist rule in Karabiner Elements Preferences -> Complex Modifications -> Rules -> Add rule and Enable Languages -> Command + Shift to Command + e.

enter image description here

This will remap Cmd + Shift to Cmd + e and you can change language source by Cmd + Shift.


Punto Switcher can do it. This utility helps with language auto toggling but you can disable this behaviour and just set desired key binding. I think it doesn't have UI other than Russian, but you will surely be able to configure it intuitively.