JWM v2.3 Release Notes
This is a collection of major changes between JWM v2.2 and JWM v2.3.
Version 2.3.0 was released 20150618.
New Features
- Added support for client requested XRaiseWindow (issue #117).
- Added native language support for the confirm dialog.
- Added support for _NET_RESTACK_WINDOW (issue #118).
- Added key binding to send the current window to a different desktop (issue #119).
- Support the specification of an alternate configuration file (patch from Brian Bidulock)
- Added Corner option to configure the roundedness of windows.
- Updated the look of borders around menus and trays.
- Add support for _NET_WM_MOVERESIZE (issue #142).
- Add the fullscreen group option (patch from George Shaw).
- Made window style configuration more consistent (may break old configuration files).
- Add scale background type.
- Added group options: nomin, nomax, noclose, nomove, noresize (issue #152), and nofullscreen (issue #163).
- Added the Outline tag to MenuStyle to specify the color of menu outlines (issue #31).
- Added the Outline tag to TrayStyle to specify the color of tray outlines.
- To conform with GNU standards, running "make install" no longer strips the executable. To strip the executable, "make install‑strip" can be used instead.
- Added the ability to swallow the same client into a tray multiple times.
- Added the ability to specify where the tray is hidden when auto-hide is enabled (issue #34).
- Menu Includes are now loaded dynamically when a menu is shown rather than when JWM starts.
- Added the sendu, sendd, sendl and sendr key bindings to send a window to a different desktop (issue #119).
- Added the maxh, maxv, maxtop, maxbottom, maxleft and maxright key bindings (issues #120 and #157).
-
Added the ability to have separate actions per mouse button for
tray buttons (issue #171). This is accomplished using the
Button tag. For example:
<TrayButton label="My Button">The Button tags are optional. By default the action will use mouse button mask 123.
<Button mask="1">
exec:program_for_left_click
</Button>
<Button mask="45">
exec:program_for_scroll_wheel
</Button>
</TrayButton>
- Add the ability to have separate actions per mouse button for clock tray components (issue #171) and the ability to have clock tray components run actions like tray buttons (issue #172).
- Add support for more than 10 menus. Now 26 additional menus can be defined using the letters a through z.
Configuration Changes
The following XSLT is available to update JWM v2.2 configuration files for use with JWM v2.3: jwm-2.3.xslt.
To convert an existing v2.2 configuration file using xsltproc, run:
cp ~/.jwmrc ~/.jwmrc.old
xsltproc jwm-2.3.xslt ~/.jwmrc.old > ~/.jwmrc
xsltproc jwm-2.3.xslt ~/.jwmrc.old > ~/.jwmrc
If you have multiple configuration files, it may be necessary to apply the XSLT to some or all of them depending on what configuration options are stored in the file.
A summary of configuration changes follows.
- The ActiveBackground and ActiveForeground tags have been replaced by Background and Foreground under the Active tag. This applies to TrayStyle, TaskListStyle, TrayButtonStyle, PagerStyle, and MenuStyle.
- The Inactive tag under WindowStyle has been removed. The tags that used to go within this tag now go directly under the WindowStyle tag.
- The autohide attribute in Tray now determines where the tray should be hidden (left, right, top, bottom, or off) instead of true or false.
- Now actions in the Clock tag must be prefixed with exec: to run an external program.
See the configuration documentation for documentation on all configuration options.
Bug Fixes
- ICCCM 2.0 WM_S selection compliance (patch from Brian Bidulock).
- Fixed client window position after maximize/restore (issue #115, patch from Brian Bidulock).
- Fixed window mapping bug with show desktop (issue #114).
- Give focus to the top-most window after show desktop (issue #64).
- Fix uninitialized memory when loading images (patch from Brian Bidulock).
- Fix overlapping string issue with FriBidi (patch from Brian Bidulock).
- Fixed non-UTF8 locales (issue #56).
- Fixed transparency issue with some applications (issue #130).
- Fixed focus after key events (patch from Brian Bidulock).
- Fixed loss of focus after restoring windows (issue #131).
- Fix setting of _NET_WM_STATE_HIDDEN when a window is minimized (issue #133, patch from Brian Bidulock).
- Grab input focus at startup if not already set (issue #148).
Updated Translations
- Russian (Aleksandr Samusenko)
- French (Pierrick)
- Italian (Flavio aka Man from Mars)
- Spanish (Pablo Lezaeta)
Changes in 2.3.1 (20150628)
- Added an option to group windows by class in the task bar. (the group attribute of the TrayStyle tag).
- Fixed an issue with menus showing up across monitors when Xinerama is enabled.
- Added the ability to show Motif-style handles on windows (the decorations attribute of WindowStyle).
- Fixed an issue where the next/prev key bindings would not advance past a window that does not accept input focus.
- Fixed the behavior of the Include tag within menus so that it no longer creates a submenu.
- Menus included using Include are no longer loaded each time the menu is accessed.
- Added a Dynamic submenu that will re-load its menu contents each time it is accessed.
Changes in 2.3.2 (20150913)
- Restored the ability to specify that windows should not have an icon (using the "icon:" group option).
- JWM will now try several common extensions when loading icons.
- Fixed the height and default label for dynamic menus (issue #188).
- Improved handling of colormaps for pseudo-color displays.
- Fixed handling of WM_STATE on big-endian machines.
- Fixed an issue with menus getting stuck open.
- Removed the TaskListStyle, TrayButtonStyle, and ClockStyle configuration options. These options are now set from TrayStyle.
- Added the Hungarian translation (from Hermit).
- Added the ability to give a 3D look to menus and trays by specifying decorations="motif" in MenuStyle and TrayStyle respectively.
- Fixed an issue where JWM key bindings would not be available to applications (issue #201).
- JWM now highlights the first menu item when opening a menu with the keyboard (issue #102).
- Add the ability to selectively enable popups (issue #189).
- Various other fixes.
Changes in 2.3.3 (20151118)
- JWM windows now set _NET_WM_WINDOW_TYPE (issue #223).
- Added the Chinese translation (from Christopher Meng).
- Added the height attribute to TaskList (issue #227).
- Fixed tray button mouse bindings for the scroll wheel buttons (issue #229).
- Added the restore key binding (issue #233).
- Made middle-click on a task list item close the window (issue #232).
- Added support for tooltips in menus (issue #111).
- Added Portuguese (Brazil) translation (from Holmes).
- Fixed an issue where the dock would change size if its size was not explicitly set (issue #238).
- Fixed the height calculation of vertical trays (issue #228).
Changes in 2.3.4 (20151122)
- Now a negative tray width/height can be specified to subtract from the screen width/height (issue #250).
- Added the list configuration option to TrayStyle to allow displaying windows from all desktops (all) or only the current desktop (the default, desktop) in task lists.
- Improved scaling of JPEG and SVG images (issue #253).
- Fixed the rendering of fixed-aspect background images.
- Added the drag group option (issue #235).
- Fixed rendering of window borders without a title bar.
Changes in 2.3.5 (20160326)
- Faster icon loading (issue #258).
- Configurable default window icon via the ButtonMenu tag (issue #246).
- Added the ilist and ipager group options to ignore program-specified task list and pager settings (issue #263).
- Made it so clicking a submenu does not close the menu (issue #264).
- Made the tray respond to clicks at screen edges (issue #270).
- Made tiled window placement (the tiled group option) minimize overlap if no window position can be found with no overlap (issue #269).
- Removed exit confirmation when exit is invoked from the command line (issue #275).
- Now maximized windows restore when being dragged.
- Restored the ClockStyle tag to allow setting a custom font and color for clocks (issue #276).
- Fixed layout and mouse location tracking of tray items for trays with lots of components.
- Added the ability to use the output of a program for Include (issue #291).
- Added the fixed group option (issue #209).
Changes in 2.3.6 (20160812)
- Auto-maximization of windows when the mouse is brought to the edge of the screen (issue #49). This feature is disabled by default, but can be enabled via the aerosnap group option.
- Added Traditional Chinese translation (from Jim Tsai).
- Added the TaskListStyle and TrayButtonStyle tags to control the look of task lists and tray buttons. These were removed in v2.3.0, but are now back (issue #276).
- Fixed rendering of gradient highlights on menus.
- Changed the default configuration to explicitly set a 24-hour clock format.
- Made the default window title height match the font size used in window titles.
- Added the ability to set a default icon using the DefaultIcon tag (issue #310).
- Added the ability to disable move/resize using mod1+drag via the nodrag group option (issue #311).
- Made JWM raise the selected window when tabbing between windows (issue #313).
- Fixed an issue with some system tray icons not showing up (issue #314).
- Tiled window placement is now confined to the active display (pull request #318).
- Changed to the MIT license (issue #320).
- Added the labeled option to TaskListStyle to allow disabling labels for task lists.
Changes in 2.3.7 (20170721)
- Made the modifier for dragging a window by clicking its contents configurable via the mask attribute of the MoveMode tag (issue #324).
- Added group options for setting initial window position and size (issues #79 and #348).
- Added the clicktitle and sloppytitle options for FocusModel, which cause windows to be raised only when the title or border of the window is clicked (issue #286).
- Fixed scaling of icons in the task bar (issue #328).
- Added the decorations attribute to TaskListStyle to allow setting different decorations on tray buttons and task list buttons (issue #330).
- Fixed a bug with the nextstacked key binding (issue #335).
- Improved support for 3-digit hexcode colors (issue #336).
- Better aerosnap support on multiple monitors (issue #342).
- Fixed a bug with multiple separators in menus (issue #343).
- Fixed a bug with blank trays when there are full screen windows (issue #356).
- Added the spacing attribute to Dock to allow adding space between icons in the dock (issue #357).
- Added support for dynamic root menus via the dynamic attribute of RootMenu (issue #221).
- Fixed an issue with 32-bit TrueColor visuals on some platforms.
- Fixed an issue with menus and multiple monitors (issue #384).
- It is (once again) possible to disable desktop switching by scrolling on the desktop using an empty root menu (issue #366).