An event-driven service with an interactive TUI that automatically manages Hyprland monitor configurations based on connected displays, power and lid state.
Dynamic Profile Modes depending on the user context
A full guide is available at Dynamic Profile Modes.
- Event-driven architecture responding to monitor, power and lid state changes in real-time
- Interactive TUI for visual monitor configuration and profile management
- Profile-based configuration with different settings for different monitor setups
- Template support for dynamic configuration generation
- Hot reloading automatically detects and applies configuration changes without restart (optional)
- Power state awareness built-in AC/battery detection for laptop users (optional)
- Lid state awareness built-in lid state detection for laptop users (optional)
- Desktop notifications for configuration changes (optional)
- Theming support for built-in themes and dynamic generation from wallpapers
# Binary release
export DESTDIR="$HOME/.local/bin" # optional, defaults to ~/.local/bin/
curl -o- https://raw.githubusercontent.com/fiffeek/hyprdynamicmonitors/refs/heads/main/scripts/install.sh | bash
# AUR (Arch Linux)
$aurHelper -S hyprdynamicmonitors-bin
# Nix, for flakes/modules see: https://hyprdynamicmonitors.filipmikina.com/docs/advanced/systemd#nix
nix run github:fiffeek/hyprdynamicmonitorsSee the Installation Guide for more options.
The easiest way to get started is using the TUI (see the Getting started with the TUI guide):
# Launch the interactive TUI
hyprdynamicmonitors tui
# Configure your monitors visually
# Press 'Tab' to switch to Profile view
# Press 'n' to create a new profile
# For getting started see: https://hyprdynamicmonitors.filipmikina.com/docs/quickstart/tui/Then add to your ~/.config/hypr/hyprland.conf (alternatively, see Running with systemd guide):
# Source the generated monitor configuration
source = ~/.config/hypr/monitors.conf
# Run the daemon for automatic profile switching
exec-once = hyprdynamicmonitors run
# or use systemd instead
# see: https://fiffeek.github.io/hyprdynamicmonitors/docs/advanced/systemd
# systemctl --user enable --now hyprdynamicmonitors.serviceEnsure you're running hyprdynamicmonitors prepare prior to running Hyprland (see the guide and the why):
# e.g. from a tty:
hyprdynamicmonitors prepare && Hyprland
# or use systemd
# systemctl --user enable hyprdynamicmonitors-prepare.serviceFor detailed setup instructions, see the Quick Start Guide.
Caution
For production environments prefer running with systemd (guide).
Full documentation is available at fiffeek.github.io/hyprdynamicmonitors
Key topics:
| Topic | Description |
|---|---|
| Quick Start | Get up and running quickly |
| TUI Guide | Interactive monitor configuration |
| Configuration | Profiles, monitors, and power management |
| Templates | Dynamic configuration generation |
| Running with systemd | Production deployment |
| CLI Commands | Command reference |
| FAQ | Common questions |
| Power Events | Guide to running with Power Events |
| Lid Events | Guide to running with Lid Events |
| Dynamic Profile Modes | Guide to making dynamic profile modes |
| Prepare Command | Do I need hyprdynamicmonitors prepare? |
| Make it yours! | How to apply/generate a theme |
See the examples/ directory for complete configuration examples:
| Example | Description |
|---|---|
| Basic Setup | Simple laptop configuration |
| Full Configuration | All available options |
| Power States | AC/battery-aware profiles |
| Lid States | Laptop lid detection |
| Template Variables | Dynamic templates |
| Disable Monitors | Managing unexpected displays |
- Hyprland with IPC support
- UPower (required on laptops, unless
--disable-power-eventsis passed, for power state monitoring) - D-Bus access (required if power events, lid state or notifications are enabled)
Similar tools worth checking out:
- kanshi - Generic Wayland output management
- shikane - Another Wayland output manager
- nwg-displays - GUI-based display configuration tool
- hyprmon - TUI-based display configuration tool
HyprDynamicMonitors is Hyprland-specific but offers deeper integration, an interactive TUI, template system, and power state awareness. See Introduction for a detailed comparison.
If you find HyprDynamicMonitors useful and want to support its development, consider buying me a coffee on Ko-fi. Your support helps keep the project maintained and enables new features. Thank you!
See LICENSE file.




