This repo borrows heavily from MikeMcQuaid/strap
(and associated app) along with mathiasbynens/dottfiles
.
In addition, it relies on deadc0de6/dotdrop
to manage the dotfiles.
DOTFILES_SKIP_UPDATES
: if set, skip OS updatesDOTFILES_SKIP_CONFIRMATION
: on macOS, if set, skip the manual confirmation of setup that cannot be handled by the scriptDOTFILES_SKIP_LOGIN_WINDOW
: on macOS, if set, skip the configuration of the login window messageHOMEBREW_PROCESS_MAS
: on macOS, if set toy
,mas
lines inBrewfile.*
will be handled & installed. Thedotfiles-envvars
plugin will set this toy
if the username is notvirtualbuddy
(to make testing under VirtualBuddy easier).
On macOS, it may be necessary to run xcode-select --install
if the git
command is not initially available on the Mac.
When first setting up a (new?) machine, run the os-setup
script.
Run the bootstrap
script to install the dotfiles into the relevant location(s).
Ultimately, both of these files should be idempotent and thus can be used to re-run to update as needed.
Note: During an initial installation run, you may see complaints about _*env_install
dotdrop actions failing, but those are not consequential.
The os-setup
script currently works for Debian-based Linux distros, including Ubuntu & Raspbian.
It may be necessary to install git (sudo apt install git
) in order to clone the repo for installation.
git clone <this repo> .dotfiles
cd .dotfiles
# export DOTFILES_SKIP_UPDATES=y if avoiding system updates
./script/os-setup
# some manual interaction initially
# log into 1Password app
# enable SSH agent in 1Password
# enable cli integration in 1Password
./script/bootstrap # optional dotdrop profiles to add for machine, like "personal"
In an Powershell Administrator window:
irm https://raw.githubusercontent.com/acourtneybrown/dotfiles/master/script/win-admin-setup.ps1 | iex
In a Powershell windows (non-Administrator):
irm https://raw.githubusercontent.com/acourtneybrown/dotfiles/master/script/win-user-setup.ps1 | iex
- [optional] install OS updates
- run
macos
script - install xcode tools
- [optional] install OS updates
- Ensure en_US.UTF-8 locale is available & installed
Items in italics require manual intervention currently.
Optionally takes any additional dotdrop profiles to add to the newly created machine profile (eg: personal
).
- install homebrew/linuxbrew
- add profile & included profiles to dotdrop config
- for each profile, run the profile-specific installation
dotdrop install
- for each profile, run the profile-specific after-installation
General approach for these functions:
- install brew bundle (
Brewfile.<profile>
) - install Python-based tools (& multiple versions of Python)
- install any OS-specific packages via native (non-homebrew) package manager