#[non_exhaustive]
pub enum Event {
Show 14 variants Geometry { x: i32, y: i32, physical_width: i32, physical_height: i32, subpixel: i32, make: String, model: String, transform: i32, }, Mode { flags: u32, width: i32, height: i32, refresh: i32, mode_id: i32, }, Done, Scale { factor: i32, }, Edid { raw: String, }, Enabled { enabled: i32, }, Uuid { uuid: String, }, Scalef { factor: f64, }, Colorcurves { red: Vec<u8>, green: Vec<u8>, blue: Vec<u8>, }, SerialNumber { serialNumber: String, }, EisaId { eisaId: String, }, Capabilities { flags: WEnum<Capability>, }, Overscan { overscan: u32, }, VrrPolicy { vrr_policy: WEnum<VrrPolicy>, },
}

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

Geometry

geometric properties of the output

The geometry event describes geometric properties of the output. The event is sent when binding to the output object and whenever any of the properties change.

Fields

§x: i32

x position within the global compositor space

§y: i32

y position within the global compositor space

§physical_width: i32

width in millimeters of the output

§physical_height: i32

height in millimeters of the output

§subpixel: i32

subpixel orientation of the output

§make: String

textual description of the manufacturer

§model: String

textual description of the model

§transform: i32

transform that maps framebuffer to output

§

Mode

advertise available output modes and current one

The mode event describes an available mode for the output.

When the client binds to the outputdevice object, the server sends this event once for every available mode the outputdevice can be operated by.

There will always be at least one event sent out on initial binding, which represents the current mode.

Later on if an output changes its mode the event is sent again, whereby this event represents the mode that has now become current. In other words, the current mode is always represented by the latest event sent with the current flag set.

The size of a mode is given in physical hardware units of the output device. This is not necessarily the same as the output size in the global compositor space. For instance, the output may be scaled, as described in org_kde_kwin_outputdevice.scale, or transformed, as described in org_kde_kwin_outputdevice.transform.

The id can be used to refer to a mode when calling set_mode on an org_kde_kwin_outputconfiguration object.

Fields

§flags: u32

bitfield of mode flags

§width: i32

width of the mode in hardware units

§height: i32

height of the mode in hardware units

§refresh: i32

vertical refresh rate in mHz

§mode_id: i32

Per outputdevice unique id to identify a mode

§

Done

sent all information about output

This event is sent after all other properties have been sent on binding to the output object as well as after any other output property change have been applied later on. This allows to see changes to the output properties as atomic, even if multiple events successively announce them.

§

Scale

output scaling properties

This event contains scaling geometry information that is not in the geometry event. It may be sent after binding the output object or if the output scale changes later. If it is not sent, the client should assume a scale of 1.

A scale larger than 1 means that the compositor will automatically scale surface buffers by this amount when rendering. This is used for high resolution displays where applications rendering at the native resolution would be too small to be legible.

It is intended that scaling aware clients track the current output of a surface, and if it is on a scaled output it should use wl_surface.set_buffer_scale with the scale of the output. That way the compositor can avoid scaling the surface, and the client can supply a higher detail image.

Fields

§factor: i32

scaling factor of output

§

Edid

advertise EDID data for the output

The edid event encapsulates the EDID data for the outputdevice.

The event is sent when binding to the output object. The EDID data may be empty, in which case this event is sent anyway. If the EDID information is empty, you can fall back to the name et al. properties of the outputdevice.

Fields

§raw: String

base64-encoded EDID string

§

Enabled

output is enabled or disabled

The enabled event notifies whether this output is currently enabled and used for displaying content by the server. The event is sent when binding to the output object and whenever later on an output changes its state by becoming enabled or disabled.

Fields

§enabled: i32

output enabled state

§

Uuid

A unique id for this outputdevice

The uuid can be used to identify the output. It’s controlled by the server entirely. The server should make sure the uuid is persistent across restarts. An empty uuid is considered invalid.

Fields

§uuid: String

output devices ID

§

Scalef

output scaling properties

This event contains scaling geometry information that is not in the geometry event. It may be sent after binding the output object or if the output scale changes later. If it is not sent, the client should assume a scale of 1.

A scale larger than 1 means that the compositor will automatically scale surface buffers by this amount when rendering. This is used for high resolution displays where applications rendering at the native resolution would be too small to be legible.

It is intended that scaling aware clients track the current output of a surface, and if it is on a scaled output it should use wl_surface.set_buffer_scale with the scale of the output. That way the compositor can avoid scaling the surface, and the client can supply a higher detail image.

wl_output will keep the output scale as an integer. In every situation except configuring the window manager you want to use that.

Only available since version 2 of the interface

Fields

§factor: f64

scaling factor of output

§

Colorcurves

output color curves

Describes the color intensity profile of the output. Commonly used for gamma/color correction.

The array contains all color ramp values of the output. For example on 8bit screens there are 256 of them.

The array elements are unsigned 16bit integers.

Only available since version 2 of the interface

Fields

§red: Vec<u8>

red color ramp

§green: Vec<u8>

green color ramp

§blue: Vec<u8>

blue color ramp

§

SerialNumber

Serial Number

Serial ID of the monitor, sent on startup before the first done event.

Only available since version 2 of the interface

Fields

§serialNumber: String

textual representation of serial number

§

EisaId

EISA ID

EISA ID of the monitor, sent on startup before the first done event.

Only available since version 2 of the interface

Fields

§eisaId: String

textual representation of EISA identifier

§

Capabilities

capability flags

What capabilities this device has, sent on startup before the first done event.

Only available since version 3 of the interface

Fields

§

Overscan

overscan

Overscan value of the monitor in percent, sent on startup before the first done event.

Only available since version 3 of the interface

Fields

§overscan: u32

amount of overscan of the monitor

§

VrrPolicy

Variable Refresh Rate Policy

What policy the compositor will employ regarding its use of variable refresh rate.

Only available since version 4 of the interface

Fields

§vrr_policy: WEnum<VrrPolicy>

Implementations§

source§

impl Event

source

pub fn opcode(&self) -> u16

Get the opcode number of this message

Trait Implementations§

source§

impl Debug for Event

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for Event

§

impl RefUnwindSafe for Event

§

impl Send for Event

§

impl Sync for Event

§

impl Unpin for Event

§

impl UnwindSafe for Event

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> Downcast for T
where T: Any,

source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

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

§

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.