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.
- Core commands expose common functions as ready-to-use commands, many of which come with a default keybinding.
- Plugin commands are ready-to-use commands exposed by plugins.
- 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.