A complete, self-contained NixOS adaptation of end-4's dots-hyprland desktop environment, bringing the beautiful "illogical-impulse" style to NixOS with full declarative configuration.
Current Achievement: Fully Self-Contained Desktop Environment
- β Self-Contained: All configurations included locally (no external dependencies)
- β Quickshell Integration - Official flake support with local configs
- β Hyprland Configuration - Complete window manager setup with Material You theming
- β Essential Applications - foot terminal, fuzzel launcher, nautilus file manager
- β Home Manager Integration - Fully declarative configuration
- β Package Management - All dependencies properly integrated
- β Development Environment - Ready for advanced features
- NixOS with flakes enabled
- Home Manager (optional but recommended)
# Clone the repository
git clone [email protected]:celesrenata/end-4-flakes.git
cd end-4-flakes
# Build and activate Home Manager configuration
nix build .#homeConfigurations.declarative.activationPackage
./result/activate
# Or use with your existing Home Manager setup
# Add to your flake inputs:
# dots-hyprland.url = "github:celesrenata/end-4-flakes";# Enter development environment
nix develop
# Available development tools:
# - update-flake: Manage flake inputs
# - compare-modes: Compare declarative vs writable configuration modes
# - test-python-env: Test Python virtual environment setup
# - test-quickshell: Test quickshell configuration
# Flake management examples:
update-flake status # Show current flake status
update-flake update # Update all flake inputs
update-flake verify # Test that configurations build
update-flake help # Show all available options- Hyprland Window Manager - Complete configuration with Material You theming
- foot Terminal - Tokyo Night color scheme, JetBrainsMono Nerd Font
- fuzzel Launcher - Material You themed application launcher
- Essential Keybinds - All core window management and application shortcuts
- Package Integration - Declarative package management through Nix
- Home Manager Support - Full integration with Home Manager modules
- AI Integration - Gemini and Ollama support
- Advanced Widgets - Overview with live previews, sidebars
- Comprehensive Theming - Dynamic Material You color generation
- Quality of Life - Screen corners, session management, cheatsheet
- NixOS System Integration - Full system-level configuration
- Testing & Validation - Comprehensive test suite
- Community & Maintenance - Documentation, contribution guidelines
The project includes a comprehensive flake management utility for keeping your configuration synchronized with GitHub:
# Check current status
update-flake status
# Update all flake inputs
update-flake update
# Update only dots-hyprland source
update-flake update-source
# Verify configurations build
update-flake verify
# Update and verify in one command
update-flake update --auto-verify# Pin to a specific commit
update-flake pin abc123def
# Switch to tracking a different branch
update-flake branch main
# Dry run to see what would happen
update-flake update --dry-runThe utility automatically detects synchronization status and provides clear feedback about your flake's relationship to the GitHub repository.
{
programs.dots-hyprland = {
enable = true;
style = "illogical-impulse";
components = {
hyprland = true;
quickshell = true;
theming = false; # Phase 4
ai = false; # Phase 4
audio = true;
};
features = {
overview = true;
sidebar = false; # Phase 4
notifications = true;
mediaControls = true;
};
keybinds = {
modifier = "SUPER";
terminal = "foot";
};
};
}| Key Combination | Action |
|---|---|
SUPER + Return |
Open terminal |
SUPER + Space |
Open application launcher |
SUPER + Q |
Close window |
SUPER + E |
Open file manager |
SUPER + F |
Toggle fullscreen |
SUPER + V |
Toggle floating |
SUPER + 1-0 |
Switch to workspace |
SUPER + Shift + 1-0 |
Move window to workspace |
βββ flake.nix # Main flake definition (clean & minimal)
βββ flake.lock # Locked dependencies
βββ configs/ # All dots-hyprland configurations
β βββ hypr/ # Hyprland configuration
β βββ quickshell/ # Quickshell widgets and config
β βββ applications/ # Application configurations
β βββ scripts/ # Utility scripts
β βββ matugen/ # Material You theming
βββ modules/ # NixOS/Home Manager modules
β βββ home-manager.nix # Main Home Manager integration
β βββ python-environment.nix # Python venv setup
β βββ configuration.nix # Declarative config management
β βββ writable-mode.nix # Writable mode setup
β βββ components/ # Component modules
βββ packages/ # Utility packages and scripts
βββ default.nix # Package definitions
βββ dots-hyprland-packages.nix # Package mappings
βββ scripts/ # Development utilities
- π Self-Contained: No external repository dependencies
- π¦ Version Controlled: All configs tracked in single repository
- π§ Maintainable: Clean separation of concerns
- π Fast: No network dependencies during build
- π― Focused: Only essential files included
This project follows a systematic 7-phase development approach:
- Phase 1: Dependency Analysis - All dependencies mapped to NixOS
- Phase 2: Module Structure - Complete flake and module architecture
- Phase 3: Core Implementation - β CURRENT MILESTONE
- Phase 4: Advanced Features - AI, advanced widgets, comprehensive theming
- Phase 5: NixOS Adaptations - Full NixOS integration patterns
- Phase 6: Testing & Validation - Comprehensive testing suite
- Phase 7: Community & Maintenance - Documentation, contribution guidelines
This project is in active development. Contributions are welcome!
- Clone the repository
- Run
nix developto enter the development environment - Make your changes
- Test with
nix build .#homeConfigurations.example.activationPackage - Submit a pull request
This project is licensed under the GPL-3.0 License - see the LICENSE file for details.
- end-4 - Original dots-hyprland creator
- outfoxxed - Quickshell developer (official Nix flake support was crucial!)
- NixOS Community - For the amazing ecosystem
- Hyprland Team - For the fantastic window manager
- Issues: Report bugs and request features via GitHub Issues
- Discussions: General questions and ideas via GitHub Discussions
- Community: Join the NixOS and Hyprland communities for broader support
Status: Phase 3 Complete - Core desktop environment functional and ready for advanced features! π