Remove remaining outdated documentation files
- Remove docs/INSTALLATION.md (references deleted installer scripts) - Remove docs/COMMANDS.md (outdated command references) - Remove docs/README.md (redundant with main README) - Remove packages/README.md (outdated package information) - Remove text logo files (icon.txt, logo.txt) - Keep docs/ARCHITECTURE.md (still relevant system overview) - Keep image assets (icon.png, logo.svg) for branding Repository is now streamlined and ready for GitHub push. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
374
docs/COMMANDS.md
374
docs/COMMANDS.md
@@ -1,374 +0,0 @@
|
|||||||
# OmniXY Command Reference
|
|
||||||
|
|
||||||
This document provides a comprehensive reference for all OmniXY commands and utilities.
|
|
||||||
|
|
||||||
## Main Command Interface
|
|
||||||
|
|
||||||
### `omnixy`
|
|
||||||
The primary command interface supporting global flags and subcommands.
|
|
||||||
|
|
||||||
**Global Flags**:
|
|
||||||
- `--quiet`, `-q`: Minimal output for scripting
|
|
||||||
- `--json`: Machine-readable JSON output where applicable
|
|
||||||
|
|
||||||
**Subcommands**:
|
|
||||||
- `help`: Show comprehensive help
|
|
||||||
- `info`, `status`: Display system information
|
|
||||||
- `update`, `upgrade`: Update system and flake inputs
|
|
||||||
- `clean`, `gc`: Garbage collection and optimization
|
|
||||||
- `theme`: Theme management
|
|
||||||
- `search`: Package search
|
|
||||||
- `install`: Package installation guide
|
|
||||||
|
|
||||||
## System Management Commands
|
|
||||||
|
|
||||||
### System Information
|
|
||||||
```bash
|
|
||||||
# System overview
|
|
||||||
omnixy info
|
|
||||||
|
|
||||||
# Quiet output (key=value pairs)
|
|
||||||
omnixy --quiet info
|
|
||||||
|
|
||||||
# JSON output for scripting
|
|
||||||
omnixy --json info | jq .system.version
|
|
||||||
```
|
|
||||||
|
|
||||||
### System Updates
|
|
||||||
```bash
|
|
||||||
# Update system with progress indication
|
|
||||||
omnixy update
|
|
||||||
|
|
||||||
# Quiet update for scripts
|
|
||||||
omnixy --quiet update
|
|
||||||
|
|
||||||
# Manual rebuild
|
|
||||||
omnixy-rebuild
|
|
||||||
```
|
|
||||||
|
|
||||||
### System Maintenance
|
|
||||||
```bash
|
|
||||||
# Clean and optimize
|
|
||||||
omnixy clean
|
|
||||||
|
|
||||||
# Show current/new store sizes
|
|
||||||
omnixy clean # Shows before/after sizes
|
|
||||||
|
|
||||||
# Quiet cleanup
|
|
||||||
omnixy --quiet clean
|
|
||||||
```
|
|
||||||
|
|
||||||
## Theme Management Commands
|
|
||||||
|
|
||||||
### Theme Operations
|
|
||||||
```bash
|
|
||||||
# List all available themes
|
|
||||||
omnixy theme list
|
|
||||||
omnixy theme ls
|
|
||||||
|
|
||||||
# Get current theme
|
|
||||||
omnixy theme get
|
|
||||||
omnixy theme current
|
|
||||||
|
|
||||||
# Set new theme
|
|
||||||
omnixy theme set tokyo-night
|
|
||||||
omnixy theme kanagawa
|
|
||||||
```
|
|
||||||
|
|
||||||
### Scriptable Theme Management
|
|
||||||
```bash
|
|
||||||
# List themes (one per line)
|
|
||||||
omnixy --quiet theme list
|
|
||||||
|
|
||||||
# JSON theme information
|
|
||||||
omnixy --json theme list
|
|
||||||
|
|
||||||
# Current theme for scripting
|
|
||||||
current_theme=$(omnixy --quiet theme get)
|
|
||||||
|
|
||||||
# Automated theme cycling
|
|
||||||
themes=($(omnixy --quiet theme list))
|
|
||||||
next_theme=${themes[$(( ($(omnixy --quiet theme list | grep -n "$(omnixy --quiet theme get)" | cut -d: -f1) % ${#themes[@]}) ))]}
|
|
||||||
omnixy theme set "$next_theme"
|
|
||||||
```
|
|
||||||
|
|
||||||
## Package Management Commands
|
|
||||||
|
|
||||||
### Package Search
|
|
||||||
```bash
|
|
||||||
# Search for packages
|
|
||||||
omnixy search firefox
|
|
||||||
omnixy search development-tools
|
|
||||||
|
|
||||||
# Direct nix search
|
|
||||||
nix search nixpkgs firefox
|
|
||||||
```
|
|
||||||
|
|
||||||
### Package Installation
|
|
||||||
```bash
|
|
||||||
# Installation guide (interactive)
|
|
||||||
omnixy install firefox
|
|
||||||
|
|
||||||
# Note: Actual installation requires editing configuration files
|
|
||||||
# and rebuilding the system
|
|
||||||
```
|
|
||||||
|
|
||||||
## Development Commands
|
|
||||||
|
|
||||||
### Development Shells
|
|
||||||
```bash
|
|
||||||
# Language-specific development environments
|
|
||||||
omnixy-dev-shell rust # Rust toolchain
|
|
||||||
omnixy-dev-shell python # Python environment
|
|
||||||
omnixy-dev-shell go # Go development
|
|
||||||
omnixy-dev-shell js # Node.js/JavaScript
|
|
||||||
omnixy-dev-shell node # Alternative for Node.js
|
|
||||||
omnixy-dev-shell c # C/C++ development
|
|
||||||
omnixy-dev-shell cpp # Alternative for C++
|
|
||||||
|
|
||||||
# Using flake development shells
|
|
||||||
nix develop # Default development shell
|
|
||||||
nix develop .#rust # Rust-specific shell
|
|
||||||
nix develop .#python # Python-specific shell
|
|
||||||
nix develop .#node # Node.js-specific shell
|
|
||||||
```
|
|
||||||
|
|
||||||
## Utility Commands
|
|
||||||
|
|
||||||
### Screenshot Management
|
|
||||||
```bash
|
|
||||||
# Interactive region selection (default)
|
|
||||||
omnixy-screenshot
|
|
||||||
omnixy-screenshot region
|
|
||||||
|
|
||||||
# Full screen capture
|
|
||||||
omnixy-screenshot full
|
|
||||||
omnixy-screenshot screen
|
|
||||||
|
|
||||||
# Active window capture
|
|
||||||
omnixy-screenshot window
|
|
||||||
```
|
|
||||||
|
|
||||||
### System Help
|
|
||||||
```bash
|
|
||||||
# Comprehensive help system
|
|
||||||
omnixy help
|
|
||||||
omnixy-help
|
|
||||||
|
|
||||||
# Command-specific help
|
|
||||||
omnixy --help
|
|
||||||
omnixy theme --help
|
|
||||||
```
|
|
||||||
|
|
||||||
## Unix Philosophy Tools
|
|
||||||
|
|
||||||
Located in `scripts/` directory - focused utilities following Unix principles:
|
|
||||||
|
|
||||||
### System Validation
|
|
||||||
```bash
|
|
||||||
# Complete system check
|
|
||||||
./scripts/omnixy-check-system
|
|
||||||
|
|
||||||
# Check only NixOS
|
|
||||||
./scripts/omnixy-check-system --nixos-only
|
|
||||||
|
|
||||||
# Check permissions only
|
|
||||||
./scripts/omnixy-check-system --permissions-only
|
|
||||||
|
|
||||||
# Silent check (exit codes only)
|
|
||||||
./scripts/omnixy-check-system --quiet
|
|
||||||
|
|
||||||
# JSON output
|
|
||||||
OMNIXY_JSON=1 ./scripts/omnixy-check-system
|
|
||||||
```
|
|
||||||
|
|
||||||
### Configuration Management
|
|
||||||
```bash
|
|
||||||
# Create configuration backup
|
|
||||||
backup_path=$(./scripts/omnixy-backup-config)
|
|
||||||
echo "Backup created at: $backup_path"
|
|
||||||
|
|
||||||
# Custom backup location
|
|
||||||
./scripts/omnixy-backup-config /custom/backup/path
|
|
||||||
|
|
||||||
# Install configuration files
|
|
||||||
./scripts/omnixy-install-files
|
|
||||||
|
|
||||||
# Custom source/destination
|
|
||||||
./scripts/omnixy-install-files /source/path /dest/path
|
|
||||||
```
|
|
||||||
|
|
||||||
### User Configuration
|
|
||||||
```bash
|
|
||||||
# Interactive user setup
|
|
||||||
username=$(./scripts/omnixy-configure-user)
|
|
||||||
|
|
||||||
# Non-interactive mode
|
|
||||||
./scripts/omnixy-configure-user alice
|
|
||||||
|
|
||||||
# Custom config files
|
|
||||||
./scripts/omnixy-configure-user alice /etc/nixos/configuration.nix /etc/nixos/home.nix
|
|
||||||
```
|
|
||||||
|
|
||||||
### System Building
|
|
||||||
```bash
|
|
||||||
# Build and switch system
|
|
||||||
./scripts/omnixy-build-system
|
|
||||||
|
|
||||||
# Dry run (test only)
|
|
||||||
./scripts/omnixy-build-system --dry-run
|
|
||||||
|
|
||||||
# Custom configuration
|
|
||||||
./scripts/omnixy-build-system /path/to/config custom-name
|
|
||||||
```
|
|
||||||
|
|
||||||
## Installation Commands
|
|
||||||
|
|
||||||
### Simple Installer
|
|
||||||
```bash
|
|
||||||
# Basic installation
|
|
||||||
./install-simple.sh
|
|
||||||
|
|
||||||
# With options
|
|
||||||
./install-simple.sh --user alice --theme gruvbox --quiet
|
|
||||||
|
|
||||||
# Dry run
|
|
||||||
./install-simple.sh --dry-run
|
|
||||||
|
|
||||||
# Environment variables
|
|
||||||
OMNIXY_USER=bob OMNIXY_THEME=nord ./install-simple.sh --quiet
|
|
||||||
```
|
|
||||||
|
|
||||||
### Interactive Installer
|
|
||||||
```bash
|
|
||||||
# Full interactive experience
|
|
||||||
./install.sh
|
|
||||||
|
|
||||||
# Features styled terminal interface with:
|
|
||||||
# - System verification
|
|
||||||
# - User configuration
|
|
||||||
# - Theme selection
|
|
||||||
# - Feature toggles
|
|
||||||
# - Progress indication
|
|
||||||
```
|
|
||||||
|
|
||||||
### Bootstrap Installation
|
|
||||||
```bash
|
|
||||||
# Remote bootstrap (run on fresh NixOS)
|
|
||||||
curl -fsSL https://raw.githubusercontent.com/thearctesian/omnixy/main/boot.sh | bash
|
|
||||||
|
|
||||||
# Local bootstrap
|
|
||||||
./boot.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
## Advanced Commands
|
|
||||||
|
|
||||||
### Build System Commands
|
|
||||||
```bash
|
|
||||||
# Build without switching
|
|
||||||
nixos-rebuild build --flake .#omnixy
|
|
||||||
|
|
||||||
# Build VM for testing
|
|
||||||
nixos-rebuild build-vm --flake .#omnixy
|
|
||||||
|
|
||||||
# Run VM
|
|
||||||
./result/bin/run-omnixy-vm
|
|
||||||
|
|
||||||
# Check flake evaluation
|
|
||||||
nix flake check
|
|
||||||
|
|
||||||
# Update flake inputs
|
|
||||||
nix flake update
|
|
||||||
```
|
|
||||||
|
|
||||||
### Package Building
|
|
||||||
```bash
|
|
||||||
# Build OmniXY scripts package
|
|
||||||
nix build .#omnixy-scripts
|
|
||||||
|
|
||||||
# Test built scripts
|
|
||||||
./result/bin/omnixy --help
|
|
||||||
|
|
||||||
# Build specific packages
|
|
||||||
nix build .#package-name
|
|
||||||
```
|
|
||||||
|
|
||||||
### Development Commands
|
|
||||||
```bash
|
|
||||||
# Format Nix code
|
|
||||||
nixpkgs-fmt *.nix **/*.nix
|
|
||||||
alejandra *.nix # Alternative formatter
|
|
||||||
|
|
||||||
# Nix code analysis
|
|
||||||
statix check . # Static analysis
|
|
||||||
deadnix . # Dead code detection
|
|
||||||
|
|
||||||
# Show flake info
|
|
||||||
nix flake show
|
|
||||||
nix flake metadata
|
|
||||||
```
|
|
||||||
|
|
||||||
## Environment Variables
|
|
||||||
|
|
||||||
### Global Settings
|
|
||||||
- `OMNIXY_QUIET=1`: Enable quiet mode for all commands
|
|
||||||
- `OMNIXY_JSON=1`: Enable JSON output where supported
|
|
||||||
- `OMNIXY_USER`: Default username for installation
|
|
||||||
- `OMNIXY_THEME`: Default theme for installation
|
|
||||||
|
|
||||||
### Usage Examples
|
|
||||||
```bash
|
|
||||||
# Quiet automation
|
|
||||||
export OMNIXY_QUIET=1
|
|
||||||
omnixy update && omnixy clean && echo "Maintenance complete"
|
|
||||||
|
|
||||||
# JSON processing
|
|
||||||
omnixy --json info | jq -r '.system.version'
|
|
||||||
|
|
||||||
# Environment-based installation
|
|
||||||
export OMNIXY_USER=developer
|
|
||||||
export OMNIXY_THEME=tokyo-night
|
|
||||||
./install-simple.sh --quiet
|
|
||||||
```
|
|
||||||
|
|
||||||
## Command Composition Examples
|
|
||||||
|
|
||||||
### System Maintenance Script
|
|
||||||
```bash
|
|
||||||
#!/bin/bash
|
|
||||||
# Complete system maintenance
|
|
||||||
|
|
||||||
echo "Starting system maintenance..."
|
|
||||||
|
|
||||||
# Update system
|
|
||||||
omnixy --quiet update || { echo "Update failed"; exit 1; }
|
|
||||||
|
|
||||||
# Clean system
|
|
||||||
omnixy --quiet clean
|
|
||||||
|
|
||||||
# Verify system health
|
|
||||||
omnixy --quiet info | grep -q "NixOS" || { echo "System check failed"; exit 1; }
|
|
||||||
|
|
||||||
echo "Maintenance complete"
|
|
||||||
```
|
|
||||||
|
|
||||||
### Theme Rotation Script
|
|
||||||
```bash
|
|
||||||
#!/bin/bash
|
|
||||||
# Rotate through available themes
|
|
||||||
|
|
||||||
current=$(omnixy --quiet theme get)
|
|
||||||
themes=($(omnixy --quiet theme list))
|
|
||||||
|
|
||||||
for i in "${!themes[@]}"; do
|
|
||||||
if [[ "${themes[$i]}" == "$current" ]]; then
|
|
||||||
next_index=$(( (i + 1) % ${#themes[@]} ))
|
|
||||||
next_theme="${themes[$next_index]}"
|
|
||||||
omnixy theme set "$next_theme"
|
|
||||||
echo "Switched from $current to $next_theme"
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
```
|
|
||||||
|
|
||||||
This command reference provides comprehensive coverage of all OmniXY utilities, making it easy to find and use the right tool for any task.
|
|
||||||
@@ -1,441 +0,0 @@
|
|||||||
# 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.
|
|
||||||
@@ -1,98 +0,0 @@
|
|||||||
# OmniXY Documentation
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
OmniXY is a declarative, reproducible NixOS-based operating system focused on developer productivity and aesthetic customization. Built on top of NixOS, it provides a complete development environment with beautiful themes, modern tools, and a tiling window manager (Hyprland).
|
|
||||||
|
|
||||||
## Table of Contents
|
|
||||||
- [Architecture Overview](./ARCHITECTURE.md)
|
|
||||||
- [Installation Guide](./INSTALLATION.md)
|
|
||||||
- [Configuration System](./CONFIGURATION.md)
|
|
||||||
- [Theme System](./THEMES.md)
|
|
||||||
- [Development Environment](./DEVELOPMENT.md)
|
|
||||||
- [Command Reference](./COMMANDS.md)
|
|
||||||
- [Troubleshooting](./TROUBLESHOOTING.md)
|
|
||||||
|
|
||||||
## Quick Start
|
|
||||||
|
|
||||||
1. **Install NixOS** - OmniXY requires a base NixOS installation
|
|
||||||
2. **Run Bootstrap** - `curl -fsSL https://raw.githubusercontent.com/thearctesian/omnixy/main/boot.sh | bash`
|
|
||||||
3. **Configure User** - Set your username and select a theme
|
|
||||||
4. **Reboot** - Apply the new configuration
|
|
||||||
|
|
||||||
## Core Concepts
|
|
||||||
|
|
||||||
### Declarative Configuration
|
|
||||||
Everything in OmniXY is defined through Nix expressions. Your entire system configuration—packages, services, themes, and settings—is declared in code and version controlled.
|
|
||||||
|
|
||||||
### Reproducibility
|
|
||||||
The same configuration will produce identical systems across different machines. This is achieved through Nix's functional package management and flake lock files.
|
|
||||||
|
|
||||||
### Modularity
|
|
||||||
The system is built from composable modules that can be enabled, disabled, or customized independently. Each module handles a specific aspect of the system.
|
|
||||||
|
|
||||||
### Immutability
|
|
||||||
System packages and configurations are immutable once built. Changes require rebuilding the system, preventing configuration drift and ensuring consistency.
|
|
||||||
|
|
||||||
## System Components
|
|
||||||
|
|
||||||
### Base System (NixOS)
|
|
||||||
- Functional package management
|
|
||||||
- Atomic upgrades and rollbacks
|
|
||||||
- Declarative system configuration
|
|
||||||
- Reproducible builds
|
|
||||||
|
|
||||||
### Window Manager (Hyprland)
|
|
||||||
- Dynamic tiling compositor for Wayland
|
|
||||||
- Smooth animations and effects
|
|
||||||
- Extensive customization options
|
|
||||||
- Modern GPU-accelerated rendering
|
|
||||||
|
|
||||||
### Development Tools
|
|
||||||
- Multiple language environments (Rust, Go, Python, Node.js, etc.)
|
|
||||||
- Git integration with lazygit
|
|
||||||
- Modern terminal emulators (Alacritty, Kitty)
|
|
||||||
- Neovim with LazyVim configuration
|
|
||||||
|
|
||||||
### Theme System
|
|
||||||
- 11 pre-configured color schemes
|
|
||||||
- Unified theming across all applications
|
|
||||||
- Easy theme switching with `omnixy theme set <name>`
|
|
||||||
- Custom theme support
|
|
||||||
|
|
||||||
## Directory Structure
|
|
||||||
|
|
||||||
```
|
|
||||||
omnixy/
|
|
||||||
├── docs/ # This documentation
|
|
||||||
├── configuration.nix # Main system configuration
|
|
||||||
├── flake.nix # Flake definition with inputs/outputs
|
|
||||||
├── home.nix # User environment configuration
|
|
||||||
├── modules/ # System modules
|
|
||||||
│ ├── themes/ # Theme definitions
|
|
||||||
│ ├── hardware/ # Hardware configurations
|
|
||||||
│ └── desktop/ # Desktop environment configs
|
|
||||||
├── packages/ # Custom Nix packages
|
|
||||||
└── scripts/ # Unix philosophy utilities
|
|
||||||
```
|
|
||||||
|
|
||||||
## Philosophy
|
|
||||||
|
|
||||||
OmniXY follows these principles:
|
|
||||||
|
|
||||||
1. **Declarative Over Imperative** - Define what you want, not how to get it
|
|
||||||
2. **Reproducible Builds** - Same input always produces same output
|
|
||||||
3. **Unix Philosophy** - Tools that do one thing well
|
|
||||||
4. **Developer First** - Optimized for programming workflows
|
|
||||||
5. **Beautiful Defaults** - Aesthetic out of the box
|
|
||||||
6. **Extensible** - Easy to customize and extend
|
|
||||||
|
|
||||||
## Getting Help
|
|
||||||
|
|
||||||
- **Command Help**: `omnixy help`
|
|
||||||
- **System Info**: `omnixy info`
|
|
||||||
- **GitHub Issues**: https://github.com/TheArctesian/omnixy/issues
|
|
||||||
- **NixOS Manual**: https://nixos.org/manual/nixos/stable/
|
|
||||||
|
|
||||||
## Contributing
|
|
||||||
|
|
||||||
OmniXY is open source and welcomes contributions. See the main README for contribution guidelines.
|
|
||||||
26
icon.txt
26
icon.txt
@@ -1,26 +0,0 @@
|
|||||||
██████████████████████████████████████████████████████
|
|
||||||
██████████████████████████████████████████████████████
|
|
||||||
████ ████ ████
|
|
||||||
████ ████ ████
|
|
||||||
████ █████████████████████ ████████ ████
|
|
||||||
████ █████████████████████ ████████ ████
|
|
||||||
████ ████ ████ ████
|
|
||||||
████ ████ ████ ████
|
|
||||||
████ ████ ████ ████
|
|
||||||
████ ████ ████ ████
|
|
||||||
████ ████ ████ ████
|
|
||||||
████ ████ ████ ████
|
|
||||||
████████████ ████ ████
|
|
||||||
████████████ ████ ████
|
|
||||||
████ ████ ████ ████
|
|
||||||
████ ████ ████ ████
|
|
||||||
████ ████ ████ ████
|
|
||||||
████ ████ ████ ████
|
|
||||||
████ ████ ████ ████
|
|
||||||
████ ████ ████ ████
|
|
||||||
████ ██████████████████████████████████████ ████
|
|
||||||
████ ██████████████████████████████████████ ████
|
|
||||||
████ ████ ████
|
|
||||||
████ ████ ████
|
|
||||||
█████████████████████████████ ████████████████████
|
|
||||||
█████████████████████████████ ████████████████████
|
|
||||||
10
logo.txt
10
logo.txt
@@ -1,10 +0,0 @@
|
|||||||
▄▄▄
|
|
||||||
▄█████▄ ▄███████████▄ ▄███████ ▄███████ ▄███████ ▄█ █▄ ▄█ █▄
|
|
||||||
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███
|
|
||||||
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ █▀ ███ ███ ███ ███
|
|
||||||
███ ███ ███ ███ ███ ▄███▄▄▄███ ▄███▄▄▄██▀ ███ ▄███▄▄▄███▄ ███▄▄▄███
|
|
||||||
███ ███ ███ ███ ███ ▀███▀▀▀███ ▀███▀▀▀▀ ███ ▀▀███▀▀▀███ ▀▀▀▀▀▀███
|
|
||||||
███ ███ ███ ███ ███ ███ ███ ██████████ ███ █▄ ███ ███ ▄██ ███
|
|
||||||
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███
|
|
||||||
▀█████▀ ▀█ ███ █▀ ███ █▀ ███ ███ ███████▀ ███ █▀ ▀█████▀
|
|
||||||
███ █▀
|
|
||||||
@@ -1,251 +0,0 @@
|
|||||||
# Packages Directory - Custom Nix Packages
|
|
||||||
|
|
||||||
The `packages/` directory contains custom Nix package definitions for OmniXY-specific tools and utilities. These packages are built and distributed through the Nix package manager as part of the OmniXY system.
|
|
||||||
|
|
||||||
## Package Architecture
|
|
||||||
|
|
||||||
Each package follows the standard Nix packaging format:
|
|
||||||
```nix
|
|
||||||
{ pkgs, lib, ... }:
|
|
||||||
pkgs.stdenv.mkDerivation rec {
|
|
||||||
pname = "package-name";
|
|
||||||
version = "1.0.0";
|
|
||||||
|
|
||||||
# Package definition
|
|
||||||
# ...
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
description = "Package description";
|
|
||||||
license = licenses.mit;
|
|
||||||
platforms = platforms.linux;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
## Current Packages
|
|
||||||
|
|
||||||
### `scripts.nix`
|
|
||||||
**Purpose**: OmniXY utility scripts package
|
|
||||||
**What it contains**: All the management and utility scripts for OmniXY system
|
|
||||||
|
|
||||||
**Generated Scripts**:
|
|
||||||
|
|
||||||
#### System Management
|
|
||||||
- `omnixy`: Main command interface with `--quiet` and `--json` modes
|
|
||||||
- `omnixy-update`: System and flake updates with progress indication
|
|
||||||
- `omnixy-clean`: Garbage collection and store optimization
|
|
||||||
- `omnixy-rebuild`: Wrapper for `nixos-rebuild switch`
|
|
||||||
|
|
||||||
#### Theme Management
|
|
||||||
- `omnixy-theme-set`: Set system theme with validation
|
|
||||||
- `omnixy-theme-list`: List available themes (plain/JSON output)
|
|
||||||
- `omnixy-theme-get`: Get current theme (scriptable output)
|
|
||||||
|
|
||||||
#### Package Management
|
|
||||||
- `omnixy-search`: Search Nix packages
|
|
||||||
- `omnixy-install`: Package installation guide
|
|
||||||
|
|
||||||
#### Development Tools
|
|
||||||
- `omnixy-dev-shell`: Language-specific development shells
|
|
||||||
- Supports: rust, go, python, node/js, c/cpp
|
|
||||||
|
|
||||||
#### Utilities
|
|
||||||
- `omnixy-screenshot`: Screenshot tool with region/window/full modes
|
|
||||||
- `omnixy-info`: System information with JSON/quiet modes
|
|
||||||
- `omnixy-help`: Comprehensive help system
|
|
||||||
|
|
||||||
**Build Process**:
|
|
||||||
1. Creates all scripts in `installPhase`
|
|
||||||
2. Sets executable permissions
|
|
||||||
3. Patches interpreter paths
|
|
||||||
4. Validates script syntax
|
|
||||||
|
|
||||||
**Dependencies**:
|
|
||||||
- `bash`: Shell interpreter
|
|
||||||
- `coreutils`: Basic Unix utilities
|
|
||||||
- `gnugrep`, `gnused`, `gawk`: Text processing
|
|
||||||
- `jq`: JSON processing
|
|
||||||
- `curl`, `wget`: Network utilities
|
|
||||||
- `git`: Version control
|
|
||||||
- `fzf`, `ripgrep`: Search tools
|
|
||||||
|
|
||||||
### `plymouth-theme.nix` (Commented Out)
|
|
||||||
**Purpose**: Plymouth boot theme package
|
|
||||||
**Status**: Disabled until fully implemented
|
|
||||||
**What it would contain**: Custom boot splash theme for OmniXY
|
|
||||||
|
|
||||||
## Package Integration
|
|
||||||
|
|
||||||
### Flake Integration
|
|
||||||
Packages are exported in `flake.nix`:
|
|
||||||
```nix
|
|
||||||
packages.${system} = {
|
|
||||||
omnixy-scripts = pkgs.callPackage ./packages/scripts.nix {};
|
|
||||||
# Additional packages...
|
|
||||||
};
|
|
||||||
```
|
|
||||||
|
|
||||||
### System Installation
|
|
||||||
Scripts package is installed system-wide in the main configuration, making all utilities available in PATH.
|
|
||||||
|
|
||||||
### Development Access
|
|
||||||
Packages can be built individually for testing:
|
|
||||||
```bash
|
|
||||||
# Build scripts package
|
|
||||||
nix build .#omnixy-scripts
|
|
||||||
|
|
||||||
# Test individual script
|
|
||||||
./result/bin/omnixy --help
|
|
||||||
```
|
|
||||||
|
|
||||||
## Script Features
|
|
||||||
|
|
||||||
### Unix Philosophy Compliance
|
|
||||||
All scripts follow Unix principles:
|
|
||||||
|
|
||||||
**Clean Output Separation**:
|
|
||||||
```bash
|
|
||||||
# Human-readable (default)
|
|
||||||
omnixy info
|
|
||||||
|
|
||||||
# Machine-readable
|
|
||||||
omnixy --json info | jq .system.version
|
|
||||||
|
|
||||||
# Scriptable
|
|
||||||
omnixy --quiet update && echo "Updated successfully"
|
|
||||||
```
|
|
||||||
|
|
||||||
**Composability**:
|
|
||||||
```bash
|
|
||||||
# Theme management pipeline
|
|
||||||
current_theme=$(omnixy --quiet theme get)
|
|
||||||
omnixy theme list --quiet | grep -v "$current_theme" | head -1 | xargs omnixy theme set
|
|
||||||
```
|
|
||||||
|
|
||||||
**Error Handling**:
|
|
||||||
- Exit codes: 0 for success, 1 for failure
|
|
||||||
- Errors to stderr, data to stdout
|
|
||||||
- Graceful handling of missing files/permissions
|
|
||||||
|
|
||||||
### Environment Variables
|
|
||||||
Scripts respect global settings:
|
|
||||||
|
|
||||||
- `OMNIXY_QUIET=1`: Minimal output mode
|
|
||||||
- `OMNIXY_JSON=1`: JSON output where applicable
|
|
||||||
|
|
||||||
### Theme System Integration
|
|
||||||
Theme scripts provide complete theme management:
|
|
||||||
- List all 11 available themes
|
|
||||||
- Get current theme for scripting
|
|
||||||
- Set theme with validation and rebuild
|
|
||||||
- Support for both interactive and automated usage
|
|
||||||
|
|
||||||
### Development Environment Support
|
|
||||||
Development scripts provide:
|
|
||||||
- Quick access to language-specific environments
|
|
||||||
- Consistent tooling across languages
|
|
||||||
- Integration with system configuration
|
|
||||||
|
|
||||||
## Adding New Packages
|
|
||||||
|
|
||||||
To add a new package:
|
|
||||||
|
|
||||||
1. **Create Package File**:
|
|
||||||
```nix
|
|
||||||
# packages/my-tool.nix
|
|
||||||
{ pkgs, lib, ... }:
|
|
||||||
pkgs.stdenv.mkDerivation rec {
|
|
||||||
pname = "my-tool";
|
|
||||||
version = "1.0.0";
|
|
||||||
|
|
||||||
# Package definition
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
2. **Add to Flake**:
|
|
||||||
```nix
|
|
||||||
# In flake.nix packages section
|
|
||||||
my-tool = pkgs.callPackage ./packages/my-tool.nix {};
|
|
||||||
```
|
|
||||||
|
|
||||||
3. **Install in System**:
|
|
||||||
```nix
|
|
||||||
# In configuration or module
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
# ... other packages
|
|
||||||
my-tool
|
|
||||||
];
|
|
||||||
```
|
|
||||||
|
|
||||||
## Package Categories
|
|
||||||
|
|
||||||
### System Utilities
|
|
||||||
Tools for managing the OmniXY system itself:
|
|
||||||
- Configuration management
|
|
||||||
- System updates and maintenance
|
|
||||||
- Backup and restore operations
|
|
||||||
|
|
||||||
### User Interface Tools
|
|
||||||
Scripts for desktop and user interaction:
|
|
||||||
- Theme management
|
|
||||||
- Screenshot utilities
|
|
||||||
- Information display
|
|
||||||
|
|
||||||
### Development Aids
|
|
||||||
Tools for software development:
|
|
||||||
- Environment management
|
|
||||||
- Build and deployment helpers
|
|
||||||
- Debug and diagnostic tools
|
|
||||||
|
|
||||||
### Integration Scripts
|
|
||||||
Utilities for integrating with external systems:
|
|
||||||
- Cloud services
|
|
||||||
- Version control
|
|
||||||
- Package repositories
|
|
||||||
|
|
||||||
## Build System
|
|
||||||
|
|
||||||
### Derivation Structure
|
|
||||||
Each package is a Nix derivation with:
|
|
||||||
- **Inputs**: Dependencies and build tools
|
|
||||||
- **Build Process**: How to create the package
|
|
||||||
- **Outputs**: Resulting files and executables
|
|
||||||
- **Metadata**: Description, license, platforms
|
|
||||||
|
|
||||||
### Build Phases
|
|
||||||
For script packages:
|
|
||||||
1. **Setup**: Prepare build environment
|
|
||||||
2. **Install**: Create scripts and set permissions
|
|
||||||
3. **Fixup**: Patch interpreters and validate
|
|
||||||
4. **Package**: Create final Nix store paths
|
|
||||||
|
|
||||||
### Quality Assurance
|
|
||||||
- Syntax checking during build
|
|
||||||
- Interpreter path patching
|
|
||||||
- Permission validation
|
|
||||||
- Dependency verification
|
|
||||||
|
|
||||||
## Testing and Validation
|
|
||||||
|
|
||||||
### Build Testing
|
|
||||||
```bash
|
|
||||||
# Test package builds correctly
|
|
||||||
nix build .#omnixy-scripts
|
|
||||||
|
|
||||||
# Validate all scripts are created
|
|
||||||
ls result/bin/ | wc -l
|
|
||||||
|
|
||||||
# Test script functionality
|
|
||||||
result/bin/omnixy --help
|
|
||||||
```
|
|
||||||
|
|
||||||
### Integration Testing
|
|
||||||
```bash
|
|
||||||
# Test in clean environment
|
|
||||||
nix develop --command bash -c "omnixy-info --json | jq .system"
|
|
||||||
|
|
||||||
# Test cross-script integration
|
|
||||||
nix develop --command bash -c "omnixy theme list --quiet | head -1 | xargs echo"
|
|
||||||
```
|
|
||||||
|
|
||||||
This packaging system provides a robust foundation for distributing and managing OmniXY utilities while maintaining the reproducibility and reliability of the Nix ecosystem.
|
|
||||||
Reference in New Issue
Block a user