|| ||Christopher Roy Bratusek <zanghar-AT-freenet.de> |
|| ||gnome-announce-list-AT-gnome.org |
|| ||Sawfish 1.6.0 Release Candidate 1 |
|| ||Tue, 8 Dec 2009 18:52:48 +0100|
|| ||Article, Thread
Sawfish 1.6.0 is going to be released on the 22nd December.
Feature Freeze began on the 4th December, so now it's time for the RC1.
List of Changes since 1.5.0:
* The 1.6.0 release has new features and bugfixes
* Build and installation changes
- New/Updated requirements:
+ librep 0.90.0 -> 0.90.4
+ rep-gtk 0.18.4 -> 0.90.0
- Removed requirements: LibAudiofile and ESounD
- Mouse buttons 6 - 9 support is now optional
Support for 6 - 9 mouse buttons is now optional.
X.Org/XFree86 headers only define up to 5 buttons, and we use
a working but somewhat hackish workaround for getting buttons
6 - 9 which is suspected to cause some problems with
modifiers. Support for them is enabled by default. If you
want to disable it, add the following flag to configure:
If you drop it, then you can't use mouse button 8 to, for
example, drag windows.
* Incompatible user visible changes:
- Configurator's binary, `sawfish-ui', is renamed to
`sawfish-config' [Christopher Bratusek]
Its window class is changed to `sawfish-configurator' /
`Sawfish-Configurator', too. The lisp module is renamed from
`sawfish.ui' to `sawfish.cfg'.
- Infinite Desktop boundary behavior and option
In `infinite-desktop', the option to specify the boundary
behavior has changed. If `viewport-boundary-mode' is
`dynamic', then you can go as far as you like. Otherwise, it
stops at the workspace boundary of which size is specified by
`viewport-dimensions'. Now the latter is the default. See also
"dynamic viewport" described below.
The previous variable,
`infinite-desktop.stop-at-workspace-borders', which is used
for this purpose, no longer exists.
- User config file changes
In Sawfish < 1.6, `sawfish.wm.defaults' is loaded by default,
only if the `~/.sawfishrc' lacks. Now, it is always read, so
you don't have to `require' it. It sets up GNOME and KDE
support if they run, and does `(require
Since Sawfish 1.5 `~/.sawmillrc' is no longer a valid
resoucefil. From this version on, Sawfish will rename
`~/.sawmillrc' to `~/.sawfishrc', if the former does exist on
your system, but the latter doesn't.
- In configurator, the "Matched Windows" group has been renamed
to "Window Rules"
- Sound support has changed. [Christopher Bratusek]
Sawfish used to rely on esound and libaudiofile to play
sound, but we stopped it. If you want sound, set the variable
`play-sample-program' to the path of the program capable of
playing *.wav file. You can set the variable from the
You can't set any arguments to pass from this variable. If
you want to give arguments or redirect output, write a wrapper
program. (*note FAQ::, "Sound support" section.)
- GNOME integration updates [Christopher Bratusek]
Gnome support is trimmed down. All we offer now is as follows:
If GNOME runs, in `session' submenu under Sawfish root menu,
logout and shutdown from GNOME are added. Don't remove `quit'
and `restart' from menu now. Gnome help is available in menu.
Unless set by user, gnome terminal and gnome help browser are
used for user options `xterm-program' and `browser-program'.
Most of dropped GNOME integrations are ancient, mainly for
1.x and early 2.x. Files `lisp/sawfish/wm/commands/gnome.jl'
and `lisp/sawfish/wm/state/gnome.jl' are deleted.
GNOME-Detection is updated. [Alexey I. Froloff]
- Xterm and browser changes
Module `sawfish.wm.commands.xterm' is renamed to
`sawfish.wm.commands.launcher'. Option `xterm-args' is
dropped. If you use it, simply append the value to
Customization group is changed from `misc' to `External
The functinon `display-url' is renamed to `browser', now
defined in the module cited above. Variable
`display-url-command' is renamed to `browser-program'.
* Poweroff actions
Added poweroff command for letting none KDE/GNOME users easily
reboot, halt, suspend or hibernate their machine. The commands
beeing used to do so are also user-settable. In addition, when
it's used to reboot or halt, when we call the `before-exit-hook'
and `map-windows delete-window' before actually rebooting or
halting, to ensure everything is fine on the next startup.
Furthermore entries to the session-menu are beeing added. If
you're using KDE or GNOME then those are not generated.
* Bugs fixed:
- Prevents crashes for quick window destructions, especially
under high load
There have been crashes if a window is destroyed soon after
its creation. It happens in `add_window' function, and the
cause is guessed to be garbage collection following window
destruction before the object access.
Now most parts of `add_window' are protected from garbage
collection with `rep_PUSHGC' / `rep_POPGC'. It also prevents
`add_window_hook' from being called with uninitialised
argument. [Timo Korvola, Janek Kozicki]
- Random window disapperance prevention
There're reports of sudden, random window disapperance, under
Xinerama and some other drivers. It is partly prevented, but
Now in error_handler() in src/display.c, when a window sends
request_code 12 (X_ConfigureWindow), don't auto-assume it to
be unmapped. [Janek Kozicki]
- Build and Installation:
+ Library check: Fix in `SMlib' and `libICE' check on
x11r7 [Christopher Bratusek]
+ `.desktop' files fixes: typos fix and removed unneeded
entries [Christopher Bratusek]
+ In spec file, fixed repexecdir definition [Christopher
+ In `po/Makefile.in', fixed wrong call of make-pot
+ Build the FAQ upon make [Christopher Bratusek]
+ Expand REP_ENVIRON in scripts/Makefile.in [Luis Rodrigo
+ Add `--tag=CC' to libtool where necessary. It unbrakes
compilation on some arches [Gentoo Linux]
+ Use $prefix/lib instead of $prefix/libexecdir, to satify
the FHS [Christopher Bratusek]
- In configurator,
Strings are fully translatable [Alexey I. Froloff]
SpinButton listens to manual value change. (It's connected to
correct signal.) [Christoper Bratusek]
Position parameters can be negative [Christopher Bratusek,
- Fixed Focus issues with KDE4 Menu/Run-Dialog [Timo Korvola]
- Fix cursor warping in Infinite-Desktop [Jeremy Hankins]
- Fixed group of the stagger options [Christopher Bratusek]
- Fixed a call of `select-workspace-from-first' [Michal Maru?ka]
- In `Simple' theme, windows are now resizable from right
border [Christopher Bratusek]
- Missing exports are now supplied, for shrink-yank functions
and `send-to-workspace'. [Christopher Bratusek]
- Commands `maximize-window-fullscreen' and
`maximize-window-fullxinerame' work. [Teika kazura]
- Variable `this-command' is `nil' outside of command call.
- Customization option `uniconify-to-current-viewport' is valid
again. [Teika kazura]
* New features:
- New application menu [Matthew Love, Timo Korvola]
Sawfish now generates application menu automatically, by
reading `/usr/share/applications/*.desktop' files. If you set
`apps-menu', then it won't be done. If you like to have both
your own applications menu and auto generated one, then set
your own in `user-apps-menu' instead of `apps-menu'.
Root and Window-History menus are revamped, too. [Christopher
Now you can reboot and shutdown your computer from the root
menu -> "session", but the user needs the appropriate
privilege. For a way to do so, see *Note FAQ::, "Reboot and
shutdown privilege" section.
- Added options to change the font color of window title,
independent of used theme [Matthew Love, Christopher
Bratusek, Timo Korvola]
Internally, a new function `remove-frame-part-value' which
allows to change/remove values from frame-parts is used.
- Sawfish does now support theme-tarballs compressed with XZ
(aka LZMA2) and LZMA [Christopher Bratusek]
- Xinerama support for Grow/Pack [Nolan Leake]
Make grow/pack Xinerama aware. The support still remains
basic. Shrink-yank doesn't yet.
- Window rules can be set by lisp
Window rules (former "matched windows") can easily be set from
configurator, but it can now be set by lisp, too, with
`add-window-matcher' function. For the details, *Note Window
Rules by Matching::. An example usage is like this:
(add-window-matcher '((WM_NAME . "^root$")
(WM_CLASS . "^XTerm/xterm$"))
'((ignore-program-position . t)
(maximize . vertical)))
In fact, this function has existed, but now it can now
specify both window name and class, and the grammar has
changed. The old syntax is still allowed, but deprecated.
- Keymap translation [Scott Scriven]
Sawfish can "translate" keymaps for each window. Suppose you
have the following lines in your `~/.sawfish/rc':
'((WM_NAME . "^Terminal$"))
'(keymap-trans . (("C-n" "C-S-t")
Then, when you press `C-n', any windows with name "Terminal"
receive `C-S-t', and so on.
This is part of window rules, but it cannot be set by
- New window rules
+ Maximizations `fullscreen' and `full-xinerama' are
available (*note Maximizing Without Borders::) [Jeremy
+ Window position can also be specified by the direction,
like north or east, instead of the coordinates. [Jeremy
+ New placement modes `new-workspace' and `new-viewport'
If `new-workspace' is chosen, then the window is put in
an empty workspace, or a new workspace is created if
none. A workspace with sticky windows only are
considered empty. `new-viewport' is the same but an
empty viewport is chosen. If none is, the workspace is
enlarged, and the window is put in a new viewport.
+ `window-name' can change the window's name. [Christopher
- New commands [Christopher Bratusek]
5 new move-cursor commands, 4 diagonals and 1 to center.
(*note Pointer Functions::
Three window manipulation commands, `double-window-size',
`halve-window-size', and `move-window-center'.
`browser' invokes a browser instance.
- New funcitons `rename-window' changes the window name. [from
"mmc" fork, Christopher Bratusek]
In practice, it works, but technically speaking, the window
name is not supposed to be changed in ICCCM.
`viewport-windows' returns windows in a viewport. [Jeremy
`get-window-by-class' and `get-window-by-class-re'
- Dynamic Viewport Mode [Jeremy Hankins]
When you set `viewport-boundary-mode' to `dynamic', then the
workspace grows and shrinks dynamically so that it contains
all windows and the current viewport. For the details, *Note
- KDE integration module [Christopher Bratusek]
KDE is automatically detected. KDE help, and KDE logout,
shutdown, and reboot are provided in the menu. In KDE4 WM
Selector, Sawfish is added.
Unless set by user, konsole and konqueror are used for user
options `xterm-program' and `browser-program'.
- New Frame Classes [Christopher Bratusek]
A "frame class" defines frame component. There's no user
+ `sticky-button', a button to toggle window `sticky' or
+ `lock-button', a button to toggle window position `fixed'
+ `rename-button', a button to rename the window-title and
window-icon properties (not ICCCM compliant)
+ `move-resize-button', a button to perform various move
and resize actions on a window
+ `raise-lower-button', a button to perform various
raising and lowering actions on a window
* Widget Transistion [Christopher Bratusek]
- Custom make-url-widget replaced by GtkLinkButton
- Custom about-dialog replaced by GtkAboutDialog
- GtkButton + GtkPreview + GtkColorSelection trio replaced by
* Other Changes:
- Startup window placement improvement [Jeremy Hankins]
At Sawfish startup including restart, maximized windows and
position specified windows used to mess up viewport, appearing
in wrong viewports. It is fixed.
- Renamed `after-add-window' to `maxmize-after-add-window'
This function is only used in a hook [Teika Kazura]
- Don't let `cycle-class' and `cycle-class-backwards' ignore
WINDOW-ORDER [Daniel M. German]
- Docks/panels are unframed, and window type is set to `dock'
- You can exit from sawfish-client with `,quit' (also `C-d'),
unlike `C-c' it won't kill the WM [Teika Kazura, Timo Korvola]
- Number widget (GtkSpinButton) can take optional initial value
- `raise-tabs-on-hover' takes effect immediately now
- Inactive windows in Crux theme do now have black text for
better readability [Christopher Bratusek]
- With new option `customize-redirect', configurator's output
can be redirected. [Teika Kazura]
- Grow/Pack and Shrink/Yank options are in the same group now
These commands are now available from window operation menu,
- When moving a window the cursor shape is now `hand2', when
resizing `crosshair' [Christopher Bratusek]
- In the theme document in the configurator, the cursor is
invisible and the wrap mode is set to word-char [Christopher
- Build, installation and source
+ Improved ebuild [Christopher Bratusek]
+ Encoding is unified to utf-8 for all distributed files
+ Squashed all byte compiler warnings [Matthew Love]
Some warnings are superfluous, though.
+ To info file `dir' the section `sawfish' is added upon
installation [Luis Rodrigo Gallardo Cruz]
+ Distclean rule for po/Makefile.in [Christopher Bratusek]
+ Removed ancient sawmill removal fragments from Makefile
+ Block comments in lisp files are now semicolons
Sorry, without reason. Block comment remains allowed.
+ Added man-pages for `sawfish', `sawfish-client' and
+ News items for 1.5.0 are rewritten in a more readable
fashion [Teika Kazura]
+ Info manual updates [Christopher Bratusek, Jeremy
Hankins, Teika Kazura]
+ Added new contributors to `THANKS' section of
`CONTRIBUTING' [Christopher Bratusek]
+ Updated OPTIONS [Christopher Bratusek]
+ Fixed the license header of tabbed-windowing files
gnome-announce-list mailing list
to post comments)