LinuxCommandLibrary

bspc

Manage windows in a binary space partitioning

TLDR

Define two virtual desktops

$ bspc monitor --reset-desktops [desktop_name1] [desktop_name2]
copy

Focus the given desktop
$ bspc desktop --focus [number]
copy

Close the windows rooted at the selected node
$ bspc node --close
copy

Send the selected node to the given desktop
$ bspc node --to-desktop [number]
copy

Toggle full screen mode for the selected node
$ bspc node --state ~fullscreen
copy

Set the value of a specific setting
$ bspc config [setting_name] [value]
copy

SYNOPSIS

bspc [OPTIONS] COMMAND [ARGUMENTS]

PARAMETERS

--help
    Shows the help message and exits.

--version
    Shows the version number and exits.

--socket <path>
    Specifies the path to the socket to communicate through (default: /tmp/bspwm_$USER_0)

--verbose
    Enables verbose output.

DESCRIPTION

bspc is a binary space partitioning composite (BSPC) manager, a window manager that represents windows as the leaves of a full binary tree. It's a lightweight and highly configurable window manager that allows users to control window placement, sizing, and focus using commands, typically issued via a keyboard shortcut daemon like sxhkd. It provides minimal functionality itself, focusing on the BSP tree management and providing a command interface. Users are expected to configure it extensively to achieve their desired workflow. Window management is highly controllable using commands to manipulate nodes and leaves (windows) in the BSP tree, allowing for fine-grained control over window tiling. Focus follows the binary tree structure, promoting intuitive navigation. Because of it's composable nature, you can pipe bspc commands into each other.

Note: This is a technical window manager, and requires some technical knowledge to get used to.

CAVEATS

Requires an X server and typically relies on a keyboard shortcut daemon (like sxhkd) for practical usage.

COMMANDS

bspc offers a rich set of commands categorized into:

  • Node commands: Manipulate individual windows.
  • Desktop commands: Manage desktops within a monitor.
  • Monitor commands: Configure monitors.
  • Query commands: Retrieve information about the state of the window manager.
  • Config commands: Modify bspc's configuration settings.
Consult the man page for the full list of commands and their options.

HISTORY

bspc was created by Bas van Beek. It's designed with simplicity and customizability as core principles and has gained popularity for its efficiency and flexibility, becoming a favourite for users seeking precise control over their window management experience. Active development and a dedicated community have contributed to its ongoing refinement and adoption.

SEE ALSO

sxhkd(1), xprop(1), xrandr(1)

Copied to clipboard