[ANNOUNCE] Sawfish 1.6.0 "Sound Of Thunder"

Hi folks!

In the name of the sawfish coreteam, I'm pleased to announce the
immediate availabilty of:

	Sawfish 1.6.0 "Sound Of Thunder"

Some cherrypicks:

* Project Ridley: finished, as LibAudioFile and ESounD requirements have been dropped
* Viewport: dynamic viewport-boundary-mode (creates a new viewport then hitting the edge)
* Viewport: windows are restored on the correct Viewport from now on
* Bug fix: Prevent crashing of sawfish under heavy load and fast window destruction
* Bug fix: Prevent window crashing (at least that part sawfish is fault of, bugs in video drivers of course still may cause that)
* Thanks to librep 0.90.2+ all UTF-8 issues are gone
* Thanks to rep-gtk 0.90.0+ SawfishConfig (ex SawfishUI) began to refresh and undeprecate
* Trimmed down GNOME Integrationmodule (minimum) and new KDE4 Integrationmodule
* A set of new window-matchers and an improved window-matching architecture
* and of course a lot changes more.

Get your favourite windowmanager from: https://sourceforge.net/projects/sawmill/files/sawfish/1.6.0/

This release is brought to you by:

Christopher 'The Flashrider' Bratusek [Maintainer]
Janek 'The Re-Animator' Kozicki [Ex-Maintainer]
Timo Korvola [Coreteam Member]
Guillermo S. Romero [Coreteam Member]
Teika 'Mister X' Kazura [Coreteam Member]
Luis Rodrigo Gallardo Cruz [Debian Packager]
Jeremy Hankins [Coreteam Member]
Matthew Love [Contributor]
Nolan Leake [Contributor]

In addition to the above people, librep and rep-gtk releases are also courtesy of:

Jürgen Hötzel [Contributor]
Alexey I. Froloff/ALT Linux [Contributor / Distributor]
And anyone else I forgot to mention.

Big shouts to the whole Sawfish-Posse! Stay Tuned!

Happy Installing, a lots of christmas-presents and a happy new year,

Last but not least the complete NEWS from 1.5.0 to 1.6.0:


   * The 1.6.0 release has new features and bugfixes

   * Build and installation changes
        - New/Updated requirements:
             + librep 0.90.0 -> 0.90.4

             + rep-gtk 0.18.4 -> 0.90.0

        - Removed requirements: LibAudioFile and ESounD

        - Mouse buttons 6 - 9 support is now optional

          Support for 6 - 9 mouse buttons is now optional.
          X.Org/XFree86 headers only define up to 5 buttons, and we use
          a working but somewhat hackish workaround for getting buttons
          6 - 9 which is suspected to cause some problems with
          modifiers. Support for them is enabled by default. If you
          want to disable it, add the following flag to configure:


          If you drop it, then you can't use mouse button 8 to, for
          example, drag windows.

        - 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

          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

          Customization-group is changed from `misc' to `External

          The functinon `display-url' is renamed to `browser', now
          defined in the module cited above. Variable
          `display-url-command' is renamed to `browser-program'.

        - 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 it only supports up to 3 displays. Shrink-yank
          hasn't been changed at this point.

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

                       '((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

             + 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

        - 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

          `viewport-windows' returns windows in a viewport. [Jeremy

          `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

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

        - When moving a window the cursor shape is now `hand2', when
          resizing `crosshair' [Christopher Bratusek]

        - In the theme document in the configurator, the cursor is
          invisible and the wrap mode is set to word-char [Christopher

        - Build, installation and source
             + Improved ebuild [Christopher Bratusek]

             + Encoding is unified to utf-8 for all distributed files
               [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]

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]