news 28 Posted March 14, 2011 Hi all, a new version of Sawfish is available now. Sawfish 1.8.0 "æ€Âã„やり (Omoiyari)" What's Sawfish? =============== Sawfish is an extensible window manager using a Lisp-based scripting language. Its policy is very minimal compared to most window managers. Its aim is simply to manage windows in the most flexible and attractive manner possible. All high-level WM functions are implemented in Lisp for future extensibility or redefinition. These are some of the features that set Sawfish apart from other window managers: * Powerful key-binding: Virtually every functionality provided by Sawfish can be bound to keys (or mouse buttons). * Event hooking: For many events (moving windows etc.) you can customize the way Sawfish will respond. * Window matching: When windows are created you can match them to a set of rules and automatically perform actions on them. * Flexible theming: Sawfish allows for very different themes to be created and a variety of third-party themes are readily available. Sawfish was formerly known as Sawmill but then renamed to Sawfish due to pending patents on the name Sawmill. It's original Author is John Harper who got employed by Apple which prohibited him to continue working on Sawfish (and librep/rep-gtk). In Mid 2007 Janek 'The Re-Animator' Kozicki overtook the development of Sawfish. In Mid 2008 Christopher 'Flashrider' Bratusek overtook development of librep and rep-gtk, followed by Sawfish and SawfishPager in December 2008. Where to get more infos/news ? Where to get in contact with the community? ============================ Homepage (Wiki): http://sawfish.wikia.com Mailing-List: http://mail.gnome.org/mailman/listinfo/sawfish-list BugZilla: http://bugzilla.gnome.org IRC: sawfish ( -at -) freenode Twitter: ( -at -) nanolx 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! Chris _______________________________________________ Share this post Link to post