Skip to content
zenobi-usPublic

About

my workstation setup for linux, windows and mac

Topics

Resources

Stars

68 stars

Watchers

1 watching

Forks

Repository files navigation

My Dotfiles

Cross-platform configuration for:

  • Zsh on Linux and macOS
  • PowerShell on Windows
  • Development tools managed by mise

Getting started

Setup has two steps:

  1. Install mise.
  2. Bootstrap this repository.

Install mise

Linux and macOS

Run:

curl https://mise.run | sh

Open a new shell, then verify the installation:

mise --version

Windows

Open PowerShell as an administrator. Enable the required Windows features:

Enable-WindowsOptionalFeature `
  -Online `
  -FeatureName Microsoft-Windows-Subsystem-Linux,VirtualMachinePlatform `
  -All `
  -NoRestart

Restart Windows. Then open PowerShell and install mise:

winget install --exact --id mise.run

Open a new PowerShell window, then verify the installation:

mise --version

Bootstrap the dotfiles

The first bootstrap clones this repository to a stable local path. It then applies the platform-specific packages, tools, and dotfiles.

Linux and macOS

Run:

mise bootstrap \
  --from https://github.com/zenobi-us/dotfiles.git \
  --from-dir "$HOME/.local/share/dotfiles" \
  --yes

Open a new Zsh process after bootstrap changes the shell files:

exec zsh

The managed .zshenv sets MISE_GLOBAL_CONFIG_ROOT to the repository root. Future bootstrap runs do not need --from or --from-dir:

mise bootstrap --yes

Windows

Run in PowerShell:

mise bootstrap `
  --from https://github.com/zenobi-us/dotfiles.git `
  --from-dir "$HOME/.local/share/dotfiles" `
  --yes

Set the repository as the persistent mise global config root:

[Environment]::SetEnvironmentVariable(
  "MISE_GLOBAL_CONFIG_ROOT",
  "$HOME/.local/share/dotfiles",
  "User"
)

Open a new PowerShell window. Future bootstrap runs do not need --from or --from-dir:

mise bootstrap --yes

Common commands

Apply the full machine setup:

mise bootstrap --yes

Apply selected bootstrap parts, or refresh only the OMP agent setup:

mise bootstrap --only dotfiles --yes
mise bootstrap --only tools --yes
mise bootstrap --only task --yes
mise run bootstrap-agent

Inspect state without changing the machine:

mise bootstrap status
mise bootstrap status --missing
mise bootstrap --dry-run
mise bootstrap plan

Debug bootstrap configuration

Show the mise version:

mise --version

Show the active config files:

mise config ls

Show the combined bootstrap plan:

mise bootstrap plan

The repository stores its modules directly under .mise/conf.d/. Each direct child is a real directory, not a symlink to a separate files/ tree. Module names use <category>-<module>, such as devtools-agent, shells-zsh, and assets-fonts; secrets keeps its existing name.

Each module contains its platform-specific mise.<env>.toml files and the files referenced by those configurations. Keep module-local source paths relative to the module, and refer to another module by its flattened directory name.

After updating a checkout from the old layout, refresh deployed symlinks without reinstalling tools:

mise bootstrap --only dotfiles --yes

OMP shared-context autocomplete

The mise bootstrap links .mise/conf.d/devtools-omp/extensions to ~/.omp/agent/extensions. In OMP, type # to find files from the shared context associated with the current repository. Select an item to insert it as an @ attachment. OMP keeps its built-in @ file autocomplete.

About

my workstation setup for linux, windows and mac

Topics

Resources

Stars

68 stars

Watchers

1 watching

Forks

Used by

Contributors

Languages