* Install gliff by default
Gliff is the Hyprland remote desktop over SSH. Ship it in the base
package set for new installs, with a migration for existing ones.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
* Show a bar indicator while a gliff remote session is active
The machine being controlled should make it obvious that someone is on
it. A first-party remote-session service watches Hyprland's screencast
events, which gliff-server triggers through ext-image-copy-capture, and
probes for the server process, picking up the ssh client address from
its environment. The RemoteSession indicator in the default tray lights
up in the urgent colour while a session runs, and a notification
announces each session start and end.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
* Address review of the remote session indicator
Probe only the current user's gliff-server processes, forward refresh
through the third-party service proxy so cloned indicator widgets can
re-probe, exercise the Hyprland screencast event path in the service
test with a grim capture instead of calling refresh by hand, and
describe the indicator as status only in the manual.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
* Drop the remote session notifications
The bar indicator is the signal; a toast on every connect and
disconnect is noise on top of it.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
* Tighten remote session detection after review
Hyprland reports a screencast stopped as soon as frames pause for half a
second and says nothing more when the server later exits, so poll every
two seconds while a session is active instead of trusting a stop event.
Match only the screencast event, not its screencastv2 twin, and debounce
the burst around one transition so it costs one probe. Move the probe
into its own script that the service and the test both run, poll for
state in the service test instead of fixed delays, and drop the unused
session count.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
---------
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
* Add selectable dictation backends
* Move dictation migration after repository priority update
* Extract backend-specific dictation installers
* Keep dictation installer dispatcher executable
* Call dictation backend installers directly
* Drop legacy Superwhisper migration and runtime cleanup
* Separate dictation defaults from generic recording protocol
* Add backend-specific dictation removers
* Preserve existing Voxtype selection during upgrade
* Make dictation backend selection safe and retryable
* Show the dictation indicator only for selected Voxtype
* Allow switching away from stopped Superwhisper
* Remove the built-in bar dictation indicator
* Store default dictation selection under defaults
* Rename dictation backend selector to use
* Move dictation removers into their own menu category
* Let users choose passwordless sudo duration
* Warn in the menu bar when passwordless sudo is active
* Fix sudo indicator hover behavior and repeated authentication
* Disable passwordless sudo from the bar without a terminal
* Shorten passwordless sudo indicator tooltip
* Recover interrupted passwordless sudo duration switches
* Allow sudo grant changes when listings require authentication
* Start passwordless sudo setup with the duration question
The lineup now reads toward the clock instead of away from it, so Stay
Awake sits nearest the time, then do-not-disturb, night light, reminder,
screen recording, dictation, and tmux alerts trailing off to the left.
Active indicators render after the hover-revealed ones so they stay
against the clock, and a newly active indicator joins on the far side
rather than shoving the ones already showing sideways.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Show a bar indicator whenever tmux has flagged a window, the same state
that highlights the tab, and jump to it on click or with Super + Ctrl + J.
Tmux hooks push the state to the shell, so nothing polls while no pane is
waiting.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>