A comprehensive dotfiles and system setup repository for multi-platform development environments. This repository contains configuration files, setup scripts, and automation tools to quickly bootstrap a development environment on any supported platform.
One-liner setup (Unix/Linux/macOS/Android):
curl -fsSL https://raw.githubusercontent.com/pixincreate/configs/main/unix/setup.sh | bash -s -- --full-setup
Note
This script automatically:
- Detects your platform (macOS, Fedora, Debian, Android)
- Installs essential dependencies (Python, Git, etc.)
- Clones the repository with submodules
- Runs the complete setup process
No manual installation required!
- macOS - Complete setup with Homebrew and Cask applications
- Fedora Linux - System configuration with DNF and Flatpak packages
- Debian/Ubuntu - APT packages with optional Homebrew tools
- Android (Termux) - Termux-specific package and tool setup
- Windows - PowerShell scripts and registry configurations
- Python 3.6+ (usually pre-installed)
- Git (for cloning repository)
- Internet connection (for downloading packages)
The setup script automatically installs required Python dependencies (toml
, rich
) if not present.
To install the prerequisites, run:
# On Debian/Ubuntu
sudo apt-get update && sudo apt-get install -y python3 git zsh curl wget
# On Fedora
sudo dnf update && sudo dnf install -y python3 git zsh curl wget
# On macOS (Homebrew required)
brew install python git zsh curl wget
# On Android (Termux)
pkg install python git zsh curl wget
A modern Python-based setup script that replaces traditional shell scripts with:
- π¨ Beautiful Interface - Rich terminal output with colors, progress bars, and emoji
- π Dry Run Mode - Preview changes before applying them
- π― Platform Detection - Automatically detects and configures for your OS
- π¦ Multi Package Manager - Supports brew, dnf, apt, flatpak, pkg (Termux)
- π§ Modular Design - Run full setup or individual components
- βοΈ Conflict Resolution - Interactive handling of file conflicts
Full environment setup:
unix/setup.py --full-setup
Preview what will be installed:
unix/setup.py --dry-run --full-setup
unix/setup.py --dry-run install --category terminal
Install specific package categories:
unix/setup.py install --category terminal # Terminal tools only
unix/setup.py install --category gui # GUI applications only
unix/setup.py install # All packages
Individual setup components:
unix/setup.py git-config # Git identity & SSH keys
unix/setup.py fonts # Install fonts
unix/setup.py zsh # ZSH configuration
unix/setup.py stow # Link all dotfiles
unix/setup.py stow --package zsh # Link specific dotfiles
unix/setup.py services # System services (Fedora only)
Advanced options:
unix/setup.py --verbose install # Detailed output
unix/setup.py --help # Show all options
- Repository Management - Clones repo with submodules if not present
- Platform Detection - Identifies macOS, Fedora, Debian, or Android
- Package Installation - Installs development tools and applications
- Git Configuration - Sets up Git identity and SSH keys with GitHub integration
- Font Installation - Copies fonts to system font directory
- Shell Setup - Configures ZSH with platform-specific settings
- Dotfiles Management - Uses GNU Stow to symlink configuration files
- Service Configuration - Enables system services (PostgreSQL, Redis, Docker)
The script installs packages based on your platform from unix/packages.toml
:
Terminal Tools:
- Development:
git
,neovim
,tmux
,zsh
- File Management:
bat
,eza
,fzf
,tree
,zoxide
- System:
htop
,fastfetch
,croc
,stow
- Languages:
python
,node
,rustup
,gcc
GUI Applications:
- macOS: VS Code, Brave Browser, Zen Browser, Obsidian, Rectangle
- Fedora: Flatpak apps from Flathub (Brave, Zed, Signal, OBS Studio)
- Homebrew installation and management
- Cask applications for GUI software
- GNU tools to replace BSD versions
- Development environment optimization
- System repositories (COPR, RPM Fusion, external repos)
- Hardware drivers (NVIDIA, ASUS utilities)
- Multimedia support (ffmpeg, codecs)
- Flatpak applications from Flathub
- System services (PostgreSQL, Redis, Docker)
- APT packages for system tools
- Homebrew for additional development tools
- WSL integration (Windows Subsystem for Linux)
- Termux packages via pkg manager
- Development tools adapted for mobile
- Backup/restore aliases for Termux data
Located in windows/powershell/
- Collection of PowerShell scripts for Windows environment setup.
Located in windows/registry_edits/
- Registry files for system customization and optimization.
Located in windows/theme/
- Windows theming and appearance customization files.
Located in windows/tools/
- Portable tools and utilities for Windows development.
Dotfiles are organized in home/
directory and managed using GNU Stow:
home/
βββ config/ # Application configs (~/.config/)
βββ git/ # Git configuration (~/.gitconfig)
βββ ssh/ # SSH configuration (~/.ssh/)
βββ vscode/ # VS Code settings
βββ zsh/ # ZSH shell configuration (~/.zsh/)
βββ wallpaper/ # Desktop wallpapers
Manual stow management:
# From repository root
cd home
stow config # Link ~/.config/ files
stow zsh # Link ZSH configuration
stow --delete zsh # Remove ZSH links
All package lists are centralized in unix/packages.toml
using TOML format for easy maintenance:
[platforms.macos.terminal_tools]
common = ["git", "zsh", "neovim", "fzf"]
specific = ["gnu-sed", "openjdk"]
[platforms.fedora.gui_apps]
flatpak = ["com.brave.Browser", "dev.zed.Zed"]
The setup script configures Git with:
- User identity (name and email)
- SSH key generation (ed25519)
- GitHub integration (optional key upload via API)
- Repository URL conversion (HTTPS β SSH)
Edit unix/packages.toml
to add packages for your platform:
[platforms.your_platform.terminal_tools]
your_package_manager = ["new-package-name"]
The setup script creates ~/.zsh/.additionals.zsh
with platform-specific configurations:
- macOS: Homebrew paths, development tools
- Fedora: System aliases, health check tools
- Debian: WSL integration, build tools
- Android: Termux-specific aliases and paths
Add your personal settings to dotfiles in home/
directory. The setup script preserves user customizations during updates.
Permission errors:
chmod +x unix/setup.py # Make script executable
Missing Python dependencies:
pip install --user toml rich # Install manually
Stow conflicts: The script will prompt you to resolve conflicts automatically or skip conflicting files.
Platform detection issues:
Check that your system has the expected platform files (e.g., /etc/fedora-release
for Fedora).
unix/setup.py --help # Show all options
unix/setup.py install --help # Show install options
Always test with dry run mode first:
unix/setup.py --dry-run --full-setup
After running the setup:
- Reboot your system (especially on Fedora after driver installation)
- Verify Git:
git config --global --list
- Test SSH:
ssh -T git@github.com
- Check fonts:
fc-list | grep -i your-font
- Reload shell:
exec zsh
or open new terminal
This project is licensed under the MIT License - see the LICENSE file for details.
This is a personal configuration repository, but feel free to:
- Fork and adapt for your own use
- Submit issues for bugs or improvements
- Share your own configuration ideas