My cross-platform development environment, declared in dot.toml
and applied by dot.
This repository is primarily my personal environment configuration. It is also
a concrete example of using dot with explicit platform targets, a small
profile inheritance tree, external package providers, actions, and native
configuration links.
| Environment | Binary architecture | Manifest selection |
|---|---|---|
| Arch Linux | x86-64 | arch-personal |
| macOS | Apple Silicon | macos |
| Windows | x86-64 | windows |
These commands intentionally target a new environment. They install the latest
dot binary into the user executable directory, clone this repository to
~/.dotfiles, and immediately apply its manifest.
Minimum requirements:
curlfor downloadingdot;gitfor cloning this repository;pacmanandsudofor the declared providers.
Base command-line environment:
mkdir -p ~/.local/bin && curl -fL https://github.com/yslib/dot/releases/latest/download/dot-linux-x86_64 -o ~/.local/bin/dot && chmod +x ~/.local/bin/dot && git clone https://github.com/yslib/dotfiles.git ~/.dotfiles && ~/.local/bin/dot --config ~/.dotfiles/dot.tomlDesktop environment:
mkdir -p ~/.local/bin && curl -fL https://github.com/yslib/dot/releases/latest/download/dot-linux-x86_64 -o ~/.local/bin/dot && chmod +x ~/.local/bin/dot && git clone https://github.com/yslib/dotfiles.git ~/.dotfiles && ~/.local/bin/dot --config ~/.dotfiles/dot.toml --profile desktopLaptop environment, inheriting the desktop profile:
mkdir -p ~/.local/bin && curl -fL https://github.com/yslib/dot/releases/latest/download/dot-linux-x86_64 -o ~/.local/bin/dot && chmod +x ~/.local/bin/dot && git clone https://github.com/yslib/dotfiles.git ~/.dotfiles && ~/.local/bin/dot --config ~/.dotfiles/dot.toml --profile laptopMinimum requirements:
curlfor downloadingdot;git, normally provided by the Xcode Command Line Tools, for cloning this repository.
mkdir -p ~/.local/bin && curl -fL https://github.com/yslib/dot/releases/latest/download/dot-macos-aarch64 -o ~/.local/bin/dot && chmod +x ~/.local/bin/dot && git clone https://github.com/yslib/dotfiles.git ~/.dotfiles && ~/.local/bin/dot --config ~/.dotfiles/dot.tomlPrepare the platform prerequisites before running dot. Scoop's
official installer
supports Windows PowerShell 5.1 and PowerShell 7 and should normally be run from
a non-admin PowerShell.
First, allow locally installed PowerShell scripts and install Scoop:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-ExpressionInstall Git from Scoop's default main bucket:
scoop install gitWindows Developer Mode or an elevated shell is also required when dot creates
symbolic links.
With Scoop and Git ready, run the Windows bootstrap:
irm https://raw.githubusercontent.com/yslib/dotfiles/master/bootstrap.ps1 | iexThe script downloads dot.exe to $HOME\.local\bin, adds that directory to
the user PATH, clones this repository to $HOME\.dotfiles, and applies
dot.toml. On the first apply, the Scoop provider's ensure action adds the
extras and nerd-fonts buckets before the declared packages are installed.
Once the repository has been cloned, run dot from its root so it finds
./dot.toml automatically:
cd ~/.dotfiles
dotSelect an Arch profile explicitly:
dot --profile desktop
dot --profile laptopInspect the resolved plan without executing it:
dot --profile laptop --dry-runCheck the selected providers without ensuring or installing them:
dot --profile laptop check providersProfiles are never inferred. Running dot without --profile applies only the
selected target root.
The Arch Linux configuration is intentionally structured as one inheritance path:
arch-personal
└── desktop
└── laptop
arch-personalcontains the shared command-line environment.desktopadds graphical workstation packages and desktop configuration.laptopinherits both levels and adds laptop power-management packages.
The macOS and Windows targets are complete declarations without profiles. All
package providers, external actions, and native configuration links are defined
in dot.toml.