use crate::config::{CommonConfig, TruncateMode}; use crate::gtk_helpers::IronbarLabelExt; use crate::modules::{Module, ModuleInfo, ModuleParts, ModuleUpdateEvent, WidgetContext}; use crate::{await_sync, glib_recv, module_impl, try_send}; use color_eyre::{Report, Result}; use gtk::prelude::*; use gtk::Label; use serde::Deserialize; use swayipc_async::ModeEvent; use tokio::sync::mpsc; use tracing::{info, trace}; #[derive(Debug, Deserialize, Clone)] #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] pub struct SwayModeModule { // -- Common -- /// See [truncate options](module-level-options#truncate-mode). /// /// **Default**: `null` pub truncate: Option, /// See [common options](module-level-options#common-options). #[serde(flatten)] pub common: Option, } impl Module