I'm from Belgium, and on my own user account, the input source is set to a Belgian (actually French) keyboard. The input sources menu is enabled in the menu bar, so I can switch it to the Belgian keyboard before entering my password, but how can I permanently change the input source used for login? I'm the system admin, and I know how to get root access if necessary.

It worked perfectly in Mountain Lion.


I always got the french layout instead of canadian french at logon screen.
Here's the solution that worked for me:

  1. I found that Logon keyboard layout (i.e. french) correspond to:

    defaults read /Library/Preferences/com.apple.HIToolbox.plist

  2. The desired keyboard layout (i.e. canadian french) is saved here:

    defaults read ~/Library/Preferences/com.apple.HIToolbox.plist
    (Notice the ~ !)

  3. To resolve this I changed the logon keyboard to the desired one by overwriting the .plist file (after ensuring that the source plist doesn't contain any occurrence of the unwanted layout):

    • View the file with plutil -convert json ~/Library/Preferences/com.apple.HIToolbox.plist; vi ~/Library/Preferences/com.apple.HIToolbox.plist; plutil -convert binary1 ~/Library/Preferences/com.apple.HIToolbox.plist and ensure that there is no occurrence of the unwanted layout (even in the History).

    • sudo cp ~/Library/Preferences/com.apple.HIToolbox.plist /Library/Preferences/

    • sudo chmod 644 /Library/Preferences/com.apple.HIToolbox.plist

Log off and it's OK. :)

  • 1
    Smart solution, but didn't work for me, even tried fixing file permissions and make it owned by me, didn't help either, do you have any more info ? Jan 11 '14 at 14:49
  • Just found the fix !, i needed to chmod it to 644 !, thanks a billion ! Jan 11 '14 at 15:55
  • Worked for the internal drive for me, Thanx so far. However I have an external drive with another macOs BigSur installation. Mounting from the external drive, I don't get it to work. Diff of the /Library/Preferences/com.apple.HIToolbox.plist on external and internal drive says they are identical Jan 25 at 9:46

Set it up how you want it in your account and then copy your user com.apple.HIToolbox.plist onto the system one, then reboot.

Run this in Terminal:

sudo cp ~/Library/Preferences/com.apple.HIToolbox.plist /Library/Preferences/

…then restart your computer without going to the login screen (choose restart from the Apple menu without logging out first)


You can change the input source by showing the Input menu in the login window, then selecting your alternative keyboard layout, then logging in to the root account.

  1. Open System PreferencesUsers & Groups.

  2. Unlock the preference pane and select Login Options.

  3. Select Show Input menu in login window.

  4. Immediately log in to the root account.

    The root account should maintain the same selection as the login window. If not, change the input source to match that of the login window, then log out. Both the login window and root account should have the same input source for it to stay permanent.

  • 1
    I'm not sure this works. All the admins on my machine have the Dvorak input, but my login keeps resetting to US.
    – JoshRagem
    Nov 9 '13 at 13:39
  • @Josh Admin accounts don’t affect the login screen; have you changed the root account? I know you’ll have read the answer but I just want to double-check because your comment only refers to admins.
    – grg
    Aug 13 '19 at 22:17
  • It worked for me on Macos Catalina, but I didn’t even knew that you can log in as root account! @grg I think you should add this link to the your 4th point, because I don’t think that many people know how to log in as root user Dec 26 '19 at 22:44
  • How do you even log in as root account? What is the password?
    – pqnet
    Jun 3 '20 at 6:40
  • @pqnet support.apple.com/kb/HT204012
    – grg
    Jun 3 '20 at 6:58

I'm running Catalina and none of the above answers worked for me. What did work for me ended up being quite simple. (All credit to Daniel Aleksandersen for this solution.)

  1. Go into System Preferences > Language & Region > General.
  2. Make sure your preferred language is set as primary
  3. Hit the gear icon below the list of languages and click "Apply to Login Window".
  4. Restart to check it worked.

enter image description here

For me that was it. If the gear icon doesn't show up for you, you may need to follow the full list of steps below:

  1. Start by going to System Preferences: Keyboard: Input Sources. Make sure the layout you want to have on the login window is at the top of the list of keyboard layouts.

  2. Go to System Preferences: Users and Groups: Login Options. Unlock the preference pane if needed.

  3. Toggle the “Show Input menu in login window” option off and on again. Or toggle it on if it wasn’t already on.

  4. Go to System Preferences: Language and Region: General: Preferred languages.

  5. Temporarily add a second language to the list using the Plus button. You’ll remove it later so just add any language.

  6. Drag the new language to the top of the list.

  7. Click the new Gear button that appeared on the bottom bar when you rearranged the language list, and choose Apply To Login Window. (As shown in the above screenshot.)

  8. Drag your preferred language to the top of the list again.

  9. Repeat step 7.

    1. Remove the language you temporary added to the list by selecting it and clicking on the Minus button. Reboot your Mac.

Just delete the /Library/Preferences/com.apple.HIToolbox.plist do the job for me.


I have simple hack solution. If you have enabled on login screen keyboard selection and default keyboard is wrong e.g. U.S. in my case change it BUT do not continue to login (do not enter password) but restart or shut down Mac using buttons at the bottom of login screen. This way keyboard will be remembered!

  • This approach did not work for me on macOS Catalina with disk encryption enabled. Aug 10 '20 at 15:47

Why is everyone making it so complex. The easiest would be:

newton02:~ templahum$ sudo languagesetup

and then you get:


Entering password will show you this. Select your language and move hit Return. You are done!

 1. Use English for the main language
 2. Utiliser le français comme langue principale
 3. Deutsch als Standardsprache verwenden
 4. Some language
 5. Some other language
 6. Some some other language
 7. Usar español como idioma principal

 q) Quit? 1
 System Language set to: en
  • You seem to have misread the question, which concerns the default input source on the login page, NOT the system language. Even with the system language set to en, there are perhaps a dozen different input sources one might want to have as their default. Since your answer is irrelevant to the issue raised by the question, I recommend you delete it. Oct 14 '16 at 16:10

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .