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.
- ๐จ 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
- 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)
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
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
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
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
# 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
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 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 |
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
- 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
- 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
- No X11 Dependencies: Full Wayland compositor stack
- Hyprland: Dynamic tiling compositor with animations
- Native Wayland Apps: Ghostty, Alacritty, Firefox with Wayland support
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
Edit modules/packages.nix
and add packages to the appropriate category, then rebuild:
omnixy-rebuild
Edit home.nix
for user-specific packages and rebuild.
- Copy an existing theme as a template:
cp modules/themes/tokyo-night.nix modules/themes/my-theme.nix
- Edit the color palette and application configurations
- Add to
flake.nix
theme list - Rebuild to apply
# 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
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
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- 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
- NixOS Manual - Official NixOS documentation
- Home Manager Manual - User environment management
- Hyprland Wiki - Hyprland configuration reference
- Nix Package Search - Search available packages
- GitHub Issues - Report bugs or request features
- Nix Pills - Deep dive into Nix
- NixOS & Flakes Book - Modern NixOS guide
- Zero to Nix - Gentle introduction to Nix
Built with โค๏ธ using the power of NixOS and declarative configuration