Skip to content

Instantly share code, notes, and snippets.

@h4rm0n1c
Created August 6, 2013 06:40
Show Gist options
  • Save h4rm0n1c/6162562 to your computer and use it in GitHub Desktop.
Save h4rm0n1c/6162562 to your computer and use it in GitHub Desktop.
setbrowserdefaults.sh sets the defaults for the three web browsers I usually include with an OS X deployment. This will set up Firefox, Chrome and Safari to roughly the same defaults each, using the provided homepage variable. These defaults will also apply to any existing users. WARNING: THIS SCRIPT DELETES ANY EXISTING USER PREFS FOR EACH BROW…
#!/bin/sh
#Change BROWSER_HOMEPAGE to whatever you need, everything else will work as is.
BROWSER_HOMEPAGE="http://www.google.com/"
## BEGIN FIREFOX
if [ -d "/Applications/Firefox.app" ]
then
#CLear out any imposters, accept no substitutes!
rm -f /Applications/Firefox.app/Contents/MacOS/defaults/pref/local-settings.js
rm -f /Applications/Firefox.app/Contents/MacOS/mozilla.cfg
#firefox prefs - system wide defaults are set inside the app in /Applications/, obviously make sure Firefox is being/has been installed before this script runs.
echo "//DO NOT REMOVE THIS LINE
pref(\"general.config.obscure_value\",0);
pref(\"general.config.filename\",\"mozilla.cfg\");" > /Applications/Firefox.app/Contents/MacOS/defaults/pref/local-settings.js
chown root:staff /Applications/Firefox.app/Contents/MacOS/defaults/pref/local-settings.js
chmod 744 /Applications/Firefox.app/Contents/MacOS/defaults/pref/local-settings.js
echo "//DO NOT REMOVE THIS LINE
pref(\"browser.startup.homepage\",\""$BROWSER_HOMEPAGE"\");
pref(\"browser.startup.homepage_reset\",\""$BROWSER_HOMEPAGE"\");
pref(\"browser.shell.checkDefaultBrowser\",false);
pref(\"browser.startup.homepage_override.mstone\",\"ignore\");
lockPref(\"network.proxy.type\",5);
pref(\"browser.rights.3.shown\",true);
lockPref(\"browser.search.suggest.enabled\",false);" > /Applications/Firefox.app/Contents/MacOS/mozilla.cfg
chown root:staff /Applications/Firefox.app/Contents/MacOS/mozilla.cfg
chmod 744 /Applications/Firefox.app/Contents/MacOS/mozilla.cfg
cat << EOF > /Applications/Firefox.app/Contents/MacOS/browser/override.ini
[XRE]
EnableProfileMigrator=false
EOF
chown root:staff /Applications/Firefox.app/Contents/MacOS/browser/override.ini
chmod 744 /Applications/Firefox.app/Contents/MacOS/browser/override.ini
else
echo "Firefox not found, no settings to change."
fi
## END FIREFOX
## BEGIN CHROME
if [ -d "/Library/Google" ]
then
echo "Google Library Folder Exists!"
else
mkdir /Library/Google/
chmod -R 755 /Library/Google/
chown -R root:wheel /Library/Google/
fi
#Clear out any imposters, accept no substitutes!
rm -f /Library/Google/Google\ Chrome\ Master\ Preferences
cat << EOF > /Library/Google/Google\ Chrome\ Master\ Preferences
{
"homepage" : "$BROWSER_HOMEPAGE",
"homepage_is_newtabpage" : false,
"browser" : {
"show_home_button" : true,
"check_default_browser" : false
},
"bookmark_bar" : {
"show_on_all_tabs" : true
},
"distribution" : {
"show_welcome_page" : false,
"skip_first_run_ui" : true,
"import_history" : false,
"import_bookmarks" : false,
"import_home_page" : false,
"import_search_engine" : false
},
"sync_promo" : {
"user_skipped" : true
},
"first_run_tabs" : [
"$BROWSER_HOMEPAGE"
]
}
EOF
chmod 744 /Library/Google/Google\ Chrome\ Master\ Preferences
chown root:staff /Library/Google/Google\ Chrome\ Master\ Preferences
## END CHROME
## START SAFARI
# Homepage url
defaults write /System/Library/User\ Template/Non_localized/Library/Preferences/com.apple.Safari HomePage "$BROWSER_HOMEPAGE"
defaults write /System/Library/User\ Template/English.lproj/Library/Preferences/com.apple.Safari HomePage "$BROWSER_HOMEPAGE"
# Disable Welcome Animation for first run, get straight down to business
defaults write /System/Library/User\ Template/Non_localized/Library/Preferences/com.apple.Safari LastDisplayedWelcomePageVersionString "6.0.5"
defaults write /System/Library/User\ Template/English.lproj/Library/Preferences/com.apple.Safari LastDisplayedWelcomePageVersionString "6.0.5"
# Make new tabs and new windows open the homepage
defaults write /System/Library/User\ Template/Non_localized/Library/Preferences/com.apple.Safari NewTabBehavior -integer 0
defaults write /System/Library/User\ Template/Non_localized/Library/Preferences/com.apple.Safari NewWindowBehavior -integer 0
defaults write /System/Library/User\ Template/English.lproj/Library/Preferences/com.apple.Safari NewTabBehavior -integer 0
defaults write /System/Library/User\ Template/English.lproj/Library/Preferences/com.apple.Safari NewWindowBehavior -integer 0
# New Session every time Safari is opened
defaults write /System/Library/User\ Template/Non_localized/Library/Preferences/com.apple.Safari NSQuitAlwaysKeepsWindows -bool FALSE
defaults write /System/Library/User\ Template/English.lproj/Library/Preferences/com.apple.Safari NSQuitAlwaysKeepsWindows -bool FALSE
defaults write /System/Library/User\ Template/Non_localized/Library/Preferences/com.apple.Safari AutoFillFromAddressBook -bool NO
defaults write /System/Library/User\ Template/Non_localized/Library/Preferences/com.apple.Safari AutoFillMiscellaneousForms -bool NO
defaults write /System/Library/User\ Template/Non_localized/Library/Preferences/com.apple.Safari AutoFillPasswords -bool NO
defaults write /System/Library/User\ Template/English.lproj/Library/Preferences/com.apple.Safari AutoFillFromAddressBook -bool NO
defaults write /System/Library/User\ Template/English.lproj/Library/Preferences/com.apple.Safari AutoFillMiscellaneousForms -bool NO
defaults write /System/Library/User\ Template/English.lproj/Library/Preferences/com.apple.Safari AutoFillPasswords -bool NO
## END SAFARI
## CLEAN UP ANY PREFS FOR EXISTING USERS, SAFARI PREFS CAN BE SET, BUT CHROME AND FIREFOX ARE TOO COMPLEX, SO JUST DELETE THEIR PROFILE DIRECTORIES.
## NEEDLESS TO SAY, USERS SHOULD BACK UP THEIR BOOKMARKS BEFORE RUNNING THIS SCRIPT.
## THIS SCRIPT WORKS FOR ALL USERS ON THE SYSTEM IN THE DSLOCAL DATABASE
_DS_USERS_PATH="/var/db/dslocal/nodes/Default/users/"
if [ -e "${_DS_USERS_PATH}" ]
then
cd "${_DS_USERS_PATH}"
for EXTRA_USER in *.plist
do
if [ ${EXTRA_USER:0:1} != "_" ]
then
EXTRA_USER_RECORD=`echo ${EXTRA_USER} | sed s/.plist//`
EXTRA_USER_HOME=`defaults read "${_DS_USERS_PATH}/${EXTRA_USER_RECORD}" home | awk -F\" '{ print $2 }' | tr -d "\n"`
EXTRA_USER_UID=`defaults read "${_DS_USERS_PATH}/${EXTRA_USER_RECORD}" uid | awk -F" " '{ sub(/\(/,"",$1);sub(/\)/,"",$1); print $1 }' | tr -d "\n"`
EXTRA_USER_PREFS_PATH="${EXTRA_USER_HOME}/Library/Preferences"
EXTRA_USER_APPSUPPORT_PATH="${EXTRA_USER_HOME}/Library/Application\ Support"
if [ -d "${EXTRA_USER_PREFS_PATH}" ]
then
rm -Rf "${EXTRA_USER_APPSUPPORT_PATH}"/Firefox/
rm -Rf "${EXTRA_USER_APPSUPPORT_PATH}"/Google/
defaults write "${EXTRA_USER_PREFS_PATH}"/com.apple.Safari HomePage "$BROWSER_HOMEPAGE"
defaults write "${EXTRA_USER_PREFS_PATH}"/com.apple.Safari LastDisplayedWelcomePageVersionString "6.0.5"
defaults write "${EXTRA_USER_PREFS_PATH}"/com.apple.Safari NewTabBehavior -integer 0
defaults write "${EXTRA_USER_PREFS_PATH}"/com.apple.Safari NewWindowBehavior -integer 0
defaults write "${EXTRA_USER_PREFS_PATH}"/com.apple.Safari NSQuitAlwaysKeepsWindows -bool FALSE
/usr/sbin/chown -R ${EXTRA_USER_UID}:staff "${EXTRA_USER_PREFS_PATH}"
/bin/chmod -R 700 "${EXTRA_USER_PREFS_PATH}"
fi
fi
done
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment