These are my dotfiles. Take anything you want, but at your own risk.
It mainly targets macOS systems (should install on e.g. Ubuntu as well for many tools, config and aliases etc).
- Monitor git diff and git merge tool behaviors adjust gitconfig if needed
- change dock icons
- add cheat from codfish/dotfiles
- consider https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/nodenv requires customization to omz theme
- Minimal efforts to install everything, using a Makefile
- Mostly based around Homebrew, Caskroom and Node.js, zsh + latest GNU Utils
- Oh my Zsh included
- Great Window management (using Hammerspoon)
- Fast and beautiful theme
- Updated macOS defaults
- Well-organized and easy to customize
- The installation and runcom setup is tested weekly on real Ubuntu and macOS machines (Monterey/12 and Ventura/13) using a GitHub Action
- Supports both Apple Silicon (M1) and Intel chips
- Homebrew (packages: Brewfile)
- homebrew-cask (packages: Caskfile)
- Node.js + npm LTS (packages: npmfile)
- Latest Git, Bash, Python, GNU coreutils, curl, Ruby
- Hammerspoon (config: keybindings & window management)
$EDITOR
is GNU nano ($VISUAL
iscode
and Gitcore.editor
iscode --wait
)
On a sparkling fresh installation of macOS:
sudo softwareupdate -i -a
xcode-select --install
The Xcode Command Line Tools includes git
and make
(not available on stock macOS). Now there are two options:
- Install this repo with
curl
available:
curl -fsSL https://raw.githubusercontent.com/cantecim/dotfiles/main/remote-install.sh | bash
This will clone or download this repo to ~/.dotfiles
(depending on the availability of git
, curl
or wget
).
- Alternatively, clone manually into the desired location:
- first create your ssh key
ssh-keygen -t ed25519 -C "your_email@example.com"
- add it into your GitHub Account's SSH keys
- first create your ssh key
git clone git@github.com:cantecim/dotfiles.git ~/.dotfiles
- Use the Makefile to install the packages listed above, and symlink runcom and config files (using stow):
cd ~/.dotfiles
make
Running make
with the Makefile is idempotent. The installation process in the Makefile is tested on every push and every week in this
GitHub Action. Please file an issue in this repo if there are errors.
-
Install Avast Security
You can skip this step if you'd like to.
open "`brew list --cask -v avast-security | grep Security.pkg`"
-
Set your Git credentials:
It is configured for me by default
git config --global user.name "your name"
git config --global user.email "your@email.com"
git config --global github.user "your-github-username"
- Install zsh extra features, set macOS Dock items and system defaults:
dot zsh
dot mas
dot dock
dot macos
-
Start Hammerspoon once and set "Launch Hammerspoon at login".
-
Populate this file with tokens (example:
export GITHUB_TOKEN=abc
):
nano ~/.dotfiles/system/.exports
- Restore your application configurations
mackup restore
See this section for more info
You can use mackup to backup and restore your application settings with ease.
If you don't have any backup yet, after installing these dotfiles for the first time, you might want to run mackup backup
Or, if you'd like to backup from another mac, you can login to your iCloud account and run
echo "[storage]" >> .mackup.cfg
echo "engine = icloud" >> .mackup.cfg
echo "" >> .mackup.cfg
echo "[applications_to_ignore]" >> .mackup.cfg
echo "zsh" >> .mackup.cfg
brew install mackup
mackup backup
Mackup is configured to use iCloud as storage engine, this means it will backup to and restore from there.
⚠️ before switching to another device, make sure you backup your data!
If you're migrating from an existing Mac, you should first make sure to backup all of your existing data. Go through the checklist below to make sure you didn't forget anything before you migrate.
- Did you commit and push any changes/branches to your git repositories?
- Did you remember to save all important documents from non-iCloud directories?
- Did you save all of your work from apps which aren't synced through iCloud?
- Did you remember to export important data from your local database?
- Did you update mackup to the latest version and ran
mackup backup
?
$ dot help
Usage: dot <command>
Commands:
clean Clean up caches (brew, cargo, gem, pip)
dock Apply macOS Dock settings
edit Open dotfiles in IDE ($VISUAL) and Git GUI ($VISUAL_GIT)
help This help message
macos Apply macOS system defaults
zsh Install zsh extra stuff
mas Install macOS apps from App Store using mas CLI
test Run tests
update Update packages and pkg managers (brew, casks, cargo, pip3, npm, gems, macOS)
Install extra zsh plugins
- zsh-syntax-highlighting
Install macOS apps defined in install/Masfile
using mas CLI
- Microsoft To Do
- etc.
To customize the dotfiles to your likings, fork it and be the king of your castle!
- This project is based on webpro's dotfiles repository (thanks webpro!)
- Inspired from driesvints/dotfiles esp. on mackup
- Also inspired from codfish/dotfiles esp. on zsh-autosuggestions plugin
- And many thanks to the dotfiles community.