All configuration files and scripts for setting up a new macOS or Linux machine.
Check out phone.md for setup instructions on a new phone.
bin— custom scriptshome— files that are symlinked to$HOMEdirectoryterminal— terminal config
- Install XCode via the macOS App Store
- Accept XCode license agreement
cd ~ && git clone https://github.com/ad-si/dotfiles.gitcd dotfiles && ./install.sh
Attention: The user must have sudo rights to install dependencies
Copy all relevant files from backup to new Machine. (Check out bin/backup for a list of all files.)
-
General
-
Date & Time: Change date and time preferences
- Deactivate automatic setting of time zone by location
- Change time zone to UTC:
sudo ln -sf /usr/share/zoneinfo/UTC /etc/localtimeorsudo systemsetup -settimezone GMT(will error, but still work) - Display the time with seconds
- Use a 24-hour clock
- Show the day of the week
- Show date
-
Language & Region
- Preferred languages: English (US)
- First day of the week: Monday
- Calendar: ISO 8601
- Temperature: Celsius
- Advanced:
- General:
- Grouping: Space
- Decimal: .
- Measurement: Metric
- Dates:
- Short: y-MM-dd
- Medium: y-MM-dd
- Long: y-MM-dd
- Full: y-MM-dd, D', W'w, EEEE
- Times:
- Short: HH:mmZZZZZ
- Medium: HH:mm:ssZZZZZ
- Long: HH:mm:ssZZZZZ
- Full: HH:mm:ss.SSSZZZZZ
- General:
-
-
Appearance
- Light Mode (Use Nightfall to switch between light and dark mode)
- Show scroll bars: When scrolling
- Click in the scroll bar to: Jump to the spot that's clicked
-
Control Center
- Battery: Show Percentage
- Keyboard Brightness: Show in Control Center
- Spotlight: Don't show in menu bar
-
Desktop & Dock
-
Show suggested and recent apps in Dock: Off
-
Widgets
- Default web browser: Brave
-
Windows
- Tiled windows have margins: Off
-
Mission Control
- Automatically rearrange Spaces based on most recent use: Off
- Hot Corners
- Top Left: Put Display to Sleep Launchpad
- Top Right: -
- Bottom Left: Desktop
- Bottom Right: Mission Control
-
-
Displays:
- Change primary display
- Set resolution to "More Space"
- Night Shift: Off
-
Keyboard
- Keyboard
- Key Repeat: Fast
- Delay Until Repeat: Short
- Press 🌐 key to Start Dictation
- Keyboard navigation ☑️
- Keyboard Shortcuts
- Text Input
- Input Sources
- Use "ABC - Extended" keyboard layout to have correct direct output of "~" and "`"
- Delete all other input sources
- Disable
- Correct spelling automatically
- Capitalize words automatically
- Add period with double-space
- Use smart quotes and dashes
- Input Sources
- Keyboard
-
Open at Login
- Brave
- Calendar
- Dropbox
- Google Drive
- Hammerspoon
- iTerm
- Slack
- Spotify
- Thunderbird
- General:
- Scroll in week view by: Week, Stop on Today
- Accounts: Add all accounts, but disable Mail for them
- Advanced:
- Turn on time zone support
- Show week numbers
- Enable notifications
- Preferences
- Show nothing on the Desktop
- New Finder windows show <username>
- Sync Desktop & Documents folders
- Sidebar:
- Applications
- Downloads
- <username>
- iCloud Drive
- Desktop
- Locations: All
- Tags
- Advanced:
- Show all filename extensions
- Show warning before removing from iCloud Drive
- Show warning before emptying the Trash
- Remove items from the Trash after 30 days
- When performing a search: Search the Current Folder
- Sidebar:
- Sort directories in "Favorites" section
General > Settings:
- Load preferences from a custom folder or URL:
~/dotfiles/terminal - Save changes to folder when iTerm2 quits
- Set Fish as the default shell:
More details: https://fishshell.com/docs/current/#default-shell
echo /opt/homebrew/bin/fish | sudo tee -a /etc/shells chsh -s /opt/homebrew/bin/fish
- Deactivate all settings except:
- Launch Hammerspoon at login
- Show Menu Icon
- Enable Accessibility
- Download all additional content
Jxa macOS automation scripts are symlinked from
~/dotfiles/scripts to ~/Library/Scripts
and are displayed in the scripts editor sub-menu in the menu bar.
(Enable via
Script Editor.app > Preferences > General > Show Script menu in menu bar)
Add sub-directories with app names for app specific scripts.
The symlink-dotfiles script must be run after adding new scripts.
Script libraries are symlinked from
~/dotfiles/script-libraries to ~/Library/Script Libraries/dotfiles
and can be imported like this:
const tools = Library('dotfiles/tools')With descending priority:
- Set GitHub API token for Homebrew
- Install TaskLite
- Run
npm installin the dotfiles directory - Add Hunspell dictionaries after installation
(e.g. https://github.com/titoBouzout/Dictionaries to
~/dotfiles/dictionaries) - Install languages for Tesseract
(e.g. https://github.com/tesseract-ocr/tessdata_best/blob/master/deu.traineddata?raw=true)
to
/usr/local/Cellar/tesseract/4.0.0/share/tessdata - Printer driver software
- Install and setup Brother QL-810W label printer
gh auth loginIs installed by Homebrew,
but for the system Java wrappers to find openjdk, symlink it with:
sudo ln -sfn \
/opt/homebrew/opt/openjdk/libexec/openjdk.jdk \
/Library/Java/JavaVirtualMachines/openjdk.jdk- Set Brave as default browser (Should pop up when opening Brave for the first time)
- Go to Brave Sync
- Join Sync Chain
- Disable swipe history navigation:
defaults write com.brave.Browser AppleEnableSwipeNavigateWithScrolls -bool FALSE - Set "Page zoom" to 90%
Installed extensions should then include Midnight Lizard, Automatic Metric Conversion, …
- Login to Firefox Sync
- Do not print headers, footers, and margins.
Sign in and enable sync for important directories.
Especially Settings, which is needed for Sublime Text/Merge sync.
brew install pinentry-mac- Then add to gpg-agent config (skip if
.gnupgwas copied from backup):echo "pinentry-program /opt/homebrew/bin/pinentry-mac" \ >> ~/.gnupg/gpg-agent.conf
killall gpg-agent- Restart shell
- Make sure GPG is set up correctly.
- Clone https://github.com/ad-si/password-store with GitHub CLI:
gh repo clone ad-si/password-storeand move to~/.password-store. gopass fsck
- Activate installation
- Get license key with
gopass sublimetext.com/license-key - Apply under Help > Enter License
- Get license key with
- Install Package Control (will then automatically install all packages from the synced list)
- Sync via Dropbox as described in https://packagecontrol.io/docs/syncing
- Set up GitHub Copilot: https://packagecontrol.io/packages/LSP-copilot#Setup
- Install additional dictionaries for spell checking:
cd ~/Library/Application\ Support/Sublime\ Text/Packages/ git clone https://github.com/titoBouzout/Dictionaries
- Activate installation
- Get license key from Passwords app
- Apply under Help > Enter License
- Sync via Dropbox as described in https://packagecontrol.io/docs/syncing
Sign in via GitHub to sync preferences.
Open app and enter license key from Passwords app.
Follow following instructions to migrate the data folder to the new computer: https://support.mozilla.org/en-US/kb/moving-thunderbird-data-to-a-new-computer
Log in to home server synapse.feram.io.
Log in
Log in
Log in
- Log into Logitech Options account to sync mouse settings
- Scroll direction Natural
- Logitech Options config
- Activate the Logitech Options Daemon at
System Preferences → Security & Privacy → Accessibility
- Stream quality: Very High
- Download: Very High
- Add all accounts
sd- My script directory.
- iterm settings
- Setup git (via
gh?) - Use https://github.com/Homebrew/homebrew-bundle
- Backup fish history
- Backup ngrok config
- Install Stack and HLS with ghcup
- Backup "$HOME/Library/Application Support/harper-ls/dictionary.txt"
.awsdirectory