workspaces
Description
This patch adds support for workspaces. Each monitor now has N
independently-named workspaces (defined via the new workspaces array in
config.h, like tags). Every client belongs to exactly one workspace;
switching workspaces hides all clients from the previous workspace and shows
only those from the new one.
Each workspace maintains its own tag view, layout, and layout history independently of all others. Switching workspaces carries the current tag selection over so the viewed tag does not change.
Default keybinds (where F<n> represents function keys):
Mod+F<n>: Switch to workspace n.Mod+Shift+F<n>: Move focused window to workspace n.
The bar shows workspace buttons leftmost, styled identically to tag buttons
(SchemeSel for active, SchemeNorm for others). Clicking a workspace button
switches to it.