Mac Change Profile Path
We want to prevent Zotero from updating in a Mac lab (I know how to do that by setting the app.update.auto and app.update.enabled to FALSE), but in this lab the user profile deletes every time the computer restarts and this means that the prefs.js file for Zotero also gets deleted.
I've been trying to build a script to configure it to set the profile to /Library/Application Support/Zotero/Profiles/ (instead of /Users/(logged in user)/Library/Application Support/Zotero/Profiles), but it doesn't seem to be working and I'm not sure why. The script I'm using is:
#!/bin/bash -v
#Install Zotero First
loggedInUser=$(stat -f%Su /dev/console)
echo $loggedInUser
userPath=/Users/"$loggedInUser"/Library/Application\ Support/Zotero
echo $userPath
#Add to Gatekeeper (to prevent popup)
sudo spctl --add /Applications/Zotero.app
#If ~/Library/Application Support/Zotero doesn't exist, run Zotero then immediately close it
if [[ ! -d "$userPath" ]]; then
open -a Zotero
pid=$(ps -A | grep -m1 "Zotero" | awk '{print $1}')
kill $pid
fi
#Find name of folder in ~/Library/Application Support/Zotero/Profiles
profileFolder=$(ls "$userPath"/Profiles)
# Create configured prefs.js
echo > /Users/$loggedInUser/Library/Application\ Support/Zotero/Profiles/$profileFolder/prefs.js '# Mozilla User Preferences
/* Do not edit this file.
*
* If you make changes to this file while the application is running,
* the changes will be overwritten when the application exits.
*
* To make a manual change to preferences, you can visit the URL about:config
*/
user_pref("app.update.auto", false);
user_pref("app.update.enabled", false);
user_pref("app.update.lastUpdateTime.addon-background-update-timer", 1534941676);
user_pref("app.update.lastUpdateTime.background-update-timer", 0);
user_pref("app.update.lastUpdateTime.blocklist-background-update-timer", 1534941802);
user_pref("app.update.lastUpdateTime.search-engine-update-timer", 1534941017);
user_pref("app.update.lastUpdateTime.xpi-signature-verification", 0);
user_pref("browser.cache.disk.capacity", 358400);
user_pref("browser.cache.disk.filesystem_reported", 1);
user_pref("extensions.blocklist.pingCountTotal", 2);
user_pref("extensions.blocklist.pingCountVersion", 2);
user_pref("extensions.bootstrappedAddons", "{}");
user_pref("extensions.databaseSchema", 19);
user_pref("extensions.e10s.rollout.hasAddon", false);
user_pref("extensions.e10sBlockedByAddons", true);
user_pref("extensions.enabledAddons", "zoteroMacWordIntegration%40zotero.org:5.0.15.SA.5.0.53,zoteroOpenOfficeIntegration%40zotero.org:5.0.14.SA.5.0.53");
user_pref("extensions.lastAppVersion", "5.0.53");
user_pref("extensions.lastPlatformVersion", "52.7.4");
user_pref("extensions.pendingOperations", false);
user_pref("extensions.xpiState", "{\"app-global\":{\"zoteroMacWordIntegration@zotero.org\":{\"d\":\"/Applications/Zotero.app/Contents/Resources/extensions/zoteroMacWordIntegration@zotero.org\",\"e\":true,\"v\":\"5.0.15.SA.5.0.53\",\"st\":1530962410000,\"mt\":1530962410000},\"zoteroOpenOfficeIntegration@zotero.org\":{\"d\":\"/Applications/Zotero.app/Contents/Resources/extensions/zoteroOpenOfficeIntegration@zotero.org\",\"e\":true,\"v\":\"5.0.14.SA.5.0.53\",\"st\":1530962410000,\"mt\":1530962410000}}}");
user_pref("extensions.zotero.dataDir", "/Users/'$loggedInUser'/Zotero");
user_pref("extensions.zotero.firstRun.skipFirefoxProfileAccessCheck", true);
user_pref("extensions.zotero.firstRun2", false);
user_pref("extensions.zotero.lastViewedFolder", "L1");
user_pref("extensions.zotero.pane.persist", "{\"zotero-collections-pane\":{},\"zotero-tags-splitter\":{},\"zotero-tag-selector\":{\"height\":\"0\"},\"zotero-collections-splitter\":{},\"zotero-layout-switcher\":{\"orient\":\"horizontal\"},\"zotero-items-pane\":{},\"zotero-items-tree\":{\"current-view-group\":\"default\"},\"zotero-items-column-title\":{\"ordinal\":\"1\",\"hidden\":\"false\"},\"zotero-items-column-firstCreator\":{\"ordinal\":\"3\",\"hidden\":\"false\"},\"zotero-items-column-itemType\":{\"width\":\"40\",\"ordinal\":\"5\",\"hidden\":\"true\"},\"zotero-items-column-date\":{\"ordinal\":\"7\",\"hidden\":\"true\"},\"zotero-items-column-year\":{\"ordinal\":\"9\",\"hidden\":\"true\"},\"zotero-items-column-publisher\":{\"ordinal\":\"11\",\"hidden\":\"true\"},\"zotero-items-column-publicationTitle\":{\"ordinal\":\"13\",\"hidden\":\"true\"},\"zotero-items-column-journalAbbreviation\":{\"ordinal\":\"15\",\"hidden\":\"true\"},\"zotero-items-column-language\":{\"ordinal\":\"17\",\"hidden\":\"true\"},\"zotero-items-column-accessDate\":{\"ordinal\":\"19\",\"hidden\":\"true\"},\"zotero-items-column-libraryCatalog\":{\"ordinal\":\"21\",\"hidden\":\"true\"},\"zotero-items-column-callNumber\":{\"ordinal\":\"23\",\"hidden\":\"true\"},\"zotero-items-column-rights\":{\"ordinal\":\"25\",\"hidden\":\"true\"},\"zotero-items-column-dateAdded\":{\"ordinal\":\"27\",\"hidden\":\"true\"},\"zotero-items-column-dateModified\":{\"ordinal\":\"29\",\"hidden\":\"true\"},\"zotero-items-column-archive\":{\"ordinal\":\"31\",\"hidden\":\"true\"},\"zotero-items-column-archiveLocation\":{\"ordinal\":\"33\",\"hidden\":\"true\"},\"zotero-items-column-place\":{\"ordinal\":\"35\",\"hidden\":\"true\"},\"zotero-items-column-volume\":{\"ordinal\":\"37\",\"hidden\":\"true\"},\"zotero-items-column-edition\":{\"ordinal\":\"39\",\"hidden\":\"true\"},\"zotero-items-column-pages\":{\"ordinal\":\"41\",\"hidden\":\"true\"},\"zotero-items-column-issue\":{\"ordinal\":\"43\",\"hidden\":\"true\"},\"zotero-items-column-series\":{\"ordinal\":\"45\",\"hidden\":\"true\"},\"zotero-items-column-seriesTitle\":{\"ordinal\":\"47\",\"hidden\":\"true\"},\"zotero-items-column-court\":{\"ordinal\":\"49\",\"hidden\":\"true\"},\"zotero-items-column-medium\":{\"ordinal\":\"51\",\"hidden\":\"true\"},\"zotero-items-column-genre\":{\"ordinal\":\"53\",\"hidden\":\"true\"},\"zotero-items-column-system\":{\"ordinal\":\"55\",\"hidden\":\"true\"},\"zotero-items-column-extra\":{\"ordinal\":\"57\",\"hidden\":\"true\"},\"zotero-items-column-hasAttachment\":{\"ordinal\":\"59\",\"hidden\":\"false\"},\"zotero-items-column-numNotes\":{\"ordinal\":\"61\",\"hidden\":\"true\"},\"zotero-items-splitter\":{\"orient\":\"horizontal\"},\"zotero-item-pane\":{}}");
user_pref("extensions.zotero.prefVersion", 2);
user_pref("extensions.zotero.useDataDir", true);
user_pref("extensions.zoteroMacWordIntegration.installed", true);
user_pref("extensions.zoteroMacWordIntegration.version", "5.0.15.SA.5.0.53");
user_pref("idle.lastDailyNotification", 1534941833);
user_pref("intl.accept_languages", "en-US, en");
user_pref("media.gmp.storage.version.observed", 1);
user_pref("network.cookie.prefsMigrated", true);
user_pref("security.sandbox.content.tempDirSuffix", "{0d270d69-1e18-0a4d-841f-1603402d8b2c}");
user_pref("signon.importedFromSqlite", true);
user_pref("storage.vacuum.last.index", 0);
'
#copy to /Library/Application Support/Zotero
sudo mkdir /Library/Application\ Support/Zotero/
sudo cp -r "$userPath"/Profiles /Library/Application\ Support/Zotero
sudo chown -R "$loggedInUser":wheel "$userPath"/Profiles /Library/Application\ Support/Zotero
sudo chmod -R 755 "$userPath"/Profiles /Library/Application\ Support/Zotero
#replace profiles.ini to point to /Library/Application Support/Zotero
echo > "$userPath"/profiles.ini '[General]
StartWithLastProfile=1
[Profile0]
Name=default
IsRelative=0
Path="/Library/Application Support/Zotero/Profiles/'$profileFolder'"
Default=1
'
exit 0
----------
From what I can tell everything works fine (it copies the profile and rewrites prefs.js and profiles.ini), but when it launches it just creates an additional profile in /Users/(logged in user)/Library/Application Support/Zotero/Profiles. If I then manually edit profiles.ini it'll open the profile I'm trying to set once, but the next time it opens it'll create a new profile again in the original location.
I've been trying to build a script to configure it to set the profile to /Library/Application Support/Zotero/Profiles/ (instead of /Users/(logged in user)/Library/Application Support/Zotero/Profiles), but it doesn't seem to be working and I'm not sure why. The script I'm using is:
#!/bin/bash -v
#Install Zotero First
loggedInUser=$(stat -f%Su /dev/console)
echo $loggedInUser
userPath=/Users/"$loggedInUser"/Library/Application\ Support/Zotero
echo $userPath
#Add to Gatekeeper (to prevent popup)
sudo spctl --add /Applications/Zotero.app
#If ~/Library/Application Support/Zotero doesn't exist, run Zotero then immediately close it
if [[ ! -d "$userPath" ]]; then
open -a Zotero
pid=$(ps -A | grep -m1 "Zotero" | awk '{print $1}')
kill $pid
fi
#Find name of folder in ~/Library/Application Support/Zotero/Profiles
profileFolder=$(ls "$userPath"/Profiles)
# Create configured prefs.js
echo > /Users/$loggedInUser/Library/Application\ Support/Zotero/Profiles/$profileFolder/prefs.js '# Mozilla User Preferences
/* Do not edit this file.
*
* If you make changes to this file while the application is running,
* the changes will be overwritten when the application exits.
*
* To make a manual change to preferences, you can visit the URL about:config
*/
user_pref("app.update.auto", false);
user_pref("app.update.enabled", false);
user_pref("app.update.lastUpdateTime.addon-background-update-timer", 1534941676);
user_pref("app.update.lastUpdateTime.background-update-timer", 0);
user_pref("app.update.lastUpdateTime.blocklist-background-update-timer", 1534941802);
user_pref("app.update.lastUpdateTime.search-engine-update-timer", 1534941017);
user_pref("app.update.lastUpdateTime.xpi-signature-verification", 0);
user_pref("browser.cache.disk.capacity", 358400);
user_pref("browser.cache.disk.filesystem_reported", 1);
user_pref("extensions.blocklist.pingCountTotal", 2);
user_pref("extensions.blocklist.pingCountVersion", 2);
user_pref("extensions.bootstrappedAddons", "{}");
user_pref("extensions.databaseSchema", 19);
user_pref("extensions.e10s.rollout.hasAddon", false);
user_pref("extensions.e10sBlockedByAddons", true);
user_pref("extensions.enabledAddons", "zoteroMacWordIntegration%40zotero.org:5.0.15.SA.5.0.53,zoteroOpenOfficeIntegration%40zotero.org:5.0.14.SA.5.0.53");
user_pref("extensions.lastAppVersion", "5.0.53");
user_pref("extensions.lastPlatformVersion", "52.7.4");
user_pref("extensions.pendingOperations", false);
user_pref("extensions.xpiState", "{\"app-global\":{\"zoteroMacWordIntegration@zotero.org\":{\"d\":\"/Applications/Zotero.app/Contents/Resources/extensions/zoteroMacWordIntegration@zotero.org\",\"e\":true,\"v\":\"5.0.15.SA.5.0.53\",\"st\":1530962410000,\"mt\":1530962410000},\"zoteroOpenOfficeIntegration@zotero.org\":{\"d\":\"/Applications/Zotero.app/Contents/Resources/extensions/zoteroOpenOfficeIntegration@zotero.org\",\"e\":true,\"v\":\"5.0.14.SA.5.0.53\",\"st\":1530962410000,\"mt\":1530962410000}}}");
user_pref("extensions.zotero.dataDir", "/Users/'$loggedInUser'/Zotero");
user_pref("extensions.zotero.firstRun.skipFirefoxProfileAccessCheck", true);
user_pref("extensions.zotero.firstRun2", false);
user_pref("extensions.zotero.lastViewedFolder", "L1");
user_pref("extensions.zotero.pane.persist", "{\"zotero-collections-pane\":{},\"zotero-tags-splitter\":{},\"zotero-tag-selector\":{\"height\":\"0\"},\"zotero-collections-splitter\":{},\"zotero-layout-switcher\":{\"orient\":\"horizontal\"},\"zotero-items-pane\":{},\"zotero-items-tree\":{\"current-view-group\":\"default\"},\"zotero-items-column-title\":{\"ordinal\":\"1\",\"hidden\":\"false\"},\"zotero-items-column-firstCreator\":{\"ordinal\":\"3\",\"hidden\":\"false\"},\"zotero-items-column-itemType\":{\"width\":\"40\",\"ordinal\":\"5\",\"hidden\":\"true\"},\"zotero-items-column-date\":{\"ordinal\":\"7\",\"hidden\":\"true\"},\"zotero-items-column-year\":{\"ordinal\":\"9\",\"hidden\":\"true\"},\"zotero-items-column-publisher\":{\"ordinal\":\"11\",\"hidden\":\"true\"},\"zotero-items-column-publicationTitle\":{\"ordinal\":\"13\",\"hidden\":\"true\"},\"zotero-items-column-journalAbbreviation\":{\"ordinal\":\"15\",\"hidden\":\"true\"},\"zotero-items-column-language\":{\"ordinal\":\"17\",\"hidden\":\"true\"},\"zotero-items-column-accessDate\":{\"ordinal\":\"19\",\"hidden\":\"true\"},\"zotero-items-column-libraryCatalog\":{\"ordinal\":\"21\",\"hidden\":\"true\"},\"zotero-items-column-callNumber\":{\"ordinal\":\"23\",\"hidden\":\"true\"},\"zotero-items-column-rights\":{\"ordinal\":\"25\",\"hidden\":\"true\"},\"zotero-items-column-dateAdded\":{\"ordinal\":\"27\",\"hidden\":\"true\"},\"zotero-items-column-dateModified\":{\"ordinal\":\"29\",\"hidden\":\"true\"},\"zotero-items-column-archive\":{\"ordinal\":\"31\",\"hidden\":\"true\"},\"zotero-items-column-archiveLocation\":{\"ordinal\":\"33\",\"hidden\":\"true\"},\"zotero-items-column-place\":{\"ordinal\":\"35\",\"hidden\":\"true\"},\"zotero-items-column-volume\":{\"ordinal\":\"37\",\"hidden\":\"true\"},\"zotero-items-column-edition\":{\"ordinal\":\"39\",\"hidden\":\"true\"},\"zotero-items-column-pages\":{\"ordinal\":\"41\",\"hidden\":\"true\"},\"zotero-items-column-issue\":{\"ordinal\":\"43\",\"hidden\":\"true\"},\"zotero-items-column-series\":{\"ordinal\":\"45\",\"hidden\":\"true\"},\"zotero-items-column-seriesTitle\":{\"ordinal\":\"47\",\"hidden\":\"true\"},\"zotero-items-column-court\":{\"ordinal\":\"49\",\"hidden\":\"true\"},\"zotero-items-column-medium\":{\"ordinal\":\"51\",\"hidden\":\"true\"},\"zotero-items-column-genre\":{\"ordinal\":\"53\",\"hidden\":\"true\"},\"zotero-items-column-system\":{\"ordinal\":\"55\",\"hidden\":\"true\"},\"zotero-items-column-extra\":{\"ordinal\":\"57\",\"hidden\":\"true\"},\"zotero-items-column-hasAttachment\":{\"ordinal\":\"59\",\"hidden\":\"false\"},\"zotero-items-column-numNotes\":{\"ordinal\":\"61\",\"hidden\":\"true\"},\"zotero-items-splitter\":{\"orient\":\"horizontal\"},\"zotero-item-pane\":{}}");
user_pref("extensions.zotero.prefVersion", 2);
user_pref("extensions.zotero.useDataDir", true);
user_pref("extensions.zoteroMacWordIntegration.installed", true);
user_pref("extensions.zoteroMacWordIntegration.version", "5.0.15.SA.5.0.53");
user_pref("idle.lastDailyNotification", 1534941833);
user_pref("intl.accept_languages", "en-US, en");
user_pref("media.gmp.storage.version.observed", 1);
user_pref("network.cookie.prefsMigrated", true);
user_pref("security.sandbox.content.tempDirSuffix", "{0d270d69-1e18-0a4d-841f-1603402d8b2c}");
user_pref("signon.importedFromSqlite", true);
user_pref("storage.vacuum.last.index", 0);
'
#copy to /Library/Application Support/Zotero
sudo mkdir /Library/Application\ Support/Zotero/
sudo cp -r "$userPath"/Profiles /Library/Application\ Support/Zotero
sudo chown -R "$loggedInUser":wheel "$userPath"/Profiles /Library/Application\ Support/Zotero
sudo chmod -R 755 "$userPath"/Profiles /Library/Application\ Support/Zotero
#replace profiles.ini to point to /Library/Application Support/Zotero
echo > "$userPath"/profiles.ini '[General]
StartWithLastProfile=1
[Profile0]
Name=default
IsRelative=0
Path="/Library/Application Support/Zotero/Profiles/'$profileFolder'"
Default=1
'
exit 0
----------
From what I can tell everything works fine (it copies the profile and rewrites prefs.js and profiles.ini), but when it launches it just creates an additional profile in /Users/(logged in user)/Library/Application Support/Zotero/Profiles. If I then manually edit profiles.ini it'll open the profile I'm trying to set once, but the next time it opens it'll create a new profile again in the original location.
This is an old discussion that has not been active in a long time. Before commenting here, you should strongly consider starting a new discussion instead. If you think the content of this discussion is still relevant, you can link to it from your new discussion.
sed -i -e 's/IsRelative=1/IsRelative=0/g' "$userPath"/profiles.ini
sed -i -e 's/Path=/Path=\/Library\/Application Support\/Zotero\//g' "$userPath"/profiles.ini
Now the only thing I need to know is if there's a way to suppress the internet browser window from opening (and prompting to install the connector) when the app is first launched? If I'm doing the install/configuration remotely, I don't want every single lab computer having a popup about having installed it.