# Mac Setup Scripts
[link to current scripts](https://github.com/learninglab-studio/the-tools-21-22/tree/main/tools/scripts/macsetup). Let's cut and paste some lines below?
### Utils
install [Homebrew](https://brew.sh/).
```
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```
Then, on M1 macs, set in path by copying the two lines sent back which will have the structure (but may not be identical to) the following:
```
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/ll-studio/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
```
then you need git, node and a code editor
```
brew install git
brew install node
brew install visual-studio-code
```
Or if you prefer atom, `brew install atom`--but we're moving to vscode this year.
Once you have node installed you can set up your development folder and clone this repo:
```
cd ~
mkdir Development
cd Development
git clone https://github.com/learninglab-studio/the-tools-21-22.git
cd the-tools-21-22
npm install
```
Then you can add the scripts in the-tools-21-22 to your path (and fix your prompt) with these lines that add to your `.zshrc` file:
```
ZSHRC_PATH=~/.zshrc
cd ~/Development/the-tools-21-22/tools/scripts/ex
SCRIPTS_DIR=$(pwd)
echo "export PATH=/usr/local/bin:${SCRIPTS_DIR}:\$PATH" >> $ZSHRC_PATH
echo "PROMPT='%2~ %# '" >> $ZSHRC_PATH
```
open up an additional window and run additional `npm install` commands while your `brew install` commands are also running.
The next brew installs are
```
brew install ffmpeg
brew install awscli
brew install youtube-dl
brew install mysql
brew install google-chrome
brew install firefox
brew install vlc
brew install blender
brew install adobe-creative-cloud
brew install epic-games
brew install unity-hub
brew install clipgrab
brew tap heroku/brew && brew install heroku
brew install imagemagick
brew install exiftool
brew install spotify
brew install synologyassistant
brew install ableton-live-lite
brew install cycling74-max
```
The next npm installs are
```
npm install -g nodemon
# npm install -g express-generator
npm install -g m2s
npm install -g gif-machine
npm install -g ll-transcode-machine
npm install -g simple-rename-machine
npm install -g chalk
npm install -g figlet
npm install -g gatsby-cli
```
### App Store
- Davinci Resolve
- FCPX
- Motion
- Compressor
- Glyphs 2
- Marked 2
- FoldingText
- BetterSnapTool
- Slack
- Logic Pro X
- Xcode
- DaisyDisk
- Screenflow
- GarageBand
- Numbers
- Keynote
- Pages
- MS Word
- MS PowerPoint
- MS Excel
### Adobe
from installer that homebrew installed:
* Photoshop
* Lightroom Classic
* Lightroom
* After Effects
* Audition
* InDesign
* Illustrator
* Xd
* Premiere Pro
* Animate
* Character Animator
* Substance 3D Painter
* Substance 3D Designer
* Substance 3D Sampler
log in with ID as appropriate
### Misc web-based
* C4D and Maxon One
* Houdini
* Unreal (from installer brew installed)
* Unity (from installer brew installed)
* Ableton?
* Printer drivers
* Blackmagic ATEM software (both apps)
* Blackmagic Desktop Video
* Obsidian for macos
*
### Peripherals
- printer (don't put IPs in the repo)
### Fonts
- let's just put a few of the most commonly used here, but it would be nice to store all as an array
- remember the one or two packages that need to be installed first for some fonts
- here's an old list of [all the fonts](https://github.com/learninglab-studio/the-tools-21-22/blob/main/tools/scripts/macsetup/04a_lots_of_fonts.sh), but things change quickly in this zone. We should keep it small so we can keep it updated :)
### Atom Packages
-
```
#!/bin/bash
# uncomment if Atom not installed:
# brew cask install atom
echo "starting Atom package installs"
apm install document-outline
# apm install atom-html-preview
# apm install browser-plus
# apm install markdown-preview-plus
# apm install markdown-folding
apm install wordcount
apm install teletype
apm install file-icons
apm install atom-beautify
apm install minimap
apm install atom-clock
apm install autoclose-html
apm install language-ejs
apm install language-markdown
apm install react
apm install todo-show
apm install pigments
apm install linter-eslint
apm install project-manager
apm install highlight-selected
apm install expose
apm install compare-files
apm install color-picker
# apm install prettier-atom
# apm install atom-easy-jsdoc
apm install split-diff
apm install minimap-split-diff
echo "all done"
```
### Scriptable Preferences
- set all notifications from alert to banner?
- disable certain notifications?
```
# open FCPX to make sure the later prefs work
open -a "Final Cut Pro.app"
# power management for desktops
sudo pmset displaysleep 180
sudo systemsetup -setcomputersleep Never
# sudo pmset sleep 180
# sudo systemsetup -setcomputersleep 60
# Turn Off System Sleep Completely
# show all file extensions
defaults write NSGlobalDomain AppleShowAllExtensions -bool true
# show hidden files
defaults write com.apple.finder AppleShowAllFiles -bool YES && killall Finder
# show scroll bars only on scroll
defaults write NSGlobalDomain AppleShowScrollBars WhenScrolling
# save screenshots to desktop
mkdir ~/Desktop/screenshots
defaults write com.apple.screencapture location ~/Desktop/Screenshots
# make library visible
chflags nohidden ~/Library/
# Automatically hide and show the Dock, speed animation
defaults write com.apple.dock autohide -bool true
killall Dock
# show only active apps in dock
defaults write com.apple.dock static-only -bool true
killall Dock
# silent on startup
sudo nvram SystemAudioVolume=%00
# Enable tap to click (Trackpad) for this user and for the login screen
defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Clicking -bool true
defaults write com.apple.AppleMultitouchTrackpad Clicking -bool true
defaults -currentHost write NSGlobalDomain com.apple.mouse.tapBehavior -int 1
defaults write NSGlobalDomain com.apple.mouse.tapBehavior -int 1
# Enable 3-finger drag. (Moving with 3 fingers in any window "chrome" moves the window.)
defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerDrag -bool true
defaults write com.apple.AppleMultitouchTrackpad TrackpadThreeFingerDrag -bool true
# Expand save panel by default
defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode -bool true
# Expand print panel by default
defaults write NSGlobalDomain PMPrintingExpandedStateForPrint -bool true
# Automatically quit printer app once the print jobs complete
# doesn't seem to be working
# defaults write com.apple.print.PrintingPrefs “Quit When Finished” -bool true
# Check for software updates daily, not just once per week
defaults write com.apple.SoftwareUpdate ScheduleFrequency -int 1
# Always open everything in Finder's column view.
defaults write com.apple.Finder FXPreferredViewStyle clmv
# Show icons for hard drives, servers, and removable media on the desktop
defaults write com.apple.finder ShowExternalHardDrivesOnDesktop -bool true
defaults write com.apple.finder ShowHardDrivesOnDesktop -bool true
defaults write com.apple.finder ShowMountedServersOnDesktop -bool true
defaults write com.apple.finder ShowRemovableMediaOnDesktop -bool true
# Automatically open a new Finder window when a volume is mounted
defaults write com.apple.frameworks.diskimages auto-open-ro-root -bool true
defaults write com.apple.frameworks.diskimages auto-open-rw-root -bool true
defaults write com.apple.finder OpenWindowForNewRemovableDisk -bool true
# Show status bar in Finder
defaults write com.apple.finder ShowStatusBar -bool true
# Enable the Develop menu and the Web Inspector in Safari
defaults write com.apple.Safari IncludeDevelopMenu -bool true
defaults write com.apple.Safari WebKitDeveloperExtrasEnabledPreferenceKey -bool true
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2DeveloperExtrasEnabled -bool true
# Display full POSIX path as Finder window title
defaults write com.apple.finder _FXShowPosixPathInTitle -bool true
# Disable the warning when changing a file extension
defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false
# Prevent Time Machine from prompting to use new hard drives as backup volume
defaults write com.apple.TimeMachine DoNotOfferNewDisksForBackup -bool true
# Avoid creating .DS_Store files on network volumes
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true
# Use plain text mode for new TextEdit documents
defaults write com.apple.TextEdit RichText -int 0
# Apps, disable App Nap for all apps
defaults write NSGlobalDomain NSAppSleepDisabled -bool true
# disable automatic capitalisation
defaults write NSGlobalDomain NSAutomaticCapitalizationEnabled -bool false
# disable smart quotes
defaults write NSGlobalDomain NSAutomaticQuoteSubstitutionEnabled -bool false
# screensaver
defaults -currentHost write com.apple.screensaver idleTime 1800
# show battery percentage in menu bar
defaults write com.apple.menuextra.battery ShowPercent -bool YES
# Disable Autocorrect
defaults write -g NSAutomaticSpellingCorrectionEnabled -bool false
# install FCPX first
defaults write -app "Final Cut Pro" FFDefaultStillDuration -int 2
defaults write -app "Final Cut Pro" FFImportCopyToMediaFolder -bool false
defaults write -app "Final Cut Pro" FFCreateOptimizedMediaForMulticamClips -bool false
# stop spotify from opening when you log in
defaults write com.spotify.client AutoStartSettingIsHidden -bool false
# Kill affected applications
for app in Finder Dock Mail Safari iTunes iCal Address\ Book SystemUIServer; do killall "$app" > /dev/null 2>&1; done
echo "Done. Note that some of these changes require a logout/restart to take effect."
```
### Unscriptable Preferences
move them to the above section if you can find the code for them
* in Finder
* show in sidebar
* home folder
* computer folder
* all drives
* Movies
* Music
* Developer
* in Blender
* in Logic
* download all sounds
* set up standard prefs
* in Garageband
* open at least once
* download all sounds
* add Learning Lab to "info" prefs
* in Terminal
* default shell? (if changing)
* background color, opacity
* font family and font size
* in FCPX
* we think the script took care of these, but confirm
* leave files in place on import
* do not render in background
* do not create optimized files for multicam clips
* add stills as an export option
* remove DVD, etc as export options
* github login
* heroku login
* ableton login
* Unity login
* Unreal login
* Spotify login
* adobe login (and installs, see above)
* xcode plugins and gists and shortcuts
* many of these are probably scriptable, and we don't have a great list of them. This is definitely a place for more thinking and working
## To Do
* get Dock on the left side
* maybe make Dock visible on public machines?
*