Skip to content

pmmmwh/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pmmmwh@dotfiles

Getting Started

⚠️ WARNING ⚠️ - Proceed at your own risk.

The setup here have been tweaked to cater my personal workflow. They don't suit everyone, so please review the code to make sure the dotfiles fit your setup.

First, clone the repository with submodules. You can put it wherever you want.

git clone --recurse-submodules --remote-submodules https://github.com/pmmmwh/dotfiles.git
cd dotfiles

Then, set the bootstrap script as executable and run it. It will ensure the environment contains binaries needed for the setup (Git and GNU Stow).

chmod u+x bootstrap
bootstrap

The environment is now properly setup and ready to go.

macOS

If you're using macOS, you can also setup a few extra things.

Setting some sensible macOS defaults with settings.zsh.

chmod u+x @macos/settings.zsh
@macos/settings.zsh

Installing binaries and apps (via Homebrew and mas) with brew.zsh: (The actual list is in the Brewfile)

chmod u+x @macos/brew.zsh
@macos/brew.zsh

Operations

Customisation

If you want to customise the setup, you can add .zsh files within the .zshcustom folder. It has been set as the "custom" directory for Oh My Zsh, so any .zsh files inside will be automatically sourced.

Reverting

If you do not like the setup and would like to revert the changes it did, you can run the teardown script. It will remove any symlinks created by the bootstrap process.

chmod u+x teardown
teardown

Updating

To update, go to your local dotfiles repository and run the teardown script. Then, re-run the bootstrap script - it will then pull in the latest changes and re-run the whole setup process.

cd dotfiles
teardown
bootstrap

Structure

The project have been structured as Stow packages and named with a specific convention in mind:

  • lowercase for anything to be symlinked to $HOME
  • a leading @ for anything dependent on the installation operating system
  • a leading _ for anything that should not be symlinked (i.e. not a Stow package.)

External packages are applied using Git Submodules. Here's a list of all dependencies pulled in:

Acknowledgements