- Shell 93.6%
- AppleScript 6.4%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .bin | ||
| .config | ||
| .forgejo/workflows | ||
| .gitignore | ||
| LICENSE | ||
| macos | ||
| PLAN.md | ||
| README.md | ||
| voyager-config.bin | ||
dotfiles
My dotfiles for my macOS setup.
What I use
- Shell:
fish - Terminal: Ghostty
- Editors: Helix
- Window manager: AeroSpace
- Browser: Zen Browser
- Package manager + dotfiles manager: mise
Fresh machine setup
-
Install mise:
curl https://mise.run | sh -
Bootstrap everything — mise clones this repo, pours Homebrew packages (formulae, casks, mas apps) into
/opt/homebrewwithout the brew CLI, links dotfiles, sets macOS defaults, sets fish as the login shell, and installs all tools:~/.local/bin/mise bootstrap --from git@src.timharek.no:tim/dotfiles.git --from-dir ~/dotfiles --update --yes(
--from-dir ~/dotfilesputs the repo clone at~/dotfilesinstead of mise's data dir;--updatefast-forwards an existing clone first — without it, mise reuses the existing checkout as-is.)The final
bootstraptask (./macos) applies the sudo-only settings — it will ask for your password. New shells (fish) activate mise automatically via the linkedconfig.fish.
Day-to-day
All package and tool declarations live in .config/mise/config.toml
([bootstrap.packages] + [tools]). Installing = updating that file + git
commit. mise use -g ... does both halves of the install for you; plain
brew install does not touch the config.
CLI tools (go/npm/cargo/ubi)
mise use -g go:github.com/some/tool/cmd/tool # installs + adds to [tools]
mise use -g --remove go:github.com/some/tool/cmd/tool # remove from config
mise uninstall go:github.com/some/tool/cmd/tool # delete the binary (config untouched)
-g matters: without it, mise writes a local mise.toml in the current
directory instead of the global config.
Homebrew formulae & casks
mise bootstrap packages use -g brew:jqp # formula
mise bootstrap packages use -g brew-cask:raycast # cask
If you installed with plain brew install instead, sync afterwards with
mise bootstrap packages import -g (formulae only; casks must be added to
the config by hand).
Mac App Store
mas has no sync — add "mas:<ADAM-ID>" = "latest" under
[bootstrap.packages] by hand, or install via
mise bootstrap packages use -g mas:<id> directly.
Removing packages
- Remove the entry:
mise use -g --remove <tool>/ delete the[bootstrap.packages]line. mise bootstrap packages prune— uninstalls brew packages no longer declared in the config (--dry-runto preview).
Upgrading
- Upgrade everything:
bu(=mise bootstrap packages upgrade, plusbrew cleanupwhen the brew CLI is present) - Check for drift:
mise bootstrap status --missing