Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,10 @@ jobs:
persist-credentials: false
- name: Install dotfiles
run: sh -c "$(curl -fsLS chezmoi.io/get)" -- init --source-path . --apply
- name: Validate rendered mise config
run: |
test -f "$HOME/.config/mise/config.toml"
python3 -c "import tomllib; tomllib.load(open('$HOME/.config/mise/config.toml', 'rb'))"

gatekeeper:
name: Merge Gatekeeper
Expand Down
21 changes: 21 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,21 @@ This dotfiles repository is intended to be used for Debian or Ubuntu under WSL2.
- [mise](https://mise.jdx.dev)
- [Docker](https://www.docker.com)

## 📦 Package management policy

This repository uses two package managers with distinct roles:

- **[Homebrew](https://brew.sh)** ([`Brewfile`](Brewfile)): system-level tools,
build dependencies, and CLI tools that don't need per-project version
pinning (e.g. `gcc`, `cmake`, `sheldon`, `starship`, `zsh`).
- **[mise](https://mise.jdx.dev)**
([`dot_config/mise/config.toml.tmpl`](dot_config/mise/config.toml.tmpl)):
language runtimes and CLI tools that benefit from version management (e.g.
`node`, `rust`, `eza`, `ripgrep`, `fzf`).

When adding a new tool, prefer mise if it's a versioned runtime or a tool you
might want to pin per-project; use Homebrew otherwise.

## 🔰 How to use

1. Clone this repository
Expand All @@ -43,6 +58,12 @@ This dotfiles repository is intended to be used for Debian or Ubuntu under WSL2.
```

6. Reboot your distribution

mise-managed tools (see "Package management policy" above) become
available automatically once the install script finishes running
`mise install`; no manual `mise trust` step is needed since the config
lives in the global `~/.config/mise/config.toml`.

7. Make a GPG key for GitHub.

If you want to manipulate Git in the GUI within VS Code, do the following.
Expand Down
6 changes: 2 additions & 4 deletions dot_zshrc
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,10 @@ fi
## sheldon
eval "$(sheldon source)"

## eza
## Homebrew completions
if type brew &>/dev/null; then
export FPATH="/home/linuxbrew/.linuxbrew/bin/eza/completions/zsh:$FPATH"
FPATH="$(brew --prefix)/share/zsh/site-functions:${FPATH}"
autoload -Uz compinit
compinit
export FPATH
fi

## fzf
Expand Down
4 changes: 3 additions & 1 deletion install-packages.sh
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,6 @@ brew bundle --file ./Brewfile

## Install mise
/bin/bash -c "$(curl https://mise.run | sh)"
mise install

# Change the default shell to zsh
sudo sh -c "echo '/home/linuxbrew/.linuxbrew/bin/zsh' >> /etc/shells"
Expand All @@ -80,6 +79,9 @@ chsh -s /home/linuxbrew/.linuxbrew/bin/zsh
# Set up by Chezmoi
chezmoi init --source-path . --apply

# Install mise-managed tools (requires ~/.config/mise/config.toml rendered by chezmoi apply above)
mise install

# Create the flag file to indicate the script has been executed
touch "$FLAG_FILE"

Expand Down