Dotfiles and repository-scoped machine bootstrap configuration for macOS, Windows, Ubuntu, and Fedora, managed with mise.
-
Install mise and add it to the current shell's
PATHcurl https://mise.run | sh export PATH="$HOME/.local/bin:$PATH"
-
Clone repo
git clone https://github.com/lcmen/dotfiles.git ~/.dotfiles cd ~/.dotfiles
-
Init submodules
git submodule update --init --recursive -
Trust and bootstrap the configuration
mise trust mise bootstrap
The Windows application installer requires PowerShell 7.4 or newer and uses winget. Install the latest PowerShell release with:
winget install --id Microsoft.PowerShell --source wingetTo allow the script only in the current PowerShell window, run, then install windows.ps1 script
Set-ExecutionPolicy -Scope Process Bypass
.\windows.ps1To launch the Windows installer directly from a WSL shell, run this from the repository root:
pwsh.exe -NoProfile -ExecutionPolicy Bypass -File "$(wslpath -w "$PWD/windows.ps1")"The Windows installer installs LeopardWM and AutoHotkey v2, configures LeopardWM, creates its AutoHotkey bindings, and enables both at startup. Application installation lives in windows/apps.ps1, while windows/tiling.ps1 owns the LeopardWM and AutoHotkey configuration.
Super+1 through Super+9 switch directly to LeopardWM workspaces 1–9. Use Super+Shift+1 through Super+Shift+9 to move the active window to a workspace.
After changing the script, rerun the Windows installer from the repository root in WSL to copy and reload it:
pwsh.exe -NoProfile -ExecutionPolicy Bypass -File "$(wslpath -w "$PWD/windows.ps1")"Running mise bootstrap will:
- Install native packages via Mise's Homebrew, apt, or dnf managers
- Symlink configuration directories into
~/.config/ - Symlink individual scripts into
~/.local/bin/ - Apply macOS preferences and keyboard shortcuts on macOS
Preview bootstrap changes or inspect current state:
mise bootstrap --dry-run
mise bootstrap statusRename photos from their EXIF timestamps, without changing anything first:
photon /path/to/photos --dry-runRemove --dry-run to apply names in the IMG_yyyyMMdd_HHmmss format. Duplicate timestamps receive a numeric suffix.