2023-08-29 13:49:41 -07:00
|
|
|
// SPDX-License-Identifier: GPL-3.0-only
|
|
|
|
|
|
2023-12-20 16:52:44 -08:00
|
|
|
use cosmic_config::{cosmic_config_derive::CosmicConfigEntry, CosmicConfigEntry};
|
2023-08-29 13:49:41 -07:00
|
|
|
use serde::{Deserialize, Serialize};
|
2023-12-20 16:52:44 -08:00
|
|
|
use std::collections::HashMap;
|
2023-08-29 13:49:41 -07:00
|
|
|
|
|
|
|
|
pub mod input;
|
2023-09-07 13:28:08 -07:00
|
|
|
pub mod workspace;
|
2023-08-29 13:49:41 -07:00
|
|
|
|
2023-12-20 16:52:44 -08:00
|
|
|
#[derive(Clone, Debug, Default, PartialEq, CosmicConfigEntry)]
|
|
|
|
|
pub struct CosmicCompConfig {
|
|
|
|
|
pub workspaces: workspace::WorkspaceConfig,
|
|
|
|
|
pub input_default: input::InputConfig,
|
|
|
|
|
pub input_touchpad: input::InputConfig,
|
|
|
|
|
pub input_devices: HashMap<String, input::InputConfig>,
|
|
|
|
|
pub xkb_config: XkbConfig,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
|
2023-08-29 13:49:41 -07:00
|
|
|
pub struct XkbConfig {
|
|
|
|
|
pub rules: String,
|
|
|
|
|
pub model: String,
|
|
|
|
|
pub layout: String,
|
|
|
|
|
pub variant: String,
|
|
|
|
|
pub options: Option<String>,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl Default for XkbConfig {
|
|
|
|
|
fn default() -> XkbConfig {
|
|
|
|
|
XkbConfig {
|
|
|
|
|
rules: String::new(),
|
|
|
|
|
model: String::new(),
|
|
|
|
|
layout: String::new(),
|
|
|
|
|
variant: String::new(),
|
|
|
|
|
options: None,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|