diff --git a/src/config/key_bindings.rs b/src/config/key_bindings.rs index bf4c39ec..72410131 100644 --- a/src/config/key_bindings.rs +++ b/src/config/key_bindings.rs @@ -188,6 +188,7 @@ pub enum Action { Resizing(ResizeDirection), #[serde(skip)] _ResizingInternal(ResizeDirection, ResizeEdge, KeyState), + Minimize, Maximize, Spawn(String), } diff --git a/src/input/mod.rs b/src/input/mod.rs index 813f97ed..3ea64652 100644 --- a/src/input/mod.rs +++ b/src/input/mod.rs @@ -2025,6 +2025,15 @@ impl State { } } } + Action::Minimize => { + let current_output = seat.active_output(); + let workspace = self.common.shell.active_space_mut(¤t_output); + let focus_stack = workspace.focus_stack.get(seat); + let focused_window = focus_stack.last().cloned(); + if let Some(window) = focused_window { + self.common.shell.minimize_request(&window); + } + } Action::Maximize => { let current_output = seat.active_output(); let workspace = self.common.shell.active_space_mut(¤t_output);