Dotfiles and repository-scoped machine bootstrap configuration for macOS, Windows, Ubuntu, and Fedora, managed with mise.
-
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 AutoHotkey v2, copies autohotkey/shortcuts.ahk into the current user's Windows Startup folder, downloads the pinned VirtualDesktopAccessor.dll release beside it, and starts the script. The DLL download is verified by SHA-256, and the shortcuts start automatically on subsequent sign-ins.
Super+1 through Super+9 switch directly to virtual desktops 1–9, and Super+0 switches to desktop 10. This requires Windows 11 24H2 build 26100.2605 or newer and the requested desktop must already exist.
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")"If the script was previously started directly from the WSL repository, exit that instance from its AutoHotkey tray menu before running the installer once. This prevents the repository and Startup copies from running at the same time.
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 status