441 lines
9.4 KiB
Markdown
441 lines
9.4 KiB
Markdown
# 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. |