Run the following command to install dotfiles from scratch:
bash <(curl -fsSL https://raw.githubusercontent.com/Nemexur/dotfiles/main/install.sh) "${HOME}/.dotfiles"Additionally, the installation script has a dry-run option, which can be enabled by adding the -d/--dry-run option.
The hierarchy is inspired by Holman's dotfiles repository. There are a few particular files in the hierarchy:
- bin/: Anything in
bin/will be added to your$PATHand be available everywhere. - roles/: Ansible roles to install system configuration.
- tasks/: Special ansible-playbook scripts for system maintenance.
- vars/: Variables for tasks in ansible-playbook.
- tests/: In contains 2 folders:
ciandvagrant. The first one is used for github-workflows. The second one is used for local testing with VirtualBox. - files/{topic}/*.zsh: Any files ending in
.zshget loaded into your environment. - files/{topic}/path.zsh: Any file named
path.zshis loaded first and is expected to setup$PATHor similar. - files/{topic}/completion.zsh: Any file named
completion.zshis loaded last and is expected to setup autocomplete. - files/{topic}/install.yaml: Any file named
install.yamlis executed when you rundot installs. These are specific installation scripts for topics. - files/{topic}/*.symlink: Any file ending in
*.symlinkgets symlinked into your$HOME. This is so you can keep all of those versioned in your dotfiles but still keep those autoloaded files in your home directory. These get symlinked in when you rundot symlinks.
You can filter which part of the provisioning process to run by specifying a set of tags to dot shell script. Available tags:
- packages
- system
- git
- terminal
- zsh
- tmux
- ranger
- editors
- vim
- vscode
- lunarvim
- emacs
- filesystem
- symlink
- install
- cron
- misc
dot packages systemIf tags are not specified, everything is enabled.