voir cette page en français

\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

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)

Requirements