X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;ds=sidebyside;f=README.md;h=21df5b4ca72ae237eefabe0d1d7d08b289d502c2;hb=ad421ab770ea2f96d6edd9d8eb04e0de9b3e3371;hp=b6760b473738bea9b5ab648194674cf042722f05;hpb=f0ab3e390e4506654267880d11c5cbbcaa297a8e;p=bspwm.git diff --git a/README.md b/README.md index b6760b4..21df5b4 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -![logo](https://github.com/baskerville/bspwm/raw/master/resources/bspwm_logo.png) +![logo](https://github.com/baskerville/bspwm/raw/master/logo/bspwm-logo.png) ## Description @@ -10,11 +10,11 @@ The windows are represented as the leaves of a binary tree. `bspwm` have only two sources of informations: the X events it receives and the messages it reads on a dedicated socket. -Those messages are sent through the `bspc` program. +Those messages are sent via `bspc`. If the `BSPWM_SOCKET` environment variable is defined, it will be used as the socket path, otherwise `/tmp/bspwm-socket` is used. -The recommended way of defining keyboard shortcuts is to use `xbindkeys`. +The recommended way of defining keyboard shortcuts is to use `shkd` or `xbindkeys`. The only way to configure `bspwm` is by sending *set* messages via the client, hence `bspwm`'s configuration file is an executable called `autostart` which lives in `$XDG_CONFIG_HOME/bspwm/`. @@ -46,7 +46,7 @@ Example: insertion of a new node (number 4) into the given tree in | | | | | | | +-------------------------+ +-------------------------+ -Same departure, but the mode is *manual*, a `presel up` message +Same departure, but the mode is *manual*, and a `presel up` message was sent beforehand: b b @@ -67,82 +67,88 @@ was sent beforehand: ## Messages -The syntax for the client is `bspc COMMAND ARGUMENTS...`. +The syntax for the client is `bspc MESSAGE [ARGUMENTS ...]`. The following messages are handled: - quit - Quit. - get SETTING Return the value of the given setting. set SETTING VALUE Set the value of the given setting. - dump + list [DESKTOP_NAME] Output the internal representation of the window tree. + list_desktops [--quiet] + Perform a dump of each desktop for the current monitor. + list_monitors [--quiet] Perform a dump of each monitor. - list [--quiet] - Perform a dump of each desktop for the current monitor. - - windows + list_windows Return the list of managed windows (i.e. their identifiers). - close - Close the focused window. - - kill - Kill the focused window. - - presel DIR + presel left|right|up|down Switch to manual mode and select the splitting direction. + cancel + Switch to automatic mode. + ratio VALUE Set the splitting ratio of the focused window. - cancel - Switch to automatic mode. + pad MONITOR_NAME [TOP_PADDING [RIGHT_PADDING [BOTTOM_PADDING [LEFT_PADDING]]]] + Set the padding of the given monitor. - focus DIR - Focus the neighbor node situated in the given direction. + focus left|right|up|down + Focus the neighbor window situated in the given direction. - shift DIR - Focus the neighbor node situated in the given direction. + shift left|right|up|down + Exchange the current window with the given neighbor. - push DIR + push left|right|up|down Push the fence located in the given direction. - pull DIR + pull left|right|up|down Pull the fence located in the given direction. + cycle next|prev [--skip-floating|--skip-tiled|--skip-class-equal|--skip-class-differ] + Focus the next or previous window matching the given constraints. + nearest older|newer [--skip-floating|--skip-tiled|--skip-class-equal|--skip-class-differ] - Focus the nearest leaf matching the given constraints. + Focus the nearest window matching the given constraints. - cycle CYC [--skip-floating|--skip-tiled|--skip-class-equal|--skip-class-differ] - Focus the next or previous window in the list of leaves. + circulate forward|backward + Circulate the leaves in the given direction. - rotate ROT - Rotate the tree of the current desktop. + toggle_fullscreen + Toggle the fullscreen state of the current window. - magnetise COR - Move all the fences toward the given corner. + toggle_floating + Toggle the floating state of the current window. - send_to_monitor MONITOR_NAME - Send the focused window to the given monitor. + toggle_locked + Toggle the locked state of the current window (locked windows will not respond to the 'close' message). + + close + Close the focused window. + + kill + Kill the focused window. send_to DESKTOP_NAME Send the focused window to the given desktop. - use_monitor MONITOR_NAME - Select the given monitor. + send_to_monitor MONITOR_NAME + Send the focused window to the given monitor. use DESKTOP_NAME Select the given desktop. + use_monitor MONITOR_NAME + Select the given monitor. + alternate Alternate between the current and the last focused window. @@ -152,41 +158,38 @@ The following messages are handled: alternate_monitor Alternate between the current and the last focused monitor. - add_in MONITOR_NAME DESKTOP_NAME ... - Make new desktops with the given names in the given monitor. - add DESKTOP_NAME ... Make new desktops with the given names. + add_in MONITOR_NAME DESKTOP_NAME ... + Make new desktops with the given names in the given monitor. + rename_monitor CURRENT_NAME NEW_NAME Rename the monitor named CURRENT_NAME to NEW_NAME. rename CURRENT_NAME NEW_NAME Rename the desktop named CURRENT_NAME to NEW_NAME. - cycle_monitor CYC + cycle_monitor next|prev Select the next or previous monitor. - cycle_desktop CYC + cycle_desktop next|prev [--skip-free|--skip-occupied] Select the next or previous desktop. - - layout LYT - Set the layout of the current desktop to LYT. + + layout monocle|tiled [DESKTOP_NAME ...] + Set the layout of the given desktops (current if none given). cycle_layout Cycle the layout of the current desktop. - toggle_fullscreen - Toggle the fullscreen state of the current window. - - toggle_floating - Toggle the floating state of the current window. + rotate clockwise|counter_clockwise|full_cycle + Rotate the tree of the current desktop. - toggle_locked - Toggle the locked state of the current window (locked windows will not respond to the 'close' command). + rule PATTERN [DESKTOP_NAME] [floating] + Create a new rule (PATTERN must match the class or instance name). - rule PATTERN floating - Make a new rule that will float the windows whose class name or instance name equals PATTERN. + adopt_orphans + Manage all the unmanaged windows remaining from a previous session. reload_autostart Reload the autostart file. @@ -197,17 +200,12 @@ The following messages are handled: reload Reload the autostart file and the default settings. -Where - - DIR = left|right|up|down - CYC = next|prev - ROT = clockwise|counter_clockwise|full_cycle - COR = top_left|top_right|bottom_left|bottom_right - LYT = monocle|tiled + quit + Quit. ## Settings -Colors are either [X color names](http://en.wikipedia.org/wiki/X11_color_names) or '#RRGGBB', booleans are 'true' or 'false'. +Colors are either [X color names](http://en.wikipedia.org/wiki/X11_color_names) or *#RRGGBB*, booleans are *true* or *false*. focused_border_color Color of the main border of a focused window of a focused monitor. @@ -217,13 +215,13 @@ Colors are either [X color names](http://en.wikipedia.org/wiki/X11_color_names) normal_border_color Color of the main border of an unfocused window. - + inner_border_color Color of the inner border of a window. outer_border_color Color of the outer border of a window. - + presel_border_color Color of the *presel* message feedback. @@ -247,44 +245,69 @@ Colors are either [X color names](http://en.wikipedia.org/wiki/X11_color_names) window_gap Value of the gap that separates windows. - top_padding - bottom_padding - left_padding - right_padding - Padding space added at the sides of the screen. + {top,right,bottom,left}_padding + Padding space added at the sides of the current monitor. wm_name The value that shall be used for the _NET_WM_NAME property of the root window. - borderless_monocle + button_modifier + The modifier mask used for mouse bindings (possible values: 'shift', 'control', 'lock', 'mod1' ... 'mod5'). + + numlock_modifier + The modifier holding Num_Lock (cf. xmodmap). + + capslock_modifier + The modifier holding Lock. + + borderless_monocle Whether to remove borders for tiled windows in monocle mode. + gapless_monocle + Whether to remove gaps for tiled windows in monocle mode. + focus_follows_mouse Wether to focus the window under the mouse pointer. + adaptative_raise + Prevent floating windows from being raised when they might cover other floating windows. + ## Mouse Bindings - M4 + Left Button + button_modifier + left mouse button Move the window under the pointer. - M4 + Middle Button + button_modifier + middle mouse button Focus the window under the pointer. - M4 + Middle Button + button_modifier + right mouse button Resize the window under the pointer (by moving one of its four corners). -Where *M4* is the fourth modifier mask (generally bound to *Super*). +## Key Features + +- Configured and controlled through messages +- Multiple monitors support (via *Xinerama*) +- EWMH support (`tint2` works) +- Automatic and manual modes +- Triple window borders ## Panel `dzen2` fed with the output of `ewmhstatus`. Example: [launchpanel](https://github.com/baskerville/bin/blob/master/launchpanel). +Or any EWMH compliant panel. + ## Required Libraries: -libxcb, xcb-util, xcb-util-wm. +- libxcb +- xcb-util +- xcb-util-wm ## Installation make make install +## Contributors + +- [Ivan Kanakarakis](https://github.com/c00kiemon5ter)