My dotfiles (macOS)
My dotfiles and configuration scripts to setup a new machine, using dotbot & Homebrew, and custom bash scripts.
Old machine prep
- Backup files (OneDrive, Nextcloud et al.)
- Check if all git repos are pushed
- If a git repo lives outside of a cloud service check the git ignored files
- Create a fresh brew bundle dump using
bbd
- Check the
~/dotfiles/Brewfile
and delte entries that should not be installed on the new machine - Optional: copy SSH key pair if yout don’t want to create new one
New machine setup
-
Create fresh SSH key pair (steps from GitHub docs)
ssh-keygen -t ed25519 -C "your_email@example.com"
Optional: Paste the contens of old ssh keys into the new ssh keys
-
Copy public key contens
pbcopy < ~/.ssh/id_ed25519.pub
-
Paste this here: https://github.com/settings/ssh/new
-
Clone this repo in
~/dotfiles
:git clone git@github.com:kalaschnik/dotfiles.git ~/dotfiles
-
Run the install process
~/dotfiles/install
Post Installation
- Symlink SSH Config if Nextcloud is complete
ln -s ~/Nextcloud/dotfiles/ssh/config ~/.ssh/config
Notes for myself
YOU DON’T NEED OH MY ZSH
When I started taking care of my dotfiles, I realized oh myzsh is polluting my .zshrc
, and maybe other places as well. To be in full control, you can actually install the stuff you like about oh-my-zsh manually using homebrew (see Brewfile
); e.g.,
- zsh-autosuggestions
- zsh-completions
- zsh-history-substring-search
- zsh-syntax-highlighting
Resources to bypass oh-my-zsh:
- https://joshtronic.com/2017/02/12/you-may-not-need-oh-my-zsh/
- https://www.youtube.com/watch?v=6t0Mb9noFHo
- https://www.youtube.com/watch?v=21_WkzBErQk
- https://www.youtube.com/watch?v=bTLYiNvRIVI
Powerlevel10k (p10k)
- Powerlevel10k also boots the startup performance of zsh, set it to verbose to detect if this causes an issue
R
Use the r cask version because of https://rstats.wtf/set-up-an-r-dev-environment.html#what-about-homebrew
Appendix
Correct CHMOD Permission for .ssh folder and its contents
SSH CHMOD for RSA | SSH CHMOD for ED25519 |
---|---|
chmod 700 ~/.ssh/ |
chmod 700 ~/.ssh/ |
chmod 600 ~/.ssh/id_rsa |
chmod 600 ~/.ssh/id_ed25519 |
chmod 644 ~/.ssh/id_rsa.pub |
chmod 644 ~/.ssh/id_ed25519.pub |
chmod 600 ~/.ssh/config |
chmod 600 ~/.ssh/config |
Credits
- https://dotfiles.github.io/
- Dotfiles Logo by: https://github.com/jglovier/dotfiles-logo
- Initial Inspiration: Patrick McDonald (https://github.com/eieioxyz/dotfiles_macos)