- Fixed nvtop package reference (nvtopPackages.full -> nvtop) - Fixed display manager conflicts in ISO config - Fixed SSH settings conflicts with lib.mkForce - Fixed home-manager username conflicts for ISO - Added complete ISO build configuration with Wayland-only setup - Added ISO build documentation and scripts
8.2 KiB
Building OmniXY ISO Image
This guide explains how to build a live ISO image of OmniXY NixOS that can be used for installation or testing.
Prerequisites
- NixOS or Nix with Flakes: You need a system with Nix installed and flakes enabled
- Sufficient disk space: Building an ISO requires several GB of space
- Good internet connection: Initial build will download many packages
Quick Start
Method 1: Using the Built-in App (Recommended)
# Clone the repository
git clone https://github.com/TheArctesian/omnixy.git
cd omnixy
# Build the ISO using the built-in app
nix run .#build-iso
The built app will:
- Build the ISO image
- Show progress and final location
- Provide instructions for using the ISO
Method 2: Direct Nix Build
# Build the ISO directly
nix build .#iso
# The ISO will be available as a symlink
ls -la ./result/iso/
Method 3: Build Specific Configuration
# Build the ISO configuration specifically
nix build .#nixosConfigurations.omnixy-iso.config.system.build.isoImage
# Find the ISO file
find ./result -name "*.iso"
ISO Features
The OmniXY ISO includes:
Pre-installed Software
- Desktop Environment: Hyprland with full OmniXY theming
- Development Tools: Complete development stack (editors, compilers, etc.)
- Multimedia: Video players, image viewers, audio tools
- Productivity: Browsers, office suite, communication tools
- System Tools: Disk utilities, system monitors, network tools
Live Session Features
- Auto-login: Boots directly to the desktop as
nixosuser - No password required: Passwordless sudo for system administration
- Network ready: NetworkManager enabled for easy connection
- Installation tools: Graphical installer (Calamares) included
- Theme showcase: All OmniXY themes available for testing
Installation Capabilities
- Guided installation: Run
omnixy-installerfor graphical setup - Manual installation: Full NixOS installation tools available
- Hardware support: Wide hardware compatibility with latest kernel
ISO Configuration Details
Size and Performance
- Expected size: 3-5 GB (depending on included packages)
- RAM requirements: Minimum 4GB RAM for live session
- Boot methods: UEFI and BIOS supported
Included Themes
All OmniXY themes are included and can be tested:
- tokyo-night (default)
- catppuccin
- gruvbox
- nord
- everforest
- rose-pine
- kanagawa
- catppuccin-latte
- matte-black
- osaka-jade
- ristretto
Customization Options
Building with Different Default Theme
Edit iso.nix and change the theme import:
# Change this line:
./modules/themes/tokyo-night.nix
# To your preferred theme:
./modules/themes/gruvbox.nix
Excluding Packages
Modify the omnixy.packages.exclude section in iso.nix:
omnixy = {
# ... other config
packages = {
exclude = [ "discord" "spotify" "steam" ]; # Add packages to exclude
};
};
Adding Custom Packages
Add packages to the environment.systemPackages in iso.nix:
environment.systemPackages = with pkgs; [
# ... existing packages
your-custom-package
];
Using the ISO
Creating Bootable Media
USB Drive (Linux)
# Replace /dev/sdX with your USB device
sudo dd if=./result/iso/omnixy-*.iso of=/dev/sdX bs=4M status=progress oflag=sync
USB Drive (Windows)
Use tools like:
- Rufus
- Balena Etcher
- Windows USB/DVD Download Tool
DVD
Use any DVD burning software with the ISO file.
Testing in Virtual Machine
QEMU
# Basic VM test (4GB RAM)
qemu-system-x86_64 -cdrom ./result/iso/omnixy-*.iso -m 4G -enable-kvm
# VM with more features
qemu-system-x86_64 \
-cdrom ./result/iso/omnixy-*.iso \
-m 8G \
-enable-kvm \
-vga virtio \
-display gtk,gl=on \
-machine q35 \
-cpu host
VirtualBox
- Create new VM with Linux/Other Linux (64-bit)
- Allocate at least 4GB RAM
- Mount the ISO as CD/DVD
- Enable hardware acceleration if available
VMware
- Create new VM with Linux/Other Linux 5.x kernel 64-bit
- Allocate at least 4GB RAM
- Use ISO as CD/DVD source
- Enable hardware acceleration
Installation from ISO
Using the Graphical Installer
- Boot from the ISO
- Wait for auto-login to complete
- Run the installer:
omnixy-installer - Follow the graphical installation wizard
- Reboot when complete
Manual Installation
- Boot from the ISO
- Partition your disk with
gpartedor command-line tools - Mount your root partition:
sudo mount /dev/sdaX /mnt - Generate hardware configuration:
sudo nixos-generate-config --root /mnt - Download OmniXY:
cd /mnt/etc/nixos sudo git clone https://github.com/TheArctesian/omnixy.git . - Edit configuration:
sudo nano configuration.nix # Set your username and preferred theme - Install:
sudo nixos-install --flake /mnt/etc/nixos#omnixy - Set root password when prompted
- Reboot
Troubleshooting
Build Issues
"Path does not exist" errors
Ensure all files are present and paths in configuration are correct:
# Check if all required files exist
ls -la modules/ packages/ assets/
Out of disk space
Building requires significant space:
# Clean up nix store
nix-collect-garbage -d
# Check available space
df -h
Network issues during build
Ensure internet connection and try with cached builds:
# Use substituters
nix build .#iso --substituters https://cache.nixos.org
Boot Issues
ISO doesn't boot
- Verify BIOS/UEFI settings
- Try different USB creation method
- Check USB drive integrity
Black screen on boot
- Try different graphics settings in GRUB
- Add
nomodesetkernel parameter - Use safe graphics mode
Out of memory during live session
- Use system with more RAM (minimum 4GB)
- Close unnecessary applications
- Consider lighter package selection
Installation Issues
Hardware not detected
- Ensure latest kernel is being used
- Check for firmware packages
- Update hardware-configuration.nix manually
Network issues during installation
- Test network in live session first
- Configure NetworkManager connections
- Check firewall settings
Advanced Usage
Building for Different Architectures
Currently, OmniXY ISO supports x86_64-linux. For other architectures:
# Check available systems
nix flake show
# Build for specific system (if supported)
nix build .#packages.aarch64-linux.iso
Customizing Boot Parameters
Edit the ISO configuration to add custom kernel parameters:
# In iso.nix
boot.kernelParams = [
# Add your custom parameters
"custom.parameter=value"
];
Creating Minimal ISO
For a smaller ISO, disable features in iso.nix:
omnixy = {
preset = "minimal"; # Instead of "everything"
packages.exclude = [ /* large packages */ ];
};
CI/CD Integration
GitHub Actions
Add to .github/workflows/build-iso.yml:
name: Build ISO
on:
push:
tags: ['v*']
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v20
with:
enable_flakes: true
- name: Build ISO
run: nix build .#iso
- name: Upload ISO
uses: actions/upload-artifact@v3
with:
name: omnixy-iso
path: result/iso/*.iso
GitLab CI
Add to .gitlab-ci.yml:
build-iso:
image: nixos/nix:latest
script:
- nix build .#iso
- cp result/iso/*.iso ./
artifacts:
paths:
- "*.iso"
expire_in: 1 week
only:
- tags
Contributing
When modifying the ISO configuration:
- Test builds locally before committing
- Verify ISO boots in at least one VM
- Test both UEFI and BIOS boot modes
- Check that installation process works
- Update documentation if adding new features
Support
- Issues: Report problems on GitHub Issues
- Discussions: Join GitHub Discussions for questions
- Documentation: Check the main README.md for general info
- Matrix/Discord: Community chat (links in main README)
For more information about OmniXY, see the main README.md file.