diff -Nru icewm-2.9.8/AUTHORS icewm-2.9.9/AUTHORS --- icewm-2.9.8/AUTHORS 2022-07-18 20:55:37.000000000 +0000 +++ icewm-2.9.9/AUTHORS 2022-08-01 21:49:30.000000000 +0000 @@ -1,4 +1,4 @@ -icewm -- authors file. 2022-07-18 +icewm -- authors file. 2022-08-01 Author: Bert Gijsbers Author: Luna Jernberg diff -Nru icewm-2.9.8/ChangeLog icewm-2.9.9/ChangeLog --- icewm-2.9.8/ChangeLog 2022-07-18 20:55:37.000000000 +0000 +++ icewm-2.9.9/ChangeLog 2022-08-01 21:49:30.000000000 +0000 @@ -1,5 +1,279 @@ # created with git log --stat=76 -M -C -500|fmt -sct -w80 +commit 97952377fb3838ca26a5a20a31c69eac4e1b73ab +Merge: 9b23165b 751e987a +Author: Bert Gijsbers +Date: Mon Aug 1 23:37:56 2022 +0200 + + Merge branch 'icewm-1-4-BRANCH' + +commit 751e987aaeff2a8b25491c00058a13eafffd1a76 +Merge: d876f65e 173c5737 +Author: Bert Gijsbers +Date: Mon Aug 1 23:34:29 2022 +0200 + + Merge remote-tracking branch 'upstream/icewm-1-4-BRANCH' into + icewm-1-4-BRANCH + +commit 173c5737fbc6bf6248c60f153b17dcf01be38937 +Author: Bert Gijsbers +Date: Sat Jul 30 20:43:25 2022 +0200 + + Prefer findClient in two cases: unmap notify and recv ping. + + src/wmmgr.cc | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +commit dda71e87cdecb487a6b6ec9c106a10b9400f61f2 +Author: Bert Gijsbers +Date: Sat Jul 30 13:01:01 2022 +0200 + + Get rid of the frameContext. + + src/wmapp.cc | 40 ++++++++++++------------ + src/wmclient.cc | 33 ++------------------ + src/wmframe.cc | 1 - + src/wmmgr.cc | 88 ++++++++++++++++++++++++++++++----------------------- + src/yxapp.cc | 2 +- + src/yxcontext.h | 2 -- + 6 files changed, 75 insertions(+), 91 deletions(-) + +commit d1feb93fb083a54b790af2f00492582ada12f7fe +Author: Bert Gijsbers +Date: Fri Jul 29 10:06:31 2022 +0200 + + Automatically detect and prevent race conditions in icesh relating to + moving and sizing windows for issue #335. Improve the accuracy of the + "sizeto" command in icesh for issue #335. Add "extents" command to + icesh. Add "workarea" command to icesh. + + man/icesh.pod | 12 +++- + src/icesh.cc | 209 ++++++++++++++++++++++++++++++++++++++++++++---------- + 2 files changed, 183 insertions(+), 38 deletions(-) + +commit b9f05a2b6f38738e352f6efd8fc52963782f1ed3 +Author: Bert Gijsbers +Date: Wed Jul 27 23:31:42 2022 +0200 + + Add markdown and icesh. + + README.md | 14 ++++++++++---- + README.md.in | 10 ++++++++-- + 2 files changed, 18 insertions(+), 6 deletions(-) + +commit 26e0de1e550a68e01267df6cffb9239d061de9a5 +Author: Bert Gijsbers +Date: Wed Jul 27 15:10:27 2022 +0200 + + Accept either markdown or asciidoc to generate manual html with CMake. + + doc/CMakeLists.txt | 58 +++++++++++++++++++++++++++++++++++--------------- + 1 file changed, 41 insertions(+), 17 deletions(-) + +commit 04dd0086a8bbe13fcd5c01acb8668b49854c8892 +Author: Bert Gijsbers +Date: Wed Jul 27 06:09:31 2022 +0200 + + Drop obsolete wmOccupyAll(). + + src/wmframe.cc | 5 ----- + src/wmframe.h | 1 - + 2 files changed, 6 deletions(-) + +commit 59986924ace101f9b5e2ef8ad2c17e5876b8040f +Author: Bert Gijsbers +Date: Wed Jul 27 05:59:16 2022 +0200 + + Cleanup key grabs. + + man/icewm-keys.pod | 12 ----- + man/icewm.pod | 8 ++-- + src/bindkey.h | 11 ++--- + src/wmframe.cc | 74 ++++++++++++++-------------- + src/wmmgr.cc | 128 ++++++++++++++++++++++++------------------------- + src/yconfig.h | 4 +- + src/ywindow.cc | 95 +++++++++++++++++++++--------------- + src/ywindow.h | 7 +-- + 8 files changed, 173 insertions(+), 166 deletions(-) + +commit 6a9ea05b14bbb665d3b4efcee6e1ec24b6c97ac8 +Author: Bert Gijsbers +Date: Tue Jul 26 21:12:43 2022 +0200 + + Cleanup test and prefer markdown manual. + + doc/Makefile.am | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +commit 9a43fc02abc656e79ac4a62b4e0c82acc02c8b1a +Author: Bert Gijsbers +Date: Tue Jul 26 20:59:36 2022 +0200 + + Try srcdir. + + doc/Makefile.am | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +commit 44a4bcf82b9392f7a7556a4e58adb6fc46ae68ea +Author: Bert Gijsbers +Date: Tue Jul 26 20:38:15 2022 +0200 + + Also install markdown. + + .github/workflows/cmake.yml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 104db663eb58a797f1677e0fcbbe55203a934047 +Author: Bert Gijsbers +Date: Tue Jul 26 20:30:30 2022 +0200 + + Prevent warnings. + + doc/Makefile.am | 2 ++ + src/acpustatus.cc | 8 ++++++-- + src/fdomenu.cc | 7 +++++-- + 3 files changed, 13 insertions(+), 4 deletions(-) + +commit b706d6aad7936ed3213dcc15115a5141f563b92b +Author: Bert Gijsbers +Date: Tue Jul 26 20:03:14 2022 +0200 + + Remove dependency on asciidoc and prefer markdown format for the manual. + + VERSION | 2 +- + configure.ac | 25 +- + doc/Makefile.am | 6 +- + doc/icewm.md | 2558 +++++++++++++++++++++++++++++++++++++++++++++++++++ + 4 files changed, 2570 insertions(+), 21 deletions(-) + +commit fbb8c1b4371c521c993a10dff040ca8b2cb83056 +Author: Bert Gijsbers +Date: Tue Jul 26 19:03:14 2022 +0200 + + Support more HTML entities in icehelp. + + src/icehelp.cc | 32 +++++++++++++++++++++++++++----- + 1 file changed, 27 insertions(+), 5 deletions(-) + +commit 72ecc8d87627f0a5b6c2cc4e25dc50db2e656e49 +Author: Bert Gijsbers +Date: Tue Jul 26 18:05:27 2022 +0200 + + WindowMaker dock apps are supported. + + TODO | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 40cf52e4786a3f73d1908743ad9883496ee21f85 +Author: Bert Gijsbers +Date: Tue Jul 26 16:19:16 2022 +0200 + + Complete -e option. + + src/genpref.cc | 3 +++ + 1 file changed, 3 insertions(+) + +commit 80a4a852ad6949756ab961329477c6f85049a1d9 +Author: Bert Gijsbers +Date: Tue Jul 26 16:05:31 2022 +0200 + + Add key bindings for single window tiling operations for issues + bbidulock/icewm#335, ice-wm/icewm#74 and ice-wm/icewm#84. + + man/icewm.pod | 36 +++++++++++++++++++++++++ + src/bindkey.h | 36 ++++++++++++++++++------- + src/default.h | 9 +++++++ + src/genpref.cc | 10 ++++++- + src/movesize.cc | 18 +++++++++++++ + src/wmapp.cc | 26 ++++++++---------- + src/wmframe.cc | 9 +++++++ + src/ywindow.cc | 78 ++++++++++++++++++++++++++++------------------------- + 8 files changed, 160 insertions(+), 62 deletions(-) + +commit 79ee5df4cf487558e1b6e6e1aef6f9141804aa03 +Author: Bert Gijsbers +Date: Tue Jul 26 13:16:58 2022 +0200 + + Keep accurate track of window changes in workspace buttons for + PagerShowPreview. Only redraw affected workspace buttons, which reduces + the total number of workspace button redraws, especially for larges + number of workspace buttons. + + src/aworkspaces.cc | 31 +++++++++---- + src/aworkspaces.h | 9 +++- + src/decorate.cc | 2 +- + src/movesize.cc | 2 +- + src/wmframe.cc | 41 +++++++++++------ + src/wmmgr.cc | 116 ++++++++++++++++++++++++------------------------- + src/wmmgr.h | 21 +++++---- + src/wmtaskbar.cc | 5 ++- + src/wmtaskbar.h | 4 +- + src/wmwinlist.cc | 2 +- + 10 files changed, 134 insertions(+), 99 deletions(-) + +commit 5a3f36f2e082fa4edfc3ab287d2eef514d77baa4 +Author: Bert Gijsbers +Date: Tue Jul 26 13:15:45 2022 +0200 + + Permit percentages to have comma's in icesh. + + src/icesh.cc | 34 ++++++++++++++++++++++++++-------- + 1 file changed, 26 insertions(+), 8 deletions(-) + +commit 9b23165b88e4104be210406130f13303f7fe3ecf +Author: Bert Gijsbers +Date: Mon Jul 18 22:55:37 2022 +0200 + + Prepare 2.9.8 release + + AUTHORS | 5 +- + ChangeLog | 625 ++++++++++++++++++++++++++++--------------------------- + NEWS | 90 ++++---- + README.md | 36 ++-- + RELEASE.md | 2 +- + VERSION | 2 +- + configure.ac | 10 +- + po/ar.po | 104 ++++----- + po/be.po | 104 ++++----- + po/bg.po | 104 ++++----- + po/ca.po | 104 ++++----- + po/cs.po | 104 ++++----- + po/da.po | 104 ++++----- + po/de.po | 104 ++++----- + po/el.po | 104 ++++----- + po/en.po | 104 ++++----- + po/es.po | 104 ++++----- + po/fi.po | 104 ++++----- + po/fr.po | 104 ++++----- + po/he.po | 104 ++++----- + po/hr.po | 104 ++++----- + po/hu.po | 104 ++++----- + po/icewm.pot | 106 +++++----- + po/id.po | 104 ++++----- + po/it.po | 104 ++++----- + po/ja.po | 104 ++++----- + po/ko.po | 104 ++++----- + po/lt.po | 104 ++++----- + po/lv.po | 104 ++++----- + po/mk.po | 130 ++++++------ + po/nb.po | 104 ++++----- + po/nl.po | 104 ++++----- + po/no.po | 104 ++++----- + po/pl.po | 104 ++++----- + po/pt.po | 104 ++++----- + po/pt_BR.po | 104 ++++----- + po/ro.po | 104 ++++----- + po/ru.po | 104 ++++----- + po/sk.po | 104 ++++----- + po/sl.po | 104 ++++----- + po/sv.po | 134 ++++++------ + po/tr.po | 104 ++++----- + po/uk.po | 104 ++++----- + po/vi.po | 104 ++++----- + po/zh_CN.po | 104 ++++----- + po/zh_TW.po | 104 ++++----- + 46 files changed, 2454 insertions(+), 2430 deletions(-) + commit 4427e35bc1f5cd99ee10866aa8c63aee4514d56a Merge: 8d8acc27 d876f65e Author: Bert Gijsbers @@ -6018,333 +6292,3 @@ po/pt_BR.po | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) - -commit 08c4cdeaef18bd676e40b1316f546997195433d3 -Author: Freek de Kruijf -Date: Thu May 6 21:30:28 2021 +0000 - - Translated using Weblate (Dutch) - - Currently translated at 100.0% (477 of 477 strings) - - po/nl.po | 18 +++++++----------- - 1 file changed, 7 insertions(+), 11 deletions(-) - -commit 96779731d8ed74d30d6e62fb1f1c4b2be7711016 -Author: Yasuhiko Kamata -Date: Thu May 6 22:05:57 2021 +0000 - - Translated using Weblate (Japanese) - - Currently translated at 100.0% (477 of 477 strings) - - po/ja.po | 18 +++++++----------- - 1 file changed, 7 insertions(+), 11 deletions(-) - -commit cc4244183f7060cfe19a9752f301f0290cd86b8d -Author: David Medina -Date: Thu May 6 19:03:10 2021 +0000 - - Translated using Weblate (Catalan) - - Currently translated at 100.0% (477 of 477 strings) - - po/ca.po | 18 +++++++----------- - 1 file changed, 7 insertions(+), 11 deletions(-) - -commit 33497dea8067a6d9eeccb3ec8eec57dd16c4f1b9 -Author: Bert Gijsbers -Date: Fri May 7 01:39:59 2021 +0200 - - Prepare 2.3.4 release - - AUTHORS | 8 +- - ChangeLog | 815 ++++++++++++++++++++++++++++++------------------------- - NEWS | 102 ++++--- - README.md | 36 +-- - VERSION | 2 +- - configure.ac | 10 +- - po/ar.po | 82 +++--- - po/be.po | 82 +++--- - po/bg.po | 82 +++--- - po/ca.po | 82 +++--- - po/cs.po | 82 +++--- - po/da.po | 82 +++--- - po/de.po | 82 +++--- - po/el.po | 82 +++--- - po/en.po | 82 +++--- - po/es.po | 82 +++--- - po/fi.po | 82 +++--- - po/fr.po | 82 +++--- - po/he.po | 82 +++--- - po/hr.po | 82 +++--- - po/hu.po | 82 +++--- - po/icewm.pot | 84 +++--- - po/id.po | 82 +++--- - po/it.po | 82 +++--- - po/ja.po | 82 +++--- - po/ko.po | 82 +++--- - po/lt.po | 82 +++--- - po/lv.po | 82 +++--- - po/mk.po | 82 +++--- - po/nb.po | 82 +++--- - po/nl.po | 82 +++--- - po/no.po | 82 +++--- - po/pl.po | 82 +++--- - po/pt.po | 82 +++--- - po/pt_BR.po | 82 +++--- - po/ro.po | 82 +++--- - po/ru.po | 82 +++--- - po/sk.po | 82 +++--- - po/sl.po | 82 +++--- - po/sv.po | 82 +++--- - po/tr.po | 82 +++--- - po/uk.po | 82 +++--- - po/vi.po | 82 +++--- - po/zh_CN.po | 82 +++--- - po/zh_TW.po | 82 +++--- - 45 files changed, 2143 insertions(+), 2030 deletions(-) - -commit c6619282bf52afcb1b6900348f4fa0e1b7c91e2b -Merge: fef8441f 20314f45 -Author: Bert Gijsbers -Date: Fri May 7 01:29:16 2021 +0200 - - Merge branch 'icewm-1-4-BRANCH' - -commit 20314f45588e6a5619e419beff62e549c6e48550 -Merge: 721a1b20 43ec0839 -Author: Bert Gijsbers -Date: Fri May 7 01:27:56 2021 +0200 - - Merge remote-tracking branch 'upstream/icewm-1-4-BRANCH' into - icewm-1-4-BRANCH - -commit 43ec0839bf40ecd469f7ab3e65068777a6df76dd -Author: Bert Gijsbers -Date: Fri May 7 01:06:25 2021 +0200 - - Reduce freetype font size for icehelp. Improve reversed link color - for icehelp. - - src/icehelp.cc | 23 +++++++++++++---------- - 1 file changed, 13 insertions(+), 10 deletions(-) - -commit 9faf348bca2689e0227a1fba6404dd42c7e0eb4b -Author: Bert Gijsbers -Date: Thu May 6 19:26:26 2021 +0200 - - make update-po - - po/ar.po | 124 ++++++++++++++++++++++++++++---------------------- - po/be.po | 124 ++++++++++++++++++++++++++++---------------------- - po/bg.po | 124 ++++++++++++++++++++++++++++---------------------- - po/ca.po | 128 ++++++++++++++++++++++++++++----------------------- - po/cs.po | 124 ++++++++++++++++++++++++++++---------------------- - po/da.po | 124 ++++++++++++++++++++++++++++---------------------- - po/de.po | 124 ++++++++++++++++++++++++++++---------------------- - po/el.po | 124 ++++++++++++++++++++++++++++---------------------- - po/en.po | 120 ++++++++++++++++++++++++++---------------------- - po/es.po | 124 ++++++++++++++++++++++++++++---------------------- - po/fi.po | 124 ++++++++++++++++++++++++++++---------------------- - po/fr.po | 128 ++++++++++++++++++++++++++++----------------------- - po/he.po | 120 ++++++++++++++++++++++++++---------------------- - po/hr.po | 124 ++++++++++++++++++++++++++++---------------------- - po/hu.po | 136 +++++++++++++++++++++++++++++++------------------------ - po/icewm.pot | 122 +++++++++++++++++++++++++++---------------------- - po/id.po | 124 ++++++++++++++++++++++++++++---------------------- - po/it.po | 124 ++++++++++++++++++++++++++++---------------------- - po/ja.po | 128 ++++++++++++++++++++++++++++----------------------- - po/ko.po | 124 ++++++++++++++++++++++++++++---------------------- - po/lt.po | 124 ++++++++++++++++++++++++++++---------------------- - po/lv.po | 124 ++++++++++++++++++++++++++++---------------------- - po/mk.po | 124 ++++++++++++++++++++++++++++---------------------- - po/nb.po | 124 ++++++++++++++++++++++++++++---------------------- - po/nl.po | 128 ++++++++++++++++++++++++++++----------------------- - po/no.po | 124 ++++++++++++++++++++++++++++---------------------- - po/pl.po | 124 ++++++++++++++++++++++++++++---------------------- - po/pt.po | 124 ++++++++++++++++++++++++++++---------------------- - po/pt_BR.po | 124 ++++++++++++++++++++++++++++---------------------- - po/ro.po | 124 ++++++++++++++++++++++++++++---------------------- - po/ru.po | 124 ++++++++++++++++++++++++++++---------------------- - po/sk.po | 128 ++++++++++++++++++++++++++++----------------------- - po/sl.po | 124 ++++++++++++++++++++++++++++---------------------- - po/sv.po | 124 ++++++++++++++++++++++++++++---------------------- - po/tr.po | 124 ++++++++++++++++++++++++++++---------------------- - po/uk.po | 124 ++++++++++++++++++++++++++++---------------------- - po/vi.po | 124 ++++++++++++++++++++++++++++---------------------- - po/zh_CN.po | 124 ++++++++++++++++++++++++++++---------------------- - po/zh_TW.po | 124 ++++++++++++++++++++++++++++---------------------- - 39 files changed, 2736 insertions(+), 2122 deletions(-) - -commit f1d41d292d4a069dcaba87f9ddc69cca1a23806d -Author: Bert Gijsbers -Date: Thu May 6 19:25:16 2021 +0200 - - Check input lengths. - - src/icehelp.cc | 12 +++++++----- - 1 file changed, 7 insertions(+), 5 deletions(-) - -commit 063e412b71fd4d2dfe878b04c681ac1e11b79617 -Author: Bert Gijsbers -Date: Thu May 6 19:12:00 2021 +0200 - - Add PingTimeout. - - man/icewm-preferences.pod | 4 ++++ - 1 file changed, 4 insertions(+) - -commit affe7d96d9cadb37841f0f8f3a2105694aecbab7 -Author: Bert Gijsbers -Date: Thu May 6 19:03:37 2021 +0200 - - Improve accuracy of clicking on links in icehelp. Support reverse video - in icehelp. Add more keyboard shortcuts to icehelp. - - src/icehelp.cc | 133 +++++++++++++++++++++++++++++++++++++++---------- - src/yscrollbar.cc | 15 ++++++ - src/yscrollbar.h | 3 ++ - src/yscrollview.cc | 27 ++-------- - src/yscrollview.h | 18 +++---- - 5 files changed, 139 insertions(+), 57 deletions(-) - -commit 918c05ab43f9c547545841b972bf4926b55afca2 -Author: Bert Gijsbers -Date: Thu May 6 19:02:36 2021 +0200 - - Don't adjust workarea when snapping from outside the workarea. - - src/movesize.cc | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -commit 0a32a9a13b591e2e99f1b2e48fd88e11d889c924 -Author: Bert Gijsbers -Date: Thu May 6 19:01:31 2021 +0200 - - Add reverse color. - - src/ycolor.cc | 10 ++++++++++ - src/ycolor.h | 2 ++ - 2 files changed, 12 insertions(+) - -commit 74aa52f91eb2adbd5ea863259777c1ed831ba1ed -Author: Bert Gijsbers -Date: Thu May 6 19:00:22 2021 +0200 - - Add setNetName. - - src/ywindow.cc | 6 ++++++ - src/ywindow.h | 1 + - 2 files changed, 7 insertions(+) - -commit e9c0278f109c1322cda05154b330cb20906787d6 -Author: Bert Gijsbers -Date: Thu May 6 18:59:22 2021 +0200 - - Add a --disable-rsvg option to configure for issue #587. - - configure.ac | 38 ++++++++++++++++++++++---------------- - 1 file changed, 22 insertions(+), 16 deletions(-) - -commit c8f7c5f44c7674d99f3c1610e8df2ed55744d66c -Author: Ferdinand Galko -Date: Thu May 6 13:32:01 2021 +0000 - - Translated using Weblate (Slovak) - - Currently translated at 100.0% (474 of 474 strings) - - po/sk.po | 8 +++++--- - 1 file changed, 5 insertions(+), 3 deletions(-) - -commit 87fff3d3b7a1f1301dfeb7be5b6c446ecc9e6444 -Author: Freek de Kruijf -Date: Thu May 6 08:29:44 2021 +0000 - - Translated using Weblate (Dutch) - - Currently translated at 100.0% (474 of 474 strings) - - po/nl.po | 8 +++++--- - 1 file changed, 5 insertions(+), 3 deletions(-) - -commit aa8d5ffe5bc64a94b9d58c4e0aa78cbd01bcc7f7 -Author: Guillaume GARDET -Date: Thu May 6 06:41:28 2021 +0000 - - Translated using Weblate (French) - - Currently translated at 100.0% (474 of 474 strings) - - po/fr.po | 8 +++++--- - 1 file changed, 5 insertions(+), 3 deletions(-) - -commit aaad3bf3ddd038dae102560929b03e3bf67b4471 -Author: David Medina -Date: Thu May 6 08:37:02 2021 +0000 - - Translated using Weblate (Catalan) - - Currently translated at 100.0% (474 of 474 strings) - - po/ca.po | 8 +++++--- - 1 file changed, 5 insertions(+), 3 deletions(-) - -commit 6945bd20579f6510ce34ad1666a293e4804987c7 -Author: Yasuhiko Kamata -Date: Thu May 6 03:48:35 2021 +0000 - - Translated using Weblate (Japanese) - - Currently translated at 100.0% (474 of 474 strings) - - po/ja.po | 8 +++++--- - 1 file changed, 5 insertions(+), 3 deletions(-) - -commit 74a762fd1041990755b891ea5e4f3d8d1b000367 -Author: Bert Gijsbers -Date: Wed May 5 23:46:55 2021 +0200 - - make update-po - - po/ar.po | 89 +++++++++++++++++++++++++++----------------------- - po/be.po | 89 +++++++++++++++++++++++++++----------------------- - po/bg.po | 89 +++++++++++++++++++++++++++----------------------- - po/ca.po | 93 ++++++++++++++++++++++++++++------------------------ - po/cs.po | 89 +++++++++++++++++++++++++++----------------------- - po/da.po | 89 +++++++++++++++++++++++++++----------------------- - po/de.po | 91 +++++++++++++++++++++++++++------------------------ - po/el.po | 89 +++++++++++++++++++++++++++----------------------- - po/en.po | 89 +++++++++++++++++++++++++++----------------------- - po/es.po | 89 +++++++++++++++++++++++++++----------------------- - po/fi.po | 89 +++++++++++++++++++++++++++----------------------- - po/fr.po | 95 ++++++++++++++++++++++++++++------------------------- - po/he.po | 89 +++++++++++++++++++++++++++----------------------- - po/hr.po | 89 +++++++++++++++++++++++++++----------------------- - po/hu.po | 93 ++++++++++++++++++++++++++++------------------------ - po/icewm.pot | 91 +++++++++++++++++++++++++++------------------------ - po/id.po | 89 +++++++++++++++++++++++++++----------------------- - po/it.po | 89 +++++++++++++++++++++++++++----------------------- - po/ja.po | 93 ++++++++++++++++++++++++++++------------------------ - po/ko.po | 89 +++++++++++++++++++++++++++----------------------- - po/lt.po | 89 +++++++++++++++++++++++++++----------------------- - po/lv.po | 89 +++++++++++++++++++++++++++----------------------- - po/mk.po | 89 +++++++++++++++++++++++++++----------------------- - po/nb.po | 89 +++++++++++++++++++++++++++----------------------- - po/nl.po | 99 ++++++++++++++++++++++++++++++-------------------------- - po/no.po | 89 +++++++++++++++++++++++++++----------------------- - po/pl.po | 89 +++++++++++++++++++++++++++----------------------- - po/pt.po | 89 +++++++++++++++++++++++++++----------------------- - po/pt_BR.po | 89 +++++++++++++++++++++++++++----------------------- - po/ro.po | 89 +++++++++++++++++++++++++++----------------------- - po/ru.po | 91 +++++++++++++++++++++++++++------------------------ - po/sk.po | 93 ++++++++++++++++++++++++++++------------------------ - po/sl.po | 89 +++++++++++++++++++++++++++----------------------- - po/sv.po | 89 +++++++++++++++++++++++++++----------------------- - po/tr.po | 89 +++++++++++++++++++++++++++----------------------- - po/uk.po | 89 +++++++++++++++++++++++++++----------------------- - po/vi.po | 89 +++++++++++++++++++++++++++----------------------- - po/zh_CN.po | 89 +++++++++++++++++++++++++++----------------------- - po/zh_TW.po | 89 +++++++++++++++++++++++++++----------------------- - 39 files changed, 1891 insertions(+), 1618 deletions(-) diff -Nru icewm-2.9.8/configure.ac icewm-2.9.9/configure.ac --- icewm-2.9.8/configure.ac 2022-07-18 20:55:37.000000000 +0000 +++ icewm-2.9.9/configure.ac 2022-08-01 21:49:30.000000000 +0000 @@ -2,10 +2,10 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ([2.69]) -AC_INIT([icewm],[2.9.8], +AC_INIT([icewm],[2.9.9], [https://github.com/bbidulock/icewm/issues], [icewm],[https://ice-wm.org]) -AC_REVISION([2.9.8]) +AC_REVISION([2.9.9]) # set better defaults AC_PREFIX_DEFAULT([/usr]) @@ -22,13 +22,13 @@ AC_USE_SYSTEM_EXTENSIONS AC_CANONICAL_TARGET -DATE='2022-07-18' +DATE='2022-08-01' AC_SUBST([DATE]) -MDOCDATE='July 18, 2022' +MDOCDATE='August 1, 2022' AC_SUBST([MDOCDATE]) -BRANCH='2.9.8' +BRANCH='2.9.9' AC_SUBST([BRANCH]) APPLICATIONS='icewm icewm-session icesh icewmhint icewmbg icehelp' @@ -59,7 +59,8 @@ AC_CHECK_PROGS([MKFONTDIR],[mkfontdir],[${am_missing_run}mkfontdir],[$PATH$PATH_SEPARATOR/usr/X11R6/bin]) AC_ARG_VAR([MARKDOWN],[markdown command. @<:@default=markdown@:>@]) -AC_CHECK_PROGS([MARKDOWN],[markdown],[${am_missing_run}markdown],[$PATH]) +AC_CHECK_PROGS([MARKDOWN],[markdown markdown_py discount-markdown Markdown.pl], + [${am_missing_run}markdown],[$PATH]) AC_ARG_VAR([ASCIIDOC],[asciidoc command. @<:@default=asciidoctor@:>@]) AC_CHECK_PROGS([ASCIIDOC],[asciidoc asciidoctor],[${am_missing_run}asciidoc],[$PATH]) @@ -69,19 +70,7 @@ case "$ASCIIDOC" in asciidoc) ASCIIDOC_BACKEND="--backend=html4" ;; asciidoctor) ASCIIDOC_BACKEND="--backend=html5" ;; - *) AC_MSG_WARN([ASCIIDOC $ASCIIDOC is not supported.]) ;; - esac -fi - -AC_ARG_VAR([ASCIIMAN],[asciidoc to manpage converter. @<:@default=a2x@:>@]) -AC_CHECK_PROGS([ASCIIMAN],[a2x asciidoctor],[${am_missing_run}a2x],[$PATH]) - -AC_ARG_VAR([ASCIIMAN_FORMAT],[asciidoc manpage option @<:@default=NONE@:>@]) -if test -z "$ASCIIMAN_FORMAT"; then - case "$ASCIIMAN" in - a2x) ASCIIMAN_FORMAT="--format=manpage" ;; - asciidoctor) ASCIIMAN_FORMAT="--backend=manpage" ;; - *) AC_MSG_WARN([ASCIIMAN $ASCIIMAN is not supported.]) ;; + *) AC_MSG_NOTICE([ASCIIDOC $ASCIIDOC is not supported.]) ;; esac fi diff -Nru icewm-2.9.8/debian/changelog icewm-2.9.9/debian/changelog --- icewm-2.9.8/debian/changelog 2022-07-21 05:22:32.000000000 +0000 +++ icewm-2.9.9/debian/changelog 2022-08-05 19:58:29.000000000 +0000 @@ -1,3 +1,9 @@ +icewm (2.9.9-1) unstable; urgency=low + + * New upstream release + + -- Eduard Bloch Fri, 05 Aug 2022 21:58:29 +0200 + icewm (2.9.8-1) unstable; urgency=low * New upstream release diff -Nru icewm-2.9.8/debian/patches/debian-changes icewm-2.9.9/debian/patches/debian-changes --- icewm-2.9.8/debian/patches/debian-changes 2022-07-21 05:22:32.000000000 +0000 +++ icewm-2.9.9/debian/patches/debian-changes 2022-08-05 19:58:29.000000000 +0000 @@ -3,8 +3,8 @@ in some VCS, and exported as a single patch instead of more manageable atomic patches. ---- icewm-2.9.8.orig/lib/keys.in -+++ icewm-2.9.8/lib/keys.in +--- icewm-2.9.9.orig/lib/keys.in ++++ icewm-2.9.9/lib/keys.in @@ -27,8 +27,8 @@ key "Super+KP_Add" amixer sset key "XF86AudioLowerVolume" amixer sset Master 5%- key "XF86AudioRaiseVolume" amixer sset Master 5%+ @@ -16,8 +16,8 @@ key "XF86Eject" eject key "XF86Calculator" /bin/sh -c "gnome-calculator || xcalc || ( type bc >/dev/null 2>&1 && @XTERMCMD@ -e bc -l)" ---- icewm-2.9.8.orig/lib/winoptions.in -+++ icewm-2.9.8/lib/winoptions.in +--- icewm-2.9.9.orig/lib/winoptions.in ++++ icewm-2.9.9/lib/winoptions.in @@ -5,6 +5,8 @@ xterm.XTerm.icon: xterm @@ -27,8 +27,8 @@ nxterm.icon: xterm fte.icon: fte emacs.Emacs.icon: emacs ---- icewm-2.9.8.orig/src/default.h -+++ icewm-2.9.8/src/default.h +--- icewm-2.9.9.orig/src/default.h ++++ icewm-2.9.9/src/default.h @@ -125,7 +125,7 @@ XIV(bool, win95keys, XIV(bool, autoReloadMenus, true) XIV(bool, arrangeWindowsOnScreenSizeChange, true) @@ -81,8 +81,8 @@ #if __OpenBSD__ #define NET_DEVICES "[ew]* vio*" #else ---- icewm-2.9.8.orig/src/wmapp.cc -+++ icewm-2.9.8/src/wmapp.cc +--- icewm-2.9.9.orig/src/wmapp.cc ++++ icewm-2.9.9/src/wmapp.cc @@ -42,6 +42,7 @@ char const *ApplicationName("IceWM"); RebootShutdown rebootOrShutdown = Logout; @@ -91,7 +91,7 @@ YWMApp *wmapp; YWindowManager *manager; -@@ -1236,6 +1237,9 @@ YWMApp::YWMApp(int *argc, char ***argv, +@@ -1234,6 +1235,9 @@ YWMApp::YWMApp(int *argc, char ***argv, focusMode(loadFocusMode()), managerWindow(None) { @@ -101,7 +101,7 @@ wmapp = this; YIcon::iconResourceLocator = this; -@@ -1992,6 +1996,14 @@ public: +@@ -1990,6 +1994,14 @@ public: } }; diff -Nru icewm-2.9.8/doc/CMakeLists.txt icewm-2.9.9/doc/CMakeLists.txt --- icewm-2.9.8/doc/CMakeLists.txt 2022-07-18 20:55:37.000000000 +0000 +++ icewm-2.9.9/doc/CMakeLists.txt 2022-08-01 21:49:30.000000000 +0000 @@ -2,9 +2,10 @@ PROJECT(ICEWM CXX) # -# The list of AsciiDoc pages which need to be converted to HTML. +# The list of files which need to be converted to HTML. # -set(ADOC_NAMES icewm.adoc) +set(MARK_FILES icewm.md) +set(ADOC_FILES icewm.adoc) # # The destination directory for HTML pages. @@ -18,40 +19,63 @@ endif() # -# Detect AsciiDoc convertor to HTML. +# Detect input processor. # -if(NOT ASCIIDOC) - find_program(ASCIIDOC NAMES asciidoctor asciidoc) -endif() -if((ASCIIDOC) AND (NOT ASCIIDOC_BACKEND)) - if(ASCIIDOC MATCHES asciidoctor$) - set(ASCIIDOC_BACKEND "--backend=html5") - elseif(ASCIIDOC MATCHES asciidoc$) - set(ASCIIDOC_BACKEND "--backend=html4") +if(NOT MARKDOWN AND NOT ASCIIDOC) + find_program(MARKDOWN NAMES markdown markdown_py discount-markdown Markdown.pl) + if (NOT MARKDOWN) + find_program(ASCIIDOC NAMES asciidoctor asciidoc) endif() endif() # +# Convert Markdown pages to HTML. +# +if(MARKDOWN) + set(HTML_OUTPUT_FILES) + foreach(mark ${MARK_FILES}) + string(REGEX REPLACE \\.md$ .html htm ${mark}) + set(txt "${CMAKE_SOURCE_DIR}/doc/${mark}") + set(out "${CMAKE_BINARY_DIR}/${htm}") + ADD_CUSTOM_COMMAND(OUTPUT "${out}" + COMMAND ${MARKDOWN} "${txt}" > "${out}" + DEPENDS "${txt}" + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + ) + list(APPEND HTML_OUTPUT_FILES "${out}") + endforeach() + ADD_CUSTOM_TARGET(build_html_docs ALL DEPENDS ${HTML_OUTPUT_FILES}) + +# # Convert AsciiDoc pages to HTML. # -if((ASCIIDOC) AND (ASCIIDOC_BACKEND)) +elseif(ASCIIDOC) + if(NOT ASCIIDOC_BACKEND) + if(ASCIIDOC MATCHES asciidoctor$) + set(ASCIIDOC_BACKEND --backend=html5) + elseif(ASCIIDOC MATCHES asciidoc$) + set(ASCIIDOC_BACKEND --backend=html4) + endif() + endif() + set(HTML_OUTPUT_FILES) - foreach(adoc ${ADOC_NAMES}) - string(REGEX REPLACE "\\.adoc$" ".html" htm "${adoc}") + foreach(adoc ${ADOC_FILES}) + string(REGEX REPLACE \\.adoc$ .html htm ${adoc}) set(txt "${CMAKE_SOURCE_DIR}/doc/${adoc}") set(out "${CMAKE_BINARY_DIR}/${htm}") ADD_CUSTOM_COMMAND(OUTPUT "${out}" - COMMAND "${ASCIIDOC}" "${ASCIIDOC_BACKEND}" -o "${out}" "${txt}" + COMMAND ${ASCIIDOC} ${ASCIIDOC_BACKEND} -o "${out}" "${txt}" DEPENDS "${txt}" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} ) list(APPEND HTML_OUTPUT_FILES "${out}") endforeach() ADD_CUSTOM_TARGET(build_html_docs ALL DEPENDS ${HTML_OUTPUT_FILES}) + else() - message(WARNING "asciidoctor or its backend not found.\n" + message(WARNING "markdown and asciidoctor not found.\n" "NOT regenerating HTML documentation.\n" - "To rebuild install asciidoctor or asciidoc.") + "To rebuild install markdown or asciidoctor.") FILE(GLOB HTML_OUTPUT_FILES *.html) endif() diff -Nru icewm-2.9.8/doc/icewm.md icewm-2.9.9/doc/icewm.md --- icewm-2.9.8/doc/icewm.md 1970-01-01 00:00:00.000000000 +0000 +++ icewm-2.9.9/doc/icewm.md 2022-08-01 21:49:30.000000000 +0000 @@ -0,0 +1,2558 @@ +--- +title: IceWM Manual +--- + +Introduction +============ + +This document is the manual for the **IceWM** X11 window manager. +The [IceWM manpages](https://ice-wm.org/man/) provide additional documentation. + +The goal of IceWM is to provide a small, fast and familiar window manager for the X11 window system, which is compatible with the EWMH and ICCCM window manager protocols. Generally, it tries to make all functions available both by keyboard and by mouse (this is not currently possible when using mouse focus). + +IceWM originally was designed to emulate the look of Motif, OS/2 Warp 4, OS/2 Warp 3 and Windows 95. Since it has a theming engine others styles are possible. A large number of original themes have been created and [published by users](https://themes.ice-wm.org/). + +Further information can be found at [the IceWM website](https://ice-wm.org/), +at the [current site of development](https://github.com/bbidulock/icewm/), +which includes the [support requests](https://github.com/bbidulock/icewm/issues/). + +Copying +======= + +IceWM and its documentation are covered by a GNU LGPL license, +which is included in the distribution. + +First steps +=========== + +IceWM components +---------------- + +The IceWM suite consists of the following core applications provided by the main package: + +- **[icewm](https://ice-wm.org/man/icewm)** - The actual window manager binary. It handles window placement and draws the window decorations. + +- **[icewmbg](https://ice-wm.org/man/icewmbg)** - The background setting application. It can assign plain background color or images in different formats to the X background. Either shared or separate for different workspaces. This program should be started before `icewm`. + +- **[icewm-session](https://ice-wm.org/man/icewm-session)** - The IceWM session manager runs all of the above. This is the preferred program to start IceWM. + +- **[icewm-menu-fdo](https://ice-wm.org/man/icewm-menu-fdo)** - This generates IceWM program menus from FreeDesktop `.desktop` files. + +- **[icewmhint](https://ice-wm.org/man/icewmhint)** - Is a simple utility for passing IceWM hints to IceWM by window class and instance. Icewmhint uses a special property, '"\_ICEWM\_WINOPHINT"', on the root window to pass special hints to IceWM. + +- **[icehelp](https://ice-wm.org/man/icehelp)** - Is used by icewm to display the 'IceWM manual' and the manpages. See the output of `icehelp --help` for details. + +- **[icesh](https://ice-wm.org/man/icesh)** - Could be used to manage IceWM internals from the command line. + +Starting icewm +-------------- + +The `icewm` program alone is suitable for use with desktop environments like GNOME. If you wish to run the whole IceWM suite (WM, background changer, Docklet support, and startup/shutdown script handling), use the `icewm-session` binary instead of pure `icewm`. Note that this is not a complete Session Manager but it helps to automate the startup. + +First make sure that you choose the correct [X startup](https://www.tldp.org/HOWTO/XWindow-User-HOWTO/runningx.html) script in your home directory. For most distributions either the file `$HOME/.xsession` or `$HOME/.xinitrc` is honored by startx and X display managers like KDM. On RedHat, the `$HOME/.Xclients` may be used instead. In all cases, choose the one recommended by your distribution and make sure that there is no concurrency between the X startup scripts. Ensure that the script is executable. Mine looks something like this: + + #!/bin/bash + # run profile to set $PATH and other env vars correctly + . $HOME/.bash_profile + # setup touchpad and the external mouse + xset m 7 2 + xinput set-ptr-feedback 0 7 1.9 1 + + # start icewm-session + exec icewm-session + xterm + +The xterm on the last line is there simply to make sure that your X session doesn't crash if IceWM does (should never happen). You can restart IceWM from there or start some other window manager. The session will close if you close the xterm. + +Startup and shutdown scripts +---------------------------- + +After initialization `icewm-session` will search the resource path for a `startup` script. If this file is found and if it is executable `icewm-session` will run this script. During termination of `icewm-session` the `shutdown` script is executed. + +Example `~/.icewm/startup` script: + + #!/bin/bash + + [ -x ~/.icewm/restart ] && source ~/.icewm/restart + + gnome-terminal --geometry 80x25+217+235 & + xscreensaver & + +On termination the `shutdown` script will be run first, then `icewm-session` will terminate icewm and icewmbg. + +Hint: `icewm-session` is meant for easy desktop initialization and it is part of IceWM due to popular demand. For more sophisticated session management one could use a real session manager. IceWM supports the XSESSION protocol. + +Extra session environment +------------------------- + +Please note that if icewm-session is used as the only startup mechanism (without having .xsession involved), one can write additional environment settings into the file `$HOME/.icewm/env`. Expansion of simple shell style variables should be supported on most platforms. Shell command expansion is supported if `wordexp` was configured. This extra environment is only effective in applications started by icewm-session and their subprocesses. + +Example `env`: + + PATH=~/bin:$PATH + LANG=de_DE.UTF-8 + +Focus models +============ + +IceWM implements four general focus models: + +- **clickToRaise** + + Exactly like Win95, OS/2 Warp. When window is clicked with a mouse, it is raised and activated. + +- **clickToFocus** + + Window is raised and focused when titlebar or frame border is clicked. Window is focused but not raised when window interior is clicked. + +- **pointerFocus** + + When the mouse is moved, focus is set to window under a mouse. It should be possible to change focus with the keyboard when mouse is not moved. + +- **explicitFocus** + + When a window is clicked, it is activated, but not raised. New windows do not automatically get the focus unless they are transient windows for the active window. + +Detailed configuration is possible using the configuration file options. + +Mouse Commands +============== + +Frame Commands +-------------- + +- **Left Button** + + Select and raise the window. On the window frame, resize the window. + +- **Right Button** + + When dragged, moves the window. When clicked, displays the context menu. + +Title Bar Commands +------------------ + +- **Any Button Drag** + + Move the window. + +- **Alt + Left Button** + + Lower the window. + +- **Left Button Double Click** + + Maximize/Restore the window. + +- **Middle Button Double Click** + + Rollup/Unroll the window. + +The Ctrl key can be used together with a mouse button to prevent a window from being raised to the top of the stack. + +Taskbar commands +---------------- + +- **Left Button Click** + + Activate the workspace with the window and raise the window. Toggles the minimized/active state of the window. + +- **Shift + Left Button Click** + + Move window to current workspace. This only works when windows from all workspaces are shown on the taskbar all the time. + +- **Control + Left Button Click** + + Minimize/restore the window. + +- **Middle Button Click** + + Toggle raised/lowered state of the window. + +- **Shift + Middle Button Click** + + Add the window to the current workspace. + +- **Control + Middle Button Click** + + Lower the window. + +- **Right Button Click** + + Display a context menu. + +Keyboard Commands +================= + +The Alt key is assumed to be the key defined as the Mod1 modifier. + +- `Alt+F1` + + Raise the window. + +- `Alt+F2` + + Make a window occupy all desktops. + +- `Alt+F3` + + Lower the window to the bottom of the stack. + +- `Alt+F4` + + Close the window. + +- `Alt+F5` + + Restore the window state if maximized or minimized/hidden. + +- `Alt+F6` + + Focus to next window. + +- `Alt+Shift+F6` + + Focus to previous window. + +- `Alt+F7` + + Starts movement of the active window. Move the window either by the mouse or by the arrow keys. The arrow keys can be accelerated four times by the Shift key or sixteen times by the Control key. Press the left button or the Enter key when done. To cancel press Escape. + +- `Alt+F8` + + Starts resizing of the active window. Resize the window either by the mouse or by the arrow keys. The arrow keys can be accelerated four times by the Shift key or sixteen times by the Control key. Press the left button or the Enter key when done. To cancel press Escape. + +- `Alt+F9` + + Minimize the window to taskbar. + +- `Alt+F10` + + Maximize the window. + +- `Alt+Shift+F10` + + Maximize the window vertically (toggle). + +- `Alt+F11` + + Hide the window (appears in window list, but not on taskbar). + +- `Alt+F12` + + Rollup the window. + +- `Ctrl+Escape` + + Show the start menu. + +- `Ctrl+Alt+Escape` + + Show the window list. + +- `Shift+Escape` + + Show the system-menu of the window. + +- `Alt+Escape` + + Focus to next window (down in zorder) + +- `Alt+Shift+Escape` + + Focus to previous window (up in zorder) + +- `Alt+Tab` + + Switch between windows (top -> bottom). + +- `Alt+Shift+Tab` + + Switch between windows (bottom <- top). + +- `Ctrl+Alt+LeftArrow` + + Switch to the previous workspace (cycle). + +- `Ctrl+Alt+RightArrow` + + Switch to the next workspace (cycle). + +- `Ctrl+Alt+DownArrow` + + Switch to the previously active workspace. + +- `Ctrl+Alt+Shift+LeftArrow` + + Move the focused window to the previous workspace and activate it. + +- `Ctrl+Alt+Shift+RightArrow` + + Move the focused window to the next workspace and activate it. + +- `Ctrl+Alt+Shift+DownArrow` + + Move the focused window to the previously active workspace and activate it. + +- `Ctrl+Alt+Delete` + + displays the session dialog. + +- `Ctrl+Alt+Space` + + Activate the AddressBar. This is a command line in the taskbar where a shell command can be typed. Pressing the Enter key will execute the command. If **AddressBarCommand** was configured it will be used to execute the command otherwise `/bin/sh` is used. If the **Control** key was also pressed then the command is executed in a terminal as given by **TerminalCommand**. The address bar maintains a history which is navigable by the Up and Down keys. A rich set of editing operations is supported, including cut-/copy-/paste-operations and file completion using **Tab** or **Ctrl-I**. + +- `Ctrl+Alt+d` + + Show the desktop. + +- `Ctrl+Alt+h` + + Toggle taskbar visibility. + +The Resource Path +================= + +IceWM looks in several locations for configuration information, themes and customization; together these locations are called the resource path. The resource path contains the following directories: + +$ICEWM\_PRIVCFG; $XDG\_CONFIG\_HOME/icewm; $HOME/.icewm +The first of these which is defined and existent is used to search for the user's personal customization. + +/etc/icewm +the system-wide defaults directory + +/usr/share/icewm OR /usr/local/share/icewm +the compiled-in default directory with default files + +The directories are searched in the above order, so any file located in the system/install directory can be overridden by the user by creating the same directory hierarchy under `$HOME/.icewm`. + +To customize icewm yourself, you could create the `$HOME/.icewm` directory and copy the files that you wish to modify, like `preferences`, `keys` or `winoptions`, from `/etc/icewm`, `/usr/share/icewm` or `/usr/local/share/icewm` and then modify as you like. + +To customize the default themes, create the `$HOME/.icewm/themes` directory and copy all the theme files there and then modify as necessary. Each theme has its own subdirectory. Themes can be downloaded from . + +Configuration Files +=================== + +IceWM uses the following configuration files: + +- **[theme](https://ice-wm.org/man/icewm-theme)** + + Currently selected theme + +- **[preferences](https://ice-wm.org/man/icewm-preferences)** + + General settings - paths, colors, fonts... + +- **[prefoverride](https://ice-wm.org/man/icewm-prefoverride)** + + Settings that should override the themes. + +- **[menu](https://ice-wm.org/man/icewm-menu)** + + Menu of startable applications. Usually customized by the user. + +- **[programs](https://ice-wm.org/man/icewm-programs)** + + Automatically generated menu of startable applications (this should be used for **wmconfig**, **menu** or similar packages, perhaps as a part of the login or X startup sequence). + +- **[winoptions](https://ice-wm.org/man/icewm-winoptions)** + + Application window options + +- **[keys](https://ice-wm.org/man/icewm-keys)** + + Global keybindings to launch applications (not window manager related) + +- **[toolbar](https://ice-wm.org/man/icewm-toolbar)** + + Quick launch application icons on the taskbar. + +Theme +===== + +The `theme` file contains the currently selected theme. It will be overwritten automatically when a theme is selected from the Themes menu. + +Preferences +=========== + +This section shows preferences that can be set in `preferences`. Themes will not be able to override these settings. Default values are shown following the equal sign. + +Focus and Behavior +------------------ + +The following settings can be set to value 1 (enabled) or value 0 (disabled). + +- `ClickToFocus = 1` + + Enables click to focus mode. + +- `RaiseOnFocus = 1` + + Window is raised when focused. + +- `FocusOnClickClient = 1` + + Window is focused when client area is clicked. + +- `RaiseOnClickClient = 1` + + Window is raised when client area is clicked. + +- `RaiseOnClickTitleBar = 1` + + Window is raised when titlebar is clicked. + +- `RaiseOnClickButton = 1` + + Window is raised when title bar button is clicked. + +- `RaiseOnClickFrame = 1` + + Window is raised when frame is clicked. + +- `LowerOnClickWhenRaised = 0` + + Lower the active window when clicked again. + +- `PassFirstClickToClient = 1` + + The click which raises the window is also passed to the client. + +- `FocusChangesWorkspace = 0` + + Change to the workspace of newly focused windows. + +- `AutoRaise = 0` + + Windows will raise automatically after AutoRaiseDelay when focused. + +- `StrongPointerFocus = 0` + + When focus follows mouse always give the focus to the window under mouse pointer - Even when no mouse motion has occurred. Using this is not recommended. Please prefer to use just ClickToFocus=0. + +- `FocusOnMap = 1` + + Window is focused after being mapped. + +- `FocusOnMapTransient = 1` + + Transient window is focused after being mapped. + +- `FocusOnMapTransientActive = 1` + + Focus dialog window when initially mapped only if parent frame focused. + +- `FocusOnAppRaise = 1` + + The window is focused when application raises it. + +- `RequestFocusOnAppRaise = 1` + + Request focus (flashing in taskbar) when application requests raise. + +- `MapInactiveOnTop = 1` + + Put new windows on top even if not focusing them. + +- `PointerColormap = 0` + + Colormap focus follows pointer. + +- `DontRotateMenuPointer = 1` + + Don't rotate the cursor for popup menus. + +- `LimitSize = 1` + + Limit size of windows to screen. + +- `LimitPosition = 1` + + Limit position of windows to screen. + +- `LimitByDockLayer = 0` + + Let the Dock layer limit the workspace (incompatible with GNOME Panel). + +- `ConsiderHBorder = 0` + + Consider border frames when maximizing horizontally. + +- `ConsiderVBorder = 0` + + Consider border frames when maximizing vertically. + +- `ConsiderSizeHintsMaximized = 1` + + Consider XSizeHints if frame is maximized. + +- `CenterMaximizedWindows = 0` + + Center maximized windows which can't fit the screen (like terminals). + +- `HideBordersMaximized = 0` + + Hide window borders if window is maximized. + +- `HideTitleBarWhenMaximized = 0` + + Hide title bar when maximized. + +- `CenterLarge = 0` + + Center large windows. + +- `CenterTransientsOnOwner = 1` + + Center dialogs on owner window. + +- `SizeMaximized = 0` + + Window can be resized when maximized. + +- `MinimizeToDesktop = 0` + + Window is minimized to desktop area (in addition to the taskbar). + +- `MiniIconsPlaceHorizontal = 0` + + Place the mini-icons horizontal instead of vertical. + +- `MiniIconsRightToLeft = 0` + + Place new mini-icons from right to left. + +- `MiniIconsBottomToTop = 0` + + Place new mini-icons from bottom to top. + +- `GrabRootWindow = 1` + + Manage root window (EXPERIMENTAL - normally enabled!). + +- `ShowMoveSizeStatus = 1` + + Move/resize status window is visible when moving/resizing the window. + +- `ShowWorkspaceStatus = 1` + + Show name of current workspace while switching. + +- `ShowWorkspaceStatusAfterSwitch = 1` + + Show name of current workspace while switching workspaces. + +- `ShowWorkspaceStatusAfterActivation = 1` + + Show name of current workspace after explicit activation. + +- `WarpPointer = 0` + + Pointer is moved in pointer focus move when focus is moved using the keyboard. + +- `OpaqueMove = 1` + + Window is immediately moved when dragged, no outline is shown. + +- `OpaqueResize = 0` + + Window is immediately resized when dragged, no outline is shown. + +- `DelayPointerFocus = 1` + + Similar to delayed auto raise. + +- `Win95Keys = 0` + + Makes 3 additional keys perform sensible functions. The keys must be mapped to MetaL, MetaR and Menu. The left one will activate the start menu and the right one will display the window list. + +- `ModSuperIsCtrlAlt = 1` + + Treat Super/Win modifier as Ctrl+Alt. + +- `UseMouseWheel = 0` + + Mouse wheel support. + +- `TaskBarTaskGrouping = 0` + + Group applications with the same class name under a single task button. + +- `ShowPopupsAbovePointer = 0` + + Show popup menus above mouse pointer. + +- `ReplayMenuCancelClick = 0` + + Send the clicks outside menus to target window. + +- `ManualPlacement = 0` + + Windows must be placed manually by the user. + +- `SmartPlacement = 1` + + Smart window placement (minimal overlap). + +- `IgnoreNoFocusHint = 0` + + Ignore no-accept-focus hint set by some windows. + +- `MenuMouseTracking = 0` + + If enabled, menus will track the mouse even when no mouse button is pressed. + +- `ClientWindowMouseActions = 1` + + Allow mouse actions on client windows. + +- `SnapMove = 1` + + Snap to nearest screen edge/window when moving windows. + +- `SnapDistance = 8` + + Distance in pixels before windows snap together + +- `ArrangeWindowsOnScreenSizeChange = 1` + + Automatically arrange windows when screen size changes. + +- `MsgBoxDefaultAction = 0` + + Preselect to Cancel (0) or the OK (1) button in message boxes + +- `EdgeResistance = 32` + + Resistance to move window with mouse outside screen limits. Setting it to 10000 makes the resistance infinite. + +- `AllowFullscreen = 1` + + Allow to switch a window to fullscreen. + +- `FullscreenUseAllMonitors = 0` + + Span over all available screens if window goes into fullscreen. + +- `NetWorkAreaBehaviour = 0` + + NET\_WORKAREA behaviour: 0 (single/multimonitor with STRUT information, like metacity), 1 (always full desktop), 2 (singlemonitor with STRUT, multimonitor without STRUT). + +- `ConfirmLogout = 1` + + Confirm Logout. + +- `MultiByte = 1` + + Overrides automatic multiple byte detection. + +- `ShapesProtectClientWindow = 1` + + Don't cut client windows by shapes set trough frame corner pixmap. + +- `DoubleBuffer = 1` + + Use double buffering when redrawing the display. + +- `XRRDisable = 0` + + Disable use of new XRANDR API for dual head (nvidia workaround) + +- `PreferFreetypeFonts = 1` + + Favor \*Xft fonts over core X11 fonts where possible. + +- `IconPath = /usr/share/icons/hicolor:/usr/share/icons:/usr/share/pixmaps` + + Icon search path (colon separated) + +- `MailCommand = xterm -name mutt -e mutt` + + Command to run on mailbox. + +- `MailClassHint = mutt.XTerm` + + WM\_CLASS to allow runonce for MailCommand. + +- `LockCommand =` + Command to lock display/screensaver. + +- `ClockCommand = xclock -name icewm -title Clock` + + Command to run on clock. + +- `ClockClassHint = icewm.XClock` + + WM\_CLASS to allow runonce for ClockCommand. + +- `RunCommand =` + Command to select and run a program. + +- `OpenCommand =` + Command to run to open a file. + +- `TerminalCommand = xterm` + +Terminal emulator must accept -e option. + +- `LogoutCommand =` + Command to start logout. + +- `LogoutCancelCommand =` + Command to cancel logout. + +- `ShutdownCommand =` + Command to shutdown the system. + +- `RebootCommand =` + Command to reboot the system. + +- `SuspendCommand =` + Command to send the system to standby mode. + +- `CPUStatusCommand =` + Command to run on CPU status. + +- `CPUStatusClassHint = top.XTerm` + + WM\_CLASS to allow runonce for CPUStatusCommand. + +- `CPUStatusCombine = 1` + + Combine all CPUs to one. + +- `NetStatusCommand =` + Command to run on Net status. + +- `NetStatusClassHint = netstat.XTerm` + + WM\_CLASS to allow runonce for NetStatusCommand. + +- `AddressBarCommand =` + Command to run for address bar entries. + +- `XRRPrimaryScreenName =` + screen/output name of the primary screen. + +Quick Switch List +----------------- + +- `QuickSwitch = 1` + + enable Alt+Tab window switcher. + +- `QuickSwitchToMinimized = 1` + + Alt+Tab switches to minimized windows too. + +- `QuickSwitchToHidden = 1` + + Alt+Tab to hidden windows. + +- `QuickSwitchToUrgent = 1` + + Prioritize Alt+Tab to urgent windows. + +- `QuickSwitchToAllWorkspaces = 1` + + Alt+Tab switches to windows on any workspace. + +- `QuickSwitchGroupWorkspaces = 1` + + Alt+Tab: group windows on current workspace. + +- `QuickSwitchAllIcons = 1` + + Show all reachable icons when quick switching. + +- `QuickSwitchTextFirst = 0` + + Show the window title above (all reachable) icons. + +- `QuickSwitchSmallWindow = 0` + + Attempt to create a small QuickSwitch window (1/3 instead of 3/5 of + +- `QuickSwitchMaxWidth = 0` + + Go through all window titles and choose width of the longest one. + +- `QuickSwitchVertical = 1` + + Place the icons and titles vertical instead of horizontal. + +- `QuickSwitchHugeIcon = 0` + + Show the huge (48x48) of the window icon for the active window. + +- `QuickSwitchFillSelection = 0` + + Fill the rectangle highlighting the current icon. + +Edge Workspace Switching +------------------------ + +- `EdgeSwitch = 0` + + Workspace switches by moving mouse to left/right screen edge. + +- `HorizontalEdgeSwitch = 0` + + Workspace switches by moving mouse to left/right screen edge. + +- `VerticalEdgeSwitch = 0` + + Workspace switches by moving mouse to top/bottom screen edge. + +- `ContinuousEdgeSwitch = 1` + + Workspace switches continuously when moving mouse to screen edge. + +Task Bar +-------- + +The following settings can be set to value 1 (enabled) or value 0 (disabled). + +- `ShowTaskBar = 1` + + Task bar is visible. + +- `TaskBarAtTop = 0` + + Task bar is located at top of screen. + +- `TaskBarKeepBelow = 1` + + Keep the task bar below regular windows + +- `TaskBarAutoHide = 0` + + Task bar will auto hide when mouse leaves it. + +- `TaskBarFullscreenAutoShow = 1` + + Auto show task bar when fullscreen window active. + +- `TaskBarShowClock = 1` + + Task bar clock is visible. + +- `TaskBarShowAPMStatus = 0` + + Show battery status monitor on task bar. + +- `TaskBarShowAPMAuto = 1` + + Enable TaskBarShowAPMStatus if a battery is present. + +- `TaskBarShowAPMTime = 1` + + Show battery status on task bar in time-format. + +- `TaskBarShowAPMGraph = 1` + + Show battery status in graph mode. + +- `TaskBarShowMailboxStatus = 1` + + Display status of mailbox (see 'Mailbox' below). + +- `TaskBarMailboxStatusBeepOnNewMail = 0` + + Beep when new mail arrives. + +- `TaskBarMailboxStatusCountMessages = 0` + + Display mail message count as tooltip. + +- `TaskBarShowWorkspaces = 1` + + Show workspace switching buttons on task bar. + +- `TaskBarShowWindows = 1` + + Show windows on the taskbar. + +- `TaskBarShowShowDesktopButton = 1` + + Show 'show desktop' button on taskbar. + If set to 2, it will move the icon to the right side, after the clock. + +- `ShowEllipsis = 0` + + Show Ellipsis in taskbar items and some other locations. This is a visual indicator like "..." to show that a string didn't fit into the visible area. + +- `TaskBarShowTray = 1` + + Show windows in the tray. + +- `TrayShowAllWindows = 1` + + Show windows from all workspaces on tray. + +- `TaskBarEnableSystemTray = 1` + + Enable the system tray in the taskbar. + +- `TaskBarShowTransientWindows = 1` + + Show transient (dialogs, ...) windows on task bar. + +- `TaskBarShowAllWindows = 0` + + Show windows from all workspaces on task bar. + +- `TaskBarShowWindowIcons = 1` + + Show icons of windows on the task bar. + +- `TaskBarShowStartMenu = 1` + + Show button for the start menu on the task bar. + +- `TaskBarShowWindowListMenu = 1` + + Show button for window list menu on taskbar. + +- `TaskBarShowCPUStatus = 1` + + Show CPU status on task bar (Linux & Solaris). + +- `CPUStatusShowRamUsage = 1` + + Show RAM usage in CPU status tool tip. + +- `CPUStatusShowSwapUsage = 1` + + Show swap usage in CPU status tool tip. + +- `CPUStatusShowAcpiTemp = 1` + + Show ACPI temperature in CPU status tool tip. + +- `CPUStatusShowAcpiTempInGraph = 0` + + Show ACPI temperature in CPU graph. + +- `AcpiIgnoreBatteries =` + List of battery names ignore. + +- `CPUStatusShowCpuFreq = 1` + + Show CPU frequency in CPU status tool tip. + +- `NetStatusShowOnlyRunning = 0` + + Show network status only for connected devices, such as an active ethernet link or associated wireless interface. If false, any network interface that has been brought up will be displayed. + +- `TaskBarShowMEMStatus = 1` + + Show memory usage status on task bar (Linux only). + +- `TaskBarShowNetStatus = 1` + + Show network status on task bar (Linux only). + +- `NetworkStatusDevice = "[ew]*"` + List of network devices to be displayed in tray, space separated. Shell wildcard patterns can also be used. + +- `TaskBarShowCollapseButton = 0` + + Show a button to collapse the taskbar. + +- `TaskBarDoubleHeight = 0` + + Double height task bar + +- `TaskBarWorkspacesLeft = 1` + + Place workspace pager on left, not right. + +- `TaskBarWorkspacesTop = 0` + + Place workspace pager on top row when using dual-height taskbar. + +- `PagerShowPreview = 1` + + Show a mini desktop preview on each workspace button. By pressing the middle mouse button the 'window list' is shown. The right button activates the 'window list menu'. By using the scroll wheel over the 'workspace list' one can quickly cycle over all workspaces. + +- `PagerShowWindowIcons = 1` + + Draw window icons inside large enough preview windows on pager (if PagerShowPreview=1). + +- `PagerShowMinimized = 1` + + Draw even minimized windows as unfilled rectangles (if PagerShowPreview=1). + +- `PagerShowBorders = 1` + + Draw border around workspace buttons (if PagerShowPreview=1). + +- `PagerShowNumbers = 1` + + Show number of workspace on workspace button (if PagerShowPreview=1). + +- `TaskBarLaunchOnSingleClick = 1` + + Execute taskbar applet commands (like MailCommand, ClockCommand, ...) on single click. + +- `EnableAddressBar = 1` + + Enable address bar functionality in taskbar. + +- `ShowAddressBar = 1` + + Show address bar in task bar. + +- `TimeFormat = "%X"` + + format for the taskbar clock (time) (see strftime(3) manpage). + +- `TimeFormatAlt = ""` + + Alternate Clock Time format (e.g. for blinking effects). + +- `DateFormat = "%c"` + + format for the taskbar clock tooltip (date+time) (see strftime(3) manpage). + +- `TaskBarCPUSamples = 20` + + Width of CPU Monitor. + +- `TaskBarMEMSamples = 20` + + Width of Memory Monitor. + +- `TaskBarNetSamples = 20` + + Width of Net Monitor. + +- `TaskbarButtonWidthDivisor = 3` + + Default number of tasks in taskbar. + +- `TaskBarWidthPercentage = 100` + + Task bar width as percentage of the screen width. + +- `TaskBarJustify = "left"` + + Taskbar justify left, right or center. + +- `TaskBarApmGraphWidth = 10` + + Width of battery Monitor. + +- `TaskBarGraphHeight = 20` + + Height of taskbar monitoring applets. + +- `XineramaPrimaryScreen = 0` + + Primary screen for xinerama (taskbar, ...). + +Mailbox Monitoring (updated 2018-03-04) +--------------------------------------- + +- `MailCheckDelay = 30` + + Delay between new-mail checks. (seconds). + +- `MailBoxPath = ""` + +This may contain a list of mailbox specifications. Mailboxes are separated by a space. If `TaskBarShowMailboxStatus` is enabled then IceWM will monitor each mailbox for status changes each `MailCheckDelay` seconds. For each mailbox IceWM will show an icon on the taskbar. The icon shows if there is mail, if there is unread mail, or if there is new mail. Hovering the mouse pointer over an icon shows the number of messages in this mailbox and also the number of unread mails. A mailbox can be the path to a file in conventional *mbox* format. If the path points to a directory then *Maildir* format is assumed. Remote mail boxes are specified by an URL using the Common Internet Scheme Syntax (RFC 1738): + + scheme://user:password@server[:port][/path] + +Supported schemes are `pop3`, `pop3s`, `imap`, `imaps` and `file`. The `pop3s` and `imaps` schemes depend on the presence of the `openssl` command for `TLS/SSL` encryption. This is also the case if `port` is either `993` for imap or `995` for pop3. When the scheme is omitted then `file` is assumed. IMAP subfolders can be given by the path component. Reserved characters like *slash*, *at* and *colon* can be specified using escape sequences with a hexadecimal encoding like `%2f` for the slash or `%40` for the at sign. For example: + + file:///var/spool/mail/captnmark + file:///home/captnmark/Maildir/ + pop3://markus:%2f%40%3a@maol.ch/ + pop3s://markus:password@pop.gmail.com/ + imap://mathias@localhost/INBOX.Maillisten.icewm-user + imaps://mathias:password@imap.gmail.com/INBOX + +To help solve network protocol errors for pop3 and imap set the environment variable `ICEWM_MAILCHECK_TRACE`. IceWM will then log communication details for POP3 and IMAP mailboxes. Just set `export ICEWM_MAILCHECK_TRACE=1` before executing icewm, or set this in the `env` configuration file. + +Note that for IceWM to access Gmail you must first configure your Gmail account to enable POP3 or IMAP access. To allow non-Gmail applications like IceWM to use it see the Gmail help site for "Let less secure apps use your account". Also set secure file permissions on your IceWM preferences file and the directory which contains it. It is unwise to store a password on file ever. Consider a wallet extension for IceWM. The following Perl snippet demonstrates how to hex encode a password like `!p@a%s&s~`: + + perl -e 'foreach(split("", $ARGV[0])) { printf "%%%02x", ord($_); }; print "\n";' '!p@a%s&s~' + %21%40%23%24%25%5e%26%2a%7e + +- `NewMailCommand =` + + The command to be run when new mail arrives. It is executed by `/bin/sh -c`. + The following environment variables will be set: + + - `ICEWM_MAILBOX` mailbox index number of `MailBoxPath` starting from 1. + - `ICEWM_COUNT` gives the total number of messages in this mailbox. + - `ICEWM_UNREAD` gives the number of unread messages in this mailbox. + +Menus +----- + +- `AutoReloadMenus = 1` + + Reload menu files automatically if set to 1. + +- `ShowProgramsMenu = 0` + + Show programs submenu. + +- `ShowSettingsMenu = 1` + + Show settings submenu. + +- `ShowFocusModeMenu = 1` + + Show focus mode submenu. + +- `ShowThemesMenu = 1` + + Show themes submenu. + +- `ShowLogoutMenu = 1` + + Show logout menu. + +- `ShowHelp = 1` + + Show the help menu item. + +- `ShowLogoutSubMenu = 1` + + Show logout submenu. + +- `ShowAbout = 1` + + Show the about menu item. + +- `ShowRun = 1` + + Show the run menu item. + +- `ShowWindowList = 1` + + Show the window menu item. + +- `MenuMaximalWidth = 0` + + Maximal width of popup menus, 2/3 of the screen's width if set to zero. + +- `NestedThemeMenuMinNumber = 25` + + Minimal number of themes after which the Themes menu becomes nested (0=disabled). + +Timings +------- + +- `DelayFuzziness = 10` + + Percentage of delay/timeout fuzziness to allow for merging of timer timeouts. + +- `ClickMotionDistance = 5` + + Movement before click is interpreted as drag. + +- `ClickMotionDelay = 200` + + Delay before click gets interpreted as drag. + +- `MultiClickTime = 400` + + Time (ms) to recognize for double click. + +- `MenuActivateDelay = 40` + + Delay before activating menu items. + +- `SubmenuMenuActivateDelay = 300` + + Delay before activating menu submenus. + +- `ToolTipDelay = 5000` + + Time before showing the tooltip. + +- `ToolTipTime = 60000` + + Time before tooltip window is hidden (0 means never). + +- `AutoHideDelay = 300` + + Time to auto hide taskbar (must enable first with TaskBarAutoHide). + +- `AutoShowDelay = 500` + + Delay before task bar is shown. + +- `AutoRaiseDelay = 400` + + Time to auto raise (must enable first with AutoRaise). + +- `PointerFocusDelay = 200` + + Delay for pointer focus switching. + +- `EdgeSwitchDelay = 600` + + Screen edge workspace switching delay. + +- `ScrollBarStartDelay = 500` + + Initial scroll bar autoscroll delay + +- `ScrollBarDelay = 30` + + Scroll bar autoscroll delay + +- `AutoScrollStartDelay = 500` + + Auto scroll start delay + +- `AutoScrollDelay = 60` + + Auto scroll delay + +- `WorkspaceStatusTime = 2500` + + Time before workspace status window is hidden. + +- `TaskBarCPUDelay = 500` + + Delay between CPU Monitor samples in ms. + +- `TaskBarMEMDelay = 500` + + Delay between Memory Monitor samples in ms. + +- `TaskBarNetDelay = 500` + + Delay between Net Monitor samples in ms. + +- `FocusRequestFlashTime = 0` + + Number of seconds the taskbar app will blink when requesting focus (0 = forever). + +- `FocusRequestFlashInterval = 250` + + Taskbar blink interval (ms) when requesting focus (0 = blinking disabled). + +- `BatteryPollingPeriod = 10` + + Delay between power status updates (seconds). + +Buttons and Keys +---------------- + +- `UseRootButtons = 255` + + Bitmask of root window button click to use in window manager. + +- `ButtonRaiseMask = 1` + + Bitmask of buttons that raise the window when pressed. + +- `DesktopWinMenuButton = 0` + + Desktop mouse-button click to show the window list menu. + +- `DesktopWinListButton = 2` + + Desktop mouse-button click to show the window list. + +- `DesktopMenuButton = 3` + + Desktop mouse-button click to show the root menu. + +- `TitleBarMaximizeButton = 1` + + TitleBar mouse-button double click to maximize the window. + +- `TitleBarRollupButton = 2` + + TitleBar mouse-button double click to rollup the window. + +- `RolloverButtonsSupported = 0` + + Does it support the 'O' title bar button images (for mouse rollover) + +Workspaces +---------- + +- WorkspaceNames + + List of workspace names, for example: + + WorkspaceNames=" 1 ", " 2 ", " 3 ", " 4 " + +Paths +----- + +- LibPath + + Path to the icewm/lib directory. + +- IconPath + + Path to the icon directory. Multiple paths can be given using the colon as a separator. + +Programs +-------- + +- ClockCommand + + program to run when the clock is double clicked. + +- MailCommand + + program to run when mailbox icon is double clicked. + +- LockCommand + + program to run to lock the screen. + +- RunCommand + + program to run when **Run** is selected from the start menu. + +Window Menus +------------ + +WinMenuItems +Items to show in the window menus, possible values are: + +- `a=rAise` + +- `c=Close` + +- `f=Fullscreen` + +- `h=Hide` + +- `i=trayIcon` + +- `k=Kill` + +- `l=Lower` + +- `m=Move` + +- `n=miNimize` + +- `r=Restore` + +- `s=Size` + +- `t=moveTo` + +- `u=rollUp` + +- `w=WindowsList` + +- `x=maXimize` + +- `y=laYer` + + Examples: + + WinMenuItems=rmsnxfhualyticw #Default menu + WinMenuItems=rmsnxfhualytickw #Menu with all possible options + WinMenuItems=rmsnxc #MS-Windows menu + +Theme Settings +============== + +This section shows settings that can be set in theme files. They can also be set in `preferences` file but themes will override the values set there. To override the theme values the settings should be set in `prefoverride` file. Default values are shown following the equal sign. + +- `ThemeAuthor =` + + Theme author, e-mail address, credits. + +- `ThemeDescription =` + + Description of the theme, credits. + +- `Gradients =` + + List of gradient pixmaps in the current theme. + +Borders +------- + +The following settings can be set to a numeric value. + +- `BorderSizeX = 6` + + Left/right border width. + +- `BorderSizeY = 6` + + Top/bottom border height. + +- `DlgBorderSizeX = 2` + + Left/right border width of non-resizable windows. + +- `DlgBorderSizeY = 2` + + Top/bottom border height of non-resizable windows. + +- `CornerSizeX = 24` + + Width of the window corner. + +- `CornerSizeY = 24` + + Height of the window corner. + +- `TitleBarHeight = 20` + + Height of the title bar. + +- `TitleBarJustify = 0` + + Justification of the window title. + +- `TitleBarHorzOffset = 0` + + Horizontal offset for the window title text. + +- `TitleBarVertOffset = 0` + + Vertical offset for the window title text. + +- `TitleBarCentered = 0` + + Draw window title centered (obsoleted by TitleBarJustify) + +- `TitleBarJoinLeft = 0` + + Join title\*S and title\*T + +- `TitleBarJoinRight = 0` + + Join title\*T and title\*B + +- `ScrollBarX = 16` + + Scrollbar width. + +- `ScrollBarY = 16` + + Scrollbar (button) height. + +- `MenuIconSize = 16` + + Menu icon size. + +- `SmallIconSize = 16` + + Dimension of the small icons. + +- `LargeIconSize = 32` + + Dimension of the large icons. + +- `HugeIconSize = 48` + + Dimension of the large icons. + +- `QuickSwitchHorzMargin = 3` + + Horizontal margin of the quickswitch window. + +- `QuickSwitchVertMargin = 3` + + Vertical margin of the quickswitch window. + +- `QuickSwitchIconMargin = 4` + + Vertical margin in the quickswitch window. + +- `QuickSwitchIconBorder = 2` + + Distance between the active icon and it's border. + +- `QuickSwitchSeparatorSize = 6` + + Height of the separator between (all reachable) icons and text, 0 to avoid it. + +- `ShowMenuButtonIcon = 1` + + Show application icon over menu button. + +- `TitleButtonsLeft = "s"` + + Titlebar buttons from left to right (x=close, m=max, i=min, h=hide, r=rollup, s=sysmenu, d=depth). + +- `TitleButtonsRight = "xmir"` + + Titlebar buttons from right to left (x=close, m=max, i=min, h=hide, r=rollup, s=sysmenu, d=depth). + +- `TitleButtonsSupported = "xmis"` + + Titlebar buttons supported by theme (x,m,i,r,h,s,d). + +Fonts +----- + +The following settings can be set to a string value. + +- `TitleFontName = "-*-sans-medium-r-*-*-*-120-*-*-*-*-*-*"` + + Name of the title bar font. + +- `MenuFontName = "-*-sans-bold-r-*-*-*-100-*-*-*-*-*-*"` + + Name of the menu font. + +- `StatusFontName = "-*-monospace-bold-r-*-*-*-120-*-*-*-*-*-*"` + + Name of the status display font. + +- `QuickSwitchFontName = "-*-monospace-bold-r-*-*-*-120-*-*-*-*-*-*"` + + Name of the font for Alt+Tab switcher window. + +- `NormalButtonFontName = "-*-sans-medium-r-*-*-*-120-*-*-*-*-*-*"` + + Name of the normal button font. + +- `ActiveButtonFontName = "-*-sans-bold-r-*-*-*-120-*-*-*-*-*-*"` + + Name of the active button font. + +- `NormalTaskBarFontName = "-*-sans-medium-r-*-*-*-120-*-*-*-*-*-*"` + + Name of the normal task bar item font. + +- `ActiveTaskBarFontName = "-*-sans-bold-r-*-*-*-120-*-*-*-*-*-*"` + + Name of the active task bar item font. + +- `ToolButtonFontName = "-*-sans-medium-r-*-*-*-120-*-*-*-*-*-*"` + + Name of the tool button font (fallback: NormalButtonFontName). + +- `NormalWorkspaceFontName = "-*-sans-medium-r-*-*-*-120-*-*-*-*-*-*"` + + Name of the normal workspace button font (fallback: NormalButtonFontName). + +- `ActiveWorkspaceFontName = "-*-sans-medium-r-*-*-*-120-*-*-*-*-*-*"` + + Name of the active workspace button font (fallback: ActiveButtonFontName). + +- `MinimizedWindowFontName = "-*-sans-medium-r-*-*-*-120-*-*-*-*-*-*"` + + Name of the mini-window font. + +- `ListBoxFontName = "-*-sans-medium-r-*-*-*-120-*-*-*-*-*-*"` + + Name of the window list font. + +- `ToolTipFontName = "-*-sans-medium-r-*-*-*-120-*-*-*-*-*-*"` + + Name of the tool tip font. + +- `ClockFontName = "-*-monospace-medium-r-*-*-*-140-*-*-*-*-*-*"` + + Name of the task bar clock font. + +- `TempFontName = "-*-monospace-medium-r-*-*-*-140-*-*-*-*-*-*"` + + Name of the task bar temperature font. + +- `ApmFontName = "-*-monospace-medium-r-*-*-*-140-*-*-*-*-*-*"` + + Name of the task bar battery font. + +- `InputFontName = "-*-monospace-medium-r-*-*-*-140-*-*-*-*-*-*"` + + Name of the input field font. + +- `LabelFontName = "-*-sans-medium-r-*-*-*-140-*-*-*-*-*-*"` + + Name of the label font. + +When IceWM is configured with `--enable-xfreetype`, only the settings with "Xft" suffix will be used. They specifiy the font name in fontconfig format: + + MenuFontNameXft="sans-serif:size=12:bold" + +- `TitleFontNameXft = "sans-serif:size=12"` + + Name of the title bar font. + +- `MenuFontNameXft = "sans-serif:size=10:bold"` + + Name of the menu font. + +- `StatusFontNameXft = "monospace:size=12:bold"` + + Name of the status display font. + +- `QuickSwitchFontNameXft = "monospace:size=12:bold"` + + Name of the font for Alt+Tab switcher window. + +- `NormalButtonFontNameXft = "sans-serif:size=12"` + + Name of the normal button font. + +- `ActiveButtonFontNameXft = "sans-serif:size=12:bold"` + + Name of the active button font. + +- `NormalTaskBarFontNameXft = "sans-serif:size=12"` + + Name of the normal task bar item font. + +- `ActiveTaskBarFontNameXft = "sans-serif:size=12:bold"` + + Name of the active task bar item font. + +- `ToolButtonFontNameXft = "sans-serif:size=12"` + + Name of the tool button font (fallback: NormalButtonFontNameXft). + +- `NormalWorkspaceFontNameXft = "sans-serif:size=12"` + + Name of the normal workspace button font (fallback: NormalButtonFontNameXft). + +- `ActiveWorkspaceFontNameXft = "sans-serif:size=12"` + + Name of the active workspace button font (fallback: ActiveButtonFontNameXft). + +- `MinimizedWindowFontNameXft = "sans-serif:size=12"` + + Name of the mini-window font. + +- `ListBoxFontNameXft = "sans-serif:size=12"` + + Name of the window list font. + +- `ToolTipFontNameXft = "sans-serif:size=12"` + + Name of the tool tip font. + +- `ClockFontNameXft = "monospace:size=12"` + + Name of the task bar clock font. + +- `TempFontNameXft = "monospace:size=12"` + + Name of the task bar temperature font. + +- `ApmFontNameXft = "monospace:size=12"` + + Name of the task bar battery font. + +- `InputFontNameXft = "monospace:size=12"` + + Name of the input field font. + +- `LabelFontNameXft = "sans-serif:size=12"` + + Name of the label font. + +Colors +------ + +- `ColorDialog = "rgb:C0/C0/C0"` + + Background of dialog windows. + +- `ColorNormalBorder = "rgb:C0/C0/C0"` + + Border of inactive windows. + +- `ColorActiveBorder = "rgb:C0/C0/C0"` + + Border of active windows. + +- `ColorNormalButton = "rgb:C0/C0/C0"` + + Background of regular buttons. + +- `ColorNormalButtonText = "rgb:00/00/00"` + + Textcolor of regular buttons. + +- `ColorActiveButton = "rgb:E0/E0/E0"` + + Background of pressed buttons. + +- `ColorActiveButtonText = "rgb:00/00/00"` + + Textcolor of pressed buttons. + +- `ColorNormalTitleButton = "rgb:C0/C0/C0"` + + Background of titlebar buttons. + +- `ColorNormalTitleButtonText = "rgb:00/00/00"` + + Textcolor of titlebar buttons. + +- `ColorToolButton = ""` + + Background of toolbar buttons, ColorNormalButton is used if empty. + +- `ColorToolButtonText = ""` + + Textcolor of toolbar buttons, ColorNormalButtonText is used if empty. + +- `ColorNormalWorkspaceButton = ""` + + Background of workspace buttons, ColorNormalButton is used if empty. + +- `ColorNormalWorkspaceButtonText = ""` + + Textcolor of workspace buttons, ColorNormalButtonText is used if empty. + +- `ColorActiveWorkspaceButton = ""` + + Background of the active workspace button, ColorActiveButton is used if empty. + +- `ColorActiveWorkspaceButtonText = ""` + + Textcolor of the active workspace button, ColorActiveButtonText is used if empty. + +- `ColorNormalTitleBar = "rgb:80/80/80"` + + Background of the titlebar of regular windows. + +- `ColorNormalTitleBarText = "rgb:00/00/00"` + + Textcolor of the titlebar of regular windows. + +- `ColorNormalTitleBarShadow = ""` + + Textshadow of the titlebar of regular windows. + +- `ColorActiveTitleBar = "rgb:00/00/A0"` + + Background of the titlebar of active windows. + +- `ColorActiveTitleBarText = "rgb:FF/FF/FF"` + + Textcolor of the titlebar of active windows. + +- `ColorActiveTitleBarShadow = ""` + + Textshadow of the titlebar of active windows. + +- `ColorNormalMinimizedWindow = "rgb:C0/C0/C0"` + + Background for mini icons of regular windows. + +- `ColorNormalMinimizedWindowText = "rgb:00/00/00"` + + Textcolor for mini icons of regular windows. + +- `ColorActiveMinimizedWindow = "rgb:E0/E0/E0"` + + Background for mini icons of active windows. + +- `ColorActiveMinimizedWindowText = "rgb:00/00/00"` + + Textcolor for mini icons of active windows. + +- `ColorNormalMenu = "rgb:C0/C0/C0"` + + Background of pop-up menus. + +- `ColorNormalMenuItemText = "rgb:00/00/00"` + + Textcolor of regular menu items. + +- `ColorActiveMenuItem = "rgb:A0/A0/A0"` + + Background of selected menu item, leave empty to force transparency. + +- `ColorActiveMenuItemText = "rgb:00/00/00"` + + Textcolor of selected menu items. + +- `ColorDisabledMenuItemText = "rgb:80/80/80"` + + Textcolor of disabled menu items. + +- `ColorDisabledMenuItemShadow = ""` + + Shadow of regular menu items. + +- `ColorMoveSizeStatus = "rgb:C0/C0/C0"` + + Background of move/resize status window. + +- `ColorMoveSizeStatusText = "rgb:00/00/00"` + + Textcolor of move/resize status window. + +- `ColorQuickSwitch = "rgb:C0/C0/C0"` + + Background of the quick switch window. + +- `ColorQuickSwitchText = "rgb:00/00/00"` + + Textcolor in the quick switch window. + +- `ColorQuickSwitchActive = ""` + + Rectangle arround the active icon in the quick switch window. + +- `ColorDefaultTaskBar = "rgb:C0/C0/C0"` + + Background of the taskbar. + +- `ColorNormalTaskBarApp = "rgb:C0/C0/C0"` + + Background for task buttons of regular windows. + +- `ColorNormalTaskBarAppText = "rgb:00/00/00"` + + Textcolor for task buttons of regular windows. + +- `ColorActiveTaskBarApp = "rgb:E0/E0/E0"` + + Background for task buttons of the active window. + +- `ColorActiveTaskBarAppText = "rgb:00/00/00"` + + Textcolor for task buttons of the active window. + +- `ColorMinimizedTaskBarApp = "rgb:A0/A0/A0"` + + Background for task buttons of minimized windows. + +- `ColorMinimizedTaskBarAppText = "rgb:00/00/00"` + + Textcolor for task buttons of minimized windows. + +- `ColorInvisibleTaskBarApp = "rgb:80/80/80"` + + Background for task buttons of windows on other workspaces. + +- `ColorInvisibleTaskBarAppText = "rgb:00/00/00"` + + Textcolor for task buttons of windows on other workspaces. + +- `ColorScrollBar = "rgb:A0/A0/A0"` + + Scrollbar background (sliding area). + +- `ColorScrollBarSlider = "rgb:C0/C0/C0"` + + Background of the slider button in scrollbars. + +- `ColorScrollBarButton = "rgb:C0/C0/C0"` + + Background of the arrow buttons in scrollbars. + +- `ColorScrollBarArrow = "rgb:C0/C0/C0"` + + Background of the arrow buttons in scrollbars (obsolete). + +- `ColorScrollBarButtonArrow = "rgb:00/00/00"` + + Color of active arrows on scrollbar buttons. + +- `ColorScrollBarInactiveArrow = "rgb:80/80/80"` + + Color of inactive arrows on scrollbar buttons. + +- `ColorListBox = "rgb:C0/C0/C0"` + + Background of listboxes. + +- `ColorListBoxText = "rgb:00/00/00"` + + Textcolor in listboxes. + +- `ColorListBoxSelection = "rgb:80/80/80"` + + Background of selected listbox items. + +- `ColorListBoxSelectionText = "rgb:00/00/00"` + + Textcolor of selected listbox items. + +- `ColorToolTip = "rgb:E0/E0/00"` + + Background of tooltips. + +- `ColorToolTipText = "rgb:00/00/00"` + + Textcolor of tooltips. + +- `ColorLabel = "rgb:C0/C0/C0"` + + Background of labels, leave empty to force transparency. + +- `ColorLabelText = "rgb:00/00/00"` + + Textcolor of labels. + +- `ColorInput = "rgb:FF/FF/FF"` + + Background of text entry fields (e.g. the addressbar). + +- `ColorInputText = "rgb:00/00/00"` + + Textcolor of text entry fields (e.g. the addressbar). + +- `ColorInputSelection = "rgb:80/80/80"` + + Background of selected text in an entry field. + +- `ColorInputSelectionText = "rgb:00/00/00"` + + Selected text in an entry field. + +- `ColorClock = "rgb:00/00/00"` + + Background of non-LCD clock, leave empty to force transparency. + +- `ColorClockText = "rgb:00/FF/00"` + + Background of non-LCD monitor. + +- `ColorApm = "rgb:00/00/00"` + + Background of battery monitor, leave empty to force transparency. + +- `ColorApmText = "rgb:00/FF/00"` + + Textcolor of battery monitor. + +- `ColorApmBattary = "rgb:FF/FF/00"` + + Color of battery monitor when discharging. + +- `ColorApmLine = "rgb:00/FF/00"` + + Color of battery monitor when charging. + +- `ColorApmGraphBg = "rgb:00/00/00"` + + Background color for graph mode. + +- `ColorCPUStatusUser = "rgb:00/FF/00"` + + User load on the CPU monitor. + +- `ColorCPUStatusSystem = "rgb:FF/00/00"` + + System load on the CPU monitor. + +- `ColorCPUStatusInterrupts = "rgb:FF/FF/00"` + + Interrupts on the CPU monitor. + +- `ColorCPUStatusIoWait = "rgb:60/00/60"` + + IO Wait on the CPU monitor. + +- `ColorCPUStatusSoftIrq = "rgb:00/FF/FF"` + + Soft Interrupts on the CPU monitor. + +- `ColorCPUStatusNice = "rgb:00/00/FF"` + + Nice load on the CPU monitor. + +- `ColorCPUStatusIdle = "rgb:00/00/00"` + + Idle (non) load on the CPU monitor, leave empty to force transparency. + +- `ColorCPUStatusSteal = "rgb:FF/8A/91"` + + Involuntary Wait on the CPU monitor. + +- `ColorCPUStatusTemp = "rgb:60/60/C0"` + + Temperature of the CPU. + +- `ColorMEMStatusUser = "rgb:40/40/80"` + + User program usage in the memory monitor. + +- `ColorMEMStatusBuffers = "rgb:60/60/C0"` + + OS buffers usage in the memory monitor. + +- `ColorMEMStatusCached = "rgb:80/80/FF"` + + OS cached usage in the memory monitor. + +- `ColorMEMStatusFree = "rgb:00/00/00"` + + Free memory in the memory monitor. + +- `ColorNetSend = "rgb:FF/FF/00"` + + Outgoing load on the network monitor. + +- `ColorNetReceive = "rgb:FF/00/FF"` + + Incoming load on the network monitor. + +- `ColorNetIdle = "rgb:00/00/00"` + + Idle (non) load on the network monitor, leave empty to force transparency. + +- `ColorApmBattery = rgb:FF/FF/00` + + Color of battery monitor in battery mode. + +Desktop Background +------------------ + +The following options are used by `icewmbg`: + +- `DesktopBackgroundCenter = 0` + + Display desktop background centered and not tiled. (set to 0 or 1). + +- `DesktopBackgroundScaled = 0` + + Resize desktop background to full screen. + +- `DesktopBackgroundColor = ""` + + Color(s) of the desktop background. + +- `DesktopBackgroundImage = ""` + + Image(s) for desktop background. If you want IceWM to ignore the desktop background image / color set both DesktopBackgroundColor and DesktopBackgroundImage to an empty value (""). + +- `SupportSemitransparency = 1` + + Support for semitransparent terminals like Eterm or gnome-terminal. + +- `DesktopTransparencyColor = ""` + + Color(s) to announce for semitransparent windows. + +- `DesktopTransparencyImage = ""` + + Image(s) to announce for semitransparent windows. + +- `DesktopBackgroundMultihead = 0` + + Paint the background image over all multihead monitors combined. + +Task Bar Style +-------------- + +- `TaskBarClockLeds = 1` + + Display clock using LCD style pixmaps. + +Menus and Toolbar (updated 2018-05-06) +====================================== + +menu +---- + +Within the `menu` configuration file you can configure which programs are to appear in the root/start menu. + +Submenus can be created with: + + menu "title" icon_name { + # contained items + } + separator + menufile "title" icon_name filename + menuprog "title" icon_name program arguments + menuprogreload "title" icon_name timeout program arguments + include filename + includeprog program arguments + +Menus can be populated with submenus and with program entries as explained below for the `program` configuration file. Comments start with a \#-sign. + +The `menufile` directive creates a submenu with a title and an icon, while `menuprog` and `menuprogreload` create a submenu with entries from the output of `program arguments` where the timeout of `menuprogreload` says to reload the submenu after the timeout expires. The `include` statement loads more configuration from the given filename, while `includeprog` runs `program arguments` to parse the output. + +toolbar +------- + +The `toolbar` configuration file is used to put programs as buttons on the taskbar. It uses the same syntax as the `menu` file. + +programs +-------- + +Usually automatically generated menu configuration file of installed programs. The `programs` file should be automatically generated by `wmconfig` (Redhat), `menu` (Debian), or `icewm-menu-fdo`. + +Programs can be added using the following syntax: + + prog "title" icon_name program_executable options + +Restarting another window manager can be done using the restart program: + + restart "title" icon_name program_executable options + +icon\_name can be `-` if icon is not wanted, or `!` if the icon name shall be guessed by checking the command (i.e. the real executable file, following symlinks as needed). + +The "runonce" keyword allows to launch an application only when no window has the WM\_CLASS hint specified. Otherwise the first window having this class hint is mapped and raised. Syntax: + + runonce "title" icon_name "res_name.res_class" program_executable options + runonce "title" icon_name "res_name" program_executable options + runonce "title" icon_name ".res_class" program_executable options + +The class hint of an application window can be figured out by running + + xprop WM_CLASS + +Submenus can be added using the same keywords as the `menu` configuration file. + +Only double quotes are interpreted by IceWM. IceWM doesn't run the shell automatically, so you may have to do that. + +Hot Keys +======== + +IceWM allows launching of arbitrary programs with any key combination. This is configured in the `keys` file. The syntax of this file is like: + +**key** "key combination" program options... + +For example: + + key "Alt+Ctrl+t" xterm -rv + key "Ctrl+Shift+r" icewm --restart + runonce "Alt+F12" "res_name.res_class" program_executable options + +Window Options (updated 2018-03-04) +=================================== + +The **winoptions** file is used to configure settings for individual application windows. Each line in this file must have one of the following formats: + +- **window\_name.window\_class.option: argument** + +- **window\_name.window\_role.option: argument** + +- **window\_class.option: argument** + +- **window\_name.option: argument** + +- **window\_role.option: argument** + +- **.option: argument** + +The last format sets a default option value for all windows. Each window on the desktop should have **name** and **class** resources associated with it. Some applications also have a **window role** resource. They can be determined using the `xprop` utility. When used on a toplevel window, `xprop | grep -e CLASS -e ROLE` should output a line like this: + + WM_CLASS = "name", "Class" + +and may also display a line like this: + + WM_WINDOW_ROLE = "window role" + +It's possible that an application's **name** and/or **class** contains a dot character (**.**), which is also used by IceWM to separate **name**, **class** and **role** values. In this case precede the dot with the backslash character. In the following example, we suppose an application's window has `the.name` as its **name** value and `The.Class` as its **class** value and for this combination we set **option** to **argument**. + + the\.name.The\.Class.option: argument + +Options that can be set per window are as follows: + +- **icon** + + The name of the icon. + +- **workspace** + + Default workspace for window (number, counting from 0) + +- **layer** + + The default stacking layer for the window. Layer can be one of the following seven strings: + + - *Desktop* + Desktop window. There should be only one window in this layer. + + - *Below* + Below default layer. + + - *Normal* + Default layer for the windows. + + - *OnTop* + Above the default. + + - *Dock* + Layer for windows docked to the edge of the screen. + + - *AboveDock* + Layer for the windows above the dock. + + - *Menu* + Layer for the windows above the dock. + + You can also use a number from 0 to 15. + +- **geometry** + + The default geometry for the window. This geometry should be specified in the usual X11-geometry-syntax, formal notation: + + [=][{xX}][{+-}{+-}] + +- **tray** + + The default tray option for the window. This affects both the tray and the task pane. Tray can be one of the following strings: + + - *Ignore* + Don't add an icon to the tray pane. + + - *Minimized* + Add an icon the the tray. Remove the task pane button when minimized. + + - *Exclusive* + Add an icon the the tray. Never create a task pane button. + +- **order: 0** + + The sorting order of task buttons and tray icons. The default value is zero. Increasing positive values go farther right, while decreasing negative values go farther left. The order option applies to the task pane, the tray pane and the system tray. + +- **allWorkspaces: 0** + + If set to 1, window will be visible on all workspaces. + +- **appTakesFocus: 0** + + if set to 1, IceWM will assume the window supports the WM\_TAKE\_FOCUS protocol even if the window did not advertise that it does. + +- **dBorder: 1** + + If set to 0, window will not have a border. + +- **dClose: 1** + + If set to 0, window will not have a close button. + +- **dDepth: 1** + + If set to 0, window will not have a depth button. + +- **dHide: 1** + + If set to 0, window will not have a hide button. + +- **dMaximize: 1** + + If set to 0, window will not have a maximize button. + +- **dMinimize: 1** + + If set to 0, window will not have a minimize button. + +- **dResize: 1** + + If set to 0, window will not have a resize border. + +- **dRollup: 1** + + If set to 0, window will not have a shade button. + +- **dSysMenu: 1** + + If set to 0, window will not have a system menu. + +- **dTitleBar: 1** + + If set to 0, window will not have a title bar. + +- **doNotCover: 0** + + if set to 1, this window will limit the workspace available for regular applications. At the moment the window has to be sticky to make it work. + +- **doNotFocus: 0** + + if set to 1, IceWM will never give focus to the window. + +- **fClose: 1** + + If set to 0, window will not be closable. + +- **fHide: 1** + + If set to 0, window will not be hidable. + +- **fMaximize: 1** + + If set to 0, window will not be maximizable. + +- **fMinimize: 1** + + If set to 0, window will not be minimizable. + +- **fMove: 1** + + If set to 0, window will not be movable. + +- **fResize: 1** + + If set to 0, window will not be resizable. + +- **fRollup: 1** + + If set to 0, window will not be shadable. + +- **forcedClose: 0** + + if set to 1 and the application had not registered WM\_DELETE\_WINDOW, a close confirmation dialog won't be offered upon closing the window. + +- **fullKeys: 0** + + If set to 1, the window manager leave more keys (Alt+F?) to the application. + +- **ignoreNoFocusHint: 0** + + if set to 1, IceWM will focus even if the window does not handle input. + +- **ignorePagerPreview: 0** + + If set to 1, window will not appear in pager preview. + +- **ignorePositionHint: 0** + + if set to 1, IceWM will ignore the position hint. + +- **ignoreQuickSwitch: 0** + + If set to 1, window will not be accessible using QuickSwitch feature (Alt+Tab). + +- **ignoreTaskBar: 0** + + If set to 1, window will not appear on the task bar. + +- **ignoreUrgentHint: 0** + + if set to 1, IceWM will ignore it if the window sets the urgent hint. + +- **ignoreWinList: 0** + + If set to 1, window will not appear in the window list. + +- **noFocusOnAppRaise: 0** + + if set to 1, window will not automatically get focus as application raises it. + +- **noFocusOnMap: 0** + + if set to 1, IceWM will not assign focus when the window is mapped for the first time. + +- **noIgnoreTaskBar: 0** + + if set to 1, will show the window on the taskbar. + +- **startFullscreen: 0** + + if set to 1, window will cover the entire screen. + +- **startMaximized: 0** + + if set to 1, window starts maximized. + +- **startMaximizedHorz: 0** + + if set to 1, window starts maximized horizontally. + +- **startMaximizedVert: 0** + + if set to 1, window starts maximized vertically. + +- **startMinimized: 0** + + if set to 1, window starts minimized. + +Icon handling +============= + +Generic +------- + +The window manager expects to find two XPM files for each icon specified in the configuration files as *ICON*. They should be named like this: + +- **ICON\_16x16.xpm** + + A small 16x16 pixmap. + +- **ICON\_32x32.xpm** + + A normal 32x32 pixmap. + +- **ICON\_48x48.xpm** + + A large 48x48 pixmap. + +Other pixmap sizes like 20x20, 24x24, 40x40, 48x48, 64x64 might be used in the future. Perhaps we need a file format that can contain more than one image (with different sizes and color depths) like Windows'95 and OS/2 .ICO files. + +It would be nice to have a feature from OS/2 that varies the icon size with screen resolution (16x16 and 32x32 icons are quite small on 4000x4000 screens ;-) + +GDK-Pixbuf +---------- + +When icewm was configured with the `--enable-gdk-pixbuf` option all of GdkPixbuf's image formats are supported. Use them by specifying the full filename or an absolute path: + +- **ICON.bmp** + + A PPM icon in your IconPath. + +- **/usr/share/pixmap/ICON.png** + + An PNG image with absolute location. + +Mouse cursors +============= + +IceWM scans the theme and configuration directories for a subdirectory called *cursors* containing monochrome but transparent XPM files. To change the mouse cursor you have to use this filenames: + +- **left.xbm** + + Default cursor (usually pointer to the left). + +- **right.xbm** + + Menu cursor (usually pointer to the right). + +- **move.xbm** + + Window movement cursor. + +- **sizeTL.xbm** + + Cursor when you resize the window by top left. + +- **sizeT.xbm** + + Cursor when you resize the window by top. + +- **sizeTR.xbm** + + Cursor when you resize the window by top right. + +- **sizeL.xbm** + + Cursor when you resize the window by left. + +- **sizeR.xbm** + + Cursor when you resize the window by right. + +- **sizeBL.xbm** + + Cursor when you resize the window by bottom left. + +- **sizeB.xbm** + + Cursor when you resize the window by bottom. + +- **sizeBR.xbm** + + Cursor when you resize the window by bottom right. + +Themes +====== + +Themes are used to configure the way the window manager looks. Things like fonts, colors, border sizes, button pixmaps can be configured. Put together they form a theme. + +Theme files are searched in the `themes` subdirectories. + +These directories contain other directories that contain related theme files and their .xpm files. Each theme file specifies fonts, colors, border sizes, ... + +The theme to use is specified in `~/.icewm/theme` file: + +- `Theme = "nice/default.theme"` + + Name of the theme to use. Both the directory and theme file name must be specified. + +If the theme directory contains a file named *fonts.dir* created by mkfontdir the theme directory is inserted into the X servers font search path. + +[www.box-look.org](https://themes.ice-wm.org) has a very large number of themes which were created by users of IceWM. + +Command Line Options +==================== + +`icewm` supports the following options: + + -d, --display=NAME + NAME of the X server to use. + + --client-id=ID + Client id to use when contacting session manager. + + --sync + Synchronize X11 commands. + + -c, --config=FILE + Load preferences from FILE. + + -t, --theme=FILE + Load theme from FILE. + + --postpreferences + Print preferences after all processing. + + -V, --version + Prints version information and exits. + + -h, --help + Prints this usage screen and exits. + + --replace + Replace an existing window manager. + + -r, --restart + Tell the running icewm to restart itself. + + --configured + Print the compile time configuration. + + --directories + Print the configuration directories. + + -l, --list-themes + Print a list of all available themes. + +The restart option can be used to reload the IceWM configuration after modifications. It is the preferred way to restart IceWM from the command line or in scripts. To load a different theme from the command line, combine this with the `--theme=NAME` option like: + + icewm -r -t CrystalBlue + +The theme name will then be saved to the 'theme' configuration file, before restarting IceWM. + +Glossary +======== + +Resource Path +A set of directories used by IceWM to locate resources like configuration files, themes, icons. See section **The Resource Path**. + +Authors +======= + +Authors having contributed to this document include Gallium, Macek, Hasselmann, Gijsbers, Bidulock and Bloch. + +See Also +======== + +[icehelp(1)](https://ice-wm.org/man/icehelp), +[icesh(1)](https://ice-wm.org/man/icesh), +[icesound(1)](https://ice-wm.org/man/icesound), +[icewm-env(5)](https://ice-wm.org/man/icewm-env), +[icewm-focus_mode(5)](https://ice-wm.org/man/icewm-focus_mode.html), +[icewm-keys(5)](https://ice-wm.org/man/icewm-keys), +[icewm-menu-fdo(1)](https://ice-wm.org/man/icewm-menu-fdo), +[icewm-menu(5)](https://ice-wm.org/man/icewm-menu), +[icewm-preferences(5)](https://ice-wm.org/man/icewm-preferences), +[icewm-prefoverride(5)](https://ice-wm.org/man/icewm-prefoverride), +[icewm-programs(5)](https://ice-wm.org/man/icewm-programs), +[icewm-session(1)](https://ice-wm.org/man/icewm-session), +[icewm-set-gnomewm(1)](https://ice-wm.org/man/icewm-set-gnomewm), +[icewm-shutdown(5)](https://ice-wm.org/man/icewm-shutdown), +[icewm-startup(5)](https://ice-wm.org/man/icewm-startup), +[icewm-theme(5)](https://ice-wm.org/man/icewm-theme), +[icewm-toolbar(5)](https://ice-wm.org/man/icewm-toolbar), +[icewm-winoptions(5)](https://ice-wm.org/man/icewm-winoptions), +[icewm(1)](https://ice-wm.org/man/icewm), +[icewmbg(1)](https://ice-wm.org/man/icewmbg), +[icewmhint(1)](https://ice-wm.org/man/icewmhint), +[icewmtray(1)](https://ice-wm.org/man/icewmtray). + diff -Nru icewm-2.9.8/doc/Makefile.am icewm-2.9.9/doc/Makefile.am --- icewm-2.9.8/doc/Makefile.am 2022-07-18 20:55:37.000000000 +0000 +++ icewm-2.9.9/doc/Makefile.am 2022-08-01 21:49:30.000000000 +0000 @@ -1,7 +1,8 @@ EXTRA_DIST = \ $(html_documentation) \ - icewm.adoc + icewm.adoc \ + icewm.md doc_DATA = \ $(html_documentation) @@ -9,8 +10,10 @@ html_documentation = \ icewm.html -$(html_documentation): %.html: %.adoc - $(AM_V_GEN)$(ASCIIDOC) $(ASCIIDOC_BACKEND) -o $@ $< +$(html_documentation): %.html: %.md %.adoc + $(AM_V_GEN)if test -x "`which $(MARKDOWN) 2>/dev/null`"; then \ + $(MARKDOWN) $(srcdir)/$*.md >$@; else \ + $(ASCIIDOC) $(ASCIIDOC_BACKEND) -o $@ $(srcdir)/$*.adoc; fi maintainer-clean-local: -rm -f -- $(html_documentation) diff -Nru icewm-2.9.8/.github/workflows/cmake.yml icewm-2.9.9/.github/workflows/cmake.yml --- icewm-2.9.8/.github/workflows/cmake.yml 2022-07-18 20:55:37.000000000 +0000 +++ icewm-2.9.9/.github/workflows/cmake.yml 2022-08-01 21:49:30.000000000 +0000 @@ -28,7 +28,7 @@ - name: Get Build Dependencies shell: bash working-directory: ${{runner.workspace}}/build - run: sudo apt update && sudo apt install libxrender-dev gettext autopoint libxft-dev libsndfile1-dev libao-dev libsm-dev libx11-dev libxext-dev x11proto-core-dev asciidoctor libxpm-dev libimlib2-dev libgdk-pixbuf2.0-dev libglib2.0-dev libfribidi-dev librsvg2-dev xorg-dev + run: sudo apt update && sudo apt install libxrender-dev gettext autopoint libxft-dev libsndfile1-dev libao-dev libsm-dev libx11-dev libxext-dev x11proto-core-dev markdown asciidoctor libxpm-dev libimlib2-dev libgdk-pixbuf2.0-dev libglib2.0-dev libfribidi-dev librsvg2-dev xorg-dev - name: Configure CMake # Use a bash shell so we can use the same syntax for environment variable diff -Nru icewm-2.9.8/man/icesh.pod icewm-2.9.9/man/icesh.pod --- icewm-2.9.8/man/icesh.pod 2022-07-18 20:55:37.000000000 +0000 +++ icewm-2.9.9/man/icesh.pod 2022-08-01 21:49:30.000000000 +0000 @@ -576,6 +576,11 @@ Print the identifier of the window frame. +=item B + +Print the window identifier and the frame border sizes: left, right, +top and bottom. + =item B I I I