diff --git a/docs/cli/toggle-window-based-work-area-offset.md b/docs/cli/toggle-window-based-work-area-offset.md new file mode 100644 index 00000000..183ecad7 --- /dev/null +++ b/docs/cli/toggle-window-based-work-area-offset.md @@ -0,0 +1,12 @@ +# toggle-window-based-work-area-offset + +``` +Toggle application of the window-based work area offset for the focused workspace + +Usage: komorebic.exe toggle-window-based-work-area-offset + +Options: + -h, --help + Print help + +``` diff --git a/komorebi/src/core/mod.rs b/komorebi/src/core/mod.rs index 61bf95b1..b0479d90 100644 --- a/komorebi/src/core/mod.rs +++ b/komorebi/src/core/mod.rs @@ -185,6 +185,7 @@ pub enum SocketMessage { StackbarFontFamily(Option), WorkAreaOffset(Rect), MonitorWorkAreaOffset(usize, Rect), + ToggleWindowBasedWorkAreaOffset, ResizeDelta(i32), InitialWorkspaceRule(ApplicationIdentifier, String, usize, usize), InitialNamedWorkspaceRule(ApplicationIdentifier, String, String), diff --git a/komorebi/src/process_command.rs b/komorebi/src/process_command.rs index 6db8996a..b14c7b51 100644 --- a/komorebi/src/process_command.rs +++ b/komorebi/src/process_command.rs @@ -1458,6 +1458,14 @@ impl WindowManager { self.retile_all(false)?; } } + SocketMessage::ToggleWindowBasedWorkAreaOffset => { + let workspace = self.focused_workspace_mut()?; + workspace.set_apply_window_based_work_area_offset( + !workspace.apply_window_based_work_area_offset(), + ); + + self.retile_all(false)?; + } SocketMessage::QuickSave => { let workspace = self.focused_workspace()?; let resize = workspace.resize_dimensions(); diff --git a/komorebic/src/main.rs b/komorebic/src/main.rs index de3405c8..e2f4124e 100644 --- a/komorebic/src/main.rs +++ b/komorebic/src/main.rs @@ -1155,6 +1155,8 @@ enum SubCommand { /// Set offsets for a monitor to exclude parts of the work area from tiling #[clap(arg_required_else_help = true)] MonitorWorkAreaOffset(MonitorWorkAreaOffset), + /// Toggle application of the window-based work area offset for the focused workspace + ToggleWindowBasedWorkAreaOffset, /// Set container padding on the focused workspace #[clap(arg_required_else_help = true)] FocusedWorkspaceContainerPadding(FocusedWorkspaceContainerPadding), @@ -1878,6 +1880,9 @@ fn main() -> Result<()> { bottom: arg.bottom, }))?; } + SubCommand::ToggleWindowBasedWorkAreaOffset => { + send_message(&SocketMessage::ToggleWindowBasedWorkAreaOffset)?; + } SubCommand::ContainerPadding(arg) => { send_message(&SocketMessage::ContainerPadding( arg.monitor, diff --git a/mkdocs.yml b/mkdocs.yml index c8336eb6..2e584b56 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -144,6 +144,7 @@ nav: - cli/invisible-borders.md - cli/global-work-area-offset.md - cli/monitor-work-area-offset.md + - cli/toggle-window-based-work-area-offset.md - cli/focused-workspace-container-padding.md - cli/focused-workspace-padding.md - cli/adjust-container-padding.md