Skip to content

w0rxbend/system-bootstrap

Repository files navigation

System Bootstrap

A comprehensive, multi-distro dotfiles and system bootstrap configuration. Designed to set up a premium development environment on Fedora, Arch Linux, and OpenSUSE.

Fedora Wallpaper OpenSUSE Wallpaper

📋 Table of Contents

🚀 Features

  • Multi-Distro Support: Tailored scripts for Fedora, Arch, and OpenSUSE.
  • Dotfiles Management: Powered by Dotbot (installed via binary-dist.sh).
  • Dev Environment: Deploys a full stack: Zsh (Oh-My-Zsh), Neovim, Tmux (TPM), Go, Rust, Java (SDKMan).
  • Desktop Rice: Configuration for Hyprland, Gnome extensions, stunning wallpapers, and Alacritty/Kitty/WezTerm theming.

📂 Structure

.system-bootstrap/
├── .files/               # Dotfiles configuration (Zsh, Neovim, Tmux, etc.)
│   ├── arch+hypr/        # Arch-specific configs
│   ├── fedora/           # Fedora-specific configs
│   ├── opensuse/         # OpenSUSE-specific configs
│   └── install.conf.yaml # Main Dotbot configuration
├── scripts/              # Installation & setup scripts
│   ├── arch/             # Arch installation steps (00-03)
│   ├── fedora/           # Fedora installation steps (00-02)
│   ├── opensuse/         # OpenSUSE installation steps (00-02)
│   ├── binary-dist.sh    # Installs binaries (Dotbot, Yazi, Neovim, etc.)
│   ├── cli-tools.sh      # Installs CLI tools (Rust, Python, Node, etc.)
│   └── ...               # Common setup scripts
├── assets/               # Wallpapers and resources
├── Justfile              # Command runner for orchestration
└── README.md             # This file

🛠 Prerequisites

  • Git: To clone the repo.
  • Just: Recommended runner (optional, can run scripts manually).
    • Fedora: sudo dnf install just
    • Arch: sudo pacman -S just
    • Suse: sudo zypper install just

📦 Installation

Clone the repository:

git clone --recursive https://github.com/limpid-kzonix/system-bootstrap.git ~/.system-bootstrap
cd ~/.system-bootstrap

Using Just (Recommended)

View all available commands:

just

Typical Workflow:

  1. System Setup:

    just configure-system   # Setup git, docker, time
  2. Distro Packages (Choose your fighter):

    just fedora-step-0      # Update & install core repo
    just fedora-step-1      # Install core packages
    # ...

    Or for Arch:

    just arch-install
  3. Cross-Platform Tools:

    just install-cli-tools        # Zsh, fzf, etc.
    just install-binaries         # Dotbot, Yazi, Neovim, LazyGit, Zellij, etc.
    just install-zsh-plugins      # Syntax highlighting, autosuggestions
    just install-gnome-extensions # If using Gnome
    just install-fonts            # Nerd Fonts
    just install-flatpaks         # Desktop apps
    just install-dev-tools        # Go, Rust, Java (SDKMan)
  4. Link Dotfiles:

    just apply-dotfiles

Manual Execution

If you prefer to run scripts one-by-one (e.g., to handle reboots), navigate to scripts/ and execute them.

Fedora Example:

./scripts/fedora/00-system-update.sh
# Reboot if kernel updated
./scripts/fedora/01-packages.sh
./scripts/configurations.sh
./scripts/cli-tools.sh
./scripts/binary-dist.sh

🔧 Configuration Details

  • Zsh: Custom detailed configuration with Oh-My-Zsh and plugins.
  • Neovim: Lua-based configuration in .files/nvim.
  • Terminal: Unified themes for Alacritty, Kitty, and WezTerm.
  • Hyprland: (Arch only) Tiling window manager setup in .files/arch+hypr.

⚠️ Notes

  • Docker: The configure-system script adds your user to the docker group. You must log out and log back in for this to take effect.
  • Reboots: Some package installation scripts (kernel updates, drivers) may require a reboot.

📄 License

MIT

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 80