icewm -- history of user-visible changes. 2025-03-30 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 <gijsbers@science.uva.nl> (9): 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. Eduard Bloch <blade@debian.org> (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 <madanadam@gmail.com> (1): Translated using Weblate (Turkish) Release icewm-3.7.2 released 2025-03-09 --------------------------------------- git shortlog --no-merges -e -n -w80,6,8 3.7.1...3.7.2 Bert Gijsbers <gijsbers@science.uva.nl> (15): Always print icons double-quoted for issue #794. Also support SVG icons when the image library supports it natively. Mark the WindowList as a toplevel and redirect its input to the listbox. Fix compiling without internationalization for icewm-menu-fdo. Also update the server time before setting focus to the topWindow. Try not to go backwards in our notion of the X server time. Only save event time when it is non-zero. Add updateServerTime to class declaration in header. Use the window handle when retrieving the user time. Fix off-by-one errors in the QuickSwitch bottom right border for ice-wm/icewm#174. Log the keycode as a decimal. Improve readability in SwitchWindow::resize. Ignore key releases and modifier presses in the top window key handler. Remove the incompatible cmake_path from the po CMakefile. Prepare 3.7.2 release Release icewm-3.7.1 released 2025-02-27 --------------------------------------- git shortlog --no-merges -e -n -w80,6,8 3.7.0...3.7.1 Bert Gijsbers <gijsbers@science.uva.nl> (11): Link against NLS libs for icewm-menu-fdo and closes ice-wm/icewm#185. Fix broken modSuperIsCtrlAlt for issue #791. Simplify key handling in MenuProgSwitchItems. Skip past carriage-returns in getArgument for ice-wm/icewm#186. Remove trailing carriage-returns from each input line in icewm-menu-fdo for ice-wm/icewm#186. Let QuickSwitch select the proper client tab, before activating a frame. Fix toolbar addButton for issue ice-wm/icewm#186. Wait for the Return key-release event before accepting the address bar input line to avoid stray Return key-release events in applications. Improve focusing xterms by first updating our notion of the server time from xproperty events for issue ice-wm/icewm#188. Update the event time strictly increasing. Prepare 3.7.1 release Temuri Doghonadze <temuri.doghonadze@gmail.com> (1): Translated using Weblate (Georgian) Release icewm-3.7.0 released 2025-02-22 --------------------------------------- git shortlog --no-merges -e -n -w80,6,8 3.6.0...3.7.0 Eduard Bloch <blade@debian.org> (107): LC_CTYPE specific hints to Xft selection Minor fixes and improvements on XDG menu WIP: switched more glib containers to stl Workaround for gettext not applied on submenu WIP: redesigning menu handling First working printing code after rewrite Fixup some of the expansion patterns in the exec string Cleanup, fix Other menu population Localized sorting Map unknown subcats to Other main cat Simple attempt to get duplicated items in parent nodes Attaching menu description, incomplete Fix main cat fallback Work around missing reverse iterator, can be plain C++11 again Fallback to directory file base name matching the category name Mark submenu labels translateable Drop menu info getter Don't recurse for .directory fetching clang-reformat fdomenu.cc Stop requiring glib in CMake build Common DBG macro to turn on/off debug notes Filter out duplicates where apps declare some intermediate categories as well Add extra separator handling Implemented execution in Terminal Rename local DBG macro Cleaning Support --no-sub-cats Stop storing lookup helper in global member Fewer stat operations using readdir hints Match country-specific languages correctly Printing of GenericName Drop old Perl based converter (obsolete) Restore option to remove Other menu Option to move lone entries to their parent menues. Update CMake requirement to prevent warnings Minor updates Helper to create locale folder mock Fix loading from gettext if menu did not have a description Fix and streamline conversion flow Hint on requirement of SVG support Drop dependency on YLocale class and X11 libs Disable sync with stdio Include implicitly pulled headers directly Deadline option to abort XDG data reading and print what we got so far Refactor, reformat, fix typo Better fix for duplicated appendixes Bugfixes, cleanup More sophisticated -S operation, also fixes, cleanup Restore .desktop launching function Simple string matching filter implemented Icon donation from AudioVideo section to Audio / Video Reimplemented --flat mode Fix segfault when AudioVideo did not have decoration Relocate --match-osec check to hit translated section names too Added a user hint and basic precaching hack on menu timeout Minor refactoring (DRYing) Minor heap usage optimization Tiny runtime saving by not cleaning up the tree in the end Document missing options and align help text format Document new options In timeout, don't waste time with nice-to-have optimizations Disable --no-sep-others again Configured timeout defaults to "sane" values Dodge the GenericName which just repeats Name content Support more OS with the d_ent shortcut Optional source comment, more hidding, various fixes Minor performance tuning with different containers Save a few CPU cycles Update XDG format reference version Fixed merging of some submenu entries into correct parent Stop using std::regex Don't evaluate TryExec Local formating of prog title Option to clamp rogue menu title's length Make true/false checks case-insensitive Overhaul content processing Resolve shadowing of apps which are having the same translated name Convert translated sorting to internal bubble sort Wide char aware string cropping Drop unused fields, ignore comments earlier More similar standard level selection (to autoconf with recent compilers) Fix C++14 issue with constness of functors Use system installation of nanosvg package, where possible Stop using smart pointers Work around GCC11 issue Solve some warnings from receng clang and gcc Stop using VLAs, they are not fully legal in C++ Make PACKAGE/VERSION overridable in from-git build mode Document optional requirements Ignore local junk from IDEs and personal notes Build dependency on gennews.sh for NEWS creation Control language selection by LINGUAS file, not filesystem wildcards POT/PO update Explicit blacklisting of menu-xdg subfolders Ignore certain prefix commands Unmark text while not moving ahead at the end Never mark text in the complete operation Fix potential resize-to-smaller problem Drop ycollections classes Render the list of proposals in a tooltip Make the tooltip act like an assistant with further proposals Stop tooltip when space was typed in Redo completion when deleting Try using smaller icon versions in WS overview Make clicks in the corner effective to ShowDesktop button in right-placed mode Fix a crash when selecting Default from the clock menu No text insertion while doing tooltip update only Bert Gijsbers <gijsbers@science.uva.nl> (70): Add support for _NET_WM_MOVERESIZE_CANCEL. Better guard move/sizes and make sure they are properly terminated. Stop move/sizes when changing tabs. End manual placement when the client exits. Properly compute the first parameter to the select(2) system call. Add -Await option to icesh to wait for and select new client windows. Improve support for properties with COMPOUND_TEXT in icesh. When a key event is handled, don't propagate it further. When DockApps has "dock" and LimitByDockLayer=1 then update the desktop work area so that maximized windows leave the DockApps container visible for issue #779. Also update DockApps container when downsizing. Update DockApps preferences comment. Document the layers and the support for dockapps. Document the use of the LimitByDockLayer pref for DockApps. Simplify captureEvents/releaseEvents. Support changing the Dock container layer while running. When focusing a frame under the mouse, prefer to focus its topmost transient. When raising a frame, check if the focused frame needs to bind the mouse buttons, if it is overlapped. When minimizing or hiding transients, check against transients being tabs in the same frame. When LimitPosition is false, you can drag maximized windows off-screen and closes issue #780. Revert "When LimitPosition is false, you can drag maximized windows off-screen." To drag a maximized window, keep the Shift key down for issue #780. Elaborate on symbols and expressions and document the minus operator. Support keybindings to shifted XF86keysyms like XF86AudioPause for issue #781. Move parsing key definitions to class WMKey. Reuse WMKey in KProgram. Enforce a limit of 8 mouse pointer buttons, as more is impossible. Add constructors to WMKey. Consistently use keyCodeToKeySym. Dissolve the WM_KEY macros. Move all keybinding initializations to its own C++ file. Correct versions and date. Drop ycollections. Succinct. Improve pager icon sizes conditional structure. Remove smart pointers from misc.cc. Restore mstring strncpy's. Improve readability. Restore unsigned char array in yarray. Replace max by min. Let icesh accept UTF-8 strings in properties. Support locales with three letter language codes. Remove silly casts. Restore simple arrays and avoid mallocs. Retstore the previous fontmacro's, because e.g. the InputFont no longer was bold. Let icewmbg also support the AVIF image format. Remove the default 1px black border on the right and bottom sides of the QuickSwitch window when Look is flat for issue ice-wm/icewm#174. Support OpenBSD tar in --install list for issue ice-wm/icewm#179. Both scrollbars need to be able to process the same key event. Cleanup the listing of installable themes for issue ice-wm/icewm#179. Revert "When undoing an arrange or showing the desktop, focus the last focused window instead of the topmost window." for issue #788. fix fi.po to fix the build. Don't call XKeysymToKeycode several times per key grab, but cache it. Create YKeycodeMap and getKeycodeMap. Drop grabVKey and fixupPreferences. Move unshift to WMKey grab. Support grabbing two keys simultaneously by a single keybinding definition when both keys are bound to the same keysym. Increase max backgrounds to 8000. Increase toolbar height when icons are taller for issue ice-wm/icewm#178. Drop a NOTE. Make 4 graph widths themable for issue ice-wm/icewm#178. Revert "Remove the default 1px black border of the QuickSwitch for issue ice-wm/icewm#174." This reverts commit e7511806257cdee92585a21a4a794e19e33478dd. Revert "Don't draw a border on QuickSwitch when Look=flat for issue #736." This reverts commit 11c0b34db6b24f5fbd9815d359e0b5ef1360517f. Mark support for global modality as done. Add ColorQuickSwitchBorder themable preference for issue #736. Never use CurrentTime, but always use last event time when setting the input focus to a window. Fix compilation error for fdomenu.cc undefined msglang when no I18N. Include locale include files last in fdomenu.cc, because they contain macro's. Restore support for NanoSVG in the CMake build. Update the about copyright to 2025. Update potfiles. Restore support for C++11 in fdomenu.cc. Check for __GNUC__ at least 5 for codecvt dependency. Prepare 3.7.0 release Baurzhan Muftakhidinov <baurthefirst@gmail.com> (2): Translated using Weblate (Kazakh) Translated using Weblate (Kazakh) David Medina <medipas@gmail.com> (2): Translated using Weblate (Catalan) Translated using Weblate (Catalan) Ferdinand Galko <galko.ferdinand@gmail.com> (2): Translated using Weblate (Slovak) Translated using Weblate (Slovak) Luna Jernberg <bittin@opensuse.org> (2): Translated using Weblate (Swedish) Translated using Weblate (Swedish) Marina J. Donis <marinajdonis@gmail.com> (2): Translated using Weblate (Spanish) Translated using Weblate (Spanish) Alessio Adamo <alessio.adamo@gmail.com> (1): Translated using Weblate (Italian) Aleš Kastner <alkas@volny.cz> (1): Translated using Weblate (Czech) Dmitriy Khanzhin <jinn@altlinux.org> (1): Translated using Weblate (Russian) Ettore Atalan <atalanttore@googlemail.com> (1): Translated using Weblate (German) Hugo Carvalho <hugokarvalho@hotmail.com> (1): Translated using Weblate (Portuguese) Mehmet Akif 9oglu <madanadam@gmail.com> (1): Translated using Weblate (Turkish) Rantala <toni.rantala@protonmail.com> (1): Translated using Weblate (Finnish) Temuri Doghonadze <temuri.doghonadze@gmail.com> (1): Translated using Weblate (Georgian) Virinas code <alexcode228@gmail.com> (1): Translated using Weblate (French) Yasuhiko Kamata <belphegor@belbel.or.jp> (1): Translated using Weblate (Japanese) Release icewm-3.6.0 released 2024-06-16 --------------------------------------- git shortlog --no-merges -e -n -w80,6,8 3.5.1...3.6.0 Bert Gijsbers <gijsbers@science.uva.nl> (19): Double-click the border to maximize just that side for ice-wm/icewm#163. Repeat to restore that side. Also for corners. Restore moving windows by dragging with the right button down. Double-clicking on the border can undo a maximization. Support composing characters in the address bar with X input method. Fix checking for mkdir success in ensureDirectory. Provide for the case when XCreateIC fails. Convert to wchar_t using YWideString. Only compare icewm-extra tar file against ctime. Ignore moving/sizing requests, when a moving or sizing is already in progress. Don't create Window handle when destroyed or without a parent. Don't install mouse bindings when the frame is being destroyed. Don't dispatch events to destroyed windows. Fix length calculation after getCharFromEvent. Log key events. Avoid constructing invalid work areas. Do XFilterEvent globally. Mention the requirements for the --install option. Update pot files. Prepare 3.6.0 release Baurzhan Muftakhidinov <baurthefirst@gmail.com> (3): Translated using Weblate (Kazakh) Translated using Weblate (Kazakh) Translated using Weblate (Kazakh) Temuri Doghonadze <temuri.doghonadze@gmail.com> (1): Translated using Weblate (Georgian) Release icewm-3.5.1 released 2024-06-06 --------------------------------------- git shortlog --no-merges -e -n -w80,6,8 3.5.0...3.5.1 Bert Gijsbers <gijsbers@science.uva.nl> (24): Drop obsolete AC_HEADERs from configure. MailBoxPath is a list separated by spaces. MailBoxPath is a list separated by spaces. Replace duplicate code in getsesfile with getPrivConfFile. Add ensureDirectory to upath. Use 'space' instead of 'Space' in default key bindings. Extra test on upath expansion. Check for path existence in rewritePrefs. Use ensureDirectory in getPrivConfDir. Always create directory in getPrivConfFile. Add minute as a time unit. Add Tab completion on usernames and on environment variables. Add a permanent history of commands to the address bar. Update new address bar features. Tab-complete a leading environment variable in the address bar. Don't arrange, but only limit the position on screen dimension changes. Warn if DESKTOP_SESSION is icewm instead of icewm-session. Update icewm manpage description. Also expand a leading tilde username prefix. Update INSTALL.cmakebuild from INSTALL-cmakebuild.md. Drop empty si.po. Fix test -nt for NetBSD and closes ice-wm/icewm#168. Add percentage to icesh move for ice-wm/icewm#169 Prepare 3.5.1 release Hugo Carvalho <hugokarvalho@hotmail.com> (1): Translated using Weblate (Portuguese) Rodrigo Macedo <sottomaiormacedotec@sottomaiormacedo.tech> (1): Translated using Weblate (Portuguese (Brazil)) Release icewm-3.5.0 released 2024-05-20 --------------------------------------- git shortlog --no-merges -e -n -w80,6,8 3.4.7...3.5.0 Bert Gijsbers <gijsbers@science.uva.nl> (31): Never handle internal WM actions via XSendEvent, but always via XPutBack. Succinct handling of mstrings in themes. Let "icesh restore" also clear the urgency flag. Clear urgency and stop flashing when focusing a client. When the frame drops urgency, also update the client. Improve readability of setState. Set errno in dirExists and fix leak for userhome in expand. Avoid a shell in show_backtrace. Add fmt to mstring. Add -i,--install option to icewm to install an extra theme. Clarify icons for keyboard layouts. Keyboard layout icon names can be longer than 2 letters for issue ice-wm/icewm#161. Add chdir and set errno in fileExists. Add -i,--install option to help output. Update pot files. Show spaces around KeyboardLayouts example. 2024 Fix portability to NetBSD 10 and closes #774. Fix portability to NetBSD 10 and closes #775. Add file argument completion to the addressbar for ice-wm/icewm#33 'icesh winoptions' only affects new windows. Drop the C from the glob flags as it returns a starred string on failure. update README to 3.4.7 Point documentation links to website. Document the address bar editing keys. Also do tilde expansion in file arguments. Delay clearing the urgency flag in the client for half a second. When lowering a frame by KeyWinLower or by a menu action, then also lower the frame in the focus order, otherwise it appears as the first entry in the Quick Switch. Add "cd" and "pwd" commands to the address bar. Add tilde expansion on user login names. Don't chdir after realpath, but test for directory. Prepare 3.5.0 release Dmitriy Khanzhin <jinn@altlinux.org> (2): Translated using Weblate (Russian) Translated using Weblate (Russian) Ferdinand Galko <galko.ferdinand@gmail.com> (2): Translated using Weblate (Slovak) Translated using Weblate (Slovak) Mehmet Akif 9oglu <madanadam@gmail.com> (2): Translated using Weblate (Turkish) Translated using Weblate (Turkish) Aleš Kastner <alkas@volny.cz> (1): Translated using Weblate (Czech) David Medina <medipas@gmail.com> (1): Translated using Weblate (Catalan) Eduard Bloch <blade@debian.org> (1): Adding FDO weblinks to specification references Freek de Kruijf <freek@opensuse.org> (1): Translated using Weblate (Dutch) Luna Jernberg <bittin@opensuse.org> (1): Translated using Weblate (Swedish) Yasuhiko Kamata <belphegor@belbel.or.jp> (1): Translated using Weblate (Japanese)