# NoSignal — monitor control with hyprmoncfg Adds [hyprmoncfg](https://github.com/crmne/hyprmoncfg) (AUR `hyprmoncfg`, v1.7.0 at time of writing, MIT) — a terminal-first monitor configurator and auto-switching daemon for Hyprland. ## What a user gets - **`Super+Ctrl+H`** (Omarchy's "hardware" slot) → spatial layout editor in a floating terminal: drag monitors into place, set mode/scale/VRR/mirror/ transform, press `s` to save a named profile (`desk`, `tv`, …). - **`hyprmoncfg apply `** from any terminal. - **`hyprmoncfgd`** (systemd user service) — applies the right profile automatically on monitor hotplug and laptop lid open/close. Profiles match on monitor make/model/serial, not unstable connector names. - Safe apply: reloads Hyprland, verifies, reverts unless confirmed. ## Why it fits NoSignal hyprmoncfg writes `~/.config/hypr/monitors.conf` and **refuses to write the file unless Hyprland actually sources it** — and the NoSignal base already sources exactly that file from `hypr-user.conf` (it's the same file `nwg-displays` wrote). So the include chain is already in place. **hyprmoncfg replaces nwg-displays** — it covers layout *and* workspace assignment (nwg-displays' two jobs) and adds profiles + the daemon; a single writer of `monitors.conf` avoids the two tools fighting over the file. ## Files | File | Role | |------|------| | `install-monitor-control.sh` | idempotent installer — installs `hyprmoncfg` (bootstraps yay if needed), verifies the `monitors.conf` source line, appends the bind, enables `hyprmoncfgd` | | `hyprland-monitor-control.conf` | `Super+Ctrl+H` bind → appended to `hypr-user.conf` (reuses the base's `TUI.float` window rule: floating 1100×700) | ```sh sh ~/Downloads/monitor-control/install-monitor-control.sh ``` Also wired into `nosignal-update` as migration `1781233200-monitor-control.sh`. ## Packaging - Add `hyprmoncfg` to the package list (AUR). - Enable the user service in the skeleton: `systemctl --user enable hyprmoncfgd` (or a presets entry). - The bind lands via `hypr-user.conf` like the other NoSignal binds. - **Remove `nwg-displays` from the package list** (superseded — see above), but keep the empty pre-created `monitors.conf` / `workspaces.conf` and their `source =` lines. - Note: the daemon scores **every** profile in `~/.config/hyprmoncfg/profiles/` — don't pre-seed junk profiles in the image.