/bsp-layout

Manage layouts in bspwm (tall and wide)

Primary LanguageShellMIT LicenseMIT

bsp-layout

Manage layouts in bspwm (tall and wide)

BSPWM does one thing and it does it well. It is a window manager. But some workflows require layout management to some extent. bsp-layout fills that gap.

Looking for maintainers

Dependencies

  • bash
  • bspc
  • bc
  • man

Installation

AUR

Arch users can install it from AUR bsp-layout or bsp-layout-git

# If you are using yay
yay -S bsp-layout

# Or for git master
yay -S bsp-layout-git

Install script

Others can install it directly using the install script.

Note: Please read scripts like these before executing it on your machine

curl https://raw.githubusercontent.com/phenax/bsp-layout/master/install.sh | bash -;

Clone and make

You can also clone the repo on your machine and run sudo make install in the cloned directory

Supported layouts

  • tall - Master-stack with a tall window.
_______________
|        |____|
|        |____|
|        |____|
|________|____|
  • rtall - Master-stack with a reversed tall window.
_______________
|____|        |
|____|        |
|____|        |
|____|________|
  • wide - Master-stack with a wide window.
_______________
|             |
|             |
|_____________|
|____|____|___|
  • rwide - Master-stack with a reversed wide window.
_______________
|____|____|___|
|             |
|             |
|_____________|
  • grid - Horizontal grid layout
_____________
|   |   |   |
|___|___|___|
|   |   |   |
|___|___|___|
  • rgrid - Vertical grid layout
_____________
|_____|_____|
|_____|_____|
|_____|_____|
  • even - Evenly balances all window areas
_______________
|___|____|____|
|___|____|____|
|___|____|____|

OR
_______________
|    |        |
|    |________|
|    |        |
|____|________|
  • tiled - Default bspwm's tiled layout
_______________
|        |    |
|        |____|
|        |  | |
|________|__|_|
  • monocle - Default bspwm's monocle layout
_______________
|             |
|             |
|             |
|_____________|

Usage

  • Help menu
bsp-layout help
  • Set a layout in desktop named 6 Not specifying the desktop will apply the layout on the focused desktop
bsp-layout set tall 6
  • Set tall layout to desktop with a 40% split Set the master size for layout
// Currently focused workspace
bsp-layout set tall -- --master-size 0.4

// Workspace 6
bsp-layout set tall 6 -- --master-size 0.4
  • Remove layout applied to desktop named 6 This will remove any layout applied
bsp-layout remove 6
  • Apply a layout on your focused workspace once This will apply the layout on the current set of nodes on that workspace but newer nodes won't conform to the layout.
bsp-layout once tall
  • Go back through layouts Go back through all (or a custom list of) layouts.
# Switch to previous layout
bsp-layout previous

# Or to go back through a custom list of layouts
bsp-layout previous --layouts tall,monocle,wide

# For a specific desktop
bsp-layout previous --layouts tall,monocle,wide --desktop 4
  • Go through layouts Go through all (or a custom list of) layouts.
# Switch to next layout
bsp-layout next

# Or to go through a custom list of layouts
bsp-layout next --layouts tall,monocle,wide

# For a specific desktop
bsp-layout next --layouts tall,monocle,wide --desktop 4
  • Toggle layout
# Toggle between monocle and tall layouts
bsp-layout next tall,monocle

Configuration

You can configure the size of the master window in percentage in $XDG_CONFIG_DIR/bsp-layout/layoutrc file. An example of that file can be found in example.layoutrc

mkdir ~/.config/bsp-layout && curl https://raw.githubusercontent.com/phenax/bsp-layout/master/example.layoutrc > ~/.config/bsp-layout/layoutrc;