![]()
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
Downloads:
ChangeLog:
1.13.0 "Bolero"
===============
• Bug Fixes
− Fix random resize issues with GTK+3 [GSR]
− Improved KDE4/5 integration, prevent Plasma and KRunner
windows to be tiled. [Christopher Bratusek]
− Update KDE5 session script, use ‘startx11-plasma’ instead of
‘startkde’ [Christpher Bratusek]
− Make ‘shring-yank’ recognise screen edges when shrinking or
yanking windows, when the window crosses screen edges [Michal
Nazarewicz]
− Add support for ‘_NET_FRAME_EXTENTS’ and
‘_NET_REQUEST_FRAME_EXTENTS’ properties, fixing issues with
HTML5 data element positioning in browsers, and several more
[GSR]
− Fix wrong detection of GNOME because of other DEs using an old
GNOME-related envvar [Christopher Bratusek]
• Build and Installation
− Make build reproducible [Bernhard M. Wiedemann]
− Fix cross compilation [Helmut Grohne]
− Fix compilation with GCC10 [Kim B. Heino]
x allow overriding ‘build-info’ build time, hostname and
username.
x avoid recreating theme tarball for every single file (the
old code was erroneously recreating theme tarballs for
each file contained thus calling ‘tar’ over 200 times to
create 8 tarballs)
x make ‘DOC’ file reproducibly
x other improvements to make builds reproducible
− Explicitely check for ‘rep’ binary, not just ‘librep-dev’.
[Christopher Bratusek]
− First check for ‘libgtk2.0-dev’ then for ‘rep-gtk-dev’.
[Christopher Bratusek]
− Only create session file directories for GNOME 2, KDE 4 or KDE
5 if actually requested by user. [Christopher Bratusek]
− Makefile.in ‘distclean’ target no longer utilizes
debian/rules, no longer removes finalized RPM spec file or
Gentoo ebuild. [Christopher Bratusek]
− Remove dead code from ‘build-info’ [Ulrik Haugen]
− Revert commit ‘6ad175d835aee85179259d7c02b3be152d3e4b86’, "The
problem is that any sticky windows that have been focused…",
see https://github.com/SawfishWM/sawfish/pull/49 [Mario
Goulart]
• New or changes features
− Make ‘match-window’ allow specifying arbitrary functions as
filter [Michal Nazarewicz]
• Miscellaneous Changes
− Various minor changes to the Makefiles, mostly replacing
‘gitlcean’ target with ‘distclean’ target and adding ‘.PHONY’
section. Also move theme tarball creation into ‘all’ target,
rather than ‘install’ target. [Christopher Bratusek]
− Make ‘rename-window’ throw an actual useful error message if
no string (or no usable) was given. [Christopher Bratusek]
− Make ‘resize-window-prompt’ throw an actual useful error
message if one (or both) of the input values was not given.
[Christopher Bratusek]
− Move several modules from ‘sawfish.wm.prg’ into the Sawfish
Extras package [Christopher Bratusek]
+ ‘diodon’
+ ‘fehlstart’
+ ‘idesk’
+ ‘nm-applet’
+ ‘pancake’
− Filter out ‘Trayer’ in ‘cabinet’. [Christopher Bratusek]
− Update Lumina integration. [Christopher Bratusek]
− Update GNOME integration and explicitely check for GNOME,
respectively GNOME-classic [Christopher Bratusek]
− Update KDE5 integration, check for plasma as desktop session
[Christopher Bratusek]
− Simplify Frame-Style README parsing. [OpenBSD patch]
− Update Japanese translation. [Takeshi Hamasaki]
− Update Korean translation. [parkmino]


