Possible Duplicate:
Switch TO specific input source

I want to do something like: set keyboard layout to 'QWERTY' or something like that.

link|improve this question

feedback

closed as exact duplicate by Daniel Beck, Diago Jan 21 '11 at 11:43

This question covers exactly the same ground as earlier questions on this topic; its answers may be merged with another identical question. See the FAQ for guidance on how to improve it.

2 Answers

The current keyboard layout appears to be saved in ~/Library/Preferences/ByHost/com.apple.HIToolbox.machineid.plist under the key AppleCurrentKeyboardLayoutInputSourceID. Your ID is a 12-digit hexadecimal number. Inspect the ByHost folder to see what I mean.

You can write preferences to this file using the defaults command in Terminal. For example, the following commands change this preference to the US keyboard then restart SystemUIServer, the process that handles the Input Source menu.

defaults write ~/Library/Preferences/ByHost/com.apple.HIToolbox.0017f2c31710 AppleCurrentKeyboardLayoutInputSourceID -string "com.apple.keylayout.US"
killall SystemUIServer

However, this seems to change the keyboard only about 80% of the time.

You can run Terminal commands from AppleScript easily using do shell script.

link|improve this answer
feedback

This may be useful, you'll need to change the names. It may be out of date, if it is here is the newer workflow. It's odd, no-one seems to have done this in the last five or so years.

link|improve this answer
feedback

Not the answer you're looking for? Browse other questions tagged or ask your own question.