I was directed to a great macOS Setup Guide back in 2016 after a MacBook Air died and I had no way of recovering all of my settings and tweaks after a few good years of use. This guide is good, but it doesn't actually automate many things. Enter Dotfiles and all of it's splendor, and now I have a project to keep me occupied in my spare time.
- I like Holman's dotfiles project layout so I'll probably be stealing it.
- I also like the idea of using Stow for managing symlinks.
- And Credit to Mathias' MAC setup script because I don't know enough about MAC config on CLI to write my own.
.
├── application1
│ └── install.sh
├── application2
│ ├── install.sh
│ ├── dotfiles
| | ├── .somerc
| | └── .config
| | └── .somerc
│ └── somefile.ext
├── bootstrap.ps1
├── bootstrap.sh
└── README.md
Set-ExecutionPolicy RemoteSigned
.\bootstrap.ps1
- Run chocolatey-installs.ps1 to install chocolatey and other basic packages
- Import Classic Shell settings
- Display settings for smaller text
- Display settings to enable Night light
./bootstrap.sh
- Gnome Tweak Tools
- Gnome extensions
- Dash to dock (or dock to dash, can't remember which one)
- extensions in panel
- Music player in panel
./bootstrap.sh
- Install Homebrew
- Iterate over all dirs and run install.sh in each
- Iterate over all dirs and check for brewfile and install
- Copy dotfiles
- Iterate over all dirs and stow to ~
- Xcode
- Homebrew
- Firefox
- Move userchrome.css to right dir
- Stow
- iTerm2
- Zsh - installed by default on new Mac but still will want to configure
- tree
- Git
- Bash Completion
- VSCode
- Plugins:
- Flake8 python linter
- Docker
- Live Server
- Live Share
- Material Icon theme
- Powershell
- Python
- Ruby
- SSH FS
- Terraform
- VSCode Ruby
- vscode-icons
- YAML
- Some way of keeping plugins up to date?
- Plugins:
- Python
- pyenv
- pyenv-virtualenv
- Pip
- virtualenv
- IPython
- pyenv
- MySQL
- Ruby
- rbenv
- RubyGems
- Vagrant
- Docker
-
brew install bash-completion brew install docker-completion brew install docker-compose-completion brew install docker-machine-completion
-
- Chrome
- Chrome Remote Desktop
- Google Drive backup
- GCloud
- Terraform
- Kubernetes
- Ansible
- Sensible Side Buttons
- Rectangle
- NMap
- Logrotate
- Slack
- Microsoft Teams
- wget
- glances or htop
- openssl
TLDR: https://kowalcj0.github.io/posts/2019/logrotate-bash-history/ in /etc/logrotate.d/bashhistory...
/home/$USERNAME/.bash_history {
weekly
missingok
rotate 5
size 5000k
nomail
notifempty
create 600 $USERNAME $USERNAME
postrotate
tail -n100 $1 > /home/$USERNAME/.bash_history;
mkdir -p /home/$USERNAME/bash_history
mv $1 /home/$USERNAME/bash_history/$1
endscript
}
From: https://support.apple.com/en-us/HT203998
sudo dscl . create /Users/hiddenuser IsHidden 1
Hide Home Dir/Share Point
sudo mv /Users/hiddenuser /var/hiddenuser
sudo dscl . create /Users/hiddenuser NFSHomeDirectory /var/hiddenuser
sudo dscl . delete "/SharePoints/Hidden User's Public Folder"