feat(config): allow specifying layout flip on ws

This commit adds support for specifying a layout flip axis for each
workspace in the static configuration file.
This commit is contained in:
LGUG2Z
2025-01-03 18:16:30 -08:00
parent d45cd729e8
commit 4b30cecba9
2 changed files with 9 additions and 0 deletions
+5
View File
@@ -35,6 +35,7 @@ use crate::window_manager::WindowManager;
use crate::window_manager_event::WindowManagerEvent; use crate::window_manager_event::WindowManagerEvent;
use crate::windows_api::WindowsApi; use crate::windows_api::WindowsApi;
use crate::workspace::Workspace; use crate::workspace::Workspace;
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;
@@ -148,6 +149,9 @@ pub struct WorkspaceConfig {
/// (default: false) /// (default: false)
#[serde(skip_serializing_if = "Option::is_none")] #[serde(skip_serializing_if = "Option::is_none")]
pub float_override: Option<bool>, pub float_override: Option<bool>,
/// Specify an axis on which to flip the selected layout (default: None)
#[serde(skip_serializing_if = "Option::is_none")]
pub layout_flip: Option<Axis>,
} }
impl From<&Workspace> for WorkspaceConfig { impl From<&Workspace> for WorkspaceConfig {
@@ -202,6 +206,7 @@ impl From<&Workspace> for WorkspaceConfig {
apply_window_based_work_area_offset: Some(value.apply_window_based_work_area_offset()), apply_window_based_work_area_offset: Some(value.apply_window_based_work_area_offset()),
window_container_behaviour: *value.window_container_behaviour(), window_container_behaviour: *value.window_container_behaviour(),
float_override: *value.float_override(), float_override: *value.float_override(),
layout_flip: value.layout_flip(),
} }
} }
} }
+4
View File
@@ -187,6 +187,10 @@ impl Workspace {
self.set_float_override(config.float_override); self.set_float_override(config.float_override);
} }
if config.layout_flip.is_some() {
self.set_layout_flip(config.layout_flip);
}
Ok(()) Ok(())
} }