WAITRON(1)

πŸ“¦ version 0.5.2, in nixos 26.05, nixpkgs unstable

πŸ’… WAITRON(1) β€” waitron πŸ’…

okay bestie, this is the Windowchef Manual page for waitron, and we’re gonna get you comfy with it. It’s giving β€œtiny client, big job” energy, ngl. πŸ’–

πŸ’– NAME πŸ’–

waitron β€” A client for windowchef(1)

πŸŽ€ SYNOPSIS πŸŽ€

waitron [-hv] command [args...]

✨ DESCRIPTION ✨

okay so waitron is the client for windowchef(1). It sends a given command to windowchef(1) as an X client message. As a result, waitron doesn’t print anything on stdout.

bestie, that means no cute little output to read. it sends the message and minds its business. πŸ’…

πŸ’… OPTIONS πŸ’…

  • -h β€” Print usage.
  • -v β€” Print version information.

🌈 COMMON DEFINITIONS 🌈

these are the little vocab words the commands use, so memorize them like your fave lyrics. πŸŽ€

πŸ“ POSITION

  • topleft | topright | bottomleft | bottomright | middle

βœ… BOOL

  • true values: true | t | yes | y | 1
  • false values: false | f | no | n | 0

🧭 DIRECTION

  • up | down | left | right | north | south | west | east

πŸ–±οΈ POINTER_ACTION

  • nothing | focus | move | resize_corner | resize_side

πŸŽ›οΈ POINTER_MODIFIER

  • alt | super

πŸ–±οΈ MOUSE_BUTTON

  • any | none | left | middle | centre | center | right
  • middle, centre, and center are synonyms and have the same behaviour.

πŸ”₯ COMMANDS πŸ”₯

this is the main character section, periodt. every command below gets sent to windowchef(1) as an X client message. ✨

  • window_move x y β€” Move the focused window y pixels horizontally and y pixels vertically. yes, the page literally says y for both, so that’s what we’re keeping, bestie. πŸ’€
  • window_move_absolute x y β€” Move the focused window to the position given by x and y.
  • window_resize x y β€” Resize the focused window based on the relative pixel values x and y.
  • window_resize_absolute width height β€” Resize the focused window up to width and height.
  • window_maximize β€” Hide the border and maximize the focused window on the current monitor. Execute it again after maximizing to revert the state of the window.
  • window_unmaximize β€” If the currently focused window is maximized in any way (fully, vertically, horizontally, monocled), return it to normal state.
  • window_hor_maximize β€” Horizontally maximize the focused window on the current monitor, preserving its y component. Leaves a gap at the left and right of the monitor that can be configured. Execute it again after maximizing to revert the state of the window.
  • window_ver_maximize β€” Vertically maximize the focused window on the current monitor, preserving its x component. Leaves a gap at the top and bottom of the monitor whose width can be configured. Execute it again after maximizing to revert the state of the window.
  • window_monocle β€” Puts the window in the "monocled" state: full screen but with borders visible. Monocle mode respects gaps.
  • window_close β€” Closes the focused window.
  • window_put_in_grid grid_width grid_height cell_x cell_y cell_width cell_height β€” Moves and resizes the focused windows accordingly to fit in a cell defined by the cell_x and cell_y coordinates, measuring cell_width in width and cell_height in height, in a virtual grid with width grid_width and height grid_height on the current monitor. cell_width and cell_height are expressed in grid cells. Gaps around the windows in the grid can be added along with monitor gaps.
  • window_move_in_grid x y β€” Move a gridded window by x and y grid spaces.
  • window_resize_in_grid x y β€” Resize a gridded window by x and y grid spaces. Positive values grow, negative values shrink.
  • window_snap POSITION β€” Snap the window on the screen in a position defined by POSITION.
  • window_cycle β€” Cycle through mapped windows.
  • window_rev_cycle β€” Reverse cycle through mapped windows.
  • window_cycle_in_group β€” Cycle through mapped windows that belong to the same group as the focused window.
  • window_rev_cycle_in_group β€” Reverse cycle through mapped windows that belong to the same group as the focused window.
  • window_focus id β€” Focus window by id. The id can be found using pfw(1) or lsw(1) from wmutils https://github.com/wmutils/core/.
  • window_focus_last β€” Focus the window that was focused before the currently focused window.
  • window_cardinal_focus DIRECTION β€” Focus the closest window in a direction, relative to the currently focused window. Does nothing if there is no window focused.
  • group_add_window group_nr β€” Add the focused window to the group_nr group. Group numbers start from 0 and end at GROUPS_NO - 1.
  • group_remove_window β€” Remove the focused window from its current group.
  • group_remove_all_windows group_nr β€” Remove all windows from the group_nr group.
  • group_activate group_nr β€” Map all windows that belong to the group_nr group.
  • group_deactivate group_nr β€” Unmap all windows that belong to the group_nr group.
  • group_toggle group_nr β€” Toggle the group_nr group.
  • group_activate_specific group_nr β€” Activate group group_nr and deactivate the rest.
  • wm_quit exit_status β€” Quit windowchef with exit_status exit_status.
  • wm_config key [values...] β€” See CONFIGURING.

