mirror of
https://github.com/LGUG2Z/komorebi.git
synced 2026-07-14 17:12:58 +02:00
refactor(schema): simplify defaults in static_config
This commit is contained in:
@@ -242,7 +242,9 @@ lazy_static! {
|
|||||||
|
|
||||||
pub static DEFAULT_WORKSPACE_PADDING: AtomicI32 = AtomicI32::new(10);
|
pub static DEFAULT_WORKSPACE_PADDING: AtomicI32 = AtomicI32::new(10);
|
||||||
pub static DEFAULT_CONTAINER_PADDING: AtomicI32 = AtomicI32::new(10);
|
pub static DEFAULT_CONTAINER_PADDING: AtomicI32 = AtomicI32::new(10);
|
||||||
|
pub static DEFAULT_RESIZE_DELTA: i32 = 50;
|
||||||
|
|
||||||
|
pub static DEFAULT_MOUSE_FOLLOWS_FOCUS: bool = true;
|
||||||
pub static INITIAL_CONFIGURATION_LOADED: AtomicBool = AtomicBool::new(false);
|
pub static INITIAL_CONFIGURATION_LOADED: AtomicBool = AtomicBool::new(false);
|
||||||
pub static CUSTOM_FFM: AtomicBool = AtomicBool::new(false);
|
pub static CUSTOM_FFM: AtomicBool = AtomicBool::new(false);
|
||||||
pub static SESSION_ID: AtomicU32 = AtomicU32::new(0);
|
pub static SESSION_ID: AtomicU32 = AtomicU32::new(0);
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ use crate::Axis;
|
|||||||
use crate::CrossBoundaryBehaviour;
|
use crate::CrossBoundaryBehaviour;
|
||||||
use crate::DATA_DIR;
|
use crate::DATA_DIR;
|
||||||
use crate::DEFAULT_CONTAINER_PADDING;
|
use crate::DEFAULT_CONTAINER_PADDING;
|
||||||
|
use crate::DEFAULT_MOUSE_FOLLOWS_FOCUS;
|
||||||
|
use crate::DEFAULT_RESIZE_DELTA;
|
||||||
use crate::DEFAULT_WORKSPACE_PADDING;
|
use crate::DEFAULT_WORKSPACE_PADDING;
|
||||||
use crate::DISPLAY_INDEX_PREFERENCES;
|
use crate::DISPLAY_INDEX_PREFERENCES;
|
||||||
use crate::FLOATING_APPLICATIONS;
|
use crate::FLOATING_APPLICATIONS;
|
||||||
@@ -106,25 +108,6 @@ use std::sync::atomic::Ordering;
|
|||||||
use uds_windows::UnixListener;
|
use uds_windows::UnixListener;
|
||||||
use uds_windows::UnixStream;
|
use uds_windows::UnixStream;
|
||||||
|
|
||||||
mod defaults {
|
|
||||||
pub const RESIZE_DELTA: i32 = 50;
|
|
||||||
pub const BORDER_WIDTH: i32 = 8;
|
|
||||||
pub const BORDER_OFFSET: i32 = -1;
|
|
||||||
pub const BORDER_ENABLED: bool = true;
|
|
||||||
pub const TRANSPARENCY_ENABLED: bool = false;
|
|
||||||
pub const TRANSPARENCY_ALPHA: u8 = 200;
|
|
||||||
pub const DEFAULT_WORKSPACE_PADDING: i32 = 10;
|
|
||||||
pub const DEFAULT_CONTAINER_PADDING: i32 = 10;
|
|
||||||
pub const MOUSE_FOLLOWS_FOCUS: bool = true;
|
|
||||||
pub const FLOAT_OVERRIDE: bool = false;
|
|
||||||
pub const TILE: bool = true;
|
|
||||||
pub const APPLY_WINDOW_BASED_WORK_AREA_OFFSET: bool = true;
|
|
||||||
pub const WINDOW_BASED_WORK_AREA_OFFSET_LIMIT: isize = 1;
|
|
||||||
pub const GENERATE_THEME: bool = true;
|
|
||||||
pub const ANIMATION_FPS: u64 = 60;
|
|
||||||
pub const SLOW_APPLICATION_COMPENSATION_TIME: u64 = 20;
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
|
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
|
||||||
#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
|
#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
|
||||||
/// Border colours for different container states
|
/// Border colours for different container states
|
||||||
@@ -209,7 +192,7 @@ pub struct Wallpaper {
|
|||||||
pub path: PathBuf,
|
pub path: PathBuf,
|
||||||
/// Generate and apply Base16 theme for this wallpaper
|
/// Generate and apply Base16 theme for this wallpaper
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
#[cfg_attr(feature = "schemars", schemars(extend("default" = defaults::GENERATE_THEME)))]
|
#[cfg_attr(feature = "schemars", schemars(extend("default" = true)))]
|
||||||
pub generate_theme: Option<bool>,
|
pub generate_theme: Option<bool>,
|
||||||
/// Specify Light or Dark variant for theme generation
|
/// Specify Light or Dark variant for theme generation
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
@@ -262,7 +245,7 @@ pub struct WorkspaceConfig {
|
|||||||
pub work_area_offset: Option<Rect>,
|
pub work_area_offset: Option<Rect>,
|
||||||
/// Apply this monitor's window-based work area offset
|
/// Apply this monitor's window-based work area offset
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
#[cfg_attr(feature = "schemars", schemars(extend("default" = defaults::APPLY_WINDOW_BASED_WORK_AREA_OFFSET)))]
|
#[cfg_attr(feature = "schemars", schemars(extend("default" = true)))]
|
||||||
pub apply_window_based_work_area_offset: Option<bool>,
|
pub apply_window_based_work_area_offset: Option<bool>,
|
||||||
/// Determine what happens when a new window is opened
|
/// Determine what happens when a new window is opened
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
@@ -273,11 +256,11 @@ pub struct WorkspaceConfig {
|
|||||||
pub window_container_behaviour_rules: Option<HashMap<usize, WindowContainerBehaviour>>,
|
pub window_container_behaviour_rules: Option<HashMap<usize, WindowContainerBehaviour>>,
|
||||||
/// Enable or disable float override, which makes it so every new window opens in floating mode
|
/// Enable or disable float override, which makes it so every new window opens in floating mode
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
#[cfg_attr(feature = "schemars", schemars(extend("default" = defaults::FLOAT_OVERRIDE)))]
|
#[cfg_attr(feature = "schemars", schemars(extend("default" = false)))]
|
||||||
pub float_override: Option<bool>,
|
pub float_override: Option<bool>,
|
||||||
/// Enable or disable tiling for the workspace
|
/// Enable or disable tiling for the workspace
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
#[cfg_attr(feature = "schemars", schemars(extend("default" = defaults::TILE)))]
|
#[cfg_attr(feature = "schemars", schemars(extend("default" = true)))]
|
||||||
pub tile: Option<bool>,
|
pub tile: Option<bool>,
|
||||||
/// Specify an axis on which to flip the selected layout
|
/// Specify an axis on which to flip the selected layout
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
@@ -391,7 +374,7 @@ pub struct MonitorConfig {
|
|||||||
pub window_based_work_area_offset: Option<Rect>,
|
pub window_based_work_area_offset: Option<Rect>,
|
||||||
/// Open window limit after which the window based work area offset will no longer be applied
|
/// Open window limit after which the window based work area offset will no longer be applied
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
#[cfg_attr(feature = "schemars", schemars(extend("default" = defaults::WINDOW_BASED_WORK_AREA_OFFSET_LIMIT)))]
|
#[cfg_attr(feature = "schemars", schemars(extend("default" = 1)))]
|
||||||
pub window_based_work_area_offset_limit: Option<isize>,
|
pub window_based_work_area_offset_limit: Option<isize>,
|
||||||
/// Container padding (default: global)
|
/// Container padding (default: global)
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
@@ -476,7 +459,7 @@ pub struct StaticConfig {
|
|||||||
pub minimum_window_height: Option<i32>,
|
pub minimum_window_height: Option<i32>,
|
||||||
/// Delta to resize windows by
|
/// Delta to resize windows by
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
#[cfg_attr(feature = "schemars", schemars(extend("default" = defaults::RESIZE_DELTA)))]
|
#[cfg_attr(feature = "schemars", schemars(extend("default" = DEFAULT_RESIZE_DELTA)))]
|
||||||
pub resize_delta: Option<i32>,
|
pub resize_delta: Option<i32>,
|
||||||
/// Determine what happens when a new window is opened
|
/// Determine what happens when a new window is opened
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
@@ -484,7 +467,7 @@ pub struct StaticConfig {
|
|||||||
pub window_container_behaviour: Option<WindowContainerBehaviour>,
|
pub window_container_behaviour: Option<WindowContainerBehaviour>,
|
||||||
/// Enable or disable float override, which makes it so every new window opens in floating mode
|
/// Enable or disable float override, which makes it so every new window opens in floating mode
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
#[cfg_attr(feature = "schemars", schemars(extend("default" = defaults::FLOAT_OVERRIDE)))]
|
#[cfg_attr(feature = "schemars", schemars(extend("default" = false)))]
|
||||||
pub float_override: Option<bool>,
|
pub float_override: Option<bool>,
|
||||||
/// Determines what happens on a new window when on the `FloatingLayer`
|
/// Determines what happens on a new window when on the `FloatingLayer`
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
@@ -526,7 +509,7 @@ pub struct StaticConfig {
|
|||||||
pub focus_follows_mouse: Option<FocusFollowsMouseImplementation>,
|
pub focus_follows_mouse: Option<FocusFollowsMouseImplementation>,
|
||||||
/// Enable or disable mouse follows focus
|
/// Enable or disable mouse follows focus
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
#[cfg_attr(feature = "schemars", schemars(extend("default" = defaults::MOUSE_FOLLOWS_FOCUS)))]
|
#[cfg_attr(feature = "schemars", schemars(extend("default" = DEFAULT_MOUSE_FOLLOWS_FOCUS)))]
|
||||||
pub mouse_follows_focus: Option<bool>,
|
pub mouse_follows_focus: Option<bool>,
|
||||||
/// Path to applications.json from komorebi-application-specific-configurations
|
/// Path to applications.json from komorebi-application-specific-configurations
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
@@ -534,17 +517,17 @@ pub struct StaticConfig {
|
|||||||
/// Width of window borders
|
/// Width of window borders
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
#[serde(alias = "active_window_border_width")]
|
#[serde(alias = "active_window_border_width")]
|
||||||
#[cfg_attr(feature = "schemars", schemars(extend("default" = defaults::BORDER_WIDTH)))]
|
#[cfg_attr(feature = "schemars", schemars(extend("default" = border_manager::BORDER_WIDTH)))]
|
||||||
pub border_width: Option<i32>,
|
pub border_width: Option<i32>,
|
||||||
/// Offset of window borders
|
/// Offset of window borders
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
#[serde(alias = "active_window_border_offset")]
|
#[serde(alias = "active_window_border_offset")]
|
||||||
#[cfg_attr(feature = "schemars", schemars(extend("default" = defaults::BORDER_OFFSET)))]
|
#[cfg_attr(feature = "schemars", schemars(extend("default" = border_manager::BORDER_OFFSET)))]
|
||||||
pub border_offset: Option<i32>,
|
pub border_offset: Option<i32>,
|
||||||
/// Display window borders
|
/// Display window borders
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
#[serde(alias = "active_window_border")]
|
#[serde(alias = "active_window_border")]
|
||||||
#[cfg_attr(feature = "schemars", schemars(extend("default" = defaults::BORDER_ENABLED)))]
|
#[cfg_attr(feature = "schemars", schemars(extend("default" = border_manager::BORDER_ENABLED)))]
|
||||||
pub border: Option<bool>,
|
pub border: Option<bool>,
|
||||||
/// Window border colours for different container types (has no effect if [`theme`] is defined)
|
/// Window border colours for different container types (has no effect if [`theme`] is defined)
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
@@ -565,22 +548,22 @@ pub struct StaticConfig {
|
|||||||
pub border_implementation: Option<BorderImplementation>,
|
pub border_implementation: Option<BorderImplementation>,
|
||||||
/// Add transparency to unfocused windows
|
/// Add transparency to unfocused windows
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
#[cfg_attr(feature = "schemars", schemars(extend("default" = defaults::TRANSPARENCY_ENABLED)))]
|
#[cfg_attr(feature = "schemars", schemars(extend("default" = transparency_manager::TRANSPARENCY_ENABLED)))]
|
||||||
pub transparency: Option<bool>,
|
pub transparency: Option<bool>,
|
||||||
/// Alpha value for unfocused window transparency [[0-255]]
|
/// Alpha value for unfocused window transparency [[0-255]]
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
#[cfg_attr(feature = "schemars", schemars(extend("default" = defaults::TRANSPARENCY_ALPHA)))]
|
#[cfg_attr(feature = "schemars", schemars(extend("default" = transparency_manager::TRANSPARENCY_ALPHA)))]
|
||||||
pub transparency_alpha: Option<u8>,
|
pub transparency_alpha: Option<u8>,
|
||||||
/// Individual window transparency ignore rules
|
/// Individual window transparency ignore rules
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
pub transparency_ignore_rules: Option<Vec<MatchingRule>>,
|
pub transparency_ignore_rules: Option<Vec<MatchingRule>>,
|
||||||
/// Global default workspace padding
|
/// Global default workspace padding
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
#[cfg_attr(feature = "schemars", schemars(extend("default" = defaults::DEFAULT_WORKSPACE_PADDING)))]
|
#[cfg_attr(feature = "schemars", schemars(extend("default" = DEFAULT_WORKSPACE_PADDING)))]
|
||||||
pub default_workspace_padding: Option<i32>,
|
pub default_workspace_padding: Option<i32>,
|
||||||
/// Global default container padding
|
/// Global default container padding
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
#[cfg_attr(feature = "schemars", schemars(extend("default" = defaults::DEFAULT_CONTAINER_PADDING)))]
|
#[cfg_attr(feature = "schemars", schemars(extend("default" = DEFAULT_CONTAINER_PADDING)))]
|
||||||
pub default_container_padding: Option<i32>,
|
pub default_container_padding: Option<i32>,
|
||||||
/// Monitor and workspace configurations
|
/// Monitor and workspace configurations
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
@@ -639,7 +622,7 @@ pub struct StaticConfig {
|
|||||||
pub slow_application_identifiers: Option<Vec<MatchingRule>>,
|
pub slow_application_identifiers: Option<Vec<MatchingRule>>,
|
||||||
/// How long to wait when compensating for slow applications, in milliseconds
|
/// How long to wait when compensating for slow applications, in milliseconds
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
#[cfg_attr(feature = "schemars", schemars(extend("default" = defaults::SLOW_APPLICATION_COMPENSATION_TIME)))]
|
#[cfg_attr(feature = "schemars", schemars(extend("default" = SLOW_APPLICATION_COMPENSATION_TIME)))]
|
||||||
pub slow_application_compensation_time: Option<u64>,
|
pub slow_application_compensation_time: Option<u64>,
|
||||||
/// Komorebi status bar configuration files for multiple instances on different monitors
|
/// Komorebi status bar configuration files for multiple instances on different monitors
|
||||||
// this option is a little special because it is only consumed by komorebic
|
// this option is a little special because it is only consumed by komorebic
|
||||||
@@ -675,7 +658,7 @@ pub struct AnimationsConfig {
|
|||||||
pub style: Option<PerAnimationPrefixConfig<AnimationStyle>>,
|
pub style: Option<PerAnimationPrefixConfig<AnimationStyle>>,
|
||||||
/// Set the animation FPS
|
/// Set the animation FPS
|
||||||
#[serde(skip_serializing_if = "Option::is_none")]
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
#[cfg_attr(feature = "schemars", schemars(extend("default" = defaults::ANIMATION_FPS)))]
|
#[cfg_attr(feature = "schemars", schemars(extend("default" = ANIMATION_FPS)))]
|
||||||
pub fps: Option<u64>,
|
pub fps: Option<u64>,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1006,18 +989,17 @@ impl StaticConfig {
|
|||||||
DEFAULT_WORKSPACE_PADDING.store(workspace, Ordering::SeqCst);
|
DEFAULT_WORKSPACE_PADDING.store(workspace, Ordering::SeqCst);
|
||||||
}
|
}
|
||||||
|
|
||||||
border_manager::BORDER_WIDTH.store(
|
if let Some(border_width) = self.border_width {
|
||||||
self.border_width.unwrap_or(defaults::BORDER_WIDTH),
|
border_manager::BORDER_WIDTH.store(border_width, Ordering::SeqCst);
|
||||||
Ordering::SeqCst,
|
}
|
||||||
);
|
|
||||||
border_manager::BORDER_OFFSET.store(
|
if let Some(border_offset) = self.border_offset {
|
||||||
self.border_offset.unwrap_or(defaults::BORDER_OFFSET),
|
border_manager::BORDER_OFFSET.store(border_offset, Ordering::SeqCst);
|
||||||
Ordering::SeqCst,
|
}
|
||||||
);
|
|
||||||
border_manager::BORDER_ENABLED.store(
|
if let Some(border_enabled) = self.border {
|
||||||
self.border.unwrap_or(defaults::BORDER_ENABLED),
|
border_manager::BORDER_ENABLED.store(border_enabled, Ordering::SeqCst);
|
||||||
Ordering::SeqCst,
|
}
|
||||||
);
|
|
||||||
|
|
||||||
if let Some(colours) = &self.border_colours {
|
if let Some(colours) = &self.border_colours {
|
||||||
if let Some(single) = colours.single {
|
if let Some(single) = colours.single {
|
||||||
@@ -1071,15 +1053,14 @@ impl StaticConfig {
|
|||||||
border_manager::send_notification(None);
|
border_manager::send_notification(None);
|
||||||
}
|
}
|
||||||
|
|
||||||
transparency_manager::TRANSPARENCY_ENABLED.store(
|
if let Some(transparency_enabled) = self.transparency {
|
||||||
self.transparency.unwrap_or(defaults::TRANSPARENCY_ENABLED),
|
transparency_manager::TRANSPARENCY_ENABLED
|
||||||
Ordering::SeqCst,
|
.store(transparency_enabled, Ordering::SeqCst);
|
||||||
);
|
}
|
||||||
transparency_manager::TRANSPARENCY_ALPHA.store(
|
|
||||||
self.transparency_alpha
|
if let Some(transparency_alpha) = self.transparency_alpha {
|
||||||
.unwrap_or(defaults::TRANSPARENCY_ALPHA),
|
transparency_manager::TRANSPARENCY_ALPHA.store(transparency_alpha, Ordering::SeqCst);
|
||||||
Ordering::SeqCst,
|
}
|
||||||
);
|
|
||||||
|
|
||||||
let mut ignore_identifiers = IGNORE_IDENTIFIERS.lock();
|
let mut ignore_identifiers = IGNORE_IDENTIFIERS.lock();
|
||||||
let mut regex_identifiers = REGEX_IDENTIFIERS.lock();
|
let mut regex_identifiers = REGEX_IDENTIFIERS.lock();
|
||||||
@@ -1303,12 +1284,12 @@ impl StaticConfig {
|
|||||||
unmanaged_window_operation_behaviour: value
|
unmanaged_window_operation_behaviour: value
|
||||||
.unmanaged_window_operation_behaviour
|
.unmanaged_window_operation_behaviour
|
||||||
.unwrap_or(OperationBehaviour::Op),
|
.unwrap_or(OperationBehaviour::Op),
|
||||||
resize_delta: value.resize_delta.unwrap_or(defaults::RESIZE_DELTA),
|
resize_delta: value.resize_delta.unwrap_or(DEFAULT_RESIZE_DELTA),
|
||||||
#[allow(deprecated)]
|
#[allow(deprecated)]
|
||||||
focus_follows_mouse: value.focus_follows_mouse,
|
focus_follows_mouse: value.focus_follows_mouse,
|
||||||
mouse_follows_focus: value
|
mouse_follows_focus: value
|
||||||
.mouse_follows_focus
|
.mouse_follows_focus
|
||||||
.unwrap_or(defaults::MOUSE_FOLLOWS_FOCUS),
|
.unwrap_or(DEFAULT_MOUSE_FOLLOWS_FOCUS),
|
||||||
hotwatch: Hotwatch::new()?,
|
hotwatch: Hotwatch::new()?,
|
||||||
has_pending_raise_op: false,
|
has_pending_raise_op: false,
|
||||||
pending_move_op: Arc::new(None),
|
pending_move_op: Arc::new(None),
|
||||||
@@ -1398,7 +1379,7 @@ impl StaticConfig {
|
|||||||
monitor_config.window_based_work_area_offset;
|
monitor_config.window_based_work_area_offset;
|
||||||
monitor.window_based_work_area_offset_limit = monitor_config
|
monitor.window_based_work_area_offset_limit = monitor_config
|
||||||
.window_based_work_area_offset_limit
|
.window_based_work_area_offset_limit
|
||||||
.unwrap_or(defaults::WINDOW_BASED_WORK_AREA_OFFSET_LIMIT);
|
.unwrap_or(1);
|
||||||
monitor.container_padding = monitor_config.container_padding;
|
monitor.container_padding = monitor_config.container_padding;
|
||||||
monitor.workspace_padding = monitor_config.workspace_padding;
|
monitor.workspace_padding = monitor_config.workspace_padding;
|
||||||
monitor.wallpaper = monitor_config.wallpaper.clone();
|
monitor.wallpaper = monitor_config.wallpaper.clone();
|
||||||
@@ -1490,7 +1471,7 @@ impl StaticConfig {
|
|||||||
m.window_based_work_area_offset = monitor_config.window_based_work_area_offset;
|
m.window_based_work_area_offset = monitor_config.window_based_work_area_offset;
|
||||||
m.window_based_work_area_offset_limit = monitor_config
|
m.window_based_work_area_offset_limit = monitor_config
|
||||||
.window_based_work_area_offset_limit
|
.window_based_work_area_offset_limit
|
||||||
.unwrap_or(defaults::WINDOW_BASED_WORK_AREA_OFFSET_LIMIT);
|
.unwrap_or(1);
|
||||||
m.container_padding = monitor_config.container_padding;
|
m.container_padding = monitor_config.container_padding;
|
||||||
m.workspace_padding = monitor_config.workspace_padding;
|
m.workspace_padding = monitor_config.workspace_padding;
|
||||||
m.floating_layer_behaviour = monitor_config.floating_layer_behaviour;
|
m.floating_layer_behaviour = monitor_config.floating_layer_behaviour;
|
||||||
@@ -1571,7 +1552,7 @@ impl StaticConfig {
|
|||||||
monitor_config.window_based_work_area_offset;
|
monitor_config.window_based_work_area_offset;
|
||||||
monitor.window_based_work_area_offset_limit = monitor_config
|
monitor.window_based_work_area_offset_limit = monitor_config
|
||||||
.window_based_work_area_offset_limit
|
.window_based_work_area_offset_limit
|
||||||
.unwrap_or(defaults::WINDOW_BASED_WORK_AREA_OFFSET_LIMIT);
|
.unwrap_or(1);
|
||||||
monitor.container_padding = monitor_config.container_padding;
|
monitor.container_padding = monitor_config.container_padding;
|
||||||
monitor.workspace_padding = monitor_config.workspace_padding;
|
monitor.workspace_padding = monitor_config.workspace_padding;
|
||||||
monitor.wallpaper = monitor_config.wallpaper.clone();
|
monitor.wallpaper = monitor_config.wallpaper.clone();
|
||||||
@@ -1655,7 +1636,7 @@ impl StaticConfig {
|
|||||||
m.window_based_work_area_offset = monitor_config.window_based_work_area_offset;
|
m.window_based_work_area_offset = monitor_config.window_based_work_area_offset;
|
||||||
m.window_based_work_area_offset_limit = monitor_config
|
m.window_based_work_area_offset_limit = monitor_config
|
||||||
.window_based_work_area_offset_limit
|
.window_based_work_area_offset_limit
|
||||||
.unwrap_or(defaults::WINDOW_BASED_WORK_AREA_OFFSET_LIMIT);
|
.unwrap_or(1);
|
||||||
m.container_padding = monitor_config.container_padding;
|
m.container_padding = monitor_config.container_padding;
|
||||||
m.workspace_padding = monitor_config.workspace_padding;
|
m.workspace_padding = monitor_config.workspace_padding;
|
||||||
m.floating_layer_behaviour = monitor_config.floating_layer_behaviour;
|
m.floating_layer_behaviour = monitor_config.floating_layer_behaviour;
|
||||||
@@ -1675,10 +1656,10 @@ impl StaticConfig {
|
|||||||
|
|
||||||
wm.enforce_workspace_rules()?;
|
wm.enforce_workspace_rules()?;
|
||||||
|
|
||||||
border_manager::BORDER_ENABLED.store(
|
if let Some(border_enabled) = value.border {
|
||||||
value.border.unwrap_or(defaults::BORDER_ENABLED),
|
border_manager::BORDER_ENABLED.store(border_enabled, Ordering::SeqCst);
|
||||||
Ordering::SeqCst,
|
}
|
||||||
);
|
|
||||||
wm.window_management_behaviour.current_behaviour =
|
wm.window_management_behaviour.current_behaviour =
|
||||||
value.window_container_behaviour.unwrap_or_default();
|
value.window_container_behaviour.unwrap_or_default();
|
||||||
wm.window_management_behaviour.float_override = value.float_override.unwrap_or_default();
|
wm.window_management_behaviour.float_override = value.float_override.unwrap_or_default();
|
||||||
@@ -1698,10 +1679,10 @@ impl StaticConfig {
|
|||||||
wm.unmanaged_window_operation_behaviour = value
|
wm.unmanaged_window_operation_behaviour = value
|
||||||
.unmanaged_window_operation_behaviour
|
.unmanaged_window_operation_behaviour
|
||||||
.unwrap_or_default();
|
.unwrap_or_default();
|
||||||
wm.resize_delta = value.resize_delta.unwrap_or(defaults::RESIZE_DELTA);
|
wm.resize_delta = value.resize_delta.unwrap_or(DEFAULT_RESIZE_DELTA);
|
||||||
wm.mouse_follows_focus = value
|
wm.mouse_follows_focus = value
|
||||||
.mouse_follows_focus
|
.mouse_follows_focus
|
||||||
.unwrap_or(defaults::MOUSE_FOLLOWS_FOCUS);
|
.unwrap_or(DEFAULT_MOUSE_FOLLOWS_FOCUS);
|
||||||
wm.work_area_offset = value.global_work_area_offset;
|
wm.work_area_offset = value.global_work_area_offset;
|
||||||
#[allow(deprecated)]
|
#[allow(deprecated)]
|
||||||
{
|
{
|
||||||
|
|||||||
+9
-9
@@ -2490,47 +2490,47 @@
|
|||||||
"description": "A predefined komorebi layout",
|
"description": "A predefined komorebi layout",
|
||||||
"oneOf": [
|
"oneOf": [
|
||||||
{
|
{
|
||||||
"description": "BSP Layout\n\n```\n+-------+-----+\n| | |\n| +--+--+\n| | |--|\n+-------+--+--+\n```",
|
"description": "BSP Layout\n\n```text\n+-------+-----+\n| | |\n| +--+--+\n| | |--|\n+-------+--+--+\n```",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"const": "BSP"
|
"const": "BSP"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Columns Layout\n\n```\n+--+--+--+--+\n| | | | |\n| | | | |\n| | | | |\n+--+--+--+--+\n```",
|
"description": "Columns Layout\n\n```text\n+--+--+--+--+\n| | | | |\n| | | | |\n| | | | |\n+--+--+--+--+\n```",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"const": "Columns"
|
"const": "Columns"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Rows Layout\n\n```\n+-----------+\n|-----------|\n|-----------|\n|-----------|\n+-----------+\n```",
|
"description": "Rows Layout\n\n```text\n+-----------+\n|-----------|\n|-----------|\n|-----------|\n+-----------+\n```",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"const": "Rows"
|
"const": "Rows"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Vertical Stack Layout\n\n```\n+-------+-----+\n| | |\n| +-----+\n| | |\n+-------+-----+\n```",
|
"description": "Vertical Stack Layout\n\n```text\n+-------+-----+\n| | |\n| +-----+\n| | |\n+-------+-----+\n```",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"const": "VerticalStack"
|
"const": "VerticalStack"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Horizontal Stack Layout\n\n```\n+------+------+\n| |\n|------+------+\n| | |\n+------+------+\n```",
|
"description": "Horizontal Stack Layout\n\n```text\n+------+------+\n| |\n|------+------+\n| | |\n+------+------+\n```",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"const": "HorizontalStack"
|
"const": "HorizontalStack"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Ultrawide Vertical Stack Layout\n\n```\n+-----+-----------+-----+\n| | | |\n| | +-----+\n| | | |\n| | +-----+\n| | | |\n+-----+-----------+-----+\n```",
|
"description": "Ultrawide Vertical Stack Layout\n\n```text\n+-----+-----------+-----+\n| | | |\n| | +-----+\n| | | |\n| | +-----+\n| | | |\n+-----+-----------+-----+\n```",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"const": "UltrawideVerticalStack"
|
"const": "UltrawideVerticalStack"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Grid Layout\n\n```\n+-----+-----+ +---+---+---+ +---+---+---+ +---+---+---+\n| | | | | | | | | | | | | | |\n| | | | | | | | | | | | | +---+\n+-----+-----+ | +---+---+ +---+---+---+ +---+---| |\n| | | | | | | | | | | | | +---+\n| | | | | | | | | | | | | | |\n+-----+-----+ +---+---+---+ +---+---+---+ +---+---+---+\n 4 windows 5 windows 6 windows 7 windows\n```",
|
"description": "Grid Layout\n\n```text\n+-----+-----+ +---+---+---+ +---+---+---+ +---+---+---+\n| | | | | | | | | | | | | | |\n| | | | | | | | | | | | | +---+\n+-----+-----+ | +---+---+ +---+---+---+ +---+---| |\n| | | | | | | | | | | | | +---+\n| | | | | | | | | | | | | | |\n+-----+-----+ +---+---+---+ +---+---+---+ +---+---+---+\n 4 windows 5 windows 6 windows 7 windows\n```",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"const": "Grid"
|
"const": "Grid"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Right Main Vertical Stack Layout\n\n```\n+-----+-------+\n| | |\n+-----+ |\n| | |\n+-----+-------+\n```",
|
"description": "Right Main Vertical Stack Layout\n\n```text\n+-----+-------+\n| | |\n+-----+ |\n| | |\n+-----+-------+\n```",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"const": "RightMainVerticalStack"
|
"const": "RightMainVerticalStack"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Scrolling Layout\n\n```\n+--+--+--+--+--+--+\n| | | |\n| | | |\n| | | |\n+--+--+--+--+--+--+\n```",
|
"description": "Scrolling Layout\n\n```text\n+--+--+--+--+--+--+\n| | | |\n| | | |\n| | | |\n+--+--+--+--+--+--+\n```",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"const": "Scrolling"
|
"const": "Scrolling"
|
||||||
}
|
}
|
||||||
|
|||||||
+9
-9
@@ -2695,47 +2695,47 @@
|
|||||||
"description": "A predefined komorebi layout",
|
"description": "A predefined komorebi layout",
|
||||||
"oneOf": [
|
"oneOf": [
|
||||||
{
|
{
|
||||||
"description": "BSP Layout\n\n```\n+-------+-----+\n| | |\n| +--+--+\n| | |--|\n+-------+--+--+\n```",
|
"description": "BSP Layout\n\n```text\n+-------+-----+\n| | |\n| +--+--+\n| | |--|\n+-------+--+--+\n```",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"const": "BSP"
|
"const": "BSP"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Columns Layout\n\n```\n+--+--+--+--+\n| | | | |\n| | | | |\n| | | | |\n+--+--+--+--+\n```",
|
"description": "Columns Layout\n\n```text\n+--+--+--+--+\n| | | | |\n| | | | |\n| | | | |\n+--+--+--+--+\n```",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"const": "Columns"
|
"const": "Columns"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Rows Layout\n\n```\n+-----------+\n|-----------|\n|-----------|\n|-----------|\n+-----------+\n```",
|
"description": "Rows Layout\n\n```text\n+-----------+\n|-----------|\n|-----------|\n|-----------|\n+-----------+\n```",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"const": "Rows"
|
"const": "Rows"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Vertical Stack Layout\n\n```\n+-------+-----+\n| | |\n| +-----+\n| | |\n+-------+-----+\n```",
|
"description": "Vertical Stack Layout\n\n```text\n+-------+-----+\n| | |\n| +-----+\n| | |\n+-------+-----+\n```",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"const": "VerticalStack"
|
"const": "VerticalStack"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Horizontal Stack Layout\n\n```\n+------+------+\n| |\n|------+------+\n| | |\n+------+------+\n```",
|
"description": "Horizontal Stack Layout\n\n```text\n+------+------+\n| |\n|------+------+\n| | |\n+------+------+\n```",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"const": "HorizontalStack"
|
"const": "HorizontalStack"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Ultrawide Vertical Stack Layout\n\n```\n+-----+-----------+-----+\n| | | |\n| | +-----+\n| | | |\n| | +-----+\n| | | |\n+-----+-----------+-----+\n```",
|
"description": "Ultrawide Vertical Stack Layout\n\n```text\n+-----+-----------+-----+\n| | | |\n| | +-----+\n| | | |\n| | +-----+\n| | | |\n+-----+-----------+-----+\n```",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"const": "UltrawideVerticalStack"
|
"const": "UltrawideVerticalStack"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Grid Layout\n\n```\n+-----+-----+ +---+---+---+ +---+---+---+ +---+---+---+\n| | | | | | | | | | | | | | |\n| | | | | | | | | | | | | +---+\n+-----+-----+ | +---+---+ +---+---+---+ +---+---| |\n| | | | | | | | | | | | | +---+\n| | | | | | | | | | | | | | |\n+-----+-----+ +---+---+---+ +---+---+---+ +---+---+---+\n 4 windows 5 windows 6 windows 7 windows\n```",
|
"description": "Grid Layout\n\n```text\n+-----+-----+ +---+---+---+ +---+---+---+ +---+---+---+\n| | | | | | | | | | | | | | |\n| | | | | | | | | | | | | +---+\n+-----+-----+ | +---+---+ +---+---+---+ +---+---| |\n| | | | | | | | | | | | | +---+\n| | | | | | | | | | | | | | |\n+-----+-----+ +---+---+---+ +---+---+---+ +---+---+---+\n 4 windows 5 windows 6 windows 7 windows\n```",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"const": "Grid"
|
"const": "Grid"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Right Main Vertical Stack Layout\n\n```\n+-----+-------+\n| | |\n+-----+ |\n| | |\n+-----+-------+\n```",
|
"description": "Right Main Vertical Stack Layout\n\n```text\n+-----+-------+\n| | |\n+-----+ |\n| | |\n+-----+-------+\n```",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"const": "RightMainVerticalStack"
|
"const": "RightMainVerticalStack"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Scrolling Layout\n\n```\n+--+--+--+--+--+--+\n| | | |\n| | | |\n| | | |\n+--+--+--+--+--+--+\n```",
|
"description": "Scrolling Layout\n\n```text\n+--+--+--+--+--+--+\n| | | |\n| | | |\n| | | |\n+--+--+--+--+--+--+\n```",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"const": "Scrolling"
|
"const": "Scrolling"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user