_____ _ _____ _ _ _ _ _____
| ___|__ _ _ _ __| |_ _ |_ _| | | |_ __ ___ ___| || ||___ /
| |_ / _ \| | | | '__| __| | | || | | |_| | '__/ _ \/ _ \ || |_ |_ \
| _| (_) | |_| | | | |_| |_| || | | _ | | | __/ __/__ _|__) |
|_| \___/ \__,_|_| \__|\__, ||_| |_| |_|_| \___|\___| |_||____/
|___/
_ _ _ _____
/ |_ _| || ||___ /
| \ \/ / || |_ |_ \
| |> <|__ _|__) |
|_/_/\_\ |_||____/
One repository to rule all your dotfiles β Windows, Linux, and macOS.
Fully automated, Rustβpowered, and ready to restore your entire environment in under 10 minutes.
dotfiles/
βββ .gitignore
βββ LICENSE
βββ README.md # You are here
β
βββ shared/ # Crossβplatform configs (symlinked everywhere)
β βββ starship.toml # Prompt theme (zsh, bash, pwsh)
β βββ .gitconfig # Global Git config with aliases & delta
β
βββ windows/ # Windowsβspecific configs & scripts
β βββ Backup-DevEnv.ps1 # Incremental backup script (uses rsync)
β βββ Restore-DevEnv.ps1 # Oneβclick restore script
β βββ Microsoft.PowerShell_profile.ps1
β βββ .poshthemes/ # Your PowerShell themes (if any)
β βββ windows-terminal-settings.json
β βββ scoopfile.json # Baseline package manifest
β βββ scoop-buckets.txt # Required Scoop buckets
β
βββ linux/ # Linux / macOS configs
β βββ setup.sh # Symlink script (bash/zsh)
β βββ .bashrc # Bash config
β βββ .zshrc # Zsh config
β βββ .vimrc # Vim config
β βββ nvim/ # Neovim config (init.lua / init.vim)
β βββ scripts/ # All your utility scripts
β βββ GitScript.sh
β βββ TaskInit.sh
β βββ TaskInit_2.0.sh
β βββ run_rsync.sh
β βββ run_pycodestyle.sh
β βββ run_pycodestyle_all.sh
β βββ emoticon.sh
β βββ seeyouspacecowboy.sh
β βββ add_text_to_files.pl
β βββ pychk-1.pl
β βββ errors_tst.py
β
βββ docs/ # Documentation (optional)
βββ header.md
-
Clone this repository into your home directory:
git clone https://github.com/FourtyThree43/dotfiles.git ~/dotfiles
-
Run the Windows restore script as Administrator:
cd ~/dotfiles .\windows\Restore-DevEnv.ps1
-
Wait for Scoop to install all packages and copy your configs.
When it finishes, restart Windows Terminal. -
Verify everything works:
lsβ colourful file listings with icons.g stβ Git status withdeltadiffβhighlighting.yβ Yazi file manager (quit withqtocdinto the chosen folder).- Your prompt β sleek green
βwith Git branch, Python/Node/Rust versions (when relevant).
Whenever you tweak your prompt, aliases, or install new packages:
cd ~/dotfiles
.\windows\Backup-DevEnv.ps1This uses rsync to copy files incrementally (lightningβfast).
Then commit and push:
git add .
git commit -m "Updated Windows / shared configs"
git push-
Clone this repository:
git clone https://github.com/FourtyThree43/dotfiles.git ~/dotfiles cd ~/dotfiles/linux
-
Run the setup script:
chmod +x setup.sh ./setup.sh
-
Reload your shell:
source ~/.bashrc # or source ~/.zshrc
-
Verify:
lsβ (iflsdis installed) colourful output.g stβ Git status.- Your prompt β Starship should show the same elegant theme as on Windows.
On Linux, simply commit your changes to the repo:
cd ~/dotfiles
git add .
git commit -m "Updated Linux configs"
git push(The linux/setup.sh script always symlinks the latest files from the repo, so thereβs no separate backup script needed β just keep the repo up to date.)
- One repo, multiple OSes β keep Windows and Linux configs separate but versionβcontrolled together.
- Shared where it makes sense β Git config, Starship prompt, and editorβconfigs live in
shared/and are symlinked/copied everywhere. - Incremental backups β
rsyncmakes Windows backups fast and efficient. - Reproducible β the exact same environment on any machine, every time.
- Modular β easily add/remove tools without breaking the whole system.
starship.tomlβ Clean, minimal prompt with Nerd Font icons. Shows Git branch, Python/Node/Rust versions, and time..gitconfigβ Global Git settings withdeltafor beautiful diffs and aliases likest,co,br,ci,lg,amend,unstage,last,ps,pl,d,ds.
Restore-DevEnv.ps1β Installs Scoop, adds buckets, imports packages, and copies all configs.Backup-DevEnv.ps1β Usesrsyncto back up your live configs into the repo.Microsoft.PowerShell_profile.ps1β Full PS profile with PSReadLine enhancements, transient prompt, Zoxide, Starship init, Rust aliases, Git shortcuts, Yazi function, and environment variables.windows-terminal-settings.jsonβ Dracula theme, Cascadia Code NF font, 8px padding, and key bindings.scoopfile.jsonβ Baseline manifest with all core tools (Rust CLI, editors, languages).scoop-buckets.txtβ List of required Scoop buckets.
setup.shβ Creates symlinks from the repo to$HOMEfor all dotfiles..bashrc/.zshrcβ Shell configs that source shared aliases and Starship..vimrcβ Your Vim configuration.nvim/β Your Neovim configuration (will be symlinked to~/.config/nvim).scripts/β All your Perl, Python, and Bash utility scripts, symlinked to~/binand made executable.
Edit windows/Microsoft.PowerShell_profile.ps1 and add:
Set-Alias -Name myalias -Value mycommandEdit ~/.zshrc or ~/.bashrc (the files in linux/) and add:
alias myalias='mycommand'Edit shared/starship.toml β changes will be reflected on both Windows and Linux after the next backup/restore or symlink refresh.
scoop install some-package
cd ~/dotfiles
.\windows\Backup-DevEnv.ps1 # Updates scoop-export.json
git add .
git commit -m "Added some-package"
git pushThis is a personal dotfiles repo, but if you spot something clever you'd like to use or improve, feel free to open an issue or PR.
MIT β see LICENSE for details.
All the incredible openβsource tools that make this possible:
Scoop, Rust, Starship, Yazi, Zed, Fresh, rsync, Windows Terminal, and the countless CLI authors (lsd, bat, fd, ripgrep, ugrep, duf, dust, bottom, sd, delta, zoxide).
Happy coding! π