phenax / bsp-layout

Manage layouts in bspwm (tall and wide)
MIT License
373 stars 30 forks source link
bash bspwm i3 layout window-manager

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

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

OR


____
____ ____

* `tiled` - Default bspwm's tiled layout

____
____ __ _

* `monocle` - Default bspwm's monocle layout

_____

### Usage

* Help menu
```bash
bsp-layout help

// Workspace 6 bsp-layout set tall 6 -- --master-size 0.4


* Remove layout applied to desktop named 6
This will remove any layout applied
```bash
bsp-layout remove 6

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.
```bash
# 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

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;