My MacOS setup and configuration π»
This should be in ~/.config
this way it can always be up to date with new changes.
Even tho each script inside .setup/scripts
can be executed as its own, check .setup/install.sh
as there are dependencies needed.
This is the structure used for this project.
.config/
β
ββ .data/ - All data generated during usage (as much as we can centralize)
ββ .setup/ - All files relative to the automated setup of the OS.
β ββ backup/ - All possible backups and used by the script to restore stuff.
β ββ scripts/ - A bunch of scripts used to restore the settings.
β ββ backup.sh - A generic script to do backup and not forget anything.
β ββ install.sh - The main script where all starts.
β ββ utils.sh - a few things to help during the setup.
β
ββ _external/ - Here we have all files that will be placed in somewere else as a symbolic link.
β ββ home/ - All files and directories in here should be in `~/`.
β ββ ... - The others have specific directories.
β
ββ ... - Files not documented are originaly from `~/.config` folder
β
ββ LICENSE Β―\_(γ)_/Β―
ββ README.md
With homebrew we basically manage as much as possible:
- CLI
- Apps
- Fonts
All can be found within .setup/backup/Brewfile
First, make sure you are logged in into the App Store as some apps are downloaded directly from there.
Some softwares still not compatible with Silicon processors, install rosetta if you see "Bad CPU type in executable" or similar.
softwareupdate --install-rosetta
Create SSH key or import the one you have:
#
ssh-keygen -t ed25519;
# Give the proper permissions if imported
chmod 600 ~/.ssh/config
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub
# Clone
cd ~
git clone [email protected]:marlomgirardi/MacOS.git .config
Change SYSTEM_NAME
to the desired computer name (optional).
# Install
SYSTEM_NAME=mbp ~/.config/.setup/install.sh
{domain}
- Is likecom.apple.dock
.{plist}
- Is likecom.apple.dock.plist
. It can e a binary or a xml.
sudo find / -name "*.plist" | grep -v -E "(Info|version).plist" > plist.txt
- Find all plist files exceptInfo
andversion
osascript -e 'id of app "####"'
- Find #### id to change the defaultsdefaults domains
- See all domainsdefaults import {domain} {plist}
- Import a plistdefaults export {domain} {pathToPlist}
- Export a plistplutil -convert xml1 {pathOfPlistToConvert}
- Convert a binary plist to xml, easier to edit.