icewm -- history of user-visible changes. 2025-08-31 Release icewm-3.9.0 released 2025-08-31 --------------------------------------- git shortlog --no-merges -e -n -w80,6,8 3.8.2...3.9.0 Bert Gijsbers (20): When truncating a title in icesh, respect UTF-8 codepoint boundaries. Ensure that _NET_CLIENT_LIST_STACKING remains up-to-date. Add wmSmartPlace method for KeyWinSmartPlace. Add new -kovered filter to icesh to test if client is covered. Correct red and blue in icesh commands loadicon and saveicon. Ignore warning stringop-truncation for mstring.h. Make inheritance of YApplication private. Preserve the image mask as alpha when loading 24-bits images with Imlib2. YListBox only uses small icons. When scaling an YPixmap prefer to do it using libXrender. Add support for themed cursors for gdk-pixbuf without libXpm. Smart guess the cursor x/y-hotspot when absent. Add support for Xcursor. Use the system cursor themes, when an icewm theme doesn't define a cursor. Document Xcursor. When lseek on /proc/net/dev fails, then avoid it. Closes #806. Only warn for stringop-truncation when GCC is at least 8.0. Fix missing endif. Include libgen.h for basename on non-linux. Argument to basename is non-const. Fix parsing block comments in XPM headers. dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> (2): Bump actions/checkout from 4 to 5 Bump actions/checkout from 4 to 5 (#805) Javier Llorente (1): Translated using Weblate (Spanish) Kempelen (1): Translated using Weblate (Hungarian) Luiz Fernando Ranghetti (1): Translated using Weblate (Portuguese (Brazil)) Release icewm-3.8.2 released 2025-08-03 --------------------------------------- git shortlog --no-merges -e -n -w80,6,8 3.8.1...3.8.2 Bert Gijsbers (15): Use foldspaces to remove extraneous spaces. Also minimize fullscreen windows when clicking on a task button. Document the minimization feature of task buttons and the Ctrl modifier. Fix for keeping a menu inside the screen area. Fixes for adjusting the workarea when moving/sizing a do-not-cover window for issue #356. Fix to resize maximized windows when workarea grows and fix to recompute the workarea when a dock exits for issue #356. Don't synchronize with icewm after _NET_WORKAREA changes as it slows icewm down. Fix typo for issue #356. When the workarea changes, adjust the positions of all desktop icons. Drop excessive use of square brackets around double quotes. Improve the abstractions for the doNotCover computation inside updateWorkAreaInner. Add new "switchmenu" and "print" actions to icesh to use icesh in a "switchkey" definition in the "keys" file. Make the -Z filter work on non-Linux. Add mlterm for OpenBSD. Explain Dock layer. Prepare 3.8.2 release Release icewm-3.8.1 released 2025-07-14 --------------------------------------- git shortlog --no-merges -e -n -w80,6,8 3.8.0...3.8.1 Bert Gijsbers (20): Reduce the size of a DTheme from 88 bytes to 32 bytes. Reduce the amount of memory needed for keybindings from the "keys" file. Allow to reload the toolbar from the dialog. Document that the OpenCommand is for the Start menu. Make the BrowseMenu much faster and use less memory. Drop the DFile. Focus the first item in a browse menu. Simplify icewm actions. Simplify handleSMAction where WMAction equals YAction. Remove the IApp from DObject and DProgram to save some memory. Permit dots in theme directory names. Only use C strings in nextExt. Only use C strings in endsWith and startsWith. Document that a toolbar is a also a menu. Restore previous code for calculating the amount of User Memory and closes ice-wm/icewm#199. Drop unused offset from mstring to save 8 bytes per mstring. Drop the fCount field from mstring to save 8 bytes per mstring. Always keep message dialogs above the WindowList. Use the precise buffer length for a mstring of long. Prevent 2 Clang warnings. Prepare 3.8.1 release Kempelen (1): Translated using Weblate (Hungarian) Release icewm-3.8.0 released 2025-06-22 --------------------------------------- git shortlog --no-merges -e -n -w80,6,8 3.7.5...3.8.0 Bert Gijsbers (23): Include sr in LINGUAS. Optimize the CPU graph when taskbarbg.xpm is a gradient and ColorCPUStatusIdle is the empty string. Optimization of the CPU graph. Avoid work for translators for now. Optimize the MEM graph to reduce the background load of icewm. Optimize renderToPixmap for the imlib2 layer. Convert a hotkey to uppercase with respect for the current locale. YMenuItem doesn't need to be virtual. Convert HotChars in a menu to uppercase with respect for the current locale. Convert button hotkeys to uppercase with respect for the current locale. Use the taskbar parameters consistently. Add Help actions. Plus the launhHelp declaration. Convert case in mstrings with respect to the current locale. Clear array in ObjectMenu discard. Add discard declaration to the ObjectMenu. Drop the obsolete toUpper from ASCII. Optimize the Themes menu. First popup the Themes menu and only then look for theme alternatives. Provide a theme button preview to the themes Menu. Extend the Help menu. Silence clang warnings on OpenBSD. Prefer a non-deterministic random number generator. Remove surplus right-square-bracket. Prefer gtar to install themes on OpenSolaris/OpenIndiana. Prepare 3.8.0 release Jure Repinc (3): Translated using Weblate (Slovenian) Translated using Weblate (Slovenian) Translated using Weblate (Slovenian) Саша Петровић (3): Translated using Weblate (Serbian) Translated using Weblate (Serbian) Translated using Weblate (Serbian) Eduard Bloch (1): Mention --postpreferences in usage info Release icewm-3.7.5 released 2025-05-25 --------------------------------------- git shortlog --no-merges -e -n -w80,6,8 3.7.4...3.7.5 Bert Gijsbers (15): Silence Clang about VLAs. Add support for svgz to icewmbg. Rename findWindow(int) to findByFlags. Plug a few leaks in icewm-menu-fdo. Fix comparing language codes for issue #800. Support three-letter language codes. Document the new -l,--lang option for icewm-menu-fdo. Revert "Plug a few leaks in icewm-menu-fdo." and closes #801. This reverts commit a0c98f2f95ba8a363830165b1a593f1108636217. Allow setGeometry for windows without a WM_NORMAL_HINTS property in icesh. Ignore key repeats in the runonce command for keys for issue ice-wm/icewm#175. Document the runonce command for keys. Silence compiler on unknown pragmas. Drop the "--debug-z" option. For each over workspaces. For frames the lower and raise should be empty. Add unionRect for a YRect parameter. Prefer activateWindow over setFocus for the WindowList. When toggling the WindowList, raise the WindowList if it is overlapped. Prepare 3.7.5 release David Medina (1): Translated using Weblate (Catalan) Feike Donia (1): Translated using Weblate (Dutch) Саша Петровић (1): Added translation using Weblate (Serbian) Release icewm-3.7.4 released 2025-04-21 --------------------------------------- git shortlog --no-merges -e -n -w80,6,8 3.7.3...3.7.4 Bert Gijsbers (26): Lower minimum required CMake version to 3.5. Fix CMake LTO build. Remove obsolete CMake warning for SVG library. Let icesh don't loop when interrupted. Use X-resource library 1.2 to reliably obtain process identifiers of client windows. Add the "toolbar" command to icesh to let icewm reload the toolbar configuration. Add xres_LDFLAGS to icewm_libs for CMake. Add a toolbar button to the CAD-dialog. Return first found PID in getNetWMPid. Better fix for getNetWMPid sorry. Add xres to dependencies. Make XRes disableable in configure. Up version to 3.7.3. Make XRes disableable in the CMake build. Give which a backup in rebuild.sh. Remove debugging statements. Add a --replace option to icewm-session. Add -Z filter to icesh to select only terminals. Drop old obsolete icons. Change default theme to icedesert. Fix the stacking order when a QuickSwitch ends. Replace -lXRes with $(XRES_LIBS) for icesh. Improve CAD-dialog up-down traversal. In getLastFocus, ignore unmanaged frames. Restack the windows after a QuickSwitch has ended. Fix typo. Permit some global keys in case the global keybinds are not active. Prepare 3.7.4 release Dmitriy Khanzhin (2): Translated using Weblate (Russian) Translated using Weblate (Russian) Gemineo (2): Translated using Weblate (German) Translated using Weblate (German) Davide Aiello (1): Translated using Weblate (Italian) Emily Dong (1): Translated using Weblate (Chinese (Taiwan) (zh_TW)) Fran Serrador (1): Translated using Weblate (Spanish) Grace Yu (1): Translated using Weblate (Chinese (China) (zh_CN)) Samanta Magalhaes (1): Translated using Weblate (Portuguese (Brazil)) Sophie Leroy (1): Translated using Weblate (French) Release icewm-3.7.3 released 2025-03-30 --------------------------------------- git shortlog --no-merges -e -n -w80,6,8 3.7.2...3.7.3 Bert Gijsbers (10): Fix --disable-librsvg. Don't barf when --without-icesound. Update READMEs. Set a title to the dock window. Add the usertime and x11time commands to icesh. Remove the remnants of the root proxy window. Only set focus to the icewm top window when it hasn't focus yet. Remove DESKTOP_AUTOSTART_ID, DESKTOP_STARTUP_ID, XDG_ACTIVATION_TOKEN variables from the environment. Improve support for _NET_WM_USER_TIME and _NET_STARTUP_ID for issue #799. Fix typo for fUserTimeWindow in getUserTime. Startup notification says to always accept updates to _NET_STARTUP_ID. Fix compiler error on missing include errno.h. Prepare 3.7.3 release Eduard Bloch (5): Make location of nanosvg header customizable By default, try fallback to non-specific Sans or non-bold Fix cmake warning about wrong COMMENT arguments Upgrade min.req. of CMake to version 3.10 App name filter shall consider the command line too Mehmet Akif 9oglu (1): Translated using Weblate (Turkish)