First: install macOS
Other setup notes:
- https://mattstauffer.com/blog/setting-up-a-new-os-x-development-machine-part-1-core-files-and-custom-shell/
- https://computers.tutsplus.com/tutorials/perfect-configurations-with-homebrew-and-cask--cms-20768
- http://sourabhbajaj.com/mac-setup/
- https://lifehacker.com/five-tools-for-beginners-that-power-up-the-command-line-1791515136
- https://apple.stackexchange.com/questions/12161/os-x-terminal-must-have-utilities
- Bluetooth
- Add devices
- Dock
- Automatically hide and show the Dock - check
- General
- Use dark menu bar and Dock - check
- Internet Accounts
- Configure Google, etc.
- Keyboard
- Keyboard
- Show keyboard and emoji viewers in the menu bar
- Use F1, F2, etc. keys as standard function keys on external keyboards
- Customise control strip... - Mute, Lock, Volume, Dashboard
- Text
- Correct spelling automatically - uncheck
- Capitalize words automatically - uncheck
- Add period with double-space - uncheck
- Shortcuts
- Mission Control
- Mission Control - uncheck (conflicts with Sublime Text)
- Application windows - uncheck (conflicts with Sublime Text)
- Move left a space (conflicts with a lot!)
- Move right a space (conflicts with a lot!)
- Function Keys - add IntelliJ Idea and Microsoft Remote Desktop
- Mission Control
- Dictation
- Shortcut - off
- Keyboard
- Security & Privacy
- FileVault -> Turn On
- Firewall -> Turn On Firewall
- Trackpad
- Point & Click
- Tap to click - check
- Point & Click
- Users & Groups
- Disable Guest User
- Change user icon (by clicking on it)
- Install O/S Updated from App Store
- Install purchased apps from App Store
- Run Xcode and accept the license (either manually or automatically using
sudo xcodebuild -license
(SO)) - Install device drivers
If we want multiple (old) versions of the same major version of Java, then we have to download them manually:
- Download and install the macOS JDKs from http://www.oracle.com/technetwork/java/javase/downloads/index.html (and the Java archive)
Could consider using sdkman in future.
Enable JCE for JDK >= 8u1
After installing at least one JDK, because that is a pre-requisite
- Install packages using brew.sh:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" brew update brew bundle
This uses to control the programs to install. Update this file using (SO):
./brew-bundle-dump.sh
# Which runs
# brew bundle dump --describe --force
cp .bash_profile ~
- Powerpack -> Activate Your Powerpack and enter license code
- Clipboard -> change shortcut key to Option-Command-V and expire values:
- Alfred Preferences → Appearance → Options (lower left corner) → Show Alfred on → Mouse screen. (ref)
- Chrome -> Warn before quitting - check
Log out automatically:
Settings->Sync->Selective Sync: don't sync Comics, Lightroom Backup, Music, Nina
For old versions, turn off automatic updates in Firefox -> Preferences:
Global config
git config --global user.email '<email address>'
git config --global user.name '<name>'
# https://stackoverflow.com/a/13974638/125246
git config --global pull.rebase true
git config --global --list
Install git-lfs (after brew has installed it):
git lfs install
-
Git config - use native ssh executable:
-
Project structure -> SDKs - add all JDKs (in directories similar to
/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home
)
Run, and Help->Enter License.
- Enable Settings -> Security & Privacy -> Accessibility
Moom settings:
-
Open a new terminal (to ensure that the init script is run, defined in <.bash_profile>).
-
Add each JDK (hiding
JAVA_TOOL_OPTIONS
andJAVA_OPTIONS
which would break jenv's parsing - bug report and SO unset tip).Note only overwrite versions if they are newer (e.g. so that 1.8 points to 1.8.0_162 instead of 1.8.0_92).
env -u JAVA_TOOL_OPTIONS -u _JAVA_OPTIONS jenv add \ /Library/Java/JavaVirtualMachines/jdk-10.0.1.jdk/Contents/Home/ env -u JAVA_TOOL_OPTIONS -u _JAVA_OPTIONS jenv add \ /Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home/ env -u JAVA_TOOL_OPTIONS -u _JAVA_OPTIONS jenv add \ /Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home/ env -u JAVA_TOOL_OPTIONS -u _JAVA_OPTIONS jenv add \ /Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/ env -u JAVA_TOOL_OPTIONS -u _JAVA_OPTIONS jenv add \ /Library/Java/JavaVirtualMachines/jdk1.8.0_152.jdk/Contents/Home/ env -u JAVA_TOOL_OPTIONS -u _JAVA_OPTIONS jenv add \ /Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/ env -u JAVA_TOOL_OPTIONS -u _JAVA_OPTIONS jenv add \ /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/ env -u JAVA_TOOL_OPTIONS -u _JAVA_OPTIONS jenv add \ /Library/Java/JavaVirtualMachines/jdk1.7.0_72.jdk/Contents/Home/ env -u JAVA_TOOL_OPTIONS -u _JAVA_OPTIONS jenv add \ /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/
-
Enable plugins
jenv enable-plugin export # To export JAVA_HOME jenv enable-plugin ant # So that ant, etc. use the configured JDK jenv enable-plugin maven jenv enable-plugin gradle jenv enable-plugin sbt jenv enable-plugin springboot
Don't install Python directly with brew, but instead use pyenv, pyenv-virtualenv, and pyenv-virtualenvwrapper
Then add to .bash_profile
:
# For pyenv
eval "$(pyenv init -)"
if which pyenv-virtualenv-init > /dev/null; then eval "$(pyenv virtualenv-init -)"; fi
Then install the required Python versions:
pyenv install 2.7.10
pyenv install 3.2.6
pyenv install 3.3.6
pyenv install 3.4.3
pyenv install 3.5.0
Terminal -> Preferences
- General
- On startup, open: New window with profile: Ocean
- New windows open with: Same profile
Copy config file to /usr/local/etc/tinyproxy.conf