▄██████▄ ▄▄▄▄███▄▄▄▄ ▄████████ ▄████████ ▄██████▄ ▄████████ ▄██████▄ ▄████████
███ ███ ▄██▀▀▀███▀▀▀██▄ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███
███ ███ ███ ███ ███ ███ ███ ███ █▀ ███ ███ ███ ███ ███ █▀ ███ █▀
███ ███ ███ ███ ███ ███ ███ ▄███▄▄▄ ███ ███ ▄███▄▄▄▄██▀ ▄███ ▄███▄▄▄
███ ███ ███ ███ ███ ▀███████████ ▀▀███▀▀▀ ███ ███ ▀▀███▀▀▀▀▀ ▀▀███ ████▄ ▀▀███▀▀▀
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ▀███████████ ███ ███ ███ █▄
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███
▀██████▀ ▀█ ███ █▀ ███ █▀ ███ ▀██████▀ ███ ███ ████████▀ ██████████
███ ███
Automated system setup for Fedora Linux and macOS.
eval "$(curl -fsSL https://raw.githubusercontent.com/pixincreate/omaforge/main/unix/setup)"The installer automatically:
- Detect your platform (Fedora or macOS)
- Clone the dotfiles repository to
~/dev/.dotfiles - Clone this repository to
~/dev/.omaforge - Prompt you for Git name/email, NextDNS config, etc.
- Run the complete setup
Settings are read from config.json first. Edit before running:
vim unix/fedora/config.json # or unix/macos/config.json{
"git": {
"user_name": "Your Name",
"user_email": "your@email.com"
},
"secureboot": true
}Optional: Override via environment variables:
export OMAFORGE_GIT_NAME='Your Name'
export OMAFORGE_GIT_EMAIL='your@email.com'
export OMAFORGE_NEXTDNS_ID='abc123'
export OMAFORGE_SECUREBOOT='true' # Fedora only
eval "$(curl -fsSL https://raw.githubusercontent.com/pixincreate/omaforge/main/unix/setup)"# macOS
git clone https://github.com/pixincreate/dotfiles.git ~/.dotfiles
git clone https://github.com/pixincreate/omaforge.git ~/.omaforge
cd ~/.omaforge/unix/macos
./macos-setup
# Fedora
git clone https://github.com/pixincreate/dotfiles.git ~/.dotfiles
git clone https://github.com/pixincreate/omaforge.git ~/.omaforge
cd ~/.omaforge/unix/fedora
./fedora-setupBoth macOS and Fedora support running specific modules:
./macos-setup --only <module-path> # macOS
./fedora-setup --only <module-path> # Fedora./macos-setup --only dotfiles/stow # Stow all packages
./macos-setup --only dotfiles/zsh # Configure ZSH
./macos-setup --only dotfiles/fonts # Install fonts
./macos-setup --only packaging/homebrew # Install Homebrew
./macos-setup --only packaging/brew # Install brew packages
./macos-setup --only packaging/cask # Install cask apps
./macos-setup --only config/git # Git & SSH
./macos-setup --only config/nextdns # NextDNS./fedora-setup --only dotfiles/stow
./fedora-setup --only dotfiles/zsh
./fedora-setup --only packaging/base # Base packages
./fedora-setup --only packaging/flatpak # Flatpak apps
./fedora-setup --only packaging/rust # Rust tools
./fedora-setup --only config/git
./fedora-setup --only config/kde # KDE Plasma defaults
./fedora-setup --only config/services # Enable services
./fedora-setup --only config/performance # Performance tuning (zram, shutdown timeout)
./fedora-setup --only config/secureboot # Secure Boot setup
./fedora-setup --only config/hardware/asus # ASUS laptop (sleep hooks, GPU power)
./fedora-setup --only config/hardware/nvidia # NVIDIA drivers
./fedora-setup --only external/skillset # External repo (skillset)# Stow all packages
omaforge-stow --all
# Stow specific packages
omaforge-stow config zsh # Only config and zsh
# Restow (useful after updates)
omaforge-stow -R config # Restow config
omaforge-stow -R --all # Restow allcd ~/.dotfiles
stow --no-folding --restow --target=$HOME home/config
stow --no-folding --restow --target=$HOME home/zsh# macOS
./bin/omaforge-add brew neovim # Add CLI tool
./bin/omaforge-add cask firefox # Add GUI app
./macos-setup --only packaging/brew # Install new packages
# Fedora
./bin/omaforge-add base neovim # Add to base packages
./bin/omaforge-add flatpak com.spotify.Client # Add Flatpak
./fedora-setup --only packaging/base # Install new packages./bin/omaforge-pkg-manage./bin/omaforge-resetInteractive menu to reset specific components.
# Install
./bin/omaforge-webapp-install "App Name" "https://example.com" "icon.png"
# Remove
./bin/omaforge-webapp-remove ChatGPT # Specific app.
├── unix/
│ ├── setup # Common entry point (OS detection)
│ ├── common/ # Cross-platform scripts
│ │ ├── helpers/ # Logging, common functions
│ │ ├── dotfiles/ # Stow, fonts, zsh
│ │ ├── config/ # Git, NextDNS, Rust
│ │ └── external/ # External git repos (skillset)
│ ├── fedora/ # Fedora-specific setup
│ │ ├── install/
│ │ │ ├── config/ # System config (KDE, hardware, performance)
│ │ │ ├── dotfiles/ # Dotfiles management
│ │ │ └── external/ # External repos
│ │ └── packages/ # Package lists
│ └── macos/ # macOS-specific setup
├── windows/ # Windows configuration (see windows/README.md)
├── default/ # Default configs (skills, wallpapers)
└── docs/ # Documentation
- Git & SSH: ed25519 keys with automatic configuration
- Shell: ZSH with zgenom plugin manager
- Dotfiles: GNU Stow for symlink management
- Fonts: Iosevka, CaskaydiaCove Nerd Font, Meslo Nerd Font, JetBrains Mono, Inter, Geist
- Rust: Rustup with configurable cargo tools
- NextDNS: Automated DNS configuration
- KDE Plasma: Keybindings, Krohnkite tiling, theme defaults
- Package Management: DNF optimization, Flatpak, Rust tools
- Repositories: RPM Fusion, COPR, Terra
- Web Applications: Twitter, ChatGPT (incognito), Grok (incognito)
- Hardware Support: ASUS laptops, NVIDIA drivers
- Performance: zram, fstrim, systemd-oomd
- Services: PostgreSQL, Redis, Docker
- Security: Firmware updates, Secure Boot
- Package Management: Homebrew, Cask, Rust tools
- Applications: CLI tools and GUI applications
- System: Hostname and system preferences
Each platform has a config.json for declarative configuration:
unix/macos/config.json- macOS configurationunix/fedora/config.json- Fedora configuration
Setup logs are stored at ~/.local/state/omaforge/install.log.
Check logs if something fails:
tail -50 ~/.local/state/omaforge/install.log- Fedora Setup Guide - Fedora-specific documentation
- macOS Setup Guide - macOS-specific documentation
CC0 1.0 Universal