Changelog:
1.10 "Soundtropolis"
====================
* Updated or New dependencies
- PangoX: no longer required
* Bug Fixes
- Always rebuild the list of marked windows in tabs when
closing a marked window. [fuchur]
- In `sawfish-config' fix the `make-choice-item' to properly
support settings for the `Crux' theme. [Vedat Hallac]
- Only allow a window to be tabbed, if the parent window's
framestyle has support for tabs. (Note that in Sawfish
different windows can have different framestyles) [fuchur]
- `window-ops-menu' was still calling
`resize-window-to-dimension' that didn't exist anymore since
Sawfish 1.7. Use `resize-window-prompt' instead. [Christopher
Bratusek]
- Make "Sawfish Rootmenu" label an insensitive menu-item, so
that clicking it while the root-menu pops up doesn't make the
menu disappear immediately. [Christopher Bratusek]
- In SawfishConfig you can select different cursor shapes for
different buttons. Some of the definitions have been wrong
and could crash Sawfish when choosing them. This is fixed
now. [fuchur]
- When a windows `max-width' or `max-height' would exceed 32767
(X11's maximum) it would result in odd window-behaviour (for
example: no maximization button), this is fixed by capping
the value at 32767. Originally reported with Firefox and
Thunderbird 17.0 [Michael Panteleit]
- Fixed grabbing key-bindings in SawfishConfig. [Christopher
Bratusek]
- Fixed non-working `$height-content' and `$width-content' in
the mxflat theme [Robert Zenz]
- Fixed remembering all window properties after switching
workspaces [fuchur]
* New Features
- Tiling. [Jose A. Ortega Ruiz] [Christopher Bratusek] here are
still minor hickups, but both `tall-tile' and `col-tile' are
working (see also `lisp/sawfish/wm/tile/readme.org'):
`tall-tile': one big (master) window on the left, small
windows on the right
`col-tile': tile windows as columns (recommended for
multi-head configurations)
;; Example Tiling configuration in Sawfish's resource file
(require 'sawfish.wm.tile.tile)
(tall-tiling 0 #:width 1.75 #:top 0 #:bottom 0 #:gap 3 #:max 3 #:right nil #:resize t)
(col-tiling 0 #:top 0 #:bottom 0 #:gap 3 #:cols 3 #:resize t)
(bind-keys global-keymap
"C-S-KP_Add" 'increase-max-windows
"C-S-KP_Subtract" 'decrease-max-windows
"C-M-KP_Add" 'increase-cols
"C-M-KP_Subtract" 'decrease-cols
"C-M-Right" 'tall-rotate-right
"C-M-Left" 'tall-rotate-left
"C-F11" 'next-tiling)
- Added full compton integration (including autostarting
compton with Sawfish). Compton is a fork of xcompmgr with
many bug fixes and many improvements compared to the original.
Using `sawfish-config' it is also possible to change most
compton options directly from within Sawfish. [fuchur]
- Make `focus-when-mapped' window-matcher chooseable from
'never 'maybe and 'always. 'never is suggested for KDE users
to be applied to Plasma in order to prevent notification
popups to take focus from currently active window (and
possibly loosing keyboard input) [fuchur]
- Completeley revised `resize-window-prompt'. Now display
window's name and old width (respectively old height) when
prompt for new values. Shows an information, if one of the
given values is not actually a number. [Christopher Bratusek]
- External Application modules. Those modules allow handling,
setting-up and starting external applications during a
sawfish session. See `doc/AUTOSTART' for additional notes on
them.
++ `trayer' module. Handles a `trayer' (a system-tray)
instance during a sawfish session. [Christopher
Bratusek]
++ `xmobar' module. Handles a `xmobar' (an on-screen, very
flexible bar, monitoring whatever you like) instance
during a sawfish session. [Christopher Bratusek]
++ `xmodmap' module. Allows reading `~/.Xmodmap' on
startup of Sawfish. Useful only if using Sawfish
standalone without a session-manager that already does
this. [Christopher Bratusek]
++ `xsettingsd' module. Handles a `xsettingsd' (a daemon
implementing XSettings to provide GTK+2 application with
information like what theme to use))instance during a
sawfish session. [Christopher Bratusek]
++ `xgamma' module. Allows changing display's gamma
settings on startup of Sawfish. [Christopher Bratusek]
++ `fehlstart' module. Handles a `fehlstart' (a simple,
but yet flexible application launcher) instance during a
sawfish session. [Christopher Bratusek]
++ `pancake' module. Handles a `pancake' (a simple desktop
panel with pager, window-list, taskbar, tray) instance
during a sawfish session [Christopher Bratusek]
- Added `force-tab' window-matcher, forcing a window to be
tabbed. [fuchur]
- Added `window-type' window-matcher. This allows you to change
the `_NET_WM_TYPE' of a window. Specifications explicitly
state that the client (Sawfish in this case) is not allowed
to do so. Still, we provide this ability in case of bogus
applications and testing purposes, it is neither desired nor
required for normal work. [fuchur]
- Added `tab-group-windows-hook', triggered when changing or
creating a tabgroup, returning all windows contained in the
current tabgroup. [fuchur]
* Removed Features
- Removed `sawfish.wm.ext.expose' in favour of much more
advanced tiling-functions. [Christopher Bratusek]
* Miscellaneous Changes
- Updated `Elberg-tabbed' and `gradient-tabbed' for tab-system
as of Sawfish 1.9.1 [fuchur]
- Wallpaper setter now has an option for setting wallpaper on
startup. Image widget is now more robust. [Christopher
Bratusek]
- Improved default keymap for `titlebar' and `tabbar'. [fuchur]
- Revived `decorate-transients', `menus-include-shortcuts' and
`customize-show-symbols' defcustoms. These options are now
adjustable from `sawfish-config' again. [Christopher Bratusek]
- Give the `root-window' the property `'WINDOW_MANAGER' on
startup with value `sawfish'. [Christopher Bratusek]
- Updated `ru' and `pt_BR' translations via transifex.
1.9.1 "Voyager"
===============
* Bug Fixes
- `dimension' window-matcher does now properly restore the
window's size [Robert Zenz]
- When destroying a window marked for tabbing, before tabbing
was done, tabbing didn't work anymore until Sawfish
restarted. This is fixed now. [fuchur]
- In `Makedefs.in' source `$(repexecdir)/rules.mk' as first, so
that `--prefix' and co. from `configure' won't get
overwritten. [Allin Cottrell]
- In `tabs' some minor issues have been fixed, like correct
`raise' or `sticky' tabs, and some issue with `move-resize'
tabs. [fuchur]
- Only allow '_NET_WM_WINDOW_TYPE_NORMAL to be marked as a
tabbed window. [fuchur]
* New Features
- In tabbed-windowing it is now possible to add a whole
tab-group to another tab-group, or a single window. By
default the keybinding is `C-Button2-Off'. [fuchur]
- Tabs now support `viewport-sticky' and `workspace-sticky'.
[fuchur]
- Tabs now support coloring the window-title in a different
color, for windows, which are marked for tabbing. Currently
only `StyleTab' uses this feature. [fuchur]
* Miscellaneous Changes
- In razor-qt integration module add `About Razor-Qt' help
entry [Christopher Bratusek]
- Replace `gdk_pixbuf_unref' by `g_object_unref' [Togan
Muftuoglu]
- Fix the address of FSF in all relevant files [Togan Muftuoglu]
- Change cursor shape when working with tabs [fuchur]
- Removed `sawfish.wm.util.marks', now implemented in
`sawfish.wm.tabs.tab'. [fuchur]
- Fix debian packaging scripts for Debian/Unstable, update
install-sh to 2011-01-19.21, also remove NEWS and config.h.in
upon `make gitclean'.[Christopher Bratusek]
1.9.0 "Next Dimensional World"
==============================
* Updated or New dependencies
- librep 0.92.0 -> 0.92.1
- rep-gtk 0.90.4 -> 0.90.7
- ssd 0.30 [optional, for built-in poweroff-menu]
* Bug Fixes
- When cursor-warping was enabled and user switched to a shaded
window, the cursor warped to the position of the unshaded
window. This is fixed now. [Christopher Bratusek]
- When switching between tabbed themes from SawfishConfig, it
could happens that there were `gaps' in the frame. This is
fixed now. [Christopher Bratusek]
- In SawfishConfig one could only grab key-bindings, but not
mouse- or mixed mouse-key-bindings. This is fixed now. (Move
mouse 20 pixels to grab a `Move' event). [Christopher
Bratusek]
- SawfishConfig became useless when Sawfish restarted. This is
now worked-around by simply restarting SawfishConfig when
Sawfish does. A new `before-restart-hook' has been added for
this purpose. [Christopher Bratusek]
- In EdgeActions `HotSpot', `HotMove' and `EdgeFlip', it was
possible to trigger the same event multiple times at a time.
This is fixed now. [Jeremy Hankins]
- Fixed a bug in apps-menu, failing to generate the menu, if a
desktop-file contains both Categories and the (errorneous)
Category key, or only the later. [Matthew Love]
- Fixed a bug in window-manager selection handling. Set all
fields of the client message event. This prevents bugs, where
Sawfish sometimes isn't able to replace another
window-manager or aquiring the screen if no other WM is
running. [Timo Korvola]
- When making X request, we might receive and `select' will
stuck. This is fixed now [Michal Maruska]
- Avoid calling Xmap for gone windows. [Michal Maruska]
- Fixed a possible segmentation fault in `leave_notify' [Michal
Maruska]
- In SawfishConfig the `choice' widget didn't work when the
choices were numerical values. This is fixed now.
[Christopher Bratusek]
* Sawfish-MMC [Michal Maruska]
Sawfish-MMC was a fork of Sawfish active, while the original
Sawfish was inactive (2004-2007). Next follows a list of changes
merged from Sawfish-MMC.
- Only apply property changes if window as `refresh' property.
- In the pixmap-cache append pixmaps to the age list, rather
than prepending.
- Extend `pixmap-cache-control' to reset and return more
informations.
- `pixmap-cache-images' returns all images in cache.
- When initializing Sawfish, try to initialize XKB, too.
- Misc: Drop unused `prog_name' from `display.c'. Call
`XAddToSaveSet' from a better position in the code. Mar
`mapped_not_override_p' static. Simplified `property_notify'.
* EdgeAction changes [Christopher Bratusek]
- New EdgeActions:
x `HotMove'. Calls an EdgeAction when dragging a window
over the edge.
x `Expose'. Simple expose (one-shot tiling) EdgeAction
(can also be used stand-alone). Original code by Mark
Triggs.
x `Expand'. Drag a window over the edge and it expand to
the half-screen size.
x `Show-Desktop'. Toggles between `show-desktop' and
`hide-desktop'.
x `Maximize'. Just for competitive reasons choosable from
configurator.
- `before-edge-action-hook' and `after-edge-action-hook'. While
`enter-flipper-hook' and `leave-flipper-hook' simply respond
to the mouse entering or leaving the flipper-window, the new
hooks respond only when an EdgeAction was invoked. The two
hooks pass the invoked EdgeAction, activated edge and a
boolean `while-moving' value to the child-function (in that
order).
- Simplified, more robust EdgeFlip (flip-viewport and
flip-workspace are now split).
- Improved logic of blocking an action while another is already
running. On one hand, see `Bug Fixes' above, on the other
hand it's now ensured that we dont' activate an edge twice
when dragging a window over it or when the pointer hits the
edge via mouse-trapping.
- New `move-window-to-corner' and `move-window-to-edge' helpers.
- Updated EdgeAction documentation
* SawfishConfig changes [Christopher Bratusek]
- Updated and Improved widgets in SawfishConfig:
x `file'. The file(-chooser) widget now uses
GtkFileChooserButton in favour of the ancient
GtkFileSelectionDialog. The GtkEntry and GtkVBox used as
helpers became useless and are removed.
x `font'. The font(-chooser) widget now uses
GtkFontChooserButton in favour of the ancient
GtkFontSelectionDialog. The GtkEntry used as helper
became useless and is removed.
x `choice', `symbol', `keymap', `frame-style'. Those
widgets now use GtkComboBoxText in favour of ancient
GtkCombo/GtkComboEntry.
x `scheme-boolean'. This widget is now properly
implemented.
Old: two checkboxes. First for activating setting,
second for choosing yes or no. New: only one checkbox,
yes or no as usual, shows minus when unset.
x `number'. The number-widget now has a `stepping'
property, allowing to change the increment of a
button-press on the spin-button.
- New widgets in SawfishConfig:
x `range'. The range widget represents an integer with a
given range. Basically it uses a GtkScale instead of a
GtkSpinButton, which results in a better user-experience
for those values.
x `image'. The image widget contains a preview and
image-selector. The file-browser openend is setup to
display previews, too. Original code by Lucas Pandolfo.
- Removed widgets in SawfishConfig:
x `program'. Just an alias to `file'.
x All `gtk-only' widgets. Since Sawfish 1.5.0 those have
been dummies, we don't use `libgnome', `libgnomeui' or
`libgnomecanvas' anymore anyway.
- New buttons. SawfishConfig now offers buttons to access Wiki,
Help, ResourceFile and About. Additionally there's now a
file-chooser for installing themes from `*.tar.*' files.
- Widgets that depend on an disabled setting are now hidden
instead of greyed-out.
- Merged sawfish.cfg.widgets into sawfish.gtk.widgets. Old
widgets aren't loaded anymore, even if present from an old
installation.
- All defcustoms do now have a property to change the position
of the label. To change it, append on of the following to
the doc-string: \\left \\right \\top \\bottom.
Example:
(defcustom test-var 'eclipse
"This is just a test with label on top. \\top"
:type (choice eclipse crosshair none)
:group appearance)
Of course that only works, if the label is a GtkLabel widget
on it's own.
* Theme/Theming changes [Christopher Bratusek]
=== spoiler === : StyleTab in Sawfish 1.9 add lots of new
fancyness for the price of beeing slow. So if you experience
a long startup-time of Sawfish, it's a feature, not a bug. :
== /spoiler ===
- StyleTab changes [fuchur]:
x The theme is now fully re-colorable. You can choose
different colors for each button and the frame.
Furthermore you can choose how much to dimm inactive
frames (compared to active).
x Majorly improved the grouping of options in StyleTab.
x Added corners to frames (allowing resize with mouse at
window-corners).
x Available styles: Default (former Dark), WixDa (former
Silver), Reduce, Smoothly and Glass (New).
x Added hash-tables for images.
- New themes:
x Candido
x Zami-like
- Improved themes:
x Gradient has been replaced by Gradient-tabbed.
- Removed themes [still available from Wiki]:
x get-S-tabbed
x brushed-metal
x simple
x smaker
x mono
x gtk
- New theme-related configuration-options [theme independent]:
x Added an option to control the titlebar text position.
If a theme draws something additional in the titlebar
(eg. StyleTab draws an icon), refer to the functions
`update-title-x-offsets', `update-title-y-offsets'.
x Added an option to control the cursor-shape when
hovering frame-buttons.
x Added an option to change the font, depending on the
window state.
- Moved definitons for `previous-workspace-button' and
`next-workspace-button' from StyleTab into Sawfish.
* New Features
- Added `cabinet' application-switcher. `cabinet' is an
advanced application switcher for Sawfish. For more
information please visit:
http://sawfish.wikia.com/wiki/Cabinet [Wang HongQin]
- Added `tab-group' window-matcher. It allows window to be
auto-tabbed together, if they got the same `tab-group'
property [fuchur]
- Added `single-window-mode'. Basically this feature is known
from OS-X, though it's implemented in a more strict way. The
`single-window-mode' window should get all of the users
attention.
This is ensured by auto-iconifying any up-popping window,
which is not in the same group. To additionally not annoy the
user this is done without animation. Avoided or ignored
windows are lowered. When `single-window-mode' is quit, the
opposite happens.
Also `single-window-mode' hooks into unmap-notify-hook to
check whether the user wants to stop `single-window-mode' (by
either closing or iconifying the window). Besides each
workspace can hold it's own `single-window-mode'.
- Added `mouse-trap' feature. It provides a method for moving
the mouse to any place of the screen by zooming with just a
few keystrokes. The mouse is warped to the center of the
screen screen and a outline is drawn dividing the screen in 4
squares (like trapping the mouse on it). [Fernando Carmano
Varo] [Christopher Bratusek]
- Added `shade-stack' feature. It provides an alternative to
`iconify-window'. Instead of iconifying a window or minizing
it to a tray, the windows get shaded and sorted in a stack
starting from the top-left corner (the number of columns can
be changed). Combined with auto-unshade this offers -
possibly - a better way of interacting with windows which
aren't required at the moment. Original code by Luke Gorrie.
[Christopher Bratusek]
- Integrated settings for selecting wallpaper using an external
command (eg: hsetroot). Applying settings to GNOME2 or XFCE4
is also supported. Original code by Lucas Pandolfo.
[Christopher Bratusek]
- Added `toggle-desktop' function. Toggles between
`show-desktop' and `hide-desktop' - always logically correct.
[Christopher Bratusek]
* Miscellaneous Changes
- Improved desktop-integration modules [Christopher Bratusek]
x KDE integration: added entries for user-switch,
hibernate, suspend, lock-screen, menu-editor.
x XFCE integration: added entries for hibernate, suspend,
lock-screen, menu-editor.
x GNOME integration: added entry for lock-screen,
menu-editor.
x MATE integration: full integration module for MATE
Desktop has been added.
x Razor-Qt integration: full integration module for
Razor-Qt has been added.
x LXDE integration: basic integration module for LXDE has
been added.
- The fallback poweroff-menu now uses SSD
`Sawfish-Session-Dialog', a companion to Sawfish, by default.
Support for logout and lockdown has been added. [Christopher
Bratusek]
- Added a `filemanager' launcher. If set the Sawfish root-menu
will show an `Open Home' entry. The KDE, GNOME, MATE, XFCE
and LXDE integration modules will set the program
accordingly, unless it's already user-defined.
1.8.1 "Sharp As A Knife"
========================
* Updated or New dependencies
- librep 0.91.0 -> 0.92.0
* Bug Fixes
- Fixed jump-or-exec failing when a window without WM_CLASS
exists [Christopher Bratusek]
- Fixed failing to uninstall Sawfish [Christopher Bratusek]
* Miscellaneous Changes
- EdgeActions changes [Christopher Bratusek]:
+ Load from `user.jl', rather than `wm.jl'
+ Add `edge-actions-enabled' variable in order to be able
to completely disable EdgeActions (also via .sawfishrc)
+ Move all options into new `sawfish.wm.edge.conf' module
(so they appear in the correct order now)
+ Updated documentation for EdgeActions
- Fixed documentation for function `insert-workspace'
[Christopher Bratusek]
- Removed unused or unneeded 'default, 'viewort and 'advanced
classes from command definitions [Christopher Bratusek]
- Fixed two strings in mxflat theme [Christopher Bratusek]
- Improved Requires in sawfish.pc [Christopher Bratusek]
- Improved debian packaging-scripts [Ian Zimmermann,
Christopher Bratusek]
- Improved .desktop-files [Kim B. Heino]
- Updated translations:
+ Spanish [gnome-es team]
+ German [gnome-de team]
+ Czech [gnome-cz team]
+ Malay [gnome-ms team]
+ Slovenian [gnome-sl team]
- Updated OPTIONS file [Christopher Bratusek]
1.8.0 "(Omoiyari)"
===============================
* 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
to update.
- 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
for more.
- User option `focus-ignore-pointer-events' is deleted. [Teika
kazura]
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
display-managers).
- Spec-File compatibility for RHEL 6 beta [Kim B. Heino]
- Debian-Scripts (mostly) updated to the new specification
[Christopher Bratusek]
* 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.
Fixed it.
- 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
is fixed.
- 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
understand.
"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:
(defvar-setq top-left-corner-function
(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
hot-spot.
Internal changes:
* 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
Bratusek]
`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
experience.
- 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
Commands::).
* 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
responsive.
- 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
`apps-menu-ignore-no-display'.
- 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
Getting Windows::.
* Added functions `window-role' and `get-window-by-role'
(return NET_WM_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
supported.)
* added `#:icon' switch to `get-window-by-name' to get a
window via NET_WM_ICON_NAME (can be used with #:regex
switch, too)
* Commands to resize a window [Christopher Bratusek, Teika
kazura]
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'
sub-menu.
- 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
`sawfish.pot'.
+ 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
[gnome-sl team].
+ 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
Menus::)
* 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
Kazura]
Function `define-command-args' is deleted. In `define-command'
function, the keyword argument `doc-key' is dropped.
to address issues with NetBSD-6(and earlier)'s fontconfig not being
new enough for pango.
While doing that, also bump freetype2 dependency to current pkgsrc
version.
Suggested by tron in PR 47882
1.7.1 "Chewing Drum"
====================
* 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.
- Chooseable session files [Christopher Bratusek] Now you can
choose what session files to install. This is done by a
tripplet of configure-options:
* -with/out-kde4session: enable or disable the
installation of session files for KDE4. Default: enabled
* -with/out-gnome2session: enable or disable the
installation of session files for GNOME2.
Default: enabled
* -with/out-xdmsession: enable or disable the installation
of session files for XDM (or other display-managers like
KDM/GDM). Default: enabled
* Bug Fixes
- Interactive `call-command' [Teika Kazura] Interactive
`call-command' used to print an error-message when cancelled
via pressing escape. It doesn't anymore.
* Misc Changes
- Turn `focus-ignore-pointer-events' into an internal variable
(has wrongly been a user-option before) [Teika Kazura]
1.6.3.1 "Acid Folk"
===================
* Fixed a possible compilation-error in prompt.jl [Harald van Dijk]
1.6.3 "Hava Nagila"
===================
* Bugfixes
- In tabbed-windows the left/right end is no longer outside the
window, if that is too small [Fuchur]
- Unsupported option `ignore-window-input-hint' is deleted
which has been invalid for long. [Teika kazura]
- Honor the user option `maximize-raises' in
`maximize-window-fullscreen' and
`maximize-window-fullxinerama', too, not just in
maximize-window [Nolan Leake]
- More robustness in applications menu [Teika Kazura, Matthew
Love]
Before it broke for 'R' (statistics software), and whitespace
handling didn't follow the specification.
Some *.desktop files are not ignored any more either, i.e.,
leading empty lines and comments are allowed.
- Allow compilation with -DDEBUG flag passed [Alexey I. Froloff]
* New Features
- XRandR events (eg resolution changes) call the new hook
`randr-changed-notify-hook' [Daniel M. German]
See *Note RandR and Xinerama::.
- Tabbed windowing system improvements [Fuchur]
+ Support for transient tab-frames
+ New frame classes:
x tab-s (side tab)
x tab-ls (side tab, left/bottom end)
x tab-rs (side tab, right/top end)
+ Tabgroups now support a set of new properties and
actions: `type', `set-frame-style', `fixed-position',
`iconify'. In addition, new tabs gain those properties
from their parent window.
- New command `display-window-position' [Teika kazura]
User chooses a window by cursor and click, and it prints its
position and size in a popup. Also available as a function,
defined in `sawfish.wm.util.display-wininfo'.
- New function `window-pid' [Teika kazura]
It returns the process ID of a window. (*note Window
Attributes::
- Window instance name is now accessible [Teika kazura]
Technically, the window class consists of "instance" and
"class", but only the latter was returned previously by the
function `window-class'. Now with the new optional argument,
the instance is returned too. (*note Window Attributes::)
- Customizable lisp directory [Teika kazura]
User can add lisp directories to be read with the
environmental variable `SAWFISH_USER_LISP_DIR'. Its value is
directories separated by colon, like `PATH', and prepended to
`load-path'. If not set, `~/.sawfish/lisp' is assumed. For
example, if you define a module `sawfish.wm.super-hack', then
it can be read from
`~/.sawfish/lisp/sawfish/wm/super-hack.jl'.
User can override system lisp files, too. For example, if
there is `~/.sawfish/lisp/sawfish/wm/windows.jl', then it
defines `sawfish.wm.windows', instead of the installed one.
(But this can easily break your Sawfish startup.) In fact, it
was possible for some lisp files, but now it's guaranteed for
all files.
* Other Changes
- Info improvements [Teika kazura]
+ "Windows" chapter is partly revised. Function
`display-window' is documented. Difference between
`window-wants-input-p' and `window-really-wants-input-p'
is described. Short description on the root window.
+ In past few versions we made more changes which were not
described in the news, including clarification in
viewport, workspace and event, and window matching lisp
functions.
+ Added a faq item on multi-head and workspace.
+ Edition number and the date of last change are dropped
from the info. We now edit the info often, so they are
not so much meaningful.
- Pressing the lock-button does the state-change of the window
accordingly. [Fuchur]
No theme shipped with Sawfish does have the lock-button yet,
though.
- Make xinerama an optional dependency [original patch from
Gentoo]
1.6.2 "Mighty Disco King"
=========================
* The 1.6.2 release has some improvements.
* Bugfixes
- Application menu is more robust now. [Matthew Love,
Christopher Bratusek]
Application menu, introduced in 1.6.0, made Sawfish crash if
`*.desktop' file had a malformed key value (say ; as first
character or # somewhere inside), or it was unreadable. It is
fixed.
- Minor fix of window placement by direction [Teika kazura]
When the window placement mode is for example `east' and the
window is wider than the screen, then the window was put
wrongly. It is fixed.
* New features
- New command `maximize-discard' [Teika kazura]
The command `maximize-discard' stops a maximized window to be
treated as maximized any more, so that you can move and
resize the window.
The functinon `maximize-discard' has existed, and now it's
exported.
- New command `jump-or-exec' [Christopher Bratusek]
The user uploaded module "jump-or-exec" has been merged. It
provides `jump-or-exec', a command which may be used to focus
a window, or if it does not exist, start the application.
Unlike the original version this one also supports matching a
window by its class (returned by `window-class' function),
which makes it more flexible for applications like music
player or browsers, which tend to change their WM_NAME
relatively often.
For usage, see `lisp/sawfish/wm/commands/jump-or-exec.jl'
file.
* Misc
- Improved ebuild and specfile [Christopher Bratusek] [Kim B.
Heino]
- Updated documentation [Christopher Bratusek] [Teika Kazura]
- Removed `frame-style-editable-p' and all other remaining
sawfish-themer fragments, as it's dead. [Christopher Bratusek]
1.6.1 "Astral"
==============
* The 1.6.1 release brings several bugfixes and improvements
* Build and Installation
- New/Updated requirements:
+ librep 0.90.4 -> 0.90.5
+ rep-gtk 0.90.0 -> 0.90.2
- The configure option `--without-nine-mouse-buttons' is not
allowed to have 4 hyphens, therefore it's renamed to
`--without-nine-mousebuttons'. [Christopher Bratusek]
- Reworked configures help-message for better readability.
[Kim B. Heino]
- Configure now uses `kde4-config --install data' rather than
`kde4-config --path data', so no sed-kludge is needed anymore.
Make $datadir/kde4/apps/ the fallback path, if KDE4 is not
installed. [Kim B. Heino]
- Majorly improved debian and rpm packaging scripts.
[Christopher Bratusek] [Kim B. Heino]
- The spec has been reworked to detect kde4/librep directories
while runtime, instead of hardcoding those paths from
configure, which makes it more portable. [Kim B. Heino]
- Our own implementation of dlmalloc is disabled since 2002, as
it breaks sawfish on several architectures. From this version
on, we don't ship it anymore. [Kim B. Heino]
- Export the imageloader beeing used by sawfish in the .pc file.
[Christopher Bratusek]
- Don't remove the .pot file upon `make distclean'.
[Christopher Bratusek]
- Install Sawfishs header files to $includedir/sawfish/.
[Christopher Bratusek]
- Autotools improvements (Makefile, autogen.sh & Co.)
[Christopher Bratusek]
* Bugfixes
- Fixed a bug where the gnome-panels pager gets confused about
the current viewport when displaying all workspaces. [Jeremy
Hankins]
- Fixed minor bugs in viewport.jl. [Jeremy Hankins]
* Doc
- Fixed a small doc misstake (refered to window-set instead of
window-put). [Christopher Bratusek]
- Fixed the docstrings of shrink and yank. [Timo Korvola]
* Misc
- Last 3 instances of "sawmill" replaced by "sawfish". [Kim B.
Heino]
1.6.0 "Sound Of Thunder"
========================
* 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:
`--without-nine-mousebuttons'
If you drop it, then you can't use mouse button 8 to, for
example, drag windows.
- Installation directory change
Directory `libexec' is not used anymore for library files
installation. Instead, they go into `lib' by default.
* 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 or KDE
support if found running, and does load the error-handling
module.
Since Sawfish 1.5 `~/.sawmillrc' is no longer a valid
configuration- file. 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 dropped that. 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 Configurator, too. By default `paplay' is beeing used.
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.wrapper and
gnome-www-browser are used for user options `xterm-program'
and `browser-program'.
Most of dropped GNOME integrationcode is 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 has been updated for recent versions. [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 its value to
`xterm-program'.
Customization-group is changed from `misc' to `External
Applications'.
The functinon `display-url' is renamed to `browser', now
defined in the module cited above. Variable
`display-url-command' is renamed to `browser-program'.
- Sawfish pager
If you've been using Sawfish-pager, then you have to
recompile it, due to library files location change.
- Deletion of `user-level' property
(This affects almost none.) There has been a defcustom
property `user-level'. It has been deprecated for years, and
it's now deleted.
* 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
not completely, as this may also be caused by other libraries
or buggy video drivers.
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 fixed and unneeded entries
removal [Christopher Bratusek]
+ In spec file, repexecdir definition is fixed
[Christopher Bratusek]
+ In `po/Makefile.in', a wrong call of make-pot is fixed
[Christopher Bratusek]
+ Always build the FAQ upon make [Christopher Bratusek]
+ Expand REP_ENVIRON in scripts/Makefile.in [Luis Rodrigo
Gallardo Cruz]
+ Add `--tag=CC' to libtool where necessary. It unbrakes
compilation on some arches [Gentoo Linux]
+ Use $prefix/lib instead of $prefix/libexecdir, to
satisfy the FHS [Christopher Bratusek]
- In configurator,
Strings are now fully translatable [Alexey I. Froloff]
SpinButton listens to manual value change. (It's now
connected to the correct signal.) [Christoper Bratusek]
Position parameters can be negative [Christopher Bratusek,
Teika Kazura]
- Fixed Focus issues with KDE4 Menu/Run-Dialog [Timo Korvola]
- Fix cursor-warping in conjuction with 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 the 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' has been
undeprecated. [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
manually set `apps-menu', then it won't be. If you like to
have both your own applications menu and auto the generated
one, then refer back to `user-apps-menu' rather than
`apps-menu'. In addition you can use the variable
`desktop-directory' to specify a different directory to look
for *.desktop files, or a set of directories, if desired.
Root, and Window-Operations menus are revamped, too.
[Christopher Bratusek]
- Added options to change the font color of window title,
independent of the theme in use [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.
[Timo Korvola]
- 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, as shrink/yank still lacks it.
- 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 already existed, but now it can
now specify both windowname and -class, also 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':
(add-window-matcher
'((WM_NAME . "^Terminal$"))
'(keymap-trans . (("C-n" "C-S-t")
("C-w" "C-S-w"))))
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 exposed in the
configurator yet.
- New window rules
+ Maximizations `fullscreen' and `full-xinerama' are
available now (*note Maximizing Without Borders::)
[Jeremy Hankins]
+ Window position can also be specified by the direction,
like north or east, instead of the coordinates. [Jeremy
Hankins]
+ New window rules `new-workspace' and `new-viewport',
which place a window on the first empty Workspace or
Viewport (if there's none, one will be generated), have
been introduced [Jeremy Hankins]
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
Bratusek]
- 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'. The former
two are based on the `resize-by-factor' metafunction.
`browser' invokes a browser instance.
- New functions `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, by the
Window-Manager.
`viewport-windows' returns windows in a viewport. [Jeremy
Hankins]
`get-window-by-class' and `get-window-by-class-re'
[Christopher Bratusek]
- Dynamic Viewport-Boundary-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
Dynamic Viewport::.
- KDE4 integration module [Christopher Bratusek]
KDE4 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'.
- Poweroff from menu
Added poweroff commands in menu for non KDE/GNOME users.
There are reboot, halt, suspend and hibernate. The used shell
commands can be set from configurator, under "Misc" ->
"External Applications". If you don't want it, set
`want-poweroff-menu' to nil.
User needs the appropriate privilege. For a way to do so, see
*Note FAQ::, "Shutdown privilege" section.
Reboot and halt call `before-exit-hook' and do
`delete-window' to each window before actually rebooting or
halting, to ensure everything is fine on the next startup.
- New Frame Classes [Christopher Bratusek]
A "frame class" defines frame component and are used by
themers to add buttons or frames to their theme in charge.
There are no user visible changes.
+ `sticky-button', a button to toggle window `sticky' or
`viewport-sticky'
+ `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
single GtkColorButton
* 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's fixed now.
- 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'
by default [Timo Korvola]
- 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
[Teika Kazura]
- Changing `raise-tabs-on-hover' takes effect immediately now
[Christopher Bratusek]
- 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
[Christopher Bratusek]
These commands are now available from window operation menu,
too.
- 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
Bratusek]
- Build, installation and source
+ Improved ebuild [Christopher Bratusek]
+ Encoding is unified to utf-8 for all distributed files
[Teika Kazura]
+ Squashed all bytecompiler warnings [Matthew Love]
Some warnings were superfluous, though.
+ To info file `dir' the section `sawfish' has been added
[Luis Rodrigo Gallardo Cruz]
+ Distclean rule for po/Makefile.in [Christopher Bratusek]
+ Removed ancient sawmill removal fragments from Makefile
[Christopher Bratusek]
+ Block comments in lisp files are now semicolons
Sorry, without reason. Block comment remains allowed.
- Docs
+ Added man-pages for `sawfish', `sawfish-client' and
`sawfish-config' [Debian]
+ 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 and KEYBINDINGS [Christopher Bratusek]
+ Fixed the license header of tabbed-windowing files
[Christopher Bratusek]
Shared directories can now be created independently by the pacakges
needing them and will be removed automatically by pkg_delete when empty.
Packages needing empty directories can use the @pkgdir command in PLIST.
Discussed and ok'd in thread starting at
http://mail-index.netbsd.org/tech-pkg/2009/06/30/msg003546.html
1.5.0
=====
* New/Updated requirements:
- librep 0.17 -> 0.90.0
- rep-gtk 0.18.3 -> 0.18.4
* User visible changes:
- Fully renamed from "sawmill" to "sawfish" If your `.sawfishrc' has a
line `(require 'sawmill-defaults)', then change it to
`(require 'sawfish-defaults)'.
If your configuration file is named `~/.sawmillrc', then rename it
to `~/.sawfish/rc' or `~/.sawfishrc'.
- Configurator GUI's default style is tree view of categories.
Configurator GUI (sawfish-ui) used to display categories in flat row,
but now arranges them in tree diagram. To use the old style, put
`(define-special-variable customize-program "sawfish-ui --flatten")'
in your configuration file.
* Bugs fixed:
- Fixed an compilation-error caused by glib
- Make building with imlib1 instead of gdk-pixbuf work again
- Create src/build.h, since it has been missing before
- Fixed an "unknown remote error" that might appear
- Make "make uninstall" work again
- Fixed the issue that apps did not start iconified, even if requested
- First create $datadir/applications, then install the desktop file
- Fixed default animation outline coordinates
- Don't ignore datarootdir setting
- Make Sawfish more error-tolerant if an app has an incomplete WM_CLASS
- Make sure we don't mix Super and Hyper
- Fixup the last incomplete AC_DEFINE
- Fixed a speed-issue with microGUI
- Make properly use of WM_NAME in Elberg-tabbed
* New features:
- UTF-8 Support in Windowmenus
- UTF-8 Support in GTK Widgets
- Tabbed Windowing Support
- Improved KDE3 Integration
- Replaced hardcoded focus logic by focus-revert function
- Tabbed Windowing Support: Raise Tabs on hover
- Warp cursor to cycled windows, if warp-cursor is enabled
- Warp cursor to unmaximied windows, if warp-cursor is enabled
- 3 New Window-Animators: cross, elliptical and draft
- Shrinking/Yanking Support
- Infinite Desktop Feature (make the virtual desktop bigger than
the physical)
- Make Viewport commands appear in Sawfish-UI
- Make Window History appear in Sawfish-UI
- Added cycle-among-groups(,-backwards) commands (cycle between the
most recently used window of groups)
- Interactive placement-mode now also for transients
- Improved prompt.jl (allows changing font, fg and bg color)
- Expose fixed-position, never-iconify, never-maximize in the
Window-Matcher UI
* Other changes:
- To build with XFree86/X.Org < 7.0 add -without-xorg-x11r7 flag
- To build without Pango add -without-pango flag
- To prevent installing translations add -without-nls flag
- Set RestartStyleHint to 2
- When matching window to alist try WM_NAME if WM_CLASS is unset
- Major Documentation update
- New Sound Theme
- Added ebuild
- Added session desktop file
- rep.m4 has been dropped use librep.pc/rep-gtk.pc instead
- Added sawfish.pc
- Improved Makefile's distclean rule
- Updated .desktop files for gnome-session >=2.23
- Fixed autogen for libtool >2.2
- Major configure script rework
- Don't ship config.sub config.guess and install-sh in $srcdir/etc
- Reworked Sawfish-UI
- Dropped libgnome|gnomeui|gnomecanvas widgets, use pure gtk instead
- Merged changes from sawfish-pager
- Major update of the spec file
- Print usefull stuff at the end of configure
- Add distclean rule to all Makefiles
- Add KEYBINDINGS file, containing a list of all default keybindings
- Updated OPTIONS for all new options
- Cleaned Up Makedefs.in
- Move 'avoid' window-matcher from placement to state
- Updated compat.jl
- Removed all old ChangeLog files
- Make move-cursor.jl export all functions described in the doc
1.3.5
=====
* The 1.3.5 version has new features and bugfixes
* New/Updated requirements:
- librep 0.14 -> 0.17
- rep-gtk 0.18 -> 0.18.3
* New features:
- Support _NET_WM_USER_TIME
- Added ATK-A11Y Support
- Added Viewport-Boundary
- Added Error-Handler "both"
- Added 2 new Buttonlayouts to Crux "complete" and "complete inverse"
- Honour ICCCM Aspect Ratio
- Expose all Keybindings in SawfishUI
- Added Animated Viewport Scrolling
- Also expose the "Stagger" and "Off-Center" placement-modes
- Add a new hook: "before-slide-hook"
- Expose all smart placement-modes, "Best-Fit", "Best-Fit-Group",
"First-Fit-Or-Interactively"
- Better GNOME Integration
* Bugfixes:
- Minimum pango version is 1.8.0 not 1.16.0
- Fix Installation of mxflat
* Other Changes:
- Remove all ^L in the source
- Small Code-cleanup to make build with "-Wall -ansi -pedantic"
possible again (also requires recent librep for this to work)
- Major Documentation Update
- updated the shipped config.sub and config.guess
New features:
- "Enter-Click focus mode" by Dagfinn I. Mannsake, Christopher
Bratusek and Timo Korvola: windows get focus only when mouse
enters it or if it is clicked and was unfocused.
- "Parallel make" by Harald van Dijk: allows building using
more processors.
- Improved window property handling by Teika Kazura.
- Added new themes: mxflat, get-S-tabbed and elberg-tabbed.
- Added new binding to maximize window fullscreen on all
xinerama screens, by Jonathan Sambrook.
Also various bugfixes.
* Strings are re-encoded in UTF-8. Window titles will be set correctly
regardless of title encoding
* updated documentation to v0.12
* added Occitan Lanaguage
* Bug fixes:
- Nautilus desktop window can now restore its size properly
- Sawfish.desktop file now complies with freedesktop.org standard
- Fix select workspace to make sure it calls with right arguments
- Fix 64 bit client messages
- Don't display unneeded blank lines when window is opened by
prompt function
- KDE system tray no longer fighs with sawfish to reparent a tray icon
- Add bounds checking on _NET_CURRENT_DESKTOP requests
- QT applications no longer lose focus when menu is active
- Corrected window placement in xinerama/dualhead when using
centered/centered-on-parent
* configure.in: version 1.3.1 - This version is to let people know
that Sawfish is being revived by the community, and we are awaiting
patches to be submitted for incoming 1.3.2 release
* fixed possible buffer overflow in src/fonts.c (Yoshiaki Kasahara)
1.3.1 also has many updated translations and doc fixes.