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

87 lines
3.6 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/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](LICENSE).