theArctesian 53cdf81af8 Fix package conflicts and add ISO configuration
- 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
2025-09-29 18:46:24 -07:00
2025-09-25 07:50:48 -07:00
2025-09-25 07:50:48 -07:00
2025-09-24 15:39:19 -07:00
2025-09-25 07:50:48 -07:00
2025-09-25 07:50:48 -07:00
2025-09-25 07:50:48 -07:00
2025-09-26 09:09:19 -07:00
2025-06-30 16:42:09 -07:00
2025-07-28 09:32:44 +02:00
2025-07-26 10:02:29 -07:00
2025-09-25 07:50:48 -07:00
2025-09-25 07:50:48 -07:00
2025-09-25 07:50:48 -07:00
2025-09-25 07:50:48 -07:00

OmniXY NixOS

Transform your NixOS installation into a fully-configured, beautiful, and modern development system based on Hyprland by running a single command. OmniXY brings the elegance of declarative configuration to desktop Linux, creating a reproducible and version-controlled development environment.

Features

  • 🎨 Beautiful Themes: Ships with carefully crafted themes (Tokyo Night, Catppuccin, and more) - all declaratively configured
  • 🚀 Modern Stack: Hyprland compositor, Waybar, Alacritty, Neovim with LazyVim, all configured through Nix
  • 📦 Declarative Everything: Entire system configuration as code - reproducible across machines
  • 🛠️ Development Ready: Pre-configured environments for Rust, Go, Python, Node.js, C/C++, and more via Nix shells
  • 🔄 Atomic Updates: Rollback capability, no broken states, system-wide updates with one command
  • 🎯 Modular Design: Feature flags for Docker, gaming, multimedia - enable only what you need
  • Flake-based: Modern Nix flakes for dependency management and reproducible builds
  • 🏠 Home Manager: User environment managed declaratively alongside system configuration

📋 Requirements

  • NixOS 24.05 or newer (fresh installation recommended)
  • 8GB RAM minimum (16GB+ recommended for development)
  • 40GB disk space (for Nix store and development tools)
  • UEFI system (for systemd-boot configuration)

🚀 Installation

Quick Install (Bootstrap on fresh NixOS)

curl -fsSL https://raw.githubusercontent.com/thearctesian/omnixy/main/boot.sh | bash

Manual Installation

  1. Clone this repository:
git clone https://github.com/thearctesian/omnixy
cd omnixy
  1. Run the interactive installer:
./install.sh
  1. The installer will:
    • Backup your existing NixOS configuration
    • Set up your username and home directory
    • Let you choose a theme (Tokyo Night, Catppuccin, etc.)
    • Configure optional features (Docker, gaming, multimedia)
    • Build and switch to the new configuration

Advanced: Direct Flake Installation

# On existing NixOS system
sudo nixos-rebuild switch --flake github:thearctesian/omnixy#omnixy

# Or locally after cloning
sudo nixos-rebuild switch --flake .#omnixy

🎮 Usage

System Management

omnixy help              # Show all available commands
omnixy update            # Update system and flake inputs
omnixy clean             # Clean and optimize Nix store
omnixy info              # Show system information
omnixy-rebuild           # Rebuild system configuration

Theme Management

omnixy theme             # List available themes
omnixy theme tokyo-night # Switch to Tokyo Night theme
omnixy-theme-list        # List all available themes
omnixy-theme-set catppuccin  # Set Catppuccin theme

Development Environments

# Enter development shells
nix develop               # Default development shell
nix develop .#rust        # Rust development environment
nix develop .#python      # Python development environment
nix develop .#node        # Node.js development environment

# Create new projects with dev environments
dev-project myapp rust    # Create Rust project with flake
dev-project webapp node   # Create Node.js project with flake

# Start development databases (Docker containers)
dev-postgres              # PostgreSQL container
dev-redis                 # Redis container
dev-mysql                 # MySQL container
dev-mongodb               # MongoDB container

Package Management

omnixy search firefox    # Search for packages
nix search nixpkgs python # Alternative package search

# Install packages by editing configuration
# Add to modules/packages.nix, then:
omnixy-rebuild           # Apply changes

⌨️ Key Bindings

Key Combination Action
Super + Return Open terminal
Super + B Open browser
Super + E Open file manager
Super + D Application launcher
Super + Q Close window
Super + F Fullscreen
Super + Space Toggle floating
Super + 1-9 Switch workspace
Super + Shift + 1-9 Move window to workspace
Print Screenshot region
Shift + Print Screenshot full screen

📁 Project Structure

