How to use the command wmctrl (with examples)
- Linux
- December 25, 2023
wmctrl is a command-line interface for managing windows in an X Window System. It allows users to perform various operations on windows, such as listing all windows, switching to a specific window, moving windows to different workspaces, and toggling fullscreen mode.
Use case 1: List all windows, managed by the window manager
Code:
wmctrl -l
Motivation: This use case is helpful when you want to get a comprehensive list of all the windows currently managed by the window manager. It provides information such as the window ID, desktop ID, window title, and host machine.
Explanation:
-l
: Lists all windows managed by the window manager.
Example output:
0x02800007 0 host_machine Title1
0x02a0000b 0 host_machine Title2
0x02c0000f 0 host_machine Title3
Use case 2: Switch to the first window whose (partial) title matches
Code:
wmctrl -a window_title
Motivation: This use case allows you to quickly switch to a specific window by matching its (partial) title. It can be useful when you have multiple windows with similar titles and want to focus on a specific one.
Explanation:
-a window_title
: Switches to the first window whose (partial) title matches.
Example output: No output will be shown, but the focus will be shifted to the window matching the given title.
Use case 3: Move a window to the current workspace, raise it and give it focus
Code:
wmctrl -R window_title
Motivation: Sometimes, you may want to bring a specific window to the current workspace, raise it to the top of the window stack, and give it focus. This use case allows you to achieve that quickly.
Explanation:
-R window_title
: Moves the window to the current workspace, raises it to the top, and gives it focus.
Example output: No output will be shown, but the specified window will be moved to the current workspace, raised to the top, and given focus.
Use case 4: Switch to a workspace
Code:
wmctrl -s workspace_number
Motivation: When you have multiple workspaces set up, this use case enables you to switch to a specific workspace quickly. Each workspace may contain different sets of windows, providing better organization and focus.
Explanation:
-s workspace_number
: Switches to the specified workspace number.
Example output: No output will be shown, but the workspace will be switched to the given workspace number.
Use case 5: Select a window and toggle fullscreen
Code:
wmctrl -r window_title -b toggle,fullscreen
Motivation: If you want to maximize a window to fullscreen or toggle it back to its original size, this use case allows you to do so. It can be beneficial when you need to view content without any distractions or switch back to the normal window view.
Explanation:
-r window_title
: Selects the window with the specified title.-b toggle,fullscreen
: Toggles the fullscreen state of the selected window.
Example output: No output will be shown, but the specified window’s fullscreen state will be toggled.
Use case 6: Select a window and move it to a workspace
Code:
wmctrl -r window_title -t workspace_number
Motivation: If you have a window on one workspace and want to move it to another workspace, this use case enables you to do that. It helps in reorganizing windows based on their relevance to specific workspaces.
Explanation:
-r window_title
: Selects the window with the specified title.-t workspace_number
: Moves the selected window to the specified workspace number.
Example output: No output will be shown, but the specified window will be moved to the given workspace number.
Conclusion:
The wmctrl command is a powerful tool for managing windows in an X Window System from the command line. It provides various use cases, such as listing all windows, switching to specific windows, moving windows between workspaces, and toggling fullscreen mode. By understanding and utilizing these use cases, you can enhance your window management workflow and improve productivity in the X Window System environment.