Subject: CVS commit: pkgsrc/wm/sawfish
From: Ryo ONODERA
Date: 2014-01-03 06:06:40
Message id: 20140103050640.3353F96@cvs.netbsd.org

Log Message:
Update to 1.10

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.

Files:
RevisionActionfile
1.78modifypkgsrc/wm/sawfish/Makefile
1.21modifypkgsrc/wm/sawfish/PLIST
1.21modifypkgsrc/wm/sawfish/distinfo
1.2modifypkgsrc/wm/sawfish/patches/patch-af