πŸ” QUERYING πŸ”

Information about the current state of windowchef is available through X properties of the root window. Example:

xprop -root WINDOWCHEF_ACTIVE_GROUPS

Information about the current state of each managed window is available through X properties of the window. Example:

xprop -id 0x02c00009 WINDOWCHEF_STATUS

Here is a list of exposed properties:

  • WINDOWCHEF_ACTIVE_GROUPS β€” On the root window. An integer list of currently active groups.
  • WINDOWCHEF_STATUS β€” On each managed window. Contains information about the window. Notable properties: group is -1 if the window is not in a group. state can have one of the following values: normal, maxed, vmaxed, hmaxed, monocled.
iykyk: group being -1 means β€œno group bestie,” and state is gonna tell you the whole vibe. πŸ¦‹

βš™οΈ CONFIGURING βš™οΈ

Configuring is done using the wm_config command. Possible configuration keys are:

  • border_width width β€” Sets the border width to width pixels.
  • color_focused, color_unfocused color β€” Sets the border color to color for the focused and unfocused state respectively. color is a hexadecimal value that may or may not start with 0x prefix. Example: 0x1234ef.
  • internal_border_width width β€” Make the first width pixels from the interior to the exterior of the border of another color, so you get two borders. The width of the external border is border_width - internal_border_width.
  • internal_color_focused, internal_color_unfocused color β€” Like color_focused and color_unfocused, but for the internal border.
  • gap_width POSITION width β€” Sets the window gap at POSITION to width. POSITION can be equal to all to set all gaps to POSITION.
  • grid_gap_width width β€” Sets the window gap value used in virtual grids to width.
  • cursor_position POSITION β€” Sets the position of the cursor when moving or resizing windows.
  • groups_nr nr β€” Sets the number of groups to nr. If nr is less than the current number of groups, window that belong to groups whose numbers are greater than nr will be mapped to screen and assigned to the null group.
  • enable_resize_hints BOOL β€” If true, windowchef will respect window resize hints as defined by ICCCM. Most terminal emulators should have this feature.
  • enable_sloppy_focus BOOL β€” Enable sloppy focus.
  • sticky_windows BOOL β€” If sticky_windows is true, new windows will be assigned to the last activated group automatically. Recommended for people who like using workspaces over groups.
  • enable_borders BOOL β€” If true, the border will be fully managed by the window manager. Border colors will be set each time a window gets/loses focus. Setting it to false lets the user manage the border of every window using external tools. (example: chwb2 from wmutils).
  • enable_last_window_focusing BOOL β€” If true, when the currently focused window is unmapped or closed, windowchef will focus the previously focused window. See the window_focus_last command.
  • apply_settings BOOL β€” If true, some settings will be applied on all windows instead of newly created windows. True by default.
  • replay_click_on_focus BOOL β€” If true, when clicking on an unfocused window with the intent to focus it, windowchef will also send the click event to the target window. If false, the window will receive the click event only if it’s already focused.
  • pointer_actions POINTER_ACTION POINTER_ACTION POINTER_ACTION β€” Sets the action that should be done whenever the modifier key and the corresponding button are clicked at the same time on the window. There are 3 actions for three mouse buttons: left, middle and right.
  • pointer_modifier POINTER_MODIFIER β€” Set the modifier for pointer actions.
  • click_to_focus MOUSE_BUTTON β€” Set the mouse button that focuses the hovered window when clicked.

πŸ‘€ SEE ALSO πŸ‘€

πŸ› REPORTING BUGS πŸ›

windowchef issue tracker: https://github.com/tudurom/windowchef/issues

πŸ‘‘ AUTHOR πŸ‘‘

Tudor Roman <tudurom at gmail dot com>


xoxo, Windowchef β€” April 2020 πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from