pub struct Sway { /* private fields */ }Expand description
The Sway service, from cx.sway(). A clone is cheap and shares the
one connection.
Implementations§
Source§impl Sway
impl Sway
Sourcepub fn workspaces(&self) -> ReadSignal<Vec<Workspace>>
pub fn workspaces(&self) -> ReadSignal<Vec<Workspace>>
Every workspace on every output, in Sway’s order. Empty while Sway isn’t connected.
Sourcepub fn outputs(&self) -> ReadSignal<Vec<SwayOutput>>
pub fn outputs(&self) -> ReadSignal<Vec<SwayOutput>>
Every output, enabled or not, in Sway’s order, kept current from Sway’s output and workspace events. Empty while Sway isn’t connected. Sway is asked for them on the first call, so a bar that shows only workspaces never wakes for an output’s change.
Sourcepub fn changed_at(&self) -> Option<Instant>
pub fn changed_at(&self) -> Option<Instant>
When the workspace event that led to the current list arrived, so
the shell can log how long a switch took to reach the screen.
None for a list that followed no event, such as the first.
Sourcepub fn focus_workspace(&self, name: &str)
pub fn focus_workspace(&self, name: &str)
Switches to the workspace called name, as clicking it in swaybar
does. A name Sway reads as a keyword, such as next, is logged and
not sent, and so is a call while Sway isn’t connected. Sway’s
refusal is logged too.
Sourcepub fn dispatch(&self, command: &str)
pub fn dispatch(&self, command: &str)
Runs command as Sway commands, as swaymsg and Quickshell’s
I3.dispatch do, such as layout tabbed or [app_id=foot] kill.
It is sent as written, so quote a name that has spaces. A call while
Sway isn’t connected is logged and dropped, and so is a command over
4 MiB. Sway’s refusal is logged too.
Sourcepub fn on_event(
&self,
kinds: &[SwayEventKind],
handler: impl Fn(&SwayEvent) + 'static,
)
pub fn on_event( &self, kinds: &[SwayEventKind], handler: impl Fn(&SwayEvent) + 'static, )
Calls handler with each event of the kinds given, as Quickshell’s
I3IpcListener, for as long as the context cx.sway() was called on
lives. Sway is asked only for kinds some handler wants, so a handler
of mode changes never wakes the shell for a window’s.
Sway can’t unsubscribe, so once the last handler of a kind goes, the next event of that kind makes the service connect again without it. Events in between may be missed.
It runs on the main thread. If it panics, that is logged with where
on_event was called, and it isn’t called again. Called on a handle
whose context went, it logs that and does nothing.