omnixy/
├── configuration.nix          # Main NixOS configuration entry point
├── flake.nix                  # Flake definition with inputs/outputs
├── home.nix                   # Home-manager user configuration
├── hardware-configuration.nix # Hardware-specific configuration (generated)
├── install.sh                 # Interactive installer script
├── boot.sh                    # Bootstrap script for fresh systems
├── modules/                   # Modular NixOS configuration
│   ├── core.nix              # Core Omarchy options and settings
│   ├── packages.nix          # Categorized package collections
│   ├── development.nix       # Development tools and environments
│   ├── services.nix          # System services and daemons
│   ├── users.nix             # User account management
│   ├── desktop/
│   │   └── hyprland.nix      # Hyprland compositor configuration
│   ├── themes/               # Declarative theme system
│   │   ├── tokyo-night.nix   # Tokyo Night theme
│   │   ├── catppuccin.nix    # Catppuccin theme
│   │   └── ...               # Additional themes
│   └── hardware/
│       └── default.nix       # Hardware support and drivers
└── packages/
    └── scripts.nix           # Omarchy utility scripts as Nix packages

🏗️ Architecture

Flake-based Configuration

  • Pinned Dependencies: All inputs locked for reproducibility
  • Multiple Outputs: NixOS config, development shells, packages, and apps
  • Home Manager Integration: User environment managed alongside system

Modular Design

  • Feature Flags: Enable/disable Docker, gaming, development tools, etc.
  • Theme System: Complete application theming through Nix modules
  • Hardware Support: Automatic detection and configuration
  • Development Environments: Language-specific shells with all dependencies

Declarative Everything

  • No Imperative Commands: Everything defined in configuration files
  • Version Controlled: All changes tracked in git
  • Rollback Support: Previous generations available for recovery
  • Atomic Updates: System changes applied atomically

🎨 Themes

Omarchy includes beautiful themes that configure your entire desktop environment:

  • Tokyo Night (default) - A clean, dark theme inspired by Tokyo's night lights
  • Catppuccin - Soothing pastel theme with excellent contrast
  • More themes coming soon: Gruvbox, Nord, Everforest, Rose Pine, Kanagawa

Each theme declaratively configures:

  • Terminal colors (Alacritty, Kitty)
  • Editor themes (Neovim, VS Code)
  • Desktop environment (Hyprland, Waybar, Mako)
  • Applications (Firefox, BTtop, Lazygit)
  • GTK/Qt theming

🔧 Customization

Adding System Packages

Edit modules/packages.nix and add packages to the appropriate category:

# In modules/packages.nix
environment.systemPackages = with pkgs; [
  # Add your packages here
  firefox
  vscode
  discord
] ++ optionals cfg.packages.categories.development [
  # Development-specific packages
  rustc
  go
  python3
];

Then rebuild:

omnixy-rebuild

Adding User Packages

Edit home.nix for user-specific packages:

# In home.nix
home.packages = with pkgs; [
  # User-specific packages
  spotify
  obs-studio
  gimp
];

Creating Custom Themes

  1. Copy an existing theme as a template:
cp modules/themes/tokyo-night.nix modules/themes/my-theme.nix
  1. Edit the color palette and application configurations
  2. Update configuration.nix to use your theme:
currentTheme = "my-theme";
  1. Rebuild to apply:
omnixy-rebuild

Creating Development Environments

Add custom development shells to flake.nix:

devShells.${system}.myproject = pkgs.mkShell {
  packages = with pkgs; [
    nodejs_20
    typescript
    postgresql
  ];

  shellHook = ''
    echo "Welcome to My Project development environment!"
  '';
};

Use with: nix develop .#myproject

Testing Changes

# Test configuration without switching
nixos-rebuild build --flake .#omnixy

# Test in virtual machine
nixos-rebuild build-vm --flake .#omnixy
./result/bin/run-omnixy-vm

# Check flake evaluation
nix flake check

# Format Nix code
nixpkgs-fmt *.nix **/*.nix

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

  • Inspired by Omakub by DHH - the original opinionated desktop setup
  • Built on NixOS - the declarative Linux distribution
  • Using Hyprland compositor - dynamic tiling Wayland compositor
  • Home Manager - declarative user environment
  • Theme configurations adapted from community themes and color schemes
  • Nix Flakes - for reproducible and composable configurations

🔗 Similar Projects

  • Omarchy Nix - Another NixOS implementation of DHH's Omarchy with automatic theme generation from wallpapers

📚 Learning Resources


Built with ❤️ using the power of NixOS and declarative configuration

Description
No description provided
Readme MIT 36 MiB
Languages
Nix 95.8%
Shell 4.2%