{"id":32070043,"url":"https://github.com/fiffeek/hyprdynamicmonitors","last_synced_at":"2026-01-14T19:38:37.054Z","repository":{"id":312923512,"uuid":"1043449158","full_name":"fiffeek/hyprdynamicmonitors","owner":"fiffeek","description":"In short: Autorandr+Arandr for Hyprland. Manage Hyprland configuration based on connected displays, power and lid state.","archived":false,"fork":false,"pushed_at":"2025-11-26T23:58:38.000Z","size":145216,"stargazers_count":233,"open_issues_count":12,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-11-29T18:20:11.094Z","etag":null,"topics":["display","displays","hyprland","monitor","wayland"],"latest_commit_sha":null,"homepage":"https://fiffeek.github.io/hyprdynamicmonitors/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fiffeek.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"ko_fi":"filipmikina"}},"created_at":"2025-08-23T21:59:27.000Z","updated_at":"2025-11-28T18:51:27.000Z","dependencies_parsed_at":"2025-09-02T21:24:54.920Z","dependency_job_id":"f1017ef0-8ba2-4585-8c27-3f9b27b74168","html_url":"https://github.com/fiffeek/hyprdynamicmonitors","commit_stats":null,"previous_names":["fiffeek/hyprdynamicmonitors"],"tags_count":28,"template":false,"template_full_name":null,"purl":"pkg:github/fiffeek/hyprdynamicmonitors","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fiffeek%2Fhyprdynamicmonitors","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fiffeek%2Fhyprdynamicmonitors/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fiffeek%2Fhyprdynamicmonitors/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fiffeek%2Fhyprdynamicmonitors/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fiffeek","download_url":"https://codeload.github.com/fiffeek/hyprdynamicmonitors/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fiffeek%2Fhyprdynamicmonitors/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28432659,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T18:57:19.464Z","status":"ssl_error","status_checked_at":"2026-01-14T18:52:48.501Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["display","displays","hyprland","monitor","wayland"],"created_at":"2025-10-19T04:01:18.565Z","updated_at":"2026-01-14T19:38:37.046Z","avatar_url":"https://github.com/fiffeek.png","language":"Go","funding_links":["https://ko-fi.com/filipmikina"],"categories":["Tools"],"sub_categories":["Display"],"readme":"\n\u003cimg src=\"https://github.com/user-attachments/assets/0effc242-3d3d-4d39-a183-0a567c4da3a9\" width=\"90\" style=\"margin-right:10px\" align=left alt=\"hyprdynamicmonitors logo\"\u003e\n\u003cH1\u003eHyprDynamicMonitors\u003c/H1\u003e\u003cbr\u003e\n\n\n[![Documentation](https://img.shields.io/badge/docs-fiffeek.github.io-blue)](https://fiffeek.github.io/hyprdynamicmonitors/)\n![Release](https://img.shields.io/github/v/release/fiffeek/hyprdynamicmonitors.svg?style=flat)\n![Downloads](https://img.shields.io/github/downloads/fiffeek/hyprdynamicmonitors/total.svg?style=flat)\n![License](https://img.shields.io/github/license/fiffeek/hyprdynamicmonitors.svg?style=flat)\n![Code Size](https://img.shields.io/github/languages/code-size/fiffeek/hyprdynamicmonitors.svg?style=flat)\n![Go Version](https://img.shields.io/github/go-mod/go-version/fiffeek/hyprdynamicmonitors?style=flat)\n![AUR version](https://img.shields.io/aur/version/hyprdynamicmonitors-bin?style=flat\u0026label=AUR)\n![Go Report Card](https://goreportcard.com/badge/github.com/fiffeek/hyprdynamicmonitors)\n![Build](https://img.shields.io/github/actions/workflow/status/fiffeek/hyprdynamicmonitors/test.yaml?branch=main\u0026style=flat)\n[![Codecov](https://codecov.io/github/fiffeek/hyprdynamicmonitors/graph/badge.svg?token=HZONCOKJTE)](https://codecov.io/github/fiffeek/hyprdynamicmonitors)\n\nAn event-driven service with an interactive TUI that automatically manages Hyprland monitor configurations based on connected displays, power and lid state.\n\n\n## Preview\n\n\n![TUI theming](./preview/output/themes-showcase.gif)\n\n\u003cdetails\u003e\n\u003csummary\u003eTUI demo in default theme\u003c/summary\u003e\n\n![TUI demo](./preview/output/demo.gif)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eDaemon Response to Power State Events\u003c/summary\u003e\n\n![power events demo](./preview/output/power_events.gif)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eDaemon and TUI Response to Laptop Lid Events\u003c/summary\u003e\n\n![lid tui events demo](./preview/output/lid_tui.gif)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eDynamic Profile Modes depending on the user context\u003c/summary\u003e\n\nA full guide is available at [Dynamic Profile Modes](https://fiffeek.github.io/hyprdynamicmonitors/docs/guides/ad-hoc).\n\n![Dynamic Profile Modes](./preview/output/ad-hoc.gif)\n\n\u003c/details\u003e\n\n## Table Of Contents\n\n\u003c!--ts--\u003e\n* [HyprDynamicMonitors](#hyprdynamicmonitors)\n   * [Preview](#preview)\n   * [Table Of Contents](#table-of-contents)\n   * [Features](#features)\n   * [Quick Start](#quick-start)\n      * [Installation](#installation)\n      * [Setup](#setup)\n   * [Documentation](#documentation)\n   * [Examples](#examples)\n   * [Runtime Requirements](#runtime-requirements)\n   * [Alternative Software](#alternative-software)\n   * [Support](#support)\n   * [License](#license)\n\u003c!--te--\u003e\n\n## Features\n\n- **Event-driven architecture** responding to monitor, power and lid state changes in real-time\n- **Interactive TUI** for visual monitor configuration and profile management\n- **Profile-based configuration** with different settings for different monitor setups\n- **Template support** for dynamic configuration generation\n- **Hot reloading** automatically detects and applies configuration changes without restart (optional)\n- **Power state awareness** built-in AC/battery detection for laptop users (optional)\n- **Lid state awareness** built-in lid state detection for laptop users (optional)\n- **Desktop notifications** for configuration changes (optional)\n- **Theming support** for built-in themes and dynamic generation from wallpapers\n\n## Quick Start\n\n### Installation\n\n```bash\n# Binary release\nexport DESTDIR=\"$HOME/.local/bin\"  # optional, defaults to ~/.local/bin/\ncurl -o- https://raw.githubusercontent.com/fiffeek/hyprdynamicmonitors/refs/heads/main/scripts/install.sh | bash\n\n# AUR (Arch Linux)\n$aurHelper -S hyprdynamicmonitors-bin\n\n# Nix, for flakes/modules see: https://hyprdynamicmonitors.filipmikina.com/docs/advanced/systemd#nix\nnix run github:fiffeek/hyprdynamicmonitors\n```\n\nSee the [Installation Guide](https://fiffeek.github.io/hyprdynamicmonitors/docs/quickstart/installation) for more options.\n\n### Setup\n\nThe easiest way to get started is using the TUI (see the [Getting started with the TUI](https://hyprdynamicmonitors.filipmikina.com/docs/quickstart/tui/) guide):\n\n```bash\n# Launch the interactive TUI\nhyprdynamicmonitors tui\n\n# Configure your monitors visually\n# Press 'Tab' to switch to Profile view\n# Press 'n' to create a new profile\n# For getting started see: https://hyprdynamicmonitors.filipmikina.com/docs/quickstart/tui/\n```\n\nThen add to your `~/.config/hypr/hyprland.conf` (alternatively, see [Running with systemd](https://fiffeek.github.io/hyprdynamicmonitors/docs/advanced/systemd) guide):\n\n```bash\n# Source the generated monitor configuration\nsource = ~/.config/hypr/monitors.conf\n\n# Run the daemon for automatic profile switching\nexec-once = hyprdynamicmonitors run\n\n# or use systemd instead\n# see: https://fiffeek.github.io/hyprdynamicmonitors/docs/advanced/systemd\n# systemctl --user enable --now hyprdynamicmonitors.service\n```\n\nEnsure you're running `hyprdynamicmonitors prepare` prior to running Hyprland (see [the guide and the why](https://fiffeek.github.io/hyprdynamicmonitors/docs/advanced/prepare)):\n```bash\n# e.g. from a tty:\nhyprdynamicmonitors prepare \u0026\u0026 Hyprland\n# or use systemd\n# systemctl --user enable hyprdynamicmonitors-prepare.service\n```\n\nFor detailed setup instructions, see the [Quick Start Guide](https://fiffeek.github.io/hyprdynamicmonitors/docs/category/quick-start).\n\n\u003e [!CAUTION]\n\u003e For production environments prefer running with `systemd` ([guide](https://fiffeek.github.io/hyprdynamicmonitors/docs/advanced/systemd)).\n\n## Documentation\n\n**Full documentation is available at [fiffeek.github.io/hyprdynamicmonitors](https://fiffeek.github.io/hyprdynamicmonitors/)**\n\nKey topics:\n\n| Topic | Description |\n|-------|-------------|\n| [Quick Start](https://fiffeek.github.io/hyprdynamicmonitors/docs/category/quick-start) | Get up and running quickly |\n| [TUI Guide](https://fiffeek.github.io/hyprdynamicmonitors/docs/quickstart/tui) | Interactive monitor configuration |\n| [Configuration](https://fiffeek.github.io/hyprdynamicmonitors/docs/category/configuration) | Profiles, monitors, and power management |\n| [Templates](https://fiffeek.github.io/hyprdynamicmonitors/docs/advanced/templates) | Dynamic configuration generation |\n| [Running with systemd](https://fiffeek.github.io/hyprdynamicmonitors/docs/advanced/systemd) | Production deployment |\n| [CLI Commands](https://fiffeek.github.io/hyprdynamicmonitors/docs/usage/commands) | Command reference |\n| [FAQ](https://fiffeek.github.io/hyprdynamicmonitors/docs/faq) | Common questions |\n| [Power Events](https://fiffeek.github.io/hyprdynamicmonitors/docs/guides/power-events) | Guide to running with Power Events |\n| [Lid Events](https://fiffeek.github.io/hyprdynamicmonitors/docs/guides/lid-events) | Guide to running with Lid Events |\n| [Dynamic Profile Modes](https://fiffeek.github.io/hyprdynamicmonitors/docs/guides/ad-hoc) | Guide to making dynamic profile modes |\n| [Prepare Command](https://fiffeek.github.io/hyprdynamicmonitors/docs/advanced/prepare) | Do I need `hyprdynamicmonitors prepare`? |\n| [Make it yours!](https://fiffeek.github.io/hyprdynamicmonitors/docs/configuration/theming) | How to apply/generate a theme |\n\n## Examples\n\nSee the [`examples/`](https://github.com/fiffeek/hyprdynamicmonitors/tree/main/examples) directory for complete configuration examples:\n\n| Example | Description |\n|---------|-------------|\n| [Basic Setup](https://github.com/fiffeek/hyprdynamicmonitors/tree/main/examples/basic) | Simple laptop configuration |\n| [Full Configuration](https://github.com/fiffeek/hyprdynamicmonitors/tree/main/examples/full) | All available options |\n| [Power States](https://github.com/fiffeek/hyprdynamicmonitors/tree/main/examples/power-states) | AC/battery-aware profiles |\n| [Lid States](https://github.com/fiffeek/hyprdynamicmonitors/tree/main/examples/lid-states) | Laptop lid detection |\n| [Template Variables](https://github.com/fiffeek/hyprdynamicmonitors/tree/main/examples/template-variables) | Dynamic templates |\n| [Disable Monitors](https://github.com/fiffeek/hyprdynamicmonitors/tree/main/examples/disable-monitors) | Managing unexpected displays |\n\n## Runtime Requirements\n\n- Hyprland with IPC support\n- UPower (required on laptops, unless `--disable-power-events` is passed, for power state monitoring)\n- D-Bus access (required if power events, lid state or notifications are enabled)\n\n## Alternative Software\n\nSimilar tools worth checking out:\n- [kanshi](https://sr.ht/~emersion/kanshi/) - Generic Wayland output management\n- [shikane](https://github.com/hw0lff/shikane) - Another Wayland output manager\n- [nwg-displays](https://github.com/nwg-piotr/nwg-displays) - GUI-based display configuration tool\n- [hyprmon](https://github.com/erans/hyprmon) - TUI-based display configuration tool\n\nHyprDynamicMonitors is Hyprland-specific but offers deeper integration, an interactive TUI, template system, and power state awareness. See [Introduction](https://fiffeek.github.io/hyprdynamicmonitors/docs/) for a detailed comparison.\n\n## Support\n\nIf you find HyprDynamicMonitors useful and want to support its development, consider buying me a coffee on [Ko-fi](https://ko-fi.com/filipmikina). Your support helps keep the project maintained and enables new features. Thank you!\n\n## License\n\nSee [LICENSE](LICENSE) file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffiffeek%2Fhyprdynamicmonitors","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffiffeek%2Fhyprdynamicmonitors","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffiffeek%2Fhyprdynamicmonitors/lists"}