Installation
Warning
Make sure to verify the contents of the script you download matches the
contents of install.sh at https://github.com/benjcunningham/dotfiles
before executing. These are personal install scripts and dotfiles; they
likely are not appropriate for your machine until you understand what they
do.
The installer behaves differently depending on the platform and flags you pass:
macOS — full desktop install by default (Homebrew, GUI apps, themes, etc.)
Linux (Ubuntu desktop) — headless/server by default; pass
-fto get the full desktop installLinux (Raspberry Pi / server) — headless/server by default; no PPAs or Ubuntu-specific tooling
macOS
curl -fsSL \
https://raw.githubusercontent.com/benjcunningham/dotfiles/master/install.sh \
-o dotfiles.sh \
&& bash dotfiles.sh
To also install personal or work software bundles:
bash dotfiles.sh -p # personal
bash dotfiles.sh -w # work
bash dotfiles.sh -pw # both
Ubuntu (desktop)
First, ensure curl and sudo are available:
apt-get update && apt-get install -y curl sudo
Then run the installer with -f to opt into the full desktop install (PPAs,
software-properties-common, etc.):
curl -fsSL \
https://raw.githubusercontent.com/benjcunningham/dotfiles/master/install.sh \
-o dotfiles.sh \
&& bash dotfiles.sh -f
Raspberry Pi / Server (headless)
Server mode is the default on any Linux host. No PPAs or Ubuntu-specific tooling are used, so this works on Raspberry Pi OS, Debian, and Ubuntu Server alike.
First, ensure curl and sudo are available:
apt-get update && apt-get install -y curl sudo
Then run the installer — no extra flags needed:
curl -fsSL \
https://raw.githubusercontent.com/benjcunningham/dotfiles/master/install.sh \
-o dotfiles.sh \
&& bash dotfiles.sh
Dotfiles Only
To link dotfiles without installing any software:
make dotfiles
Manual Steps
A couple of things aren’t automated by the installer and need to be done by hand.
Tmux plugins. The installer clones TPM and sources .tmux.conf, but it
doesn’t fetch and install the plugins themselves. Start Tmux, then press the
prefix key followed by I (capital i) — by default that’s Ctrl+b then
Shift+I — to install them.
Shell history. .zsh_history and .bash_history aren’t tracked by
these dotfiles. If you want to carry history over to a new machine, copy the
files directly — croc or a similar
peer-to-peer transfer tool works well.
Brave profile. Brave’s Default profile (bookmarks, extensions,
saved passwords, etc.) also isn’t tracked by these dotfiles. To carry it
over to a new machine (macOS paths shown below), quit Brave, tar up the
profile on the old machine, and send it with croc:
# Old machine
cd "$HOME/Library/Application Support/BraveSoftware/Brave-Browser"
tar -czf brave-default.tar.gz Default
croc send brave-default.tar.gz
On the new machine, install Brave and quit it first, then receive and unpack the archive into place:
# New machine
croc <code-phrase-from-sender>
tar -xzf brave-default.tar.gz \
-C "$HOME/Library/Application Support/BraveSoftware/Brave-Browser"