diff --git a/Makefile b/Makefile index aa8dfbf..5601b2a 100644 --- a/Makefile +++ b/Makefile @@ -40,6 +40,7 @@ bootstrap-espanso: bootstrap-non-brews: bootstrap-logitech bootstrap-amazon-workdocs bootstrap-espanso +# TODO: Remove stow in favor of customized scripts. stow: @stow --stow --verbose --target ~ */ @@ -47,6 +48,10 @@ stow: bootstrap: bootstrap-homebrew bootstrap-brews bootstrap-casks stow bootstrap-non-brews bootstrap-app-store open ~/Downloads +bootstrap-minimal: bootstrap-homebrew bootstrap-brews + $(shell "$(PWD)/install") + brew install --cask iterm2 + # make a local zsh configuration file, to extend # the normal .zshrc for configuration that is only # relevant on the local machine. diff --git a/README.md b/README.md index b526c75..aeb5b19 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,14 @@ # My Dotfiles -This is my repository for learning dotfiles. +This is a repository for my dotfiles. Be warned that these may often change and +that the installation documentation may not always be correct as things +progress. In general the setup process is something that is only done when +a new machine is purchased or I feel like testing in a virtual machine (which +does not happen often). It is helpful to have an understanding of what these +commands do on your own. + +In general no pull-requests or changes will be accepted, however you can +generate an issue if you find a problem. It currently will install homebrew and the following homebrew formula. @@ -8,7 +16,6 @@ It currently will install homebrew and the following homebrew formula. fd git mas -neovim node ripgrep stow @@ -25,7 +32,7 @@ google-chrome iterm2 microsoft-teams obs -paw +rapid-api sketchup-pro ``` @@ -59,7 +66,8 @@ git clone https://m-housh/dotfiles.git ~/.dotfiles && \ cd ~/.dotfiles ``` -The Makefile includes commands to install dependencies andlink the configuration using `gnu-stow`. +The Makefile includes commands to install dependencies and link the +configuration using `gnu-stow`. On a fresh system run the following command from the dotfiles root. @@ -72,6 +80,15 @@ This start by installing homebrew, then install the required homebrew formulas a applications from the `App Store`. When the bootstrap command is done it will open up the `~/Downloads` folder for the few applications that get downloaded from the internet, so that you can finish the installation of those applications. +### Minimal Setup + +If you would like to just setup minimal stuff, link dotfiles, and install brews +(no casks except for Iterm2). Then you can run the following command. + +```bash +make bootstrap-minimal +``` + ## To set macOS settings ```bash @@ -80,32 +97,37 @@ source scripts/setup_defaults ## Post Installation -After everything has finished up, you will be able to open `iTerm2` and load the profile which should now be symlinked -to `~/.config/macOS/iterm/profile.json` - -You will also want to open `neovim` and run `:PackerSync` or `:PackerInstall` to download all the `neovim` plugins. +After everything has finished up, you will be able to open `iTerm2` and load +the profile which should now be symlinked to `~/.config/macOS/iterm/profile.json` ## Make commands -It is also possible to not do the full bootstrapping. If you would only like to install homebrew (without any formula or casks) then you can run the following command. +It is also possible to not do the full bootstrapping. If you would only like +to install homebrew (without any formula or casks) then you can run the following +command. ``` make bootstrap-homebrew ``` -Once homebrew is installed, if you'd like to install the homebrew formula (located in `macOS/.config/macOS/Brewfile`) then you can run the following command. +Once homebrew is installed, if you'd like to install the homebrew +formula (located in `macOS/.config/macOS/Brewfile`) then you can run the +following command. ``` make bootstrap-brews ``` -To install homebrew casks (located in `macOS/.config/macOS/Casks.Brewfile`) then you can run the following command. +To install homebrew casks (located in `macOS/.config/macOS/Casks.Brewfile`) then you +can run the following command. ``` make bootstrap-casks ``` -To symlink the configuration files only then you can run. +To symlink the configuration files only then you can run. (Note this will +likely be removed in the future, as most of the installation is done by +custom scripts currently). ``` make stow @@ -117,7 +139,9 @@ To download the logitech options application and place in your `~/Downloads` fol make bootstrap-logitech ``` -To download the amazon workdocs drive installer and place in your `~/Downloads` folder, you can run. +To download the amazon workdocs drive installer and place in your `~/Downloads` +folder, you can run. (Note the Amazon workdocs app does not work on newer M1 +macOS architectures, and will likely be removed in the future). ``` make bootstrap-amazon-workdocs @@ -128,3 +152,16 @@ And finally to download the app store applications run. ``` make bootstrap-app-store ``` + +## Other Make Commands + +If you would like to setup any specific `zsh` configuration that is only for +the local machine then you can run the following command. + +```bash +make zshrc-local +``` + +This will generate and symlink a file that you can use to extend the default +`zshrc` configuration. In general, I use this to set custom location for +homebrew casks to be installed on certain machines. diff --git a/macOS/.config/macOS/Brewfile b/macOS/.config/macOS/Brewfile index 3c0ea0f..c64996f 100644 --- a/macOS/.config/macOS/Brewfile +++ b/macOS/.config/macOS/Brewfile @@ -14,12 +14,13 @@ brew "fd" # required for some neovim plugins brew "figlet" # for ascii art / text brew "gh" # Github CLI brew "git" +brew "jq" # json utilities brew "mas" # Mac AppStore apps from cli #brew "neovim" #brew "node" # required for some LSP servers in neovim brew "pure" # for cli prompt brew "ripgrep" -brew "stow" # for dotfile linking / placement. +#brew "stow" # for dotfile linking / placement. brew "swift-format" # for formatting swift files brew "m-housh/formulae/swift-zet" # for managing zettelkasten notes brew "tmux" # terminal multi-plexer