The long-awaited new major release of Sawfish is now available!

Sawfish 1.9.0 'Next Dimensional World'



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

        - 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

        - 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

        - `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

             x `Expand'. Drag a window over the edge and it expand to
               the half-screen size.

             x `Show-Desktop'. Toggles between `show-desktop' and

             x `Maximize'. Just for competitive reasons choosable from

        - `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

        - 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

             x `scheme-boolean'. This widget is now properly

               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

        - 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.


               (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

             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:
 [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

          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,

             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

        - 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.

Flashrider [Christopher Bratusek] 19:33, July 6, 2012 (UTC)