A unified, modular, cross-distribution dotfiles and bootstrap system. Designed to deliver an identical, high-performance developer workflow across Fedora, Arch Linux, Ubuntu, macOS, and OmArchy without configuration fragmentation.
The repository separates universal developer tooling from desktop environments, distro-specific package installers, and troubleshooting runbooks:
graph TD
Sync["🚀 sync.sh (Auto-Detector & Linker)"]
Core["🌐 core/<br/>(Universal Shell, Neovim, Ghostty, Herdr, Starship, Yazi)"]
Desktop["🖥️ desktop/<br/>(GNOME, KDE Plasma, Hyprland Lua/Classic)"]
Distros["📦 distros/<br/>(Fedora, Arch, Ubuntu, macOS, OmArchy)"]
Troubleshoot["🩺 troubleshoot/<br/>(GRUB, Dual-Boot, Toolchain fixes)"]
Sync --> Core
Sync --> Desktop
Sync --> Distros
Sync --> Troubleshoot
| Layer | Directory | Purpose |
|---|---|---|
| Core Configs | core/config/ |
Universal application configurations (nvim, ghostty, herdr, leaf, starship.toml, yazi, fastfetch, fontconfig). |
| Core Home | core/home/ |
Universal shell & Git dotfiles (.bashrc, .bashrc.d/, .bash_profile, .profile, .zshrc, .inputrc, .vimrc, .gitconfig). |
| Core Scripts & Setup | core/scripts/ |
Universal cross-platform setup (core/setup.sh), developer tooling (setup_git.sh for Git/SSH profiles, setup_shell_dependencies.sh for unattended curl installation of starship, leaf, zoxide, fzf, lazydocker, herdr, etc.). |
| Desktop Layer | desktop/ |
Modular DE configs: GNOME extensions/dconf, KDE Plasma shortcuts, and Hyprland (Lua & classic). |
| Distro Layer | distros/ |
Package installation scripts, systemd unit files, and hardware optimizations per distribution. |
| Troubleshooting | troubleshoot/ |
Centralized runbooks and scripts for bootloader recovery, GPU switching, and Git credential/SSH fixes. |
| AI Skills | .agents/skills/ |
Rules for AI agents (archconfig-guard) to guarantee zero cross-distro breakage and maintain docs. |
git clone --depth 1 https://github.com/Codesmith28/archConfig.git ~/archConfig
cd ~/archConfigTip
Using --depth 1 creates a shallow clone (~2 MB) for instant bootstrapping on fresh installs.
The root synchronizer automatically detects your operating system and desktop environment:
# Preview symlink actions (safe dry-run)
./sync.sh --dry-run
# Apply symlinks
./sync.shYou can explicitly override detection when setting up a specific environment:
# Fedora with GNOME
./sync.sh --distro fedora --de gnome
# Arch with Hyprland
./sync.sh --distro arch --de hyprland
# macOS Workstation
./sync.sh --distro mac --de noneNo more hardcoded compiler names or version mismatches between Homebrew and Linux package managers:
- Dynamically discovers the newest installed GCC/G++ by scanning candidate system directories without hardcoded version ranges.
- Automatically exports
$CC,$CXX, and provides modern C++ runner helper:run_cpp solution.cpp # Compiles with -std=c++26 -O2 -Wall using newest available g++ - Neovim's
clangdLSP andassistant.lua(competitive programming runner) dynamically detect compiler versions and system include paths across platforms.
- Base: Modern LazyVim distribution.
- Python: Integrated with
pyreflyfast type-checker and language server. - Java: Automatic
resolve_java_home()supporting macOS Homebrew, Fedora, Arch, and Ubuntu JDK installations. - C/C++: Clangd configured with universal query-driver for complete standard library intellisense.
- Competitive Programming: Integrated test-case assistant with hotkeys for fast problem verification.
Cross-distro vanilla Git configuration with automated SSH routing and profile isolation:
- Base Config: High-efficiency defaults (
pull.rebase = true,push.autoSetupRemote = true,diff.algorithm = histogram,rerere.enabled = true, intuitive aliases). - Push Interception: Automatically rewrites GitHub HTTPS pushes to SSH via
pushInsteadOfto prevent credential prompts. - Multi-Profile Isolation: Configure directory-scoped identities (e.g.
~/work,~/uni) with dedicated SSH keys stored directly in~/.ssh/(e.g.id_ed25519_work,id_ed25519_uni) and isolated viaincludeIfandsshCommand, while retaining the default key (id_ed25519/id_rsa) everywhere else. - Run Setup:
# Interactive setup: ./core/scripts/setup_git.sh # Create a directory-scoped profile: ./core/scripts/setup_git.sh --profile work --profile-name "Work Name" --profile-email "user@work.com"
Automated, unattended bootstrap for essential shell navigation and fuzzy-search tools (automatically executed during ./sync.sh across all Mac and Linux environments):
zoxide: Installs via the official script into~/.local/bin(already exported in~/.profile). Replaces standardcdwith smart scoring (z,zi).fzf: Clonesjunegunn/fzfinto~/.fzfand runs with--key-bindings --completion --no-update-rcto generate completion scripts without dirtying tracked dotfiles (.bashrc/.zshrc).- Run Setup Standalone:
# Standalone core setup: ./core/setup.sh # Force update: ./core/setup.sh --update
When setting up a fresh machine, run the setup scripts inside distros/:
cd distros/fedora
# Install core packages, RPM Fusion, and developer tools
bash setup.shcd distros/arch
# Install official repos, AUR packages, and hardware services
bash setup.shcd distros/ubuntu
# Install system packages and optimizations
bash setup.shcd distros/mac
# Install Homebrew formulas, casks, and tooling
bash setup.shCommon hardware and dual-boot solutions are documented in troubleshoot/:
- KDE Plasma Cross-Distro Setup Guide: Resolving active shortcut persistence (
kglobalshortcutsrc), Plasma 6 migration, VM/SSH session detection, default terminal routing, and window management across distros. - GNOME Cross-Distro Setup Guide: Resolving DBus session attachment, GSettings schema compilation, Ubuntu dock conflicts, and shortcut collision elimination across distros.
- Restoring GRUB Bootloader: Reinstalling EFI entries after Windows updates or BIOS resets; fixing missing Windows dual-boot entries with
os-prober. - Automated GRUB Repair Script: Single-command script to reinstall GRUB on UEFI systems.
- Fixing
<bits/stdc++.h>on macOS: Resolving missing C++ bits headers on Darwin systems.
This repository includes an Antigravity Agent Skill in .agents/skills/archconfig-guard. When using AI coding assistants in this repo:
- Never hardcode compiler versions or platform-exclusive commands in
core/. - Never break existing symlinks on live systems; use backward-compatible shims when refactoring paths.
- Always document new solutions in
troubleshoot/whenever resolving a platform-specific bug.
For detailed migration history and architectural rationale, consult MIGRATION.md.