dotfiles
dotfiles copied to clipboard
My collection of dotfiles
Installing this configuration
Requirements
- Chezmoi
- Archlinux or OSX
Installing
Note: You are required to use the env variable SECRETS_OFF=1, as not passing will
make chezmoi fail when connecting to my bitwarden's account.
The following environment variables can be set to configure Chezmoi on runtime:
ASK: Set to1if you want to enable chezmoi promptSECRETS_OFF: Set to1to enable Bitwarden (uses my personal secrets set in .chezmoi.yaml)DOTFILES_MINIMAL: Set to1if you want to install the minimal versionWORKCONF: Set to1to enable work configuration (work email, etc)
For example, you can enable ASK by running ASK=1 chezmoi apply or enable a
minimal version of the dotfiles with DOTFILES_MINIMAL=1 chezmoi apply
Chezmoi allows easy install of this configuration by running the following command:
Full version
SECRETS_OFF=1 chezmoi init https://github.com/benmezger/dotfiles.git -S ~/dotfiles
Minimal version
The minimal version installs only the essentials.
- zsh
- git
- vim
- emacs
- tmux
- curl
- alacritty
- neovim
- user-dirs
- editorconfig
- dircolors
SECRETS_OFF=1 DOTFILES_MINIMAL=1 chezmoi init https://github.com/benmezger/dotfiles.git -S ~/dotfiles
Scripts
All the system dependencies are installed either by running the
Makefile (see make help) or by running chezmoi apply. All
scripts are located in the scripts directory. Two files are of
importance: buildcheck.sh and
minimalcheck.sh. The first checks if the scripts is
running in a CI environment while the latter checks if the install profile is
equal to minimal.
| Command | Description |
|---|---|
| make start-services | Starts services (systemd, brew services..). |
| make git-repos | Clone Git repos. |
| make conf-sys | Configure system files. |
| make ssh-perms | Set SSH permissions. |
| make gnupg-perms | Set GnuPG permissions. |
| make pyenv | Install pyenv. |
| make osx-defaults | Configure defaults for OSX. |
| make ensure-deps | Install all dependencies. |
| make chezmoi-init | Initialize chezmoi. |
| make chezmoi-apply | Apply chezmoi files (runs all scripts). |
| make post-chezmoi | Run post chezmoi scripts. |
| make install-homebrew | Install Homebrew. |
| make install-chezmoi | Install chezmoi. |
| make install-aur | Install AUR packages . |
| make install-deps | Install system dependencies. |
| make ensure-dirs | Creates required directories. |
| make install-riscv | Install RISC-V toolchain and dependencies. |
| make install-rust | Install Rust. |
| make install-go-deps | Install go dependencies. |
| make install-osx-app | Install MacOS applications (requires mas). |
| make run | Ensure deps and apply chezmoi. |
| make all | Run all. |
Keybindings
OSX
fn + cmd - e- opens emacsfn + cmd - i- opens firefoxfn + cmd - f- opens finder in $HOMEcmd + return- opens alacritty
MPC
fn + cmd - f1- mpc playfn + cmd - f2- mpc pausefn + cmd - f3- mpc prevfn + cmd - f4- mpc nextfn + cmd - f5- mpc volume -10fn + cmd - f6- mpc volume +10
Troubleshooting
Chezmoi does not seem to reload the configuration
Run chezmoi init <dotfiles-path> again. This should reload the configuration
by copying chezmoi.yaml to $HOME/.config/chezmoi/chezmoi.yaml.
Sourcing env with i3
For some reason, i3 is sourcing .xprofile instead of xinitrc, so for
getting Github plugin for the i3status-rust you need to set up a variable in
your .xprofile
export I3RS_GITHUB_TOKEN="your-github-token"
Screenshots
OSX

Archlinux

Weechat IRC

Emacs

Contributing
- Ensure you have linted the commits before committing:
- Install pre-commit
- Install the hook:
pre-commit install --hook-type commit-msg
- Make the contribution and open a pull request