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-linux |
| 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.toml applyHyprland 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 apply --profile hyprlandLaptop environment, inheriting the Hyprland 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 apply --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.toml applyPrepare 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
dot applySelect an Arch profile explicitly:
dot apply --profile hyprland
dot apply --profile laptopInspect the resolved plan without executing it:
dot dry-run --profile laptopCheck the selected providers without ensuring or installing them:
dot check providers --profile laptopProfiles are never inferred. Running dot apply without --profile applies
only the selected target root.
The Arch Linux configuration is intentionally structured as one inheritance path:
arch-linux
└── hyprland
└── laptop
arch-linuxcontains the shared command-line environment.hyprlandadds graphical workstation packages and Hyprland 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.