Welcome
$HOME
!
This repo makes moving into your new mac a breeze by automatically furnishing it with your favorite apps, and giving you the tools you need to maintain it. I have made my preferences open source to serve as a blueprint and inspiration for others.
Whether or not dotfile repos should be forked is a topic of hot debate. If you do fork this repo, I strongly recommend you personalize the contained files before unpacking.
Jump to: β¨ TL;DR | π₯ Demo | π¦ Unpack | π οΈ Maintain | ποΈ Contents | ποΈ Personalize | π‘ Inspiration | π Resources
The floor plan at a glance:
Operating System | |
---|---|
Package Manager | |
Dotfile Manager | |
Terminal Emulator | |
Terminal Multiplexer | |
Shell | |
Shell Prompt | |
Editor | / |
Typeface | Anonymous Pro / Anonymice Pro Nerd Font |
Theme | Catppuccin Mocha |
Gif/Video coming soon.
Warning: Before unpacking, consider reviewing the repo contents to make sure they match your style. Any existing configs may be overwritten.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/boldandbrad/dotfiles/main/ship.sh)"
This will download and run ship.sh
, which
clones this repo to ~/Setup/dotfiles
(if not present), and then prompts you to
run unpack.sh
.
Alternatively you can clone the repo yourself and run unpack.sh
manually.
git clone --recursive https://github.com/boldandbrad/dotfiles.git ~/Setup/dotfiles
cd ~/Setup/dotfiles && ./unpack.sh
The unpack script explains what it will do, prompts before doing so, and is idempotent. This means it can be safely run multiple times without compounding changes or breaking.
To make system maintanence simpler post-install, a handful of convenient command aliases are provided. Invoke these from anywhere.
Command | Description |
---|---|
sys-refresh |
Rerun system setup (unpack.sh ) |
sys-clean |
Clean system caches and app data (β Coming soon) |
dot-commit |
Persist current dotfiles to github (β Coming soon) |
dot-relink |
Relink installed dotfiles |
zsh-reload |
Reload shell environment (.zshrc ) |
dep-check |
Check if all apps and dependencies are installed |
dep-refresh |
Install/update all apps and dependencies |
dep-prune |
Uninstall apps and dependencies that aren't needed |
git-reclone |
Reclone user github repos |
The contents of this repo are organized into a few high level directories.
dotfiles/
βββ config/ # Config files for packages and apps. Symlinked by dotbot.
β βββ ..
βββ scripts/ # Shell scripts for system and tool setup. Called by unpack.sh.
β βββ ..
βββ vendor/ # Dependencies which are managed as git submodules.
β βββ ..
βββ ..
βββ Makefile # Helpful development commands.
βββ ship.sh # Remote installation script.
βββ unpack.sh # Main installation and setup script.
βββ symlinks.yaml # Dotbot symlink configuration.
The config/
directory contains config files for
packages and apps. They are symlinked to their respective locations on the
system by dotbot
as specified in symlinks.yaml
at the
repo root.
Most packages and apps respect the
XDG base directory specification
to determine where to store configurations and data. This creates consistency
and predictability while keeping your $HOME
free of clutter.
The following XDG variables are defined in .zshenv
,
which is sourced before symlinking.
Env Variable | Location |
---|---|
XDG_BIN_HOME |
~/.local/bin |
XDG_CACHE_HOME |
~/.local/var/cache |
XDG_CONFIG_HOME |
~/.config |
XDG_DATA_HOME |
~/.local/share |
XDG_LIB_HOME |
~/.local/lib |
XDG_STATE_HOME |
~/.local/state |
The scripts/
directory contains shell scripts that automate system and tool
setup. This includes OS specific scripts for installing apps and dependencies,
and system configurations. Most of these scripts are called directly from
unpack.sh
at the repo root.
Docs coming soon.
Docs coming soon.
There are tons of great dotfile and machine setup repos out there. In particular, I took inspiration from these gems:
- dreamsofcode-io/dotfiles - nvim and tmux configs
- lissy93/dotfiles - install scripts and repo structure
- nikitavoloboev/dotfiles
- stefanzweifel/dotfiles
- superatomic/dotfiles
- webpro/dotfiles
- Roadmap - planned changes and updates to this repo
- boldandbrad docs π - my personal dev docs
- Dotbot π - dotbot github repo
- Dotfiles Community π - a great collection of dotfile resources
Copyright (c) 2021-present Bradley Wojcik. Released under the MIT License. See LICENSE for details.