NoSignal-OS/os updates/monitor-control/README.md
28allday 19fd794b6b NoSignal — fully-offline Arch → Hyprland desktop installer
Single-script builder (nosignal.sh) that turns a stock Arch Linux ISO into a
fully-offline installer for a themed Hyprland + caelestia (Quickshell) desktop:
matching SDDM greeter, Btrfs/Limine bootable snapshots, chwd-style GPU
detection, and a curated "os updates" layer (keybind cheatsheet, settings
panels, system polish, on-box management skill). See README.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21 11:03:10 +01:00

2.4 KiB
Executable file
Raw Blame History

NoSignal — monitor control with hyprmoncfg

Adds 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 <profile> 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 ~/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.