Architecture
This section provides a comprehensive overview of Pyprland's internal architecture, designed for developers who want to understand, extend, or contribute to the project.
TIP
For a practical guide to writing plugins, see the Development document.
Sections
| Section | Description |
|---|---|
| Overview | High-level architecture, executive summary, data flow, directory structure, design patterns |
| Core Components | Manager, plugins, adapters, IPC layer, socket protocol, C client, configuration, data models |
Quick Links
Overview
- Executive Summary - What Pyprland is and how it works
- High-Level Architecture - Visual overview of all components
- Data Flow - Event processing and command processing sequences
- Directory Structure - Source code organization
- Design Patterns - Patterns used throughout the codebase
Core Components
- Entry Points - Daemon vs client mode
- Manager - The core orchestrator
- Plugin System - Base class, lifecycle, built-in plugins
- Backend Adapter Layer - Hyprland and Niri abstractions
- IPC Layer - Window manager communication
- Socket Protocol - Client-daemon protocol specification
- pypr-client - Lightweight alternative for keybindings
- Configuration System - TOML config system
- Data Models - TypedDict definitions
Further Reading
- Development Guide - How to write plugins
- Plugin Documentation - List of available plugins
- Sample Extension - Example external plugin package
- Hyprland IPC - Hyprland's IPC documentation