Sawfish

A new version of Sawfish is available now.

    Sawfish 1.8.0 "思いやり (Omoiyari)"

We are moving!

Yes, Sawfish is moving away from GNOME. Our new host will be Tuxfamily.org
and the preparations are going well. For more infos visit the ML. Once the
move is done, all required informations for users will be available on our Wiki.

Where to download?

Tar/BZ2: http://download.tuxfamily.org/sawfish/sawfish-1.8.0.tar.bz2 5,2 MB
SHA1SUM: http://download.tuxfamily.org/sawfish/sawfish-1.8.0.tar.bz2.sha1

Tar/XZ : http://download.tuxfamily.org/sawfish/sawfish-1.8.0.tar.xz 3,7 MB
SHA1SUM: http://download.tuxfamily.org/sawfish/sawfish-1.8.0.tar.xz.sha1

What's new since 1.7.0?

   * Incompatible changes
        - Infinite-desktop and edge-flip needs updates.

          Open the configurator -> "Edge Actions". Changes will be
          easy. (Set 4 pull-downs, and you're done mostly.
          "Infinite-desktop" is renamed to "viewport-drag".) For more
          options, see "Edge Actions" below.

          If your `~/.sawfish/rc' opens related modules, delete those
          references.  These modules are renamed, and you don't have to
          manually load them any more.

        - Renamed functions [Teika kazura]
             * Popup of operations-menu on a window, renamed from
               `popup-window-menu' to `popup-window-ops-menu' (both the
               function and command). Old names are still available.

             * Renamed window rename, from `rename-window-func' to
               `rename-window'. (Old name is still avialable.) The
               function `rename-window-interactive' is deleted. Use
               `(call-command 'rename-window)' instead.

          Even if the old names still remain, it is highly recommended
          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.

Have Fun! Flashrider [Christopher Bratusek] 09:18, March 13, 2011 (UTC)