|| ||Christopher Roy Bratusek <nano-AT-tuxfamily.org> |
|| ||General discussion about sawfish wm <sawfish-list-AT-gnome.org>,
|| ||[ANNOUNCE] Sawfish 1.8.0 |
|| ||Sun, 13 Mar 2011 10:01:51 +0100|
|| ||Article, Thread
a new version of Sawfish is available now.
Sawfish 1.8.0 "???? (Omoiyari)"
Sawfish is an extensible window manager using a Lisp-based scripting language. Its
policy is very minimal compared to most window managers. Its aim is simply to manage
windows in the most flexible and attractive manner possible. All high-level WM
functions are implemented in Lisp for future extensibility or redefinition.
These are some of the features that set Sawfish apart from other window managers:
* Powerful key-binding: Virtually every functionality provided by Sawfish can be
bound to keys (or mouse buttons).
* Event hooking: For many events (moving windows etc.) you can customize the way
Sawfish will respond.
* Window matching: When windows are created you can match them to a set of rules and
automatically perform actions on them.
* Flexible theming: Sawfish allows for very different themes to be created and a
variety of third-party themes are readily available.
Sawfish was formerly known as Sawmill but then renamed to Sawfish due to pending
patents on the name Sawmill. It's original Author is John Harper who got employed by
Apple which prohibited him to continue working on Sawfish (and librep/rep-gtk). In
Mid 2007 Janek 'The Re-Animator' Kozicki overtook the development of Sawfish. In Mid
2008 Christopher 'Flashrider' Bratusek overtook development of librep and rep-gtk,
followed by Sawfish and SawfishPager in December 2008.
Where to get more infos/news ?
Where to get in contact with the community?
Homepage (Wiki): http://sawfish.wikia.com
We are moving!
Yes, Sawfish is moving away from GNOME. Our new host will be Tuxfamily.org
and the preparations are going well. For more infos visit the ML. Once the
move is done, all required informations for users will be available on our Wiki.
Where to download?
Tar/BZ2: http://download.tuxfamily.org/sawfish/sawfish-1.8.0.tar.bz2 5,2 MB
Tar/XZ : http://download.tuxfamily.org/sawfish/sawfish-1.8.0.tar.xz 3,7 MB
What's new since 1.7.0?
* Incompatible changes
- Infinite-desktop and edge-flip needs updates.
Open the configurator -> "Edge Actions". Changes will be
easy. (Set 4 pull-downs, and you're done mostly.
"Infinite-desktop" is renamed to "viewport-drag".) For more
options, see "Edge Actions" below.
If your `~/.sawfish/rc' opens related modules, delete those
references. These modules are renamed, and you don't have to
manually load them any more.
- Renamed functions [Teika kazura]
* Popup of operations-menu on a window, renamed from
`popup-window-menu' to `popup-window-ops-menu' (both the
function and command). Old names are still available.
* Renamed window rename, from `rename-window-func' to
`rename-window'. (Old name is still avialable.) The
function `rename-window-interactive' is deleted. Use
`(call-command 'rename-window)' instead.
Even if the old names still remain, it is highly recommended
- Syntax-change in `jump-or-exec' [Christopher Bratusek]
The previous `class' and `onfocused' parameters are now keys,
and pass them as "#:match-class t/nil" or "#:onfocused
value". Note that `match-class' is _boolean_; To pass a
class, set `#:match-class t' and pass the class name to the
argument `regex'. (*note Application Invocation::)
- Apps-menu options `apps-menu-show-all' is deleted. See below
- User option `focus-ignore-pointer-events' is deleted. [Teika
In fact, it's for internal use, and should not have been a
user option. Use your favorite focus mode instead.
- Animation related modules are renamed [Teika kazura]
All are collected under `sawfish/wm/animation'.
`window-anim.jl' -> `setup.jl', `outline.jl' -> `main.jl',
`util/window-outline.jl' -> `modes.jl'.
* Build and Installation
- Fixed installation for non-root users [Stefano Sabatini]
Previously when installing to a private directory as an
ordinary user, the installation failed, because some files
were forced to be installed in /usr. This is fixed now.
- Session files installation [Christopher Bratusek]
Now you can choose which session files (default: all) to
install with these configure-options:
* `--with/out-kde4session': enable or disable the
installation of session files for KDE4.
* `--with/out-gnome2session': enable or disable the
installation of session files for GNOME2.
* `--with/out-xdmsession': enable or disable the
installation of session files for XDM (or other
- Spec-File compatibility for RHEL 6 beta [Kim B. Heino]
- Debian-Scripts (mostly) updated to the new specification
* Bug fixes
- Poweroff-menu fix [Teika Kazura, Christopher Bratusek]
In Sawfish-1.7.0, poweroff related items in the popup menu
couldn't be invoked, if run without any desktop environment.
- Correctly build SawfishPager [Christopher Bratusek]
It is ensured that SawfishPager builds correctly, by
improving `sawfish.pc' file.
- At focus in/out, correctly reports the mode [Timo Korvola]
When `focus-in-hook' / `focus-out-hook' are called, Sawfish
wrongly reported a focus change during a grab as "ungrabbed".
Now it's reported as `while-grabbed'.
- Window cycle among groups [Teika Kazura]
Some windows were skipped in window cycles among groups. This
- No more crash at loading wrong theme code [Teika Kazura]
From Sawfish-1.7.0, Sawfish used to crash when a theme with
wrong code is loaded, but it's fixed. It's not complete, and
for example some mxflat options make Sawfish crash.
- Cancellation of `call-command' [Teika kazura]
It used to print an error message when you cancel an
interactive call of `call-command' with the escape key, but
it doesn't any more.
- KDE *.desktop files location [Teika Kazura]
Previously, user's change of the variable
`kde-desktop-directories' was ignored, but this is fixed.
* New Features
- Edge Actions [Christopher Bratusek]
"Edge Actions" is a centralized way to invoke an action when
the mouse pointer hits a screen-edge. It includes former
"edge-flip" and "infinite-desktop" (now renamed to
"viewport-drag"), and a new feature "hot-spot".
Edge-flip and viewport-drag can be configured from the
configurator "Edge Actions" group. Options are easy to
"Hot-spot" lets you assign an action to each screen-edge and
-corner. An action has to be a lisp function, and can be set
in `~/.sawfish/rc', like this:
(lambda () (display-message "hello world")))
Hot-spot variable names consist of position (e.g. top-left or
bottom) + "edge"/"corner" + "function".
Other related changes are:
* Viewport-drag and edge-flip (of course hot-spot, too)
can be chosen per direction, top-bottom and left-right.
It's also possible to enable / disable dragging of a
window for each of them.
* It means a window can be dragged during viewport-drag,
which was not possible.
* There're two delay timers now, for edge-flip and
* Codes are found in `sawfish.wm.edge.*'. You don't have
to import them for ordinary use.
* Low-level functions now have API in
`sawfish.wm.edge.util' written in Lisp.
- Replace running window manager with Sawfish [Timo Korvola]
New command line option `--replace' is added. With it, Sawfish
will replace the currently running window manager. It's done
by "manager selection" defined in ICCCM secs 2.8 and 4.3.
- Toggle-Or-Exec wrapper added to Jump-Or-Exec [Christopher
`toggle-or-exec' is similar to jump-or-exec, but turns windows
into quake-like drop-down/pop-up-windows. That means, when
you have the toggle-window focused and press its keybinding
again, it will be hidden.
See the file `jump-or-exec.jl' for more detailed examples.
- `iconify-on-leave' window-matcher [Christopher Bratusek]
This new window-matcher is a companion to `toggle-or-exec'.
When a window matched loses the focus, it gets hidden. Use
this together with `toggle-or-exec' for greater toggle-window
- Error printing during initialization [Teika Kazura]
When an error occurs during initialization, and if you don't
customize the option `error-handler', then the error is
reported to both the screen and standard-error. After Sawfish
starts, it's printed to the standard-error only.
- New function `report-commands' [Teika kazura]
It returns the list of all commands. (*note Operations on
* Misc Changes
- Tabs and themes [fuchur]
A new, tab-capable, highly configurable theme "StyleTab" is
added. It allows the tab-bar to appear in top, left, right,
and bottom. Use a new window rule `title-position' for it.
"StyleTab" is now the default theme.
Many improvements in tab system are done. For example,
stickiness change on a window applies to all other windows in
the same tab group, though maybe not yet complete. (Please
tell us things you noticed.)
When you used a tab capable theme (Elberg-Tabbed or
Get-S-Tabbed), you had to manually adjust positions by pixel,
but it's not necessary any more.
When a lot of windows are open, they should now be more
- Application menu is fully customizable [Matthew Love]
With the new option `apps-menu-filter', you can fully
customize the application menu. For the full description, see
*Note Applications Menu::.
It replaces former options like `apps-menu-show-all' or
- Per-window animation mode [Teika kazura]
From the configurator "Window Rules" you can set the animation
mode when iconified. (*note Animating Windows::)
- Behavior modification at focus-in [Harald van Dijk]
In order to support "gnome2-globalmenu", the reaction policy
to `XFocusInEvent' is slightly modified. Sawfish doesn't emit
`_NET_ACTIVE_WINDOW' if it's done by (un)grabbing the pointer.
- Revised `get-window-by-*' functions [Christopher Bratusek]
For the details, see *Note Window Attributes::, and *Note
* Added functions `window-role' and `get-window-by-role'
* Deleted `get-window-by-name-re' and
`get-window-by-class-re'. Use instead
`get-window-by-name' or `get-window-by-class' with the
new boolean option `#:regex'. (The old name is still
* added `#:icon' switch to `get-window-by-name' to get a
window via NET_WM_ICON_NAME (can be used with #:regex
* Commands to resize a window [Christopher Bratusek, Teika
Four new commands to resize a window where you can
specify the size by pixels are there. You're either
prompted to type in the new size, or you can preset it
in the configurator.
For the new command `resize-window-to-preset-size',
first you specify a size in the configurator. The
focused window will be resized to that preset size on
invocation. There're also commands to change only one of
the height and width.
`resize-window-prompt' prompts you to enter the new size.
- Window-operation menu improvements [Christopher Bratusek]
+ The window-operation menu now honours window rules
better. For example, if you have a window with
`fixed-size' flag, the window-operations menu-entry
`Resize' becomes unclickable.
+ The entries for moving and copying windows to another
workspace are now bundled in the new `Workspace'
- Translation related changes [Teika Kazura]
+ Added translator instructions in `po/README' file.
+ Before you run `po/make-pot' to generate `sawfish.pot',
you now have to do `make all' at the top directory.
Previously it was possible to produce wrong
+ Translation updates: Spanish [gnome-es team], German
[gnome-de team], Simplified-Chinese [gnome-zh_CN team,
Wang Lei], Norwegian/bokmål [gnome-no team] French
[gnome-fr team], Czech [gnome-cs team] and Slovenian
+ Updated `sawfish.pot' and subsequently all `*.po'.
Banished some bogus items in `sawfish.pot'.
(Developer's personal extensions had sneaked in.)
- Emacs sawfish-mode now indents `let-fluids' and let-loop
correctly, provided by `sawfish.el' [Teika Kazura]
- Turn `focus-ignore-pointer-events' into an internal variable
(has wrongly been a user-option before) [Teika Kazura]
- Documentations [Teika kazura]
* Section on popup menus is rewritten. (*note Popup
* Functions which return window geometry are now clarified
in the point of frames.
* Correction: The function `commandp' can only take
symbols as its argument. (*note Operations on Commands::)
- SawfishConfig "Window rules" section changes [Teika Kazura]
Category `Placement' is renamed to `Geometry'. The item
`shade-hover' is moved to `appearance' category, and
`fixed-size' to `geometry'.
- Deletion of outdated features in command definition [Teika
Function `define-command-args' is deleted. In `define-command'
function, the keyword argument `doc-key' is dropped.
gnome-announce-list mailing list
to post comments)