Table of Contents

Commands

Commands (ICommand) are objects with a unique identifier, title, and executable action. They are used to interact with Whim at runtime, for instance, by being bound to keybinds or the Command Palette.

Whim differentiates three types of commands.

  1. Core commands expose common functions as ready-to-use commands, many of which come with a default keybinding.
  2. Plugin commands are ready-to-use commands exposed by plugins.
  3. Custom commands are user-defined commands, which can compose arbitrary functions.

Core commands

Core commands have identifiers under the whim.core namespace.

Identifier Title Default Keybind
whim.core.activate_previous_workspace Activate the previous workspace Win + Ctrl + LEFT
whim.core.activate_next_workspace Activate the next workspace Win + Ctrl + RIGHT
whim.core.focus_window_in_direction.left Focus the window in the left direction Win + Alt + LEFT
whim.core.focus_window_in_direction.right Focus the window in the right direction Win + Alt + RIGHT
whim.core.focus_window_in_direction.up Focus the window in the up direction Win + Alt + UP
whim.core.focus_window_in_direction.down Focus the window in the down direction Win + Alt + DOWN
whim.core.swap_window_in_direction.left Swap the window with the window to the left Win + LEFT
whim.core.swap_window_in_direction.right Swap the window with the window to the right Win + RIGHT
whim.core.swap_window_in_direction.up Swap the window with the window to the up Win + UP
whim.core.swap_window_in_direction.down Swap the window with the window to the down Win + DOWN
whim.core.move_window_left_edge_left Move the current window's left edge to the left Win + Ctrl + H
whim.core.move_window_left_edge_right Move the current window's left edge to the right Win + Ctrl + J
whim.core.move_window_right_edge_left Move the current window's right edge to the left Win + Ctrl + K
whim.core.move_window_right_edge_right Move the current window's right edge to the right Win + Ctrl + L
whim.core.move_window_top_edge_up Move the current window's top edge up Win + Ctrl + U
whim.core.move_window_top_edge_down Move the current window's top edge down Win + Ctrl + I
whim.core.move_window_bottom_edge_up Move the current window's bottom edge up Win + Ctrl + O
whim.core.move_window_bottom_edge_down Move the current window's bottom edge down Win + Ctrl + P
whim.core.move_window_to_previous_monitor Move the window to the previous monitor Win + Shift + LEFT
whim.core.move_window_to_next_monitor Move the window to the next monitor Win + Shift + RIGHT
whim.core.move_window_to_next_workspace_on_monitor Move window to next workspace on current monitor* No default keybind
whim.core.move_window_to_previous_workspace_on_monitor Move window to previous workspace on current monitor* No default keybind
whim.core.maximize_window Maximize the current window No default keybind
whim.core.minimize_window Minimize the current window No default keybind
whim.core.cycle_layout_engine.next Cycle to the next layout engine No default keybind
whim.core.cycle_layout_engine.previous Cycle to the previous layout engine No default keybind
whim.core.focus_previous_monitor Focus the previous monitor No default keybind
whim.core.focus_next_monitor Focus the next monitor No default keybind
whim.core.focus_next_workspace_on_current_monitor Focus the next workspace on the current monitor* No default keybind
whim.core.focus_previous_workspace_on_current_monitor Focus the previous workspace on the current monitor* No default keybind
whim.core.focus_layout.toggle_maximized Toggle the maximized state for the current FocusLayoutEngine No default keybind
whim.core.close_current_workspace Close the current workspace Win + Ctrl + W
whim.core.exit_whim Exit Whim No default keybind
whim.core.restart_whim Restart Whim No default keybind
whim.core.activate_workspace_{idx} Activate workspace {idx} (where idx is an int 1, 2, ...9, 0) Alt + Shift + {idx}

* These commands account for sticky workspaces when determining the next/previous workspace.

Plugin commands

Plugin commands are namespaced by the string defined in the Name property for plugins - for example, whim.gaps for GapsPlugin. Commands are listed on the respective plugin documentation pages.