Skip to content

Latest commit

Β 

History

35 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

  _____                _        _____ _   _               _  _  _____
 |  ___|__  _   _ _ __| |_ _   |_   _| | | |_ __ ___  ___| || ||___ /
 | |_ / _ \| | | | '__| __| | | || | | |_| | '__/ _ \/ _ \ || |_ |_ \
 |  _| (_) | |_| | |  | |_| |_| || | |  _  | | |  __/  __/__   _|__) |
 |_|  \___/ \__,_|_|   \__|\__, ||_| |_| |_|_|  \___|\___|  |_||____/
                           |___/
                           _      _  _  _____
                          / |_  _| || ||___ /
                          | \ \/ / || |_ |_ \
                          | |>  <|__   _|__) |
                          |_/_/\_\  |_||____/

πŸš€ Dotfiles – Cross‑Platform Developer Environment

Scoop Rust Starship License: MIT

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.


πŸ“‚ Repository Structure

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

πŸͺŸ Windows Setup

Quick Start (Restore on a new PC)

  1. Clone this repository into your home directory:

    git clone https://github.com/FourtyThree43/dotfiles.git ~/dotfiles
  2. Run the Windows restore script as Administrator:

    cd ~/dotfiles
    .\windows\Restore-DevEnv.ps1
  3. Wait for Scoop to install all packages and copy your configs.
    When it finishes, restart Windows Terminal.

  4. Verify everything works:

    • ls β†’ colourful file listings with icons.
    • g st β†’ Git status with delta diff‑highlighting.
    • y β†’ Yazi file manager (quit with q to cd into the chosen folder).
    • Your prompt β†’ sleek green ➜ with Git branch, Python/Node/Rust versions (when relevant).

Backup Your Windows Config

Whenever you tweak your prompt, aliases, or install new packages:

cd ~/dotfiles
.\windows\Backup-DevEnv.ps1

This uses rsync to copy files incrementally (lightning‑fast).
Then commit and push:

git add .
git commit -m "Updated Windows / shared configs"
git push

🐧 Linux / macOS Setup

Quick Start (Restore on a fresh Unix machine)

  1. Clone this repository:

    git clone https://github.com/FourtyThree43/dotfiles.git ~/dotfiles
    cd ~/dotfiles/linux
  2. Run the setup script:

    chmod +x setup.sh
    ./setup.sh
  3. Reload your shell:

    source ~/.bashrc   # or source ~/.zshrc
  4. Verify:

    • ls β†’ (if lsd is installed) colourful output.
    • g st β†’ Git status.
    • Your prompt β†’ Starship should show the same elegant theme as on Windows.

Backup Your Linux Config

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.)


🧠 Philosophy

  • 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 – rsync makes 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.

πŸ› οΈ What’s Inside Each Folder

shared/

  • starship.toml – Clean, minimal prompt with Nerd Font icons. Shows Git branch, Python/Node/Rust versions, and time.
  • .gitconfig – Global Git settings with delta for beautiful diffs and aliases like st, co, br, ci, lg, amend, unstage, last, ps, pl, d, ds.

windows/

  • Restore-DevEnv.ps1 – Installs Scoop, adds buckets, imports packages, and copies all configs.
  • Backup-DevEnv.ps1 – Uses rsync to 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.

linux/

  • setup.sh – Creates symlinks from the repo to $HOME for 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 ~/bin and made executable.

πŸ”§ Customisation Tips

Adding a new alias (Windows)

Edit windows/Microsoft.PowerShell_profile.ps1 and add:

Set-Alias -Name myalias -Value mycommand

Adding a new alias (Linux)

Edit ~/.zshrc or ~/.bashrc (the files in linux/) and add:

alias myalias='mycommand'

Updating Starship Prompt

Edit shared/starship.toml – changes will be reflected on both Windows and Linux after the next backup/restore or symlink refresh.

Adding a new Scoop package

scoop install some-package
cd ~/dotfiles
.\windows\Backup-DevEnv.ps1   # Updates scoop-export.json
git add .
git commit -m "Added some-package"
git push

🀝 Contributing

This 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.


πŸ“„ License

MIT – see LICENSE for details.


πŸ™ Credits

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! πŸš€

Releases

Packages

Contributors

Languages