dotfiles configurations for a portable computing environment based on POSIX and PowerShell by Dustin Venegas.
Targets Linux, macOS, and Windows with native bootstrap scripts. Environments are configured through the magic of symlinks.
Bootstrap scripts are located under ./scripts/
. Using native POSIX/PowerShell scripts avoids taking bootstrapping dependencies.
Run a bootstrap script in 'whatif' mode:
- POSIX-Based OS:
./script/bootstrap.sh --whatif --verbose
- Windows OS:
./script/bootstrap.ps1 -verbose -whatif
Perform a basic environment health check with ./script/check-dotfles-health.sh
.
Because piping objects with properties and functions is fun and useful. PowerShell is just a cross-platform shell. POSIX is for glue code and PWSH is for exploration.
Get-ChildItem $HOME -Force | # items in $HOME
Select-Object Name, @{
Name="FirstLine";
Expression={Get-Content $_ -ReadCount 1 -ErrorAction Ignore}
} | # object with Name and FirstLine.
Tee-Object -Variable files | # save pipeline to a variable
Format-Table # output as a table
./Packages
contains bundles of packages for package managers like Chocolatey, Homebrew, and apt.
# Chocolatey
choco install ./Packages/chocolatey-desktop.config
# Homebrew
brew bundle install --file=./Packages/Brewfile
# apt
sed 's/#.*//' ubuntu-installs.txt | xargs sudo apt-get install`
Notable components included in this dotfiles repository.
- bash shell. Local Configuration:
$HOME/.bashrc.local
docs - Markdownlint is a CLI tool used to lint Markdown files. docs
- Kitty is a terminal emulator for Unix-like platforms. Configuration at
$HOME/.config/kitty/
. docs - ripGrep searches files like grep and also respects your .gitignore. Configuration must be set with envvar
RIPGREP_CONFIG_PATH
. docs - git SCM. Local Configuration:
$HOME/.gitconfig_local
. OS Configuration:$HOME/.gitconfig_os
. docs - neovim is a modal editor and successor to vim that works cross platform on Linux, macOS, Windows, and others. docs
- PowerShell Core cross-platform object-oriented shell. docs
- Windows PowerShell is a Windows-only object-oriented shell.
- zsh shell. docs
- oh-my-posh is a custom prompt that works across many platforms. docs
- rclone provides programs to manage cloud storage, including mounting, syncing, cp/mv/ls/etc. docs
- Windows Terminal is a terminal emulator and multiplexer for Microsoft Windows that supports unicode fonts. docs
- wsl Windows Subsystem for Linux. docs
- vim the OG modal editor. docs
- dotfiles, your unofficial guide to dotfiles on GitHub.
- smkent/dotfiles, dotfiles repository of Stephen Kent.