iTerm2 doesn't read com.googlecode.iterm2.plist I am iTerm2 (1.0.0) user. I know how to create profiles, by using iTerm settings or modifying com.googlecode.iterm2.plist file.

For convenience, I will use .plist to indicate com.googlecode.iterm2.plist file.

There are some profiles already to connect my dev server using a command. (i.e. ssh 192.168.1.1).

I want to modify and add more profiles to iTerm. So, I wrote a Python script to do this. The procedure is like below.


Convert iTerm2 .plist file to .xml. (i.e. plutil -convert xml1)
Write several profiles to this file using plistlib in Python.
Convert iTerm2 .plist file to binary format that as it was. (i.e. plutil -convert binary1)


The procedure above doesn't work. iTerm2 didn't load my profiles created from my Python script.

So, I checked if there is no .plist file, how iTerm load the profiles.


I quit the iTerm2 program.
I deleted the .plist file from my disk, which is located at ~/Library/Preferences/.
Run iTerm2 program.
open Profile Setting by typing ⌘ Cmd+O.


I found there are profiles even if I deleted the .plist file. What happened here? Is there any backup profiles file which I don't recognize?
Preferences are cached in 10.9. See http://hints.macworld.com/article.php?story=20130908042828630. If you edit a plist file directly or replace the plist of an application, the application will keep using the cached version even after you quit and reopen the application.

You can run defaults read com.googlecode.iterm2 or killall cfprefsd to apply the changes:


Quit iTerm
Edit the plist
Run defaults read com.googlecode.iterm2 or killall cfprefsd
Open iTerm


Changes made with defaults are applied after you just quit and reopen an application like in earlier versions of OS X.