NEWS for veteran Window Maker users ----------------------------------- --- 0.92.0 GNUstep Installation Directory ------------------------------ WPrefs is now installed in /usr/local/bin and /usr/local/share by default. If you use GNUstep and want it to install in /usr/GNUstep/Applications, you may specify --with-gnustepdir=/usr/GNUstep If the GNUSTEP_LOCAL_ROOT environment variable is defined when configure is executed, it will be used (and you don't need to use --with-gnustepdir) Cached Pixmaps Directory ------------------------ The directory where Window Maker stores the cached application pixmaps for its later use has changed from ~/GNUstep/.AppInfo/WindowMaker to ~/GNUstep/Library/WindowMaker/CachedPixmaps for better compatibility with the GNUstep path structure. Also WPrefs now stores internal data in ~/GNUstep/Library/WindowMaker/WPrefs (it was ~/GNUstep/.AppInfo/WPrefs before) X Input Methods support in WINGs -------------------------------- Preliminary support for X Input Methods was added to textfield and text widgets in WINGs. Input for text in other languages than English should work now (except for kanji which will most likely not work, even though it wasn't tested). Disabling the switch panel -------------------------- To disable the panel shown during Alt-tabbing, you may put the following in ~/GNUstep/Defaults/WindowMaker SwitchPanelImages= None; --- 0.91.0 Alt-Tab Window Switching ------------------------ You can change the appearance of the panel shown during Alt-Tab window switching with the SwitchPanelImages option: (selected_icon_tile_image, background_image, width, height) selected_icon_tile_image is the image used to highlight the currently selected window icon. It must be 64x64 pixels. background_image is the image used in the background of the panel. It must be at least 64x80. width and height are the width and size of the central part of the image. When drawing the panel, the image will be split as: |W | +--+--+--+ | | | | +--+--+--+ - | | | | H +--+--+--+ - | | | | +--+--+--+ The 4 corner images will be copied in their original sizes and the rest will be scaled to the final panel size. background_image, width and height are optional. If you leave them out, a gray panel will be used. If your machine is not very fast, you may want to use it. --- 0.90.0 NetWM / EWMH Support -------------------- Support for the EWMH standard has been added. Applications from GNOME 2.x and KDE 3.x should now interoperate better with Window Maker. Support for the obsolete/legacy GNOME 1.x, KDE 1.x and OpenLook(!) hints was wiped out for the sake of sanity. Antialiased font support ------------------------ With the addition of Xft2 support in the WINGs library, now Window Maker can display antialiased text with TrueType or any scalable fonts. You can pick fonts for Window Maker in the Font configuration section of WPrefs. Antialiased text is enabled by default, but can be disabled by adding AntialiasedText = NO; in ~/GNUstep/Defaults/WMGLOBAL This will disable antialiased text for any WINGs based application. If you only want to disable them for a specific application only, like WindowMaker for example, then add the same option in the applications configuration file, in this case ~/GNUstep/Defaults/WindowMaker For WindowMaker, this can also be achieved from the Expert panel in WPrefs. Note that bitmapped fonts look much better than TrueType when antialiasing is disabled. Global Submenus --------------- Global menus allow for system wide menus that are added to every users application menus. They are located in /usr/etc/WindowMaker/, /usr/local/etc/WindowMaker or whatever is your sysconf directory for WindowMaker. There are 2 files: GlobalMenu.pre, which is added to the beginning of the menu and GlobalMenu.post, which is added to the end of the menu. These are to be proplist format menus, for example: (("Foobar", EXEC, foobar), ("Blabla", EXEC, blabla)) or, in case you want a submenu: (("Submenu", ("Foobar", EXEC, foobar), ("Blabla", EXEC, blabla))) UTF-8 Support ------------- Window Maker now uses UTF-8 internally (and thus can display UTF-8 text in window titles and other places). Menus and po files must now be encoded in UTF-8. If your menus contain non ASCII characters, you can convert them to UTF-8 with the following command: iconv -f -t utf-8 > .utf8 For example: iconv -f iso-8859-1 -t utf-8 menu > menu.utf mv menu.utf menu Icon Panel for Alt-Tabbing -------------------------- A panel with icons for the windows that you can switch to will appear when you press Alt-Tab. You can navigate through the windows with Alt-Tab (Alt-Shift-Tab) or with the left/right keys once the panel is shown. --- 0.80.0 Shading/Unshading windows using mouse wheel on their titlebar ------------------------------------------------------------- In addition to the known methods of shading/unshading a window, one can now do this by using the mouse wheel on the window's titlebar. The mouse events are interpreted via a mapping in the global WINGs configuration file, WMGLOBAL, by the MouseWheelUp and MouseWheelDown directives which will do shading and unshading respectfully. However, to avoid unwanted triggers of shading/unshading the window, two consecutive mouse wheel events in the same direction are required. The trigger won't occur if the events are separated by more than a double-click's worth of time, which is technically speaking like making a double-click with the button that corresponds to the mouse wheel direction. Practically speaking, this means that you have to move the mouse wheel up or down quickly, like when you want to quickly scroll over something big. Shared application icons ------------------------ Real application icon sharing was implemented in place of the collapse appicon thing. With this applications of the same instance.class will have a single shared application icon and hiding will hide all windows of the aplications attached to that appicon as if there is a single application. This feature is enabled by default for all applications in the global WMWindowAttributes defaults domain using: "*" = {SharedAppIcon = Yes;}; If you're not satisfied with this or want the old behaviour back you can revert this (either in the global domain for all users or in your personal WMWindowAttibutes domain) using SharedAppIcon = No; for "*" It can also be enabled/disabled for individual applications as needed. Setting this option can be done using the window's inspector panel in the "Application Specific" section. You can set/unset it for all applications by using the "Defaults for all windows" in the "Window Specification" section Basically using this can have 2 major scenarios: 1. Leave it on by default, but disable it for the few specific applications that do not behave well with it. (default) 2. Leave it off by default, and enable it for all applications for which you want it enabled. At this point all applications we tested work ok, some of them even work better with this feature turned on: for example xmms and Corel's WorkPerfect8 now only have 1 appicon (they used to have 2 without this feature). This feature is turned off by default for the following applications because it's incompatible with them: 1. all GNUstep applications 2. applications with an application menu (wterm, Aileron, etc) 3. all applications with withdrawn windows only (this means all dockapps) As a side note: wterm can use the shared appicon feature as long as it doesn't use the appmenu (will do this by default). If you start it using the appmenu (wterm -wm) it will disable the shared appicon feature because apps with appmenus are incompatible with this feature. If an application is a GNUstep application or if it has an appmenu, it's detected automatically and the shared appicon is disabled automatically without any user intervention or need to configure anything. Dock/Clip stealing appicons --------------------------- This feature is different form the Clip's "Autoattract Icons" feature as it won't attach any new icon to the dock/clip. What it does, is when you start an application by other means than dock/clip, like for example using the main menu or a terminal, it will search the dock/clips for the presence of an appicon for that application, that is not already running at that moment and will attach the started application to that appicon in the dock/clip if available, making it look like the dock/clip just stole the appicon for the started application. There is an animation for this to offer visual feedback that this happened. --- 0.70.0 New dock option --------------- Copy/paste launch in dock. ========================== For example, put netscape %s in the Docked icon for Netscape, select an url somewhere and then middle-click the icon. The command will be launched with the "pasted" string. Xinerama Support ================ Supported Xinerama features: - Normal maximization of windows will maximize to only one of the screens, the one where the cursor pointer is. - Full Maximize command in window menu - Place dialogs in the middle of the head where the pointer is - Try to place windows inside one head in non-manual placement modes Less dependancies ----------------- starting with 0.70.0 libPropList is no longer required to build Window Maker. PropList handling code was added to WINGs being now better integrated with all the rest. For more details check the Changelog and the following files: ./WINGs/ChangeLog ./WINGs/NEWS ./WINGs/WINGs/WUtil.h ./WINGs/WINGs/proplist-compat.h --- 0.65.1 Removed FocusFollowMouse option, only SloppyFocus present now. Added None option to MoveDisplay and ResizeDisplay --- 0.65.0 Single AppIcon -------------- Removed --single-appicon patch and replaced it with a application specific collapsing option. Check inspector panel and appicon menu. New options to configure the workspace mouse actions ---------------------------------------------------- The following options were removed from the WindowMaker defaults configuration file: SelectWindowsMouseButton, WindowListMouseButton and ApplicationMenuMouseButton. They were replaced with the following 3+1: MouseLeftButtonAction, MouseMiddleButtonAction and MouseRightButtonAction plus MouseWheelAction In the old way because all gravitated around the workspace actions to which specific mouse buttons could have been bound, it allowed one to specify in the configuration file settings which would have led to weird situations that also had undesirable results. For example the same mouse button (for example left) could have been assigned to all workspace actions: 'select windows', 'show window list menu' and 'show applications menu' which of course were not only impossible to accomplish while still having a properly working workspace, but they also allowed one to specify some settings in the configuration file that were never in fact translatable to proper workspace actions. To void this kind of user interface inconsistency, the new options now gravitate around the physical device (the mouse and its buttons) to which specific workspace actions can be bound. This way, even if one assigns the same action to all mouse buttons, that situation while gives redundant and unpractical settings it will still translatable to proper workspace actions: all buttons will execute the same action, but a button will execute only one action at a time. The new options take the following values: all Mouse...ButtonAction can have one of the following values: None, SelectWindows, OpenApplicationsMenu or OpenWindowListMenu MouseWheelAction can be one of None or SwitchWorkspaces If you had the default actions bound to mouse buttons before, then it will work for you without any intervention in the configuration files. Else you need to use WPrefs.app to bind the actions to the mouse buttons again to your old settings. Also if you want to change the mouse wheel behavior regarding workspaces you can now (use WPrefs.app to do this). Client supplied icons --------------------- Window Maker saves the client supplied icons in ~/GNUstep/Library/WindowMaker/CachedPixmaps in XPM format for later use when the app is no longer running (to have the image to display for docked icons for example). Until recently the XPM images saved by Window Maker were incorrect, but a recent fix in the code to save XPM's fixed them. But with this fix, all previously saved XPM's in that directory are no longer readable (they give wrong images on screen or fail to load). To avoid the need for the user to fix this by hand editing WMWindowAttributes and removing all references to icons in ~/GNUstep/Library/WindowMaker/CachedPixmaps which can be annoying, new code was added to Window Maker to permit the regeneration of images in ~/GNUstep/Library/WindowMaker/CachedPixmaps if they are missing. With this addition, all you need to do to fix your old broken images, is to delete all *.xpm files from ~/GNUstep/Library/WindowMaker/CachedPixmaps. Next time the application that is supplying an icon image will start the icon will be recreated if missing, but this time it will be saved with the new XPM save code which produces good XPM images. All the rest of the process is transparent to the user. Hermes library support ---------------------- If configure finds hermes library (an optimized pixel format conversion library) installed it will use it to do the pixel format conversion in the wraster library for some cases (TrueColor visuals without dithering). Currently the hermes routines cannot convert to an indexed destination, so we can't use hermes for PseudoColor, GrayScale and StaticGray visuals. Also hermes only does dithering for just 2 combinations of source/destination bits/masks none of them useful to out needs so for dithering we still use out routines. The Hermes library is completely optional, you can build Window Maker without having it, it just speeds up the things a little for some situations. hermes library is available here: http://www.clanlib.org/hermes/ --- 0.64.0 No Polling of Configuration Files --------------------------------- Running Window Maker with one of -nopolling or --no-polling command line options will make it not to poll every 3 seconds for changes in its configuration files (good for laptops to let them spin disks down when idle). Note: For the ones used with Jim Knoble's 'no polling' patch, this is the same, except that the need to #define ENABLE_NO_POLLING in wconfig.h was removed and the behaviour is always available if you use the command line option. --- 0.63.0 Interwoven Gradient ------------------- interwoven gradients rip^Winspired on blackbox. Will render a texture that interweaves 2 different ones. (igradient, from1, to1, thickness1, from2, to2, thickness2) Will render a interwoven texture with the 2 specified gradients, with each section having the specified thickness. wmagnify -------- The wmagnify utility will magnify the area on teh screen where your mouse pointer is located, updating it in real-time. tip: maximize it horizontally, make it Omnipresent and Always at Bottom. Then leave it in the bottom of the screen. workspace border ---------------- 2 options (WorkspaceBorder and WorkspaceBorderSize) were added to allow one to set a small (0..5 pixels) border for the workspace. This border will not be covered by windows when maximizing, allowing one to easily access the clip or map a menu using the mouse in the border area, even when there are windows maximized in both horizontal and vertical directions. WorkspaceBorder can be one of (None, LeftRight, TopBottom, AllDirections) while WorkspaceBorderSize is the size in pixles of the border not to be covered by windows when maximizing (usually a small amount 0..5 pixles). Both options can be set using WPrefs.app in the "Miscelaneous Ergonomic Preferences" section. WPrefs will always limit WorkspaceBorderSize in the (0..5) range. Note that if "full screen maximization" option is set for a window, that window will ignore this border area, maximizing to full screen. --- 0.62.0 Optimizations!! --------------- Code for converting wrlib images into X Pixmaps was optimized in many ways, both in the original C code and in assembly for Pentium(tm) processors (with and without MMX(tm)). Depending on the bit depth/color mode and CPU model, performance increases can go up to 150% Weendoze Window Cycling (alt-tab) --------------------------------- Window cycling was changed to weendoze style. NoBorder Window Attribute -------------------------- The NoBorder window attribute (to be put in ~/GNUstep/Defaults/WindowAttributes) was added and will remove the 1 pixel border around windows. Removed "Keep Attracted Icons" option from Clip's menu ------------------------------------------------------ Since this option brought more confusion than usefulness among users, and since it was usable only in a very limited context, being able to fill up the Clip very easily, it was removed. An alternative way of gaining the same functionality is to use the "Keep icon" entry in the Clip's main menu. Or select multiple icons before calling that entry, to make it apply to more than one icon. Note: "Keep icon", as the obsoleted "Keep Attracted Icons" had nothing to do with holding icons in Clip, while the application is running. Once they are attracted, they are kept until the application close. Using "Keep icon", will only assure that the icon will be kept, even after the application is closed. Please don't ask for this option back. It's error prone, and very unintuitive. Considering it's very restrictive usability, and it's very ambiguous topic, it does not need a special entry in the Clip's menu, taking in count that there are already better alternative ways of gaining the same functionality. Removed DisplayFont Option --------------------------- The font for the geometry size will be controlled by the default WINGs font (SystemFont in WMGLOBAL) now. Others ------ - added DONT_SCALE_ICONS compile time option - added --dont-restore cmd line option. When passed to wmaker, it wont restore the state saved previously. --- 0.61.1 New libPropList --------------- new libPropList-0.9.1 is REQUIRED to build Window Maker 0.61.1. go grab it and install it first. --- 0.60.1 Window Edge Attraction ---------------------- Window edge attraction was now added. Attraction = YES/NO; will enable/disable gravity to edge's boder. The strength of gravity can be controled by modify `EdgeResistance' value in WindowMaker configuration file. Titlebar Draw String Plugin --------------------------- FTitleColor, UTitleColor, PTitleColor, MenuTitleColor can be assigend with drawstring plugin instead of plain color. For example: FTitleColor = ( function, libwmfun.so, drawPlainString, gold, black, gray49 ); will invoke function drawplainstring from libwmfun.so and pass 3 colors for arguments. To code new plugin, please see plugin.h for more informations. --- 0.60.0 User Menu --------- The user menu is now a compile time option disabled by default. Supply --enable-usermenu to configure to enable it. root menu INCOMPATIBLE changes ------------------------------ EXEC will execute the named program SHEXEC will execute the shell command. If you want to execute something like blabla > /dev/null, then use SHEXEC Dont forget to update your menus. New Option For setstyle ----------------------- The --ignore flag will tell setstyle to not change the option that is specified, when modifying the Window Maker configurations. For example: setstyle --ignore MenuStyle sometheme.themed will cause the MenuStyle option to not be changed. setstyle --ignore FTitleBack --ignore UTitleBack --ignore PTitleBack bla.themed will load the theme, but keep the titlebar background related options as before. MultiByte Text Support Changes ------------------------------ The --enable-kanji configure option is not needed anymore and was removed. To enable support for multibyte text, you must: - set the LANG environment variable to the appropriate value - change the font configurations to contain font sets in the appropriate encodings in both ~/G/D/WindowMaker and ~/G/D/WMGLOBAL (for WPrefs) - set the MultiByteText option to YES in both of the above files New Options ----------- WorkspaceNameDisplayPosition = none/center/top/bottom/topleft/topright/bottomleft/bottomright SmoothWorkspaceBack = YES/NO will enable smoothing of scaled workspace background images. Application User Menu Path Changes ---------------------------------- Default configuration for user specific menus installed in /usr/local/share/WindowMaker/UserMenus or $(datadir)/WindowMaker/UserMenus and ~/GNUstep/Library/WindowMaker/UserMenus. Omnipresent icons in Clip ------------------------- Added ability to set icons docked in Clip to be omnipresent on all workspaces. To set/reset this flag use the clip menu. The Clip menu changed in the following way: - if you bring up the menu from the Clip's main icon, it will contain as before the "Rename Workspace" entry in the second position. - however, if you bring up the menu from any other icon in clip, the "Rename Workspace" menu entry is replaced by "Omnipresent" or "Toggle Omnipresent" depending on the context. This entry will work in the following way, depending on the context: 1. If there is no icon selected in the clip, then the menu will contain the entry named "Omnipresent" which will be checked accordingly to the current state of the icon (omnipresent or not), and will let you change the omnipresent state of the icon you brought the menu from. 2. If one or more icons are already selected when the Clip menu is called, the entry will be named "Toggle Omnipresent" and will apply to all selected icons trying to toggle their omnipresent state. The icons which will be succesfully changed to their new state as requested, will be unselected, while the ones that will fail for some reason to gain their new state, will remain selected. In both cases if there is no success in setting what user requested a panel will inform user of the failure. (Note: trying to set an icon to not-omnipresent will never fail. Failures can be met only when trying to set omnipresent for an icon). The icons set to omnipresent will be marked with a triangle in the upper left corner, having the color of the IconTitleColor. An icon can be set to omnipresent, only if its position is free in all the workspaces, else you will be informed of the problem and asked to fix it first. Also when dragging an omnipresent icon around in Clip, all the icons docked in all the workspaces are shown while the dragging is done, to let one easily see where are free slots in all workspaces. For advanced users, there is also a shortcut to set/reset the omnipresent state of an icon: just use "Shift+MiddleButton" (button2) on the icon you want to change. In this case only the mark in the upper left corner will appear in case of success, or nothing will happen if icon cannot be made omnipresent (advanced users are expected to know why the icon failed to be made omnipresent, so they don't need a panel to explain them why ;) ). Now before you load your gun to start a flame war because this is against your principles you love so much, please sit down and think that this is a feature, which, if you don't use, the old behaviour of the Clip is totally preserved. It just adds some extra capabilities to the Clip for people who think that this is useful. XDND drop on dock support ------------------------- Support for XDE on dock is now replaced by XDND. To enable, edit src/wconfig.h --- 0.53.0 New Options ----------- ** MenuStyle MenuStyle=