Files
omarchy-rdp-service/README.md
Johan 0819c2e3ba Rename plugin namespace from jandieman to dotjuice
Updates manifest id/author, the QML moduleName/ipcTarget, and every
doc reference to match.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MLfSWFEMyY85ZDWEYicdaF
2026-09-08 16:01:51 +01:00

3.6 KiB

hypr-rdp Control

Bar widget for hypr-rdp — start/stop it, keep its headless monitor from colliding with your normal workspaces, and manage its credentials, all from the Omarchy bar.

Requirements

  • Omarchy on Hyprland
  • hypr-rdp itself — the widget can install it for you (see below), or you can install it first via yay -S hypr-rdp-git / omarchy pkg aur add hypr-rdp-git

Install

  1. Copy (or clone) this repository into ~/.config/omarchy/plugins/dotjuice.hypr-rdp/
  2. omarchy plugin enable dotjuice.hypr-rdp --section right (or any bar section you prefer)

The widget appears immediately; no restart of Hyprland or the shell needed.

Remove

omarchy plugin disable dotjuice.hypr-rdp
omarchy plugin remove dotjuice.hypr-rdp

Removing the plugin does not touch hypr-rdp itself, its systemd --user service, or its config — it only removes the bar widget. If you also want those gone:

systemctl --user disable --now hypr-rdp.service
rm ~/.config/systemd/user/hypr-rdp.service
rm -f ~/.local/state/omarchy/toggles/hypr/hypr-rdp-isolation.lua
hyprctl reload
omarchy pkg drop hypr-rdp-git   # or hypr-rdp

What it does

  • Install: if hypr-rdp isn't on PATH, offers a button that opens a terminal running omarchy pkg aur add hypr-rdp-git (kept interactive since AUR builds need a sudo/makepkg prompt — this plugin never runs privileged commands itself).
  • Service: start/stop via a systemd --user unit (~/.config/systemd/user/hypr-rdp.service). Created automatically on first start if it doesn't already exist; never overwritten after that.
  • Monitor isolation: toggling this creates or removes ~/.local/state/omarchy/toggles/hypr/hypr-rdp-isolation.lua (Omarchy's standard toggle-flag convention — the same one omarchy toggle window-gaps uses), which pins an isolated workspace (default 11) to the hypr-rdp headless output via hl.workspace_rule, then runs hyprctl reload + hyprctl configerrors. On: Hyprland's normal workspace auto-assignment never reuses that workspace, so starting an RDP session can't silently steal one of your visible workspaces. Off: the headless output behaves like a normal display. Workspace-to-monitor binding is config-file-only in Hyprland (no live hyprctl keyword for it), so a flip takes effect the next time hypr-rdp (re)starts, not mid-session. If you already have your own hl.workspace_rule pinning a workspace to the hypr-rdp output in monitors.lua or elsewhere, remove it first — a leftover static rule will keep isolation on regardless of what the widget's toggle shows.
  • Workspace view: read-only list of windows on the isolated workspace, plus a Peek/Back button that temporarily swaps it onto whichever monitor you're on (hyprctl dispatch workspace <n>) and back.
  • Credentials: reads/writes bind, username, password in ~/.config/hypr-rdp/config.toml, leaving every other key and comment in that file untouched. hypr-rdp doesn't hot-reload its config, so a saved credential change needs a service restart to take effect.

Settings (poll interval, isolated workspace number) are in the plugin's bar-widget settings panel, backed by manifest.json's schema.

Permissions / capabilities

This plugin never calls sudo or pkexec itself. The one privileged path is the optional Install button, which opens a visible terminal running omarchy pkg aur add hypr-rdp-git — you see and approve any password prompt yourself, the same as running that command by hand.

License

MIT — see LICENSE.