I tried to set shortcuts on my mac and all existing shortcuts were nuked

The fixups given earlier should work. I’ll review and expand on the details in one place, since they are spread around in multiple previous messages and it would be easy to garble something:

  1. SketchUp->Preferences->Shortcuts->Reset All is supposed to replace your existing Shortcuts.plist file with a fresh copy of the defaults from the app bundle. That should leave you with just the defaults such as “m”->Move Tool, “o”->Orbit Tool, etc. Previously Barry said, without elaborating, that there is a bug that sometimes prevents the reset from working, in which case a manual fixup is needed. But reset is always what you should try first.

  2. When you upgrade to a new version, SketchUp tries to do you a favor by copying the shortcuts preferences from the latest prior version you have installed. If the plist for the previous version was damaged, this can produce a similarly damaged file in the new installation. However, unless the bug Barry mentions hits you, reset should get back to the defaults.

  3. When you do a manual fixup to a preferences plist file, the app that “owns” that plist must not be running. Most apps load their preferences only as they launch, so a running app most likely won’t see your changes. But worse, a running app can rewrite its preferences at any time based on what it currently has in memory. Most apps do so if you change anything via their preferences dialogs and also as they quit. So if you try to fix the issue externally while SketchUp is running, there is a chance that your changes will be ignored and lost.

  4. In many of the posts above, John suggests running system commands to do the fixup via the SketchUp Ruby Console. Though that often works and is convenient if you are already running SketchUp, for the reasons described in #3, in this specific situation I prefer to use the Terminal. Other than wrapping in %x() Ruby syntax the commands are the same.

  5. Several of the paths involved have spaces in the names of folders. When you type these by hand, you have to precede each space with a backslash \ or OS X will not process the command correctly. For example (if these lines wrap in your browser, the characters after the 's are spaces, not returns!)

Edit Feb 27: tell discourse the following is pre-formatted so it doesn’t wrap incorrectly.

cp /Applications/SketchUp\ 2016/SketchUp.app/Contents/Resources/Shortcuts.plist ~/Library/Application\ Support/SketchUp\ 2016/SketchUp
  1. Since Mavericks, OS X has a system service named cfprefsd that acts as an intermediary between the app and the plist files on disk. To improve performance, cfprefsd retains the preferences in memory after it passes them to or from an app. To get an externally modified plist file to “stick” you have to force cfprefsd to reload its cache. You can do so by logging out and back in (preferences are per-user, so they can’t be retained when you are logged out). Or you can open a Terminal window and type the system command “killall cfprefsd” (without the quotes) after you fix up the plist file.

  2. Canaroo ran into a “permission denied” issue that was fixed by elevating permissions using the sudo command. This should not happen, and indicates that permissions are somehow incorrect on the files in your SketchUp installation (which might be the bug that Barry mentioned but didn’t elaborate). Since I’ve not seen that myself, I can’t tell you specifically what is wrong or how to correct the root cause.