https://github.com/baskerville/bspwm
It uses XCB rather than Xlib and this makes it blazingly fast, even for a tiler.
It is designed to automate window handling and maximise the use of screen real estate and is controlled through keybindings, the mouse (it has better mouse support than most tilers) and the `bspc` command.
Much like Openbox, bspwm does not include a panel and I have found that it plays very nicely with tint2 thanks to full EWMH compliance.
Installation (manual)
Unfortunately, bspwm is not available in the Debian repositories and so must be installed from source.
First, install all of the dependencies:
Code: Select all
sudo apt install git gcc make xcb libxcb-util0-dev libxcb-ewmh-dev libxcb-randr0-dev libxcb-icccm4-dev libxcb-keysyms1-dev libxcb-xinerama0-dev libasound2-dev libxcb-xtest0-dev
Code: Select all
git clone https://github.com/baskerville/bspwm.git
git clone https://github.com/baskerville/sxhkd.git
git clone https://github.com/baskerville/xdo
Code: Select all
cd sxhkd && make && sudo make install
cd ../xdo && make && sudo make install
cd ../bspwm && make && sudo make install
Custom Repository
bspwm 0.9.1
sxhkd 0.5.6
xdo 0.5.2
To add the repository to your sources, use:
Code: Select all
sudo tee /etc/apt/sourceslist.d/HoaS.list <<< 'deb http://download.opensuse.org/repositories/home:/Head_on_a_Stick:/bspwm/Debian_8.0/ /'
Then update the APT package database:
Code: Select all
sudo apt update
Code: Select all
sudo apt install bspwm sxhkd xdo
Configuration
Copy over the configuration files:
Code: Select all
mkdir -p ~/.config/{bspwm,sxhkd}
cp /usr/share/doc/bspwm/examples/bspwmrc ~/.config/bspwm
cp /usr/share/doc/bspwm/examples/sxhkdrc ~/.config/sxhkd
Modify these to your tastes according to bspwm(1) and sxhkd(1)
A list of all the variables that can be used in bspwmrc can be found in the "Settings" section of https://github.com/baskerville/bspwm
The keybinds are all listed clearly in sxhkdrc and the syntax is very simple.
The default configuration starts urxvt with <Win>+<Return> and starts dmenu with <Win>+<Spacebar>
Tint2 and any other desired autostart programs such as volti & xfce4-power-manager can be added to ~/.config/bspwm/bspwmrc
Here is an example file:
Code: Select all
# ~/.config/bspwm/bspwmrc
#! /bin/sh
bspc config border_width 1
bspc config window_gap 0
bspc config split_ratio 0.5
bspc config borderless_monocle true
bspc config gapless_monocle true
bspc config focus_by_distance true
bspc monitor -d I II III
bspc rule -a Gimp state=floating follow=on
bspc rule -a Mplayer2 state=floating
bspc rule -a Lxappearance state=floating
bspc rule -a Kupfer.py focus=on
bspc rule -a Screenkey manage=off
bspc config focused_border_color "#00aacc"
bspc config normal_border_color "#222222"
bspc config urgent_border_color "#ff0000"
bspc config focus_follows_pointer true
bspc config bottom_padding 30
xset s 300
xrdb ~/.Xdefaults
urxvtd -q -f -o
synclient tapbutton1=0 tapbutton2=0 tapbutton3=0 verttwofingerscroll=0 vertedgescroll=1 horizedgescroll=1 horizscrolldelta=10
sh ~/.fehbg
xfce4-power-manager
compton --backend glx --vsync opengl-mswc &
volti &
tint2 &
sxhkd &
Make sure that this line is present to start the keybind daemon:
Code: Select all
sxhkd &
Code: Select all
sxhkd -f 100 &
To select bspwm as your window manager, add it to /etc/alternatives as x-session-manager with a high priority:
Code: Select all
sudo update-alternatives --install /usr/bin/x-session-manager x-session-manager $(which bspwm) 90
To reset the default window manager, use:
Code: Select all
sudo update-alternatives --config x-session-manager
Code: Select all
cat contrib/bash_completion >> ~/.bashrc # for BASH users
cat contrib/zsh_completion >> ~/.zshrc # for zsh users
Alternatively, a tint2 launcher could be used to start 9menu or similar.
There is also the possibility or using xfce4-panel instead of tint2 to take advantage of the menu plugin(s).
https://forums.bunsenlabs.org/viewtopic ... 7005#p7005
This is the fastest and lightest window manager I have used so far:
Code: Select all
empty@BunsenLab ~ % sudo ps-mem|grep bspwm
432.0 KiB + 78.0 KiB = 510.0 KiB bspwm
empty@BunsenLab ~ % sudo ps-mem|grep openbox
3.0 MiB + 1.5 MiB = 4.5 MiB openbox
Documentation
Code: Select all
man bspwm bspc sxhkd xdo lemonbar
https://github.com/windelicato/dotfiles ... or-dummies
https://wiki.archlinux.org/index.php/Bspwm