[][src]Crate penrose

A tiling window manager in the style of Xmonad

Re-exports

pub use data_types::ColorScheme;
pub use data_types::Config;
pub use layout::Layout;
pub use layout::LayoutKind;
pub use manager::WindowManager;
pub use xconnection::XcbConnection;

Modules

client

Metadata around X clients and manipulating them

data_types

Simple data types and enums

helpers

Utility functions for use in other parts of penrose

layout

Layouts are maintained per monitor and allow for indepent management of the two paramaters (n_main, main_ratio) that are used to modify layout logic. As penrose makes use of a tagging system as opposed to workspaces, layouts will be passed a Vec of clients to handle which is determined by the current client and monitor tags. arrange is only called if there are clients to handle so there is no need to check that clients.len() > 0. r is the monitor Region defining the size of the monitor for the layout to position windows.

macros

Utility macros for use in the rest of penrose. Not intended for general use

manager

Main logic for running Penrose

screen

Information on connected displays

workspace

A Workspace is a set of displayed clients and a set of Layouts for arranging them

xconnection

API wrapper for talking to the X server using XCB

Macros

debug

Log an DBUG level message to stderr if we were compiled in debug

die

log the reason why we we're dying and immediately exit

gen_keybindings

make creating all of the key bindings less verbose

log

Log an INFO level message to stderr

map

make creating a hash-map a little less verbose

notify

use notify-send to trigger a pop up window with a message (used for debugging)

run_external

kick off an external program as part of a key/mouse binding. explicitly redirects stderr to /dev/null

run_internal

kick off an internal method on the window manager as part of a key/mouse binding

warn

Log a WARN level message to stderr