Sawfish Window Manager for X11
Sawfish is an extensible window manager using an Emacs Lisp-like scripting language–all window decorations are configurable, the basic idea is to have as much user-interface policy as possible controlled through the Lisp language.
Despite this extensibility its policy is currently very minimal compared to most window managers. Its aim is simply to manage windows in the most flexible and attractive manner possible. As such it does not implement desktop backgrounds, applications docks, or other things that may be achieved through separate applications.
All high-level wm functions are implemented in Lisp for future extensibility or redefinition. Currently this includes menus (using GTK+), interactive window moving and resizing, virtual desktop, iconification, focus/transient window policies, frame theme definitions and much more.
Also, most received events are exported to the Lisp environment through “key-bindings” and hooks, similar to in Emacs. These events include pointer behaviour and many internal X11 events (enter/leave, focus-in/focus-out, map/unmap, etc..)
License: GNU GPL v2
* Bug Fixes - Fix possibly wrong 'input-focus' from 'enter-*' focus-modes in tabbed-windowing. [fuchur] - Properly support tabbed-windowing when tiling is active aswell. [fuchur] - Several fixes for the 'wallpaper' module regarding wrong values or non-existent files. [Christopher Bratusek] - When calling the 'stop' function from 'sawfish.wm.prg' fehlstart, trayer, pancake, xmobar and xsettingsd modules calling 'start' afterwards in the same session failed. This is fixed now. [Christopher Bratusek] - When installing manpages the 'mandir' from configure is now honoured. [Christopher Bratusek] - Fix handling symbol-type defcustoms in sawfish-xgettext, preventing generation of new sawfish.pot. [Christopher Bratusek] - Fixed that 'Open Home' was shown in the root menu even if 'filemanager-program' was unset. [Christopher Bratusek] - In SawfishConfig 'x-terminal-emulator' was used to access the Sawfish info-file. For better compat with non-Debian-distributions, use 'xterm' instead. Note that the Sawfish variable 'xterm-program' is not accessible from SawfishConfig. [Christopher Bratusek] * New Features - Session scripts with xdm (and compatible) integration. [fuchur] [Christopher Bratusek] x 'sawfish-mate-session'/'Sawfish/MATE' start Sawfish and then initialize MATE session. x 'sawfish-kde4-session'/'Sawfish/KDE4' start Sawfish and then initialize KDE4 session. [note: it's still possible to select Sawfish from System Settings > Default Applications and starting KDE4 normally using Sawfish in favour of KWin] x 'sawfish-xfce-session'/'Sawfish/XFCE' start Sawfish and then initialize XFCE session. x 'sawfish-lumina-session'/'Sawfish/Lumina' start Sawfish and then initialize Lumina session. Also add Lumina integration module. x Other desktop environments: + GNOME2: set the GConf key '/desktop/gnome/session/required-components/windowmanager' to 'sawfish' and start a new session. + LXDE: in lxsession-default-apps replace 'openbox' with 'sawfish'. + Razor Qt: in the razor configuration center > default applications enter 'sawfish' in the corresponding field. + Other: no other desktop environments are officially supported as of now. x Note for Debian users: the official Sawfish Debian GNU/Linux packages for amd64/i386/armhf distributed at http://apt.nanolx.org/ now have three more packages built from the Sawfish source: + 'sawfish-kde4-session': install above mentioned KDE4 integration and (install if not already) kde-core (metapackage for minimal KDE4 desktop) + 'sawfish-mate-session': install above mentioned MATE integration and (install if not already) mate-desktop-environment-core (metapackage for minimal MATE desktop) + 'sawfish-xfce-session': install above mentioned XFCE integration and (install if not already) xfce (meta-package for XFCE desktop) + 'sawfish-lumina-session': install above mentioned Lumina integration and (install if not already) lumina-desktop (meta-package for Lumina Desktop) - 'CTWM' like interactive window placement. Previously pressing any button while interactively placing a window would place it. 'Sawfish' now mimics 'CTWM's behaviour: pressing button 1 will just place the window, button 2 will allow dragging to resize the window and place it when the button releases, button 3 will place the window and attempt to fill it to the screen bottom. [Maxime Soulé] - New EdgeActions for when moving windows. [Christopher Bratusek] x 'kill' Kill a window when moved to the given edge x 'iconify' Iconify a window when moved to the given edge x 'move-window-viewport' Move window to the viewport in the direction of moving against the edge x 'move-window-workspace' Move window to the workspace in the direction of moving against the edge - Separate left/right and top/bottom edges in SawfishConfig, allowing for individual actions on each edge. [Christopher Bratusek] - Add 'send-window-to-next-head' and 'send-window-to-previous-head' functions for moving windows across heads. [fuchur] - Add 'toggle-window-fixed-size' for toggling fixed-size on windows, also used in lock-button 'Button3-Off'. [fuchur] - Add ability to move tabs around in the titlebar. [fuchur] - Add 'run-application' by Sergey I. Sharybin, with several improvements and better integration into Sawfish. Also add 'Run Application' entry at the bottom of the root menu. [Christopher Bratusek] - Add 'sawfish.wm.prg.nm-applet', simple auto-starter for the 'Network Manager Applet'. [Christopher Bratusek] - Add 'sawfish.wm.prg.diodon', simple auto-starter for the 'Diodon Clipboard Manager'. [Christopher Bratusek] - Add 'sawfish.wm.prg.conky', simple auto-starter for the 'Conky System Monitor'. [Christopher Bratusek] - Add 'sawfish.wm.prg.idesk', simple auto-starter for the 'Idesk Desktop Icon Manager'. [Christopher Bratusek] * Miscellaneous Changes - Majorly improve speed-up of StyleTab theme by locking the re-coloring of images until all configuration is loaded, so that re-coloring is only done once upon start. [fuchur] - In 'sawfish.wm.prg.compton' delay compton start by 3 seconds to prevent heavy screen flickering. [fuchur] - Improve 'cabinet' window-switcher. Code-cleanup, bug fixes, blacklisting applications (mostly panels, pagers) and icon for missing window-icons. [fuchur] - Enable 'shade-hover' and 'auto-raise' in SawfishConfig, utilize them in tabbed-windowing. [fuchur] - Add 'marked-cursor-shape' defcustom (used when marking windows for tabbing). [fuchur] - Improve icon size in StyleTab, add 'Flat' style. Also improve speed and decrease memory usage by mirroring images [fuchur] - Use 'menulibre' instead of 'alacarte' in XFCE and MATE integration by default [fuchur] - Do not let 'xfce-session' save the session (by adding '-f' flag in XFCE integration) [fuchur] - Add 'Open Terminal' and 'Open Browser' to the root menu (if 'xterm-program' or 'browser-program' are set) [Christopher Bratusek] - Rename 'toggle-fixed-position' to 'toggle-window-fixed-position' to match naming spec. [Christopher Bratusek] - Tweak default compton settings. [fuchur] - Improve doc strings in many modules [fuchur] - Add 'html' target to man/Makefile, creating html-documentation [Christopher Bratusek] - Add 'make-changelog' script by Marcus D. Hanwell (generates ChangeLog from git log) [Christopher Bratusek] - Updated german translation. [fuchur] - Updated RPM spec file. [Kim B. Heino] - Updated Debian packaging scripts. [Christopher Bratusek]