documentation

This commit is contained in:
theArctesian
2025-09-25 07:50:48 -07:00
parent 85e493eb54
commit d8947e67b7
41 changed files with 4405 additions and 538 deletions

441
docs/INSTALLATION.md Normal file
View File

@@ -0,0 +1,441 @@
# OmniXY Installation Guide
This guide covers all methods of installing OmniXY on your NixOS system, from automated installation to manual configuration.
## Prerequisites
### System Requirements
- **Operating System**: NixOS 24.05 or newer
- **RAM**: 8GB minimum (16GB+ recommended for development)
- **Storage**: 40GB free space (for Nix store and applications)
- **Boot**: UEFI system (for systemd-boot configuration)
- **Network**: Stable internet connection for package downloads
### Pre-Installation Checklist
```bash
# Verify NixOS installation
cat /etc/NIXOS
# Check available space
df -h /
# Verify internet connectivity
ping -c 3 github.com
# Check user permissions
groups $USER | grep -q wheel && echo "User has sudo access"
```
## Installation Methods
### Method 1: Bootstrap Installation (Recommended)
The fastest way to install OmniXY on a fresh NixOS system:
```bash
# Download and run bootstrap installer
curl -fsSL https://raw.githubusercontent.com/thearctesian/omnixy/main/boot.sh | bash
```
**What this does**:
1. Verifies NixOS installation
2. Downloads OmniXY repository
3. Runs the interactive installer
4. Guides you through configuration
**Advantages**:
- Single command installation
- Always uses latest version
- No local repository needed
- Automatic dependency handling
### Method 2: Interactive Installation
For users who want control over the installation process:
```bash
# Clone the repository
git clone https://github.com/thearctesian/omnixy
cd omnixy
# Run interactive installer
./install.sh
```
**Features**:
- Beautiful terminal interface with Tokyo Night colors
- Step-by-step guidance
- Theme selection with previews
- Optional features configuration
- Progress indication
- Automatic backup creation
**Installation Steps**:
1. **System Verification**: Checks NixOS and permissions
2. **Configuration Backup**: Saves existing `/etc/nixos`
3. **File Installation**: Copies OmniXY configuration
4. **User Setup**: Configure username and home directory
5. **Theme Selection**: Choose from 11 available themes
6. **Feature Configuration**: Enable optional features
7. **System Build**: Build and switch to new configuration
### Method 3: Simple Installation (Unix Philosophy)
For automation and scripting:
```bash
# Clone repository
git clone https://github.com/thearctesian/omnixy
cd omnixy
# Run simple installer with options
./install-simple.sh --user alice --theme gruvbox --quiet
```
**Command Options**:
- `--user USERNAME`: Set username (default: prompt)
- `--theme THEME`: Select theme (default: tokyo-night)
- `--quiet`, `-q`: Minimal output
- `--dry-run`, `-n`: Test without applying changes
- `--help`, `-h`: Show help
**Environment Variables**:
- `OMNIXY_USER`: Default username
- `OMNIXY_THEME`: Default theme
- `OMNIXY_QUIET=1`: Enable quiet mode
**Examples**:
```bash
# Fully automated installation
OMNIXY_USER=developer OMNIXY_THEME=tokyo-night ./install-simple.sh --quiet
# Test installation without applying
./install-simple.sh --user testuser --dry-run
# Interactive theme selection
./install-simple.sh --user alice
```
### Method 4: Manual Flake Installation
For advanced users who want direct control:
```bash
# Direct flake installation (replaces entire system)
sudo nixos-rebuild switch --flake github:thearctesian/omnixy#omnixy
# Or with local repository
git clone https://github.com/thearctesian/omnixy
cd omnixy
sudo nixos-rebuild switch --flake .#omnixy
```
**Important Notes**:
- Requires manual user configuration editing
- No automatic backup
- Assumes advanced Nix knowledge
- May overwrite existing configuration
## Step-by-Step Installation Process
### 1. Pre-Installation Setup
```bash
# Update NixOS channel (optional)
sudo nix-channel --update
# Ensure git is available
nix-shell -p git --run "git --version"
# Create backup directory (optional)
mkdir -p ~/nixos-backups
```
### 2. Repository Setup
```bash
# Clone to home directory
cd ~
git clone https://github.com/thearctesian/omnixy
cd omnixy
# Verify repository integrity
ls -la # Should see flake.nix, configuration.nix, etc.
nix flake check # Verify flake is valid
```
### 3. Configuration Customization (Optional)
Before installation, you can customize:
```bash
# Edit user configuration
vim home.nix # Modify user packages and settings
# Modify system packages
vim modules/packages.nix # Add/remove system packages
# Hardware-specific changes
vim hardware-configuration.nix # Update for your hardware
```
### 4. Installation Execution
Choose your preferred installer and run it:
```bash
# Interactive (recommended for first-time users)
./install.sh
# Simple (for automation)
./install-simple.sh --user $USER --theme tokyo-night
# Manual (for experts)
sudo nixos-rebuild switch --flake .#omnixy
```
### 5. Post-Installation Configuration
After installation completes:
```bash
# Verify installation
omnixy info
# Check available commands
omnixy help
# Test theme switching
omnixy theme list
omnixy theme set nord
# Verify system health
systemctl status
journalctl -b | grep -i error
```
## Customization During Installation
### Theme Selection
Available themes during installation:
1. **tokyo-night** (default) - Dark with vibrant blues
2. **catppuccin** - Warm, soothing pastels
3. **gruvbox** - Retro earth tones
4. **nord** - Cool Arctic colors
5. **everforest** - Natural greens
6. **rose-pine** - Elegant pinks
7. **kanagawa** - Japanese-inspired
8. **catppuccin-latte** - Light variant
9. **matte-black** - Minimal black/white
10. **osaka-jade** - Jade greens
11. **ristretto** - Coffee browns
### Feature Configuration
Optional features you can enable:
**Security Features**:
- Fingerprint authentication
- FIDO2 security keys
- Two-factor authentication
**Development Features**:
- Docker/Podman support
- Development databases
- Additional programming languages
**Gaming Features**:
- Steam integration
- Wine compatibility
- Gaming optimizations
**Multimedia Features**:
- Video editing tools
- Audio production software
- Graphics applications
### Hardware Configuration
The installer automatically detects and configures:
- GPU drivers (Intel, AMD, NVIDIA)
- Audio hardware (PipeWire setup)
- Network interfaces
- Bluetooth devices
- Input devices (touchpad, etc.)
## Troubleshooting Installation
### Common Issues
**"Not running on NixOS" Error**:
```bash
# Verify NixOS installation
ls /etc/NIXOS
nixos-version
```
**Permission Denied Errors**:
```bash
# Ensure user is in wheel group
groups $USER | grep wheel
# Add user to wheel group if needed
sudo usermod -aG wheel $USER
```
**Network/Download Issues**:
```bash
# Test internet connectivity
curl -I https://github.com
ping -c 3 cache.nixos.org
# Check DNS resolution
nslookup github.com
```
**Insufficient Space**:
```bash
# Check available space
df -h /
du -sh /nix/store
# Clean up if needed
nix-collect-garbage -d
```
### Build Failures
**Flake Evaluation Errors**:
```bash
# Check flake syntax
nix flake check --show-trace
# Debug with verbose output
nixos-rebuild build --flake .#omnixy --show-trace
```
**Package Build Failures**:
```bash
# Check for specific package errors
journalctl -u nix-daemon | grep -i error
# Try building individual packages
nix build .#omnixy-scripts
```
**Out of Memory During Build**:
```bash
# Check memory usage
free -h
htop
# Enable swap if needed
sudo swapon -a
# Build with fewer jobs
nixos-rebuild build --flake .#omnixy --max-jobs 1
```
### Recovery Options
**Rollback to Previous Configuration**:
```bash
# List available generations
sudo nix-env --list-generations --profile /nix/var/nix/profiles/system
# Rollback to previous generation
sudo nixos-rebuild switch --rollback
```
**Restore from Backup**:
```bash
# If backup was created during installation
sudo cp -r /etc/nixos.backup.TIMESTAMP/* /etc/nixos/
sudo nixos-rebuild switch
```
**Boot from Rescue Environment**:
If the system fails to boot:
1. Boot from NixOS live USB
2. Mount the system
3. Restore backup or rollback
4. Rebuild system
## Verification and Testing
### Post-Installation Checks
```bash
# System information
omnixy info
# Theme verification
omnixy theme get
# Package verification
which alacritty hyprland waybar
# Service status
systemctl --user status hyprland
systemctl status NetworkManager
```
### Functional Testing
```bash
# Test theme switching
omnixy theme set gruvbox
omnixy theme set tokyo-night
# Test utilities
omnixy-screenshot --help
omnixy search firefox
# Test development environments
nix develop .#rust --command rustc --version
nix develop .#python --command python --version
```
### Performance Verification
```bash
# Check boot time
systemd-analyze
# Check memory usage
free -h
ps aux --sort=-%mem | head
# Check disk usage
df -h
du -sh /nix/store
```
## Next Steps After Installation
### Essential Configuration
1. **Set up Git**: Configure name and email
2. **Configure Shell**: Customize zsh/bash settings
3. **Install Additional Software**: Add personal packages
4. **Set up Development**: Configure programming environments
### System Maintenance
```bash
# Regular updates
omnixy update
# Regular cleanup
omnixy clean
# Monitor system health
omnixy info
```
### Customization
1. **Explore Themes**: Try different color schemes
2. **Customize Keybindings**: Modify Hyprland shortcuts
3. **Add Packages**: Edit configuration files
4. **Create Backups**: Regular system backups
This installation guide provides multiple paths to get OmniXY running on your system, accommodating different user preferences and technical backgrounds.