\o/ Welcome to the PycaWM project wiki \o/
PycaWM is a window manager written in python and is distributed under the GPLv3 license.
Features
- reparenting
- resizing
- various maximizations:
- normal maximization
- horizontal maximization
- vertical maximization
- maximization only on free space
- horizontal maximization only on free space
- vertical maximization only on free space
- fullscreen
- iconification
- shading
- virtual desktops support (only in svn)
- buttons on the title bar (buttons are customizable; they can be placed at the left or right side too.)
- menus support (to change the active window, to launch applications, ...). (Sub-menus support in svn.)
- keyboard shortcuts support.
- focuses support (SloppyFocus, ClickToFocus, FocusFollowsMouse, ClickToSloppyFocus)
- window placement modes support.
- non-reparentable windows support (xmms, gkrellm, ...)
- shaped (non-rectangular) windows support (via the SHAPE X server extension)
- desktop managers support (GDM & KDM)
- dynamic restart support (we can launch another wms instead of PycaWM too)
Benefits
- each method/function can be hooked. The window manager can thus easily react on pretty much everything. (for example, very useful for plugins.)
- the configuration file is written in python, not in an obscure/abstruse syntax.
- PycaWM is designed to be dynamically modified at runtime. We can dynamically add/remove buttons, keyboard shortcuts, plugins, and even change a window manager method.
Respected standards
- PEP 8 (full support)
- ICCCM (good support)
- EWMH (partial support)
- XDG Base Directory Specification (full support)
- Desktop Entry Specification (good support) (only in svn)
- Desktop Menu Specification (partial support) (only in svn)
Plugins
- MiniIconBox: used to show iconified windows. Each iconified window is represented by its mini-icon and title.
- MovePos: used to show the position of a moved window.
- ResizePos: used to show the dimensions of a resized window (only in svn)
- StickRootEdges: used to have sticky borders on the root window.
- RemoteREPL: used to add a REPL (python shell) to PycaWM. With this REPL, the window manager can be inspected and modified at runtime. In order to connect to the REPL, use the "pycarepl" program.
- Pager: used to manage virtual desktops easily. (only useful in svn)
- ActionButtonBox : used to put buttons directly on the desktop and interact with them (in the same way as for buttons in the title bar of a window). For instance, it can be used to quickly launch applications, to perform various actions or to show a menu.
- MusicActionButtonBox : is an ActionButtonBox that can control your music player by using 2 ActionButton on the desktop. Supported players are at this time: xmms, xmms2, mpd and amarok. (only in svn)
