Files
barbar/crates/common/src/config.rs
T
2026-09-16 11:06:12 +01:00

44 lines
1.0 KiB
Rust

use serde::{Deserialize, Serialize};
use toml::Table;
use crate::display::Display;
#[derive(Serialize, Deserialize)]
pub struct BarbarConfig {
#[serde(default)]
pub display: Display,
pub ups: Option<i32>, // Updates per second
pub order: ModuleOrder,
pub modules: Option<Table>, // 'clock': [clock settings]
pub services: Option<Table>, // 'clockticker': [clockticker settings]
}
#[derive(serde::Deserialize, Serialize, Clone, Copy, Debug)]
#[serde(rename_all = "lowercase")]
pub enum Modules {
Audio,
Battery,
Clock,
Weather,
Workspaces,
}
impl Modules {
pub fn to_string(&self) -> &str {
match self {
Modules::Audio => "audio",
Modules::Battery => "battery",
Modules::Clock => "clock",
Modules::Weather => "weather",
Modules::Workspaces => "workspaces",
}
}
}
#[derive(Deserialize, Serialize, Clone)]
pub struct ModuleOrder {
pub left: Vec<Modules>,
pub middle: Vec<Modules>,
pub right: Vec<Modules>,
}