Initial commit: hypr-rdp Control bar widget
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
This commit is contained in:
86
README.md
Normal file
86
README.md
Normal file
@@ -0,0 +1,86 @@
|
||||
# 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).
|
||||
Reference in New Issue
Block a user