Skip to content

TheArctesian/omnixy

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

OmniXY NixOS

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

โœจ Features

  • ๐ŸŽจ Beautiful Themes: Ships with 11 carefully crafted themes (Tokyo Night, Catppuccin, Gruvbox, Nord, and more) - all declaratively configured
  • ๐Ÿš€ Modern Stack: Pure Wayland with Hyprland compositor, Waybar, Alacritty, Ghostty, Neovim with LazyVim
  • ๐Ÿ“ฆ 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
  • ๐Ÿ’ฟ ISO Builder: Build custom live ISOs with your 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

Direct Flake Installation (Recommended)

On an existing NixOS system:

# Install directly from GitHub
sudo nixos-rebuild switch --flake github:thearctesian/omnixy#omnixy

# Or clone and install locally
git clone https://github.com/thearctesian/omnixy
cd omnixy
sudo nixos-rebuild switch --flake .#omnixy

Building a Custom ISO

Build a live ISO with the OmniXY configuration:

# Clone the repository
git clone https://github.com/thearctesian/omnixy
cd omnixy

# Build the ISO (this will take time on first build)
nix build .#iso

# The ISO will be available at:
ls -la result/iso/

Write the ISO to a USB drive:

sudo dd if=result/iso/nixos-*.iso of=/dev/sdX bs=4M status=progress

๐ŸŽฎ 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
omnixy search <package>  # Search for packages

Theme Management

omnixy theme             # List available themes
omnixy theme tokyo-night # Switch to Tokyo Night theme

# Available themes:
# - tokyo-night (default)
# - catppuccin
# - catppuccin-latte
# - gruvbox
# - nord
# - everforest
# - rose-pine
# - kanagawa
# - matte-black
# - osaka-jade
# - ristretto

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
nix develop .#go          # Go development environment
nix develop .#c           # C/C++ development environment

# Alternative: Use omnixy development shells
omnixy-dev-shell rust    # Rust development shell
omnixy-dev-shell python  # Python development shell
omnixy-dev-shell go      # Go development shell
omnixy-dev-shell js      # JavaScript/Node.js shell
omnixy-dev-shell c       # C/C++ development shell

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 (Ghostty)
Super + B Open browser (Firefox)
Super + E Open file manager
Super + D Application launcher (Walker)
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
Super + L Lock 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)
โ”œโ”€โ”€ iso.nix                    # ISO image configuration
โ”œโ”€โ”€ modules/                   # Modular NixOS configuration
โ”‚   โ”œโ”€โ”€ core.nix              # Core OmniXY 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
โ”‚   โ”œโ”€โ”€ boot.nix              # Boot configuration
โ”‚   โ”œโ”€โ”€ security.nix          # Security settings
โ”‚   โ”œโ”€โ”€ scripts.nix           # OmniXY utility scripts
โ”‚   โ”œโ”€โ”€ menus.nix             # Application launchers
โ”‚   โ”œโ”€โ”€ walker.nix            # Walker launcher configuration
โ”‚   โ”œโ”€โ”€ fastfetch.nix         # System info display
โ”‚   โ”œโ”€โ”€ desktop/
โ”‚   โ”‚   โ””โ”€โ”€ hyprland.nix      # Hyprland compositor configuration
โ”‚   โ”œโ”€โ”€ themes/               # Declarative theme system
โ”‚   โ”‚   โ”œโ”€โ”€ tokyo-night.nix   # Tokyo Night theme
โ”‚   โ”‚   โ”œโ”€โ”€ catppuccin.nix    # Catppuccin theme
โ”‚   โ”‚   โ”œโ”€โ”€ gruvbox.nix       # Gruvbox theme
โ”‚   โ”‚   โ””โ”€โ”€ ...               # Additional themes
โ”‚   โ””โ”€โ”€ hardware/
โ”‚       โ”œโ”€โ”€ default.nix       # Common hardware support
โ”‚       โ”œโ”€โ”€ nvidia.nix        # NVIDIA GPU support
โ”‚       โ”œโ”€โ”€ amd.nix           # AMD GPU/CPU support
โ”‚       โ”œโ”€โ”€ intel.nix         # Intel GPU/CPU support
โ”‚       โ”œโ”€โ”€ audio.nix         # Audio configuration
โ”‚       โ”œโ”€โ”€ bluetooth.nix     # Bluetooth support
โ”‚       โ””โ”€โ”€ touchpad.nix      # Touchpad configuration
โ””โ”€โ”€ packages/                  # Custom packages
    โ””โ”€โ”€ scripts.nix           # OmniXY utility scripts as Nix packages

๐Ÿ—๏ธ Architecture

Flake-based Configuration

  • Pinned Dependencies: All inputs locked for reproducibility
  • Multiple Outputs: NixOS configs, development shells, packages, apps, and ISO
  • 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

Pure Wayland

  • No X11 Dependencies: Full Wayland compositor stack
  • Hyprland: Dynamic tiling compositor with animations
  • Native Wayland Apps: Ghostty, Alacritty, Firefox with Wayland support

๐ŸŽจ Themes

OmniXY includes beautiful themes that configure your entire desktop environment:

  • Tokyo Night (default) - Clean, dark theme inspired by Tokyo's night lights
  • Catppuccin - Soothing pastel theme (Mocha variant)
  • Catppuccin Latte - Light variant of Catppuccin
  • Gruvbox - Retro groove color scheme
  • Nord - Arctic, north-bluish color palette
  • Everforest - Comfortable green color scheme
  • Rose Pine - Natural pine and rose colors
  • Kanagawa - Inspired by Japanese paintings
  • Matte Black - Pure black minimalist theme
  • Osaka Jade - Jade green accents
  • Ristretto - Coffee-inspired brown theme

Each theme declaratively configures:

  • Terminal colors (Ghostty, 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, then rebuild:

omnixy-rebuild

Adding User Packages

Edit home.nix for user-specific packages and rebuild.

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. Add to flake.nix theme list
  3. Rebuild to apply

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 modules/*.nix

๐Ÿš€ Building ISOs

Build custom live ISOs with your configuration:

# Build ISO
nix build .#iso

# ISO location
ls result/iso/nixos-*.iso

The ISO includes:

  • Full OmniXY desktop environment
  • Auto-login live session
  • Hyprland with selected theme
  • Development tools
  • Installation utilities

๐Ÿค 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

๐Ÿ”— Links

๐Ÿ“š Learning Resources


Built with โค๏ธ using the power of NixOS and declarative configuration

About

Opinionated Nix/Hyprland Setup

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Nix 95.8%
  • Shell 4.2%