1

Possible Duplicate:
Switch TO specific input source

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

2 Answers2

2

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.

Just Jake
  • 738
0

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.

tobylane
  • 1,337