Toggles the hypr-rdp systemd --user service, isolates its headless monitor's workspace via Omarchy's toggle-flag convention, shows what's running on that workspace, and manages hypr-rdp's connection credentials. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MLfSWFEMyY85ZDWEYicdaF
87 lines
3.7 KiB
Markdown
87 lines
3.7 KiB
Markdown
# hypr-rdp Control
|
|
|
|
Bar widget for [hypr-rdp](https://github.com/MuNeNICK/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](https://omarchy.org) on Hyprland
|
|
- [hypr-rdp](https://github.com/MuNeNICK/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/jandieman.hypr-rdp/`
|
|
2. `omarchy plugin enable jandieman.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 jandieman.hypr-rdp
|
|
omarchy plugin remove jandieman.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](LICENSE).
|