Architecture
Cross-Platform Interoperability
How dotfiles commands and shims map across macOS, Linux, and WSL2.
Command Mapping
| Alias / Command | macOS | Linux (Debian/Arch) | WSL2 (Windows Host) |
|---|---|---|---|
cb (Clipboard) | pbcopy / pbpaste | xclip / wl-copy | clip.exe / powershell.exe |
open | open | xdg-open | wslview / explorer.exe |
notify | osascript (AppleScript) | notify-send / gum log | powershell.exe (Toast) / gum |
win (Paths) | N/A | N/A | wslpath |
browser | open | xdg-open | powershell.exe Start-Process |
Infrastructure Parity
| Feature | macOS | Linux | WSL2 |
|---|---|---|---|
| Package Manager | Homebrew (brew) | apt / pacman / nix | apt + Windows binaries |
| Shell Startup | Async lazy-hydration | Async lazy-hydration | Async (optimized for IO) |
| Environment | native plist / launchctl | systemd / dbus | systemd (if enabled) / init |
| Hardware | Secure Enclave | TPM 2.0 / LUKS | Windows Hello bridge |
Troubleshooting
WSL2 IO Latency
Keep projects in the Linux filesystem (~/...), not under /mnt/c/.
WSL2 Windows Binary Path
If you've disabled WSL path sharing, make sure Windows-side binaries like clip.exe and explorer.exe are still reachable in $PATH.
macOS Permissions
Grant your terminal "Full Disk Access" in System Settings so dotfiles can manage all configurations.
Linux GUI Fallbacks
In headless environments, GUI commands like cb and open fall back to gum log or terminal bell instead of hanging.