Skip to main content

Sway

Struct Sway 

Source
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

Source

pub fn workspaces(&self) -> ReadSignal<Vec<Workspace>>

Every workspace on every output, in Sway’s order. Empty while Sway isn’t connected.

Source

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.

Source

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.

Source

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.

Source

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.

Source

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.

Trait Implementations§

Source§

impl Clone for Sway

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

§

impl !RefUnwindSafe for Sway

§

impl !Send for Sway

§

impl !Sync for Sway

§

impl !UnwindSafe for Sway

§

impl Forget for Sway

§

impl Freeze for Sway

§

impl Move for Sway

§

impl Unpin for Sway

§

impl UnsafeUnpin for Sway

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more