Skip to content

fiffeek/hyprdynamicmonitors

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

hyprdynamicmonitors logo

HyprDynamicMonitors


Documentation Release Downloads License Code Size Go Version AUR version Go Report Card Build Codecov

An event-driven service with an interactive TUI that automatically manages Hyprland monitor configurations based on connected displays, power and lid state.

Preview

TUI theming

TUI demo in default theme

TUI demo

Daemon Response to Power State Events

power events demo

Daemon and TUI Response to Laptop Lid Events

lid tui events demo

Dynamic Profile Modes depending on the user context

A full guide is available at Dynamic Profile Modes.

Dynamic Profile Modes

Table Of Contents

Features

  • 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

Quick Start

Installation

# 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/hyprdynamicmonitors

See the Installation Guide for more options.

Setup

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.service

Ensure 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.service

For detailed setup instructions, see the Quick Start Guide.

Caution

For production environments prefer running with systemd (guide).

Documentation

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

Examples

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

Runtime Requirements

  • Hyprland with IPC support
  • UPower (required on laptops, unless --disable-power-events is passed, for power state monitoring)
  • D-Bus access (required if power events, lid state or notifications are enabled)

Alternative Software

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.

Support

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!

License

See LICENSE file.