Skip to content

celesrenata/end-4-flakes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

88 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

dots-hyprland for NixOS (Self-Contained)

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.

🎯 Project Status: Self-Contained & Complete βœ…

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

πŸš€ Quick Start

Prerequisites

  • NixOS with flakes enabled
  • Home Manager (optional but recommended)

Installation

# 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";

Development

# 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

πŸ“‹ Features

βœ… Implemented (Phase 3)

  • 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

πŸ”„ In Progress (Phase 4)

  • 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

πŸ“… Planned (Future Phases)

  • NixOS System Integration - Full system-level configuration
  • Testing & Validation - Comprehensive test suite
  • Community & Maintenance - Documentation, contribution guidelines

πŸ”„ Flake Management

The project includes a comprehensive flake management utility for keeping your configuration synchronized with GitHub:

Quick Commands

# 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

Advanced Usage

# 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-run

The utility automatically detects synchronization status and provides clear feedback about your flake's relationship to the GitHub repository.

🎨 Configuration

Basic Configuration

{
  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";
    };
  };
}

Keybinds

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

πŸ—οΈ Architecture

Self-Contained Structure

β”œβ”€β”€ 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

Key Benefits

  • πŸ”’ 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

🎯 Gameplan Progress

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

🀝 Contributing

This project is in active development. Contributions are welcome!

Development Setup

  1. Clone the repository
  2. Run nix develop to enter the development environment
  3. Make your changes
  4. Test with nix build .#homeConfigurations.example.activationPackage
  5. Submit a pull request

πŸ“„ License

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

πŸ™ Acknowledgments

  • 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

πŸ“ž Support

  • 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! πŸš€

About

An attempt at End-4's QuickShell Release

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published