BSPWM Beginners Guide
BSPWM Beginners Guide
Wellcome to using manjaro bspwm edition. This is a short beginners guide for the
custom features of this edition.
Table of contents
1. Introduction
1.1. What is bspwm?
1.2. What is bspwm-manjaro?
2. Basic usage
2.1. Virtual desktops
2.2. Window states
2.3. Mouse
2.4. Keyboard
2.5. Configuration
2.6. Scripts
3. Terminal
3.1. Shells
3.2. Custom tools
3.3. Network
4. Support
---------------------
1. Introduction
-------
1.1. What is bspwm?
Like other tiling window managers, bspwm uses extremely little system
resources and is easily controllable with keyboard. What distinguishes it from
other tilers is its strict adherence to unix philosophy: it is a simple tool that
only does one thing, but communicates with other applications through simple text
streams. It does not provide keybindings, buttons or grahical user interface. It
does not draw titlebars to windows. It does not draw panels or desktop. It just
manages windows. This makes it extremely flexible when it comes to choosing other
tools you want to use, and also makes it easily scriptable. It easy to produce
almost any window behavior you desire with simple shell scripts.
See "man bspwm" to read thorough documentation about bspwm commands and
usage.
-------
1.2. What is bspwm-manjaro?
-------
2. Basic usage
Manjaro bspwm edition does not use display manager. You login to console, and
if you do so on TTY1 (default), bspwm is started automatically. If you wish to
setup autologin, xlogin is installed for this purpose and can be easily enabled
with the postinstallation script provided (just run "postinstall" in your
terminal). Note that autologin starts x server on TTY7, while login in TTY1 starts
x on that TTY.
If you wish to start bspwm or some other window manager on another TTY, there
is alias setup for that. Just run command "x" to start bspwm. To start some other
window manager or desktop, use name of that enviroment as an argument. For example,
to start gnome, run "x gnome".
-------
2.1. Virtual desktops
Like other tiling window managers, bspwm makes extensive use of virtual
desktops. That is why there is no option to minimize windows: you have enough
desktops for all your windows and they are easily accessible. To show/focus a
desktop, holder super key and press number of that desktop.
-------
2.2. Window states
Bspwm has several possible window states. Floating windows can have any size
and position. Pseudo-tiled windows can have any size but are centered in their
place. Tiled windows have size and place determined by their node. Full screen
windows just cover everything.
Additionally, bspwm has a few window flags. Sticky windows are visible on all
workspaces. Private windows are not splitted when bspwm is in automatic mode (this
is not default in bspwm-manjaro). Locked windows do not close with regular super+x
keybinding.
-------
2.3. Mouse
Bspwm has good mouse support for a tiling window manager, and this edition
enhances it further by adding a few menus and desktop actions.
You can manipulate windows with mouse when you press super key (the windows
key on many systems). You can move them by dragging them with left mouse button and
resize them by dragging with middle and right mouse buttons. This native bspwm
behavior and can be configured with bspc commands. See "man bspc" for details.
You can open the window action menu by holding alt key and clicking on a
window. This menu allows you to close windows and set various window states.
Holding alt_gr and clicking a mouse will split the focused window and spawn
an applications menu. This means that the app you choose to run gets spawned
exactly where you spawned the menu.
Left clicking the desktop gives you an applications menu. Right clicking the
desktop gives you the desktop action menu. Middle clicking the desktop gives you a
window action menu.
-------
2.4. Keyboard
-------
2.5. Configuration
If you want to edit bspwm settings with an interactive tool, try running
"bspwm-ruler".
For most configuration needs you might have, there is option in tool "bmenu".
-------
2.6. Scripts
1) Copy the script you wish to change into your ~/.bin under different name:
cp /usr/bin/limepanel ~/.bin/mylime
2) Edit the copy any way you like.
3) Use your version instead of the original.
This way you do not need root priviledges to edit the file, and your changes
are not overwritten by pacman updates.
-------
3. Terminal
Bspwm edition uses roxterm as its default terminal. If you want something
even light, install rxvt-unicode and use the launcher script "terminal". Both are
preconfigured.
-------
3.1. Shells
The default shell is zsh instead of bash. The its settings can be edited from
~/.zshrc. It provides automatic launching of bspwm on login in tty1, excellent tab
completion, spelling corretion, and bash compatible syntax. This is the shell that
is started when you log into console in tty.
Roxterm is set launch different shell, however: fish. It is used here instead
of zsh because it provides following advantages: autosuggestion, syntax
highlighting and fzf keybindings. It is also slightly lighter on ram than zsh. It
is not set as the default shell however, because this is known to cause issues with
bspwm, because it is not compatible with bash syntax. If you have problems trying
some bspwm commands, run first zsh and then try again. If you dislike fish you can
disable it from your roxterm settings.
-------
3.2. Custom tools
Bspwm edition has some extra commandline tools that you may find useful:
-------
3.3. Network
This edition comes with the command line tool wpa_tui. It can be used to
replace networkmanager with systemd-network. This has advantage of being more
minimalistic option and using less system resources. However, networkmanager
provides much nicer frontends (nmtui, nmcli-dmenu). To use this, run "wpa_tui" from
command line and choose option 7.
-------
4. Support