CHANGES.md revision 0bbfda8a
10bbfda8aSnia# CTWM Change History 20bbfda8aSnia 30bbfda8aSnia 40bbfda8aSnia## 4.0.3 (2019-07-21) 50bbfda8aSnia 60bbfda8aSnia### Bugfixes 70bbfda8aSnia 80bbfda8aSnia1. Perform various manipulations and overrides of `WM_HINTS` property 90bbfda8aSnia when it gets reset during runtime, like we do when initially adopting 100bbfda8aSnia the window. The most visible effect of this was in windows that don't 110bbfda8aSnia give a focus hint (which we override to give focus), but then reset 120bbfda8aSnia `WM_HINTS` later and still don't give us a hint, where we wound up not 130bbfda8aSnia re-overriding previously. Reported for `xvile` by Wayne Cuddy. 140bbfda8aSnia 150bbfda8aSnia1. The font height estimation changes in 4.0.0 were not applied correctly 160bbfda8aSnia when UseThreeDMenus was set, leading to some odd vertical misalignment 170bbfda8aSnia of the text with some fonts. Reported by Wayne Cuddy. 180bbfda8aSnia 190bbfda8aSnia1. A failure in OTP consistency checks caused by the handling of 200bbfda8aSnia transients of fullscreen windows has been fixed. This manifested as 210bbfda8aSnia failures in OtpCheckConsistencyVS() assertions. 220bbfda8aSnia 230bbfda8aSnia 240bbfda8aSnia 250bbfda8aSnia## 4.0.2 (2018-08-25) 260bbfda8aSnia 270bbfda8aSnia### Backward-Incompatible Changes And Removed Features 280bbfda8aSnia 290bbfda8aSnia1. The `UseThreeDIconBorders` config var has been removed. It came in 300bbfda8aSnia silently and undocumented in 3.4 and has never done anything. 310bbfda8aSnia 320bbfda8aSnia1. The attempts to use DNS lookups for setting the `HOSTNAME` `m4` variable 330bbfda8aSnia have been removed; it is now just a duplicate of `CLIENTHOST`. 340bbfda8aSnia 350bbfda8aSnia### New Features 360bbfda8aSnia 370bbfda8aSnia1. The EWMH `_NET_WM_NAME` property is now supported, and used for the 380bbfda8aSnia window name in place of the ICCCM `WM_NAME` when set. By default, we 390bbfda8aSnia also accept `UTF8_STRING` encoded `WM_NAME` as a result of this 400bbfda8aSnia change; see below for var to restore historical strictness. 410bbfda8aSnia 420bbfda8aSnia1. The EWMH `_NET_WM_ICON_NAME` property is now supported, and used for 430bbfda8aSnia the icon name in place of the ICCCM `WM_ICON_NAME` when set. Similar 440bbfda8aSnia comments as above apply to the encodings. 450bbfda8aSnia 460bbfda8aSnia1. Support has been added for `CTWM_WM_NAME` and `CTWM_WM_ICON_NAME` 470bbfda8aSnia properties, which will override any window/icon names otherwise 480bbfda8aSnia specified. This may be useful for applications that set unhelpful 490bbfda8aSnia names themselves, or for manually adjusting labelling. These 500bbfda8aSnia properties can be set from the command line via `xprop`; as an 510bbfda8aSnia example, `xprop -f CTWM_WM_NAME 8u -set CTWM_WM_NAME "awesome 520bbfda8aSnia windowsauce"`. See `xprop(1)` manual for details; the `s`, `t`, and 530bbfda8aSnia `u` field type specifiers will all work. 540bbfda8aSnia 550bbfda8aSnia1. When no icon name is set for a window, we've always used the window 560bbfda8aSnia name for the icon name as well. But that only happened the first time 570bbfda8aSnia the window name is set; after that, the icon name is stuck at the 580bbfda8aSnia first name. It now updates along with the window name, if no icon 590bbfda8aSnia name is set. 600bbfda8aSnia 610bbfda8aSnia1. All icon manager windows will now have the `TwmIconManager` class set 620bbfda8aSnia on them, so they can be addressed en mass by other config like 630bbfda8aSnia `NoTitle` by that class name. 640bbfda8aSnia 650bbfda8aSnia### New Config Options 660bbfda8aSnia 670bbfda8aSnia1. Added `DontNameDecorations` config option to disable setting names on 680bbfda8aSnia the X windows we create for window decoration (added in 4.0.0). These 690bbfda8aSnia have been reported to confuse `xwit`, and might do the same for other 700bbfda8aSnia tools that don't expect to find them on non-end-app windows. Reported 710bbfda8aSnia by Frank Steiner. 720bbfda8aSnia 730bbfda8aSnia1. Added `StrictWinNameEncoding` config option to enable historical 740bbfda8aSnia behavior, where we're reject invalid property encoding for window 750bbfda8aSnia naming properties (like a `UTF8_STRING` encoded `WM_NAME`). 760bbfda8aSnia 770bbfda8aSnia### Bugfixes 780bbfda8aSnia 790bbfda8aSnia1. Fix up broken parsing of `IconifyStyle "sweep"`. Bug was introduced 800bbfda8aSnia in 4.0.0. 810bbfda8aSnia 820bbfda8aSnia1. When multiple X Screens are used, building the temporary file for m4 830bbfda8aSnia definitions could fail with an error from `mkstemp()`. Reported by 840bbfda8aSnia Manfred Knick. 850bbfda8aSnia 860bbfda8aSnia1. When multiple X Screens are used, the OTP code didn't recognize the 870bbfda8aSnia difference, and kept everything in one list. This caused the internal 880bbfda8aSnia consistency checks to trip when it didn't find all the windows it 890bbfda8aSnia expected. Reported by Terran Melconian. 900bbfda8aSnia 910bbfda8aSnia1. When `ReverseCurrentWorkspace` is set, mapping windows not on the 920bbfda8aSnia current workspace (e.g., via restarting ctwm, or creating new windows 930bbfda8aSnia with the desktop set via EWMH properties) could segfault. Reported by 940bbfda8aSnia Sean McAllister. 950bbfda8aSnia 960bbfda8aSnia1. Fix some edge cases where we'd fight other apps' focus handling. When 970bbfda8aSnia an application moved focus itself to an unrelated (in X terms) window, 980bbfda8aSnia our processing would often race and re-move the focus to the root 990bbfda8aSnia ourselves. This was visible with e.g. sub-windows in Firefox for 1000bbfda8aSnia context menu and urlbar dropdown, which would flash on and then 1010bbfda8aSnia disappear. 1020bbfda8aSnia 1030bbfda8aSnia1. When creating a new transient window of an existing full-screen 1040bbfda8aSnia window, the OTP stacking may cause it to be stuck below the main 1050bbfda8aSnia window due to the special handling of full-screen focused windows in 1060bbfda8aSnia EWMH. It should now be forced to the top. 1070bbfda8aSnia 1080bbfda8aSnia1. Building ctwm since 4.0.0 in certain locales could misorder functions 1090bbfda8aSnia in the lookup table, leading to troubles parsing the config file. 1100bbfda8aSnia You'd get some loud "INTERNAL ERROR" lines from ctwm when running it 1110bbfda8aSnia if this were the case. Now fixed. Reported by Richard Levitte. 1120bbfda8aSnia 1130bbfda8aSnia 1140bbfda8aSnia 1150bbfda8aSnia## 4.0.1 (2017-06-05) 1160bbfda8aSnia 1170bbfda8aSnia### User Visible Changes 1180bbfda8aSnia 1190bbfda8aSnia1. Fix a bug where fullscreen windows could sometimes wind up incorrectly 1200bbfda8aSnia stacked due to a focus-handling issue. This would lead to ctwm 1210bbfda8aSnia aborting with an assertion failure in the OTP code, like `Assertion 1220bbfda8aSnia failed: (PRI(owl) >= priority), function OtpCheckConsistencyVS`. 1230bbfda8aSnia 1240bbfda8aSnia1. Fix an edge case (probably only triggerable via manual work with EWMH 1250bbfda8aSnia messages) where a window could wind up resized down to nothing. 1260bbfda8aSnia 1270bbfda8aSnia### Internals 1280bbfda8aSnia 1290bbfda8aSnia1. Systems with the ctfconvert/ctfmerge tools available will now use them 1300bbfda8aSnia to include CTF info in the compiled binary. This allows more detailed 1310bbfda8aSnia inspection of the running process via DTrace (e.g., the layout of the 1320bbfda8aSnia structs). 1330bbfda8aSnia 1340bbfda8aSnia1. The initial rumblings of a Developer's Manual are now in 1350bbfda8aSnia `doc/devman/`. This isn't tied into the main build, and there's no 1360bbfda8aSnia real reason it ever will be. Things of interest to _users_ should 1370bbfda8aSnia wind up in the main manual; this should only have things of interest 1380bbfda8aSnia to people _developing_ ctwm. 1390bbfda8aSnia 1400bbfda8aSnia 1410bbfda8aSnia 1420bbfda8aSnia## 4.0.0 (2017-05-24) 1430bbfda8aSnia 1440bbfda8aSnia### Build System Change 1450bbfda8aSnia 1460bbfda8aSniaThe old `imake` build system has been replaced by a new structure using 1470bbfda8aSnia`cmake`. This makes [cmake](https://cmake.org/) a requirement to build 1480bbfda8aSniactwm. See the `README.md` file for how to run it. 1490bbfda8aSnia 1500bbfda8aSniaA fallback minimal build system is available in the `minibuild/` 1510bbfda8aSniadirectory for environments that can't use the main one. This is likely 1520bbfda8aSniato need some manual adjustment on many systems, and the main build is 1530bbfda8aSniastrongly preferred. But it should suffice to get a runnable binary if 1540bbfda8aSniaall else fails. 1550bbfda8aSnia 1560bbfda8aSnia### Platform Support 1570bbfda8aSnia 1580bbfda8aSniaSupport for many non-current platforms has been dropped. In particular, 1590bbfda8aSniaremnants of special-case VMS support have been removed. Many old and now 1600bbfda8aSniadead Unix variants have been similarly desupported. Generally, platforms 1610bbfda8aSniawithout support for C99 and mid-2000's POSIX are increasingly less likely 1620bbfda8aSniato work. 1630bbfda8aSnia 1640bbfda8aSnia### Backward-Incompatible Changes And Removed Features 1650bbfda8aSnia 1660bbfda8aSnia1. Argument parsing has been rewritten to use `getopt_long()`. All 1670bbfda8aSnia `-long` options are now `--long` instead. `-version`, `-info`, 1680bbfda8aSnia `-cfgchk`, and `-display` are still accepted if they're the first 1690bbfda8aSnia option given, to make it easier for scripts to simultaneously support 1700bbfda8aSnia before/after versions; this shim will be removed in a later version. 1710bbfda8aSnia 1720bbfda8aSnia1. Support for the SDSC imconv library, and the IMCONV options related to 1730bbfda8aSnia it, has been removed. The last release is almost 20 years old, and 1740bbfda8aSnia doesn't support any remotely recent platforms. 1750bbfda8aSnia 1760bbfda8aSnia1. The USE_SIGNALS code to use signal-driven animations has been removed. 1770bbfda8aSnia It's been non-default since 3.2 (more than 20 years ago), and not 1780bbfda8aSnia documented anywhere but in the code and a comment in this file. 1790bbfda8aSnia 1800bbfda8aSnia1. The USE_GNOME option and code for GNOME1 support has been removed. 1810bbfda8aSnia 1820bbfda8aSnia1. The old-style title button action specifications (without an `=` in 1830bbfda8aSnia them) deprecated since 3.8 are no longer supported. Just replacing 1840bbfda8aSnia the "`:`" with "`= :`" should suffice to make it work right in 3.8+. 1850bbfda8aSnia If you need to share configs with older versions, you'll have to 1860bbfda8aSnia conditionalize the syntax with m4 or some other preprocessing. 1870bbfda8aSnia 1880bbfda8aSnia1. The `f.cut` (and `^` alias for it), `f.cutfile`, and `f.file` 1890bbfda8aSnia functions have been removed. These functions for messing with the 1900bbfda8aSnia clipboard were never visibly documented, and came into the manpage in 1910bbfda8aSnia 3.0 already commented-out and saying they were obsolete. 1920bbfda8aSnia 1930bbfda8aSnia1. The `f.source` function has been removed. It's never done anything 1940bbfda8aSnia (except beep) as far back as 1.1 and has never been documented. 1950bbfda8aSnia 1960bbfda8aSnia1. The `f.movemenu` function has been removed. It was added silently in 1970bbfda8aSnia 2.1, has never done anything, and has never been documented. 1980bbfda8aSnia 1990bbfda8aSnia1. The `NoVersion` config parameter has been removed. It's been 2000bbfda8aSnia undocumented, obsoleted, and done absolutely nothing since 1.1. 2010bbfda8aSnia 2020bbfda8aSnia1. Support for non-flex versions of lex(1) is deprecated, and will take 2030bbfda8aSnia some manual work to build. Note that release tarballs include 2040bbfda8aSnia prebuild lexers, so this probably only matters to people building from 2050bbfda8aSnia a development tree. (And if you are, and really need AT&T or some 2060bbfda8aSnia other lex to work, talk to us!) 2070bbfda8aSnia 2080bbfda8aSnia1. Support for building with internal regex implementation has been 2090bbfda8aSnia disabled; we now require regex support from libc. It is still 2100bbfda8aSnia possible to enable by manually editing files, but this will be removed 2110bbfda8aSnia in the future. If you have to mess with this, please bring it up on 2120bbfda8aSnia the mailing list so we can figure out a long-term solution. 2130bbfda8aSnia 2140bbfda8aSnia1. Parsing of the `ctwm.workspaces` X resource (i.e., setting `-xrm 2150bbfda8aSnia "ctwm.workspaces: something"` on program command-lines) since 3.0 has 2160bbfda8aSnia collapsed doubled backslashes (`\\`) into a single (`\`). However, 2170bbfda8aSnia there were no other escapes, so this didn't gain anything. Using a 2180bbfda8aSnia single will work with both variants, unless you need multiple 2190bbfda8aSnia backslashes in a row in your workspace names. 2200bbfda8aSnia 2210bbfda8aSnia1. The `IconRegion` and `WindowRegion` config params both take a `vgrav 2220bbfda8aSnia hgrav` pair of parameters to control layout. Previous versions would 2230bbfda8aSnia accept a `hgrav vgrav` ordering in the parsing, and would mostly work 2240bbfda8aSnia by odd quirks of the code. The parsing has been made stricter, so 2250bbfda8aSnia only the documented `vgrav hgrav` ordering is accepted now. 2260bbfda8aSnia 2270bbfda8aSnia### User Visible Changes 2280bbfda8aSnia 2290bbfda8aSnia1. The default install locations have been changed. See the README for 2300bbfda8aSnia details about where things are installed and how to change them. 2310bbfda8aSnia 2320bbfda8aSnia1. Several default settings have been changed. ctwm now defaults to 2330bbfda8aSnia acting as though `RestartPreviousState`, `NoGrabServer`, 2340bbfda8aSnia `DecorateTransients`, `NoBackingStore`, `RandomPlacement`, 2350bbfda8aSnia `OpaqueMove`, `OpaqueResize`, `SortIconManager`, and `StartInMapState` 2360bbfda8aSnia have been set. Those settings that didn't previously have an inverse 2370bbfda8aSnia (to get the behavior previously seen when they weren't specified) have 2380bbfda8aSnia such added; see below. 2390bbfda8aSnia 2400bbfda8aSnia1. Added various config parameters as inverses of existing params. New 2410bbfda8aSnia params (with existing param they invert in parens): 2420bbfda8aSnia * `BackingStore` (`NoBackingStore`) 2430bbfda8aSnia * `GrabServer` (`NoGrabServer`) 2440bbfda8aSnia * `StartInButtonState` (`StartInMapState`) 2450bbfda8aSnia * `NoSortIconManager` (`SortIconManager`) 2460bbfda8aSnia * `NoRestartPreviousState` (`RestartPreviousState`) 2470bbfda8aSnia * `NoDecorateTransients` (`DecorateTransients`) 2480bbfda8aSnia 2490bbfda8aSnia1. Added `DontShowWelcomeWindow` config option to not show welcome 2500bbfda8aSnia splashscreen image. 2510bbfda8aSnia 2520bbfda8aSnia1. Selected a number of cleanups from Stefan Monnier 2530bbfda8aSnia <<monnier@IRO.UMontreal.CA>>, including rate-limiting of animations 2540bbfda8aSnia using a new `_XA_WM_END_OF_ANIMATION` message. Font height is 2550bbfda8aSnia estimated based on used characters only. Added some similar changes, 2560bbfda8aSnia improved the prevention of placing windows off-screen, the 2570bbfda8aSnia `f.rescuewindows` function for emergencies, a hack-fix for 2580bbfda8aSnia `f.adoptwindow`. More virtual screen tweaks/fixes. 2590bbfda8aSnia 2600bbfda8aSnia1. Added the remaining OnTopPriority changes from Stefan Monnier 2610bbfda8aSnia <<monnier@IRO.UMontreal.CA>>: `AutoPopup`, `AutoPriority`, 2620bbfda8aSnia `OnTopPriority`, `PrioritySwitching`, `f.changepriority`, 2630bbfda8aSnia `f.priorityswitching`, `f.setpriority`, `f.switchpriority`, 2640bbfda8aSnia `f.tinylower`, `f.tinyraise`. Currently consistency checking code is 2650bbfda8aSnia enabled, which will terminate with an assertion failure if something 2660bbfda8aSnia unexpected happens. Smoothed out various inconsistencies that this 2670bbfda8aSnia check discovered when virtual screens are used. 2680bbfda8aSnia 2690bbfda8aSnia1. Basic support for EWMH (Extended Window Manager Hints) added and 2700bbfda8aSnia enabled by default. `EWMHIgnore {}` config option allows selectively 2710bbfda8aSnia disabling bits. 2720bbfda8aSnia [Olaf "Rhialto" Seibert, Matthew Fuller] 2730bbfda8aSnia 2740bbfda8aSnia1. Icon manager windows are no longer included in the window ring 2750bbfda8aSnia (that had confusing effects on the focus sequence). 2760bbfda8aSnia 2770bbfda8aSnia1. Added `--dumpcfg` command-line option to print out the compiled-in 2780bbfda8aSnia fallback config file. 2790bbfda8aSnia 2800bbfda8aSnia1. The `Occupy {}` specification now accepts "ws:" as a prefix for 2810bbfda8aSnia workspaces. This may break things if you have workspaces with names 2820bbfda8aSnia that differ only by that prefix (e.g., you have workspaces "abc" and 2830bbfda8aSnia "ws:abc", and your `Occupy {}` declarations affects both. 2840bbfda8aSnia 2850bbfda8aSnia1. If ctwm is built with rplay support, sounds may now be configured with 2860bbfda8aSnia the RplaySounds {} parameter in the config file in place of the 2870bbfda8aSnia `~/.ctwm-sounds` file. If so, ctwm will give a warning if 2880bbfda8aSnia `.ctwm-sounds` exists; support for the external file will be removed 2890bbfda8aSnia in a future version. Also the `SoundHost` config parameter is 2900bbfda8aSnia replaced by `RplaySoundHost`; the old name is still accepted, but 2910bbfda8aSnia will be removed in a future version. 2920bbfda8aSnia 2930bbfda8aSnia1. Added `MWMIgnore {}` config option to allow selectively disabling 2940bbfda8aSnia honoring of some Motif WM hints. 2950bbfda8aSnia 2960bbfda8aSnia1. Warping to a window now explicitly sets focus on that window. This 2970bbfda8aSnia would generally (but not always, in the presence of odd X server 2980bbfda8aSnia behavior) have already happened for users with focus following mouse, 2990bbfda8aSnia but now occurs for `ClickToFocus` users as well. 3000bbfda8aSnia [Alexander Klein] 3010bbfda8aSnia 3020bbfda8aSnia1. Several bugs relating to the Occupy window were fixed. Iconifying the 3030bbfda8aSnia Occupy window no longer loses it and leaves you unable to pull it up 3040bbfda8aSnia again. Minor undersizing in some cases fixed. 3050bbfda8aSnia 3060bbfda8aSnia1. Windows which fail to use the `WM_HINTS` property to tell us things like 3070bbfda8aSnia whether they want us to give them focus are now explicitly given 3080bbfda8aSnia focus anyway. This should fix focus problems with some apps 3090bbfda8aSnia (Chromium is a common example). 3100bbfda8aSnia 3110bbfda8aSnia1. Added `ForceFocus {}` config option to forcibly give focus to all (or 3120bbfda8aSnia specified) windows, whether they request it or not. Previously the 3130bbfda8aSnia code did this unconditionally (except when no `WM_HINTS` were 3140bbfda8aSnia provided; x-ref previous), but this causes problems with at least 3150bbfda8aSnia some programs that tell us they don't want focus, and mean it 3160bbfda8aSnia (some Java GUI apps are common examples). 3170bbfda8aSnia 3180bbfda8aSnia1. `OpaqueMoveThreshold` values >= 200 (the default) are now treated as 3190bbfda8aSnia infinite, and so will always cause opaque moving. 3200bbfda8aSnia 3210bbfda8aSnia### Internals 3220bbfda8aSnia 3230bbfda8aSnia1. A new code style has been chosen and the entire codebase reformatted 3240bbfda8aSnia into it. Configs for 3250bbfda8aSnia [Artistic Style](http://astyle.sourceforge.net/) 3260bbfda8aSnia to generate the proper output are in the source tree. 3270bbfda8aSnia 3280bbfda8aSnia1. The `full_name` element of the TwmWindow structure has been removed. 3290bbfda8aSnia Consumers should just use the `name` element instead. 3300bbfda8aSnia 3310bbfda8aSnia 3320bbfda8aSnia 3330bbfda8aSnia## 3.8.2 (2014-05-18) 3340bbfda8aSnia 3350bbfda8aSnia1. Various code cleanups. 3360bbfda8aSnia 3370bbfda8aSnia * Cleanup re: raising and warping to windows (previous location of 3380bbfda8aSnia pointer in windows), SaveWorkspaceFocus. A few extra NULL pointer 3390bbfda8aSnia checks. 3400bbfda8aSnia 3410bbfda8aSnia * Logical hasfocusvisible cleanup. 3420bbfda8aSnia 3430bbfda8aSnia * Rename TwmWindow.list to iconmanagerlist, and various smaller 3440bbfda8aSnia cleanups. 3450bbfda8aSnia 3460bbfda8aSnia * Eliminated TwmWindow TwmRoot from struct ScreenInfo. Mostly a 3470bbfda8aSnia mechanical change. I found some cases where the dummy TwmWindow 3480bbfda8aSnia was apparently mistakenly included in a loop. Replaced `.next` 3490bbfda8aSnia with `TwmWindow *FirstWindow` and `.cmaps` with `Colormaps 3500bbfda8aSnia RootColormaps`. Other members were not used. 3510bbfda8aSnia 3520bbfda8aSnia1. Fix a bug where insufficient validation of the size hints 3530bbfda8aSnia resulted in a division by zero when considering aspect ratio. 3540bbfda8aSnia 3550bbfda8aSnia1. Lots of minor compiler warnings and build fixes, a few of which 3560bbfda8aSnia were real current or latent bugs. Leave warnings enabled by 3570bbfda8aSnia default. A few of the build system adjustments may break very 3580bbfda8aSnia old systems (e.g., those with original AT&T `yacc`). 3590bbfda8aSnia 3600bbfda8aSnia1. Fix incorrect inclusion of `$DESTDIR` in some paths. 3610bbfda8aSnia 3620bbfda8aSnia1. Update for new website and mailing list at <http://www.ctwm.org>. 3630bbfda8aSnia 3640bbfda8aSnia1. Look at `_MOTIF_WM_HINTS` for titlebar-less or border-less 3650bbfda8aSnia windows. 3660bbfda8aSnia 3670bbfda8aSnia 3680bbfda8aSnia 3690bbfda8aSnia## 3.8.1 (2012-01-05) 3700bbfda8aSnia 3710bbfda8aSnia1. Fix bug causing [de]iconified status of windows to not be 3720bbfda8aSnia maintained across workspaces. 3730bbfda8aSnia [Matthew Fuller] 3740bbfda8aSnia 3750bbfda8aSnia1. Quiet a bunch of compiler warnings. 3760bbfda8aSnia [Matthew Fuller] 3770bbfda8aSnia 3780bbfda8aSnia1. Make sure we fully initialize our WorkSpaceWindow structure so 3790bbfda8aSnia we don't try to dereference uninitialized pointers later on. 3800bbfda8aSnia [Matthew Fuller] 3810bbfda8aSnia 3820bbfda8aSnia1. Increased the number of supported mouse buttons again, having 3830bbfda8aSnia just heard of a mouse with 9 possible buttons... 3840bbfda8aSnia [Richard Levitte] 3850bbfda8aSnia 3860bbfda8aSnia1. Fix a bug in the warping "next" function, where if there is a 3870bbfda8aSnia single window and the cursor is not on it, invoking `f.warpring 3880bbfda8aSnia "next"` does nothing. 3890bbfda8aSnia [Martin Blais] 3900bbfda8aSnia 3910bbfda8aSnia1. Introduce a new feature called "SaveWorkspaceFocus", which when 3920bbfda8aSnia enabled, makes ctwm remember which window has the focus within 3930bbfda8aSnia each virtual workspace. As you switch workspaces, the cursor is 3940bbfda8aSnia automatically warped to the window previous in focus in the 3950bbfda8aSnia workspace. This significantly reduces the amount of mouse use. 3960bbfda8aSnia [Martin Blais] 3970bbfda8aSnia 3980bbfda8aSnia1. f.fill patch from Matthias Kretschmer <<kretschm@cs.uni-bonn.de>>. 3990bbfda8aSnia Without the patch, you might get windows which are increased by 4000bbfda8aSnia two times the border width more than it should be. Additionally 4010bbfda8aSnia if you place a window with no/not much size contrainst like 4020bbfda8aSnia firefox in the upper left corner and perform `f.fill "top"` or 4030bbfda8aSnia `f.fill "left"` the size of the window will increase by two times 4040bbfda8aSnia the border width in width and height without changing the 4050bbfda8aSnia top-left coordinate without the patch. Of course in such a 4060bbfda8aSnia situation the size should not change at all... 4070bbfda8aSnia [via Olaf Seibert] 4080bbfda8aSnia 4090bbfda8aSnia 4100bbfda8aSnia 4110bbfda8aSnia## 3.8 (2007-02-16) 4120bbfda8aSnia 4130bbfda8aSnia1. Global cleanup. There were some variables shadowing others, things 4140bbfda8aSnia not being safely initialized, that sort of thing. 4150bbfda8aSnia [Richard Levitte] 4160bbfda8aSnia 4170bbfda8aSnia1. Fixed several memory leaks found by 4180bbfda8aSnia "Nadav Har'El" <<nyh@math.technion.ac.il>>. 4190bbfda8aSnia [Olaf "Rhialto" Seibert] 4200bbfda8aSnia 4210bbfda8aSnia1. Merged in the `f.movetitlebar` command. By default this is bound to 4220bbfda8aSnia alt-left-click in the titlebar. 4230bbfda8aSnia [Olaf "Rhialto" Seibert] 4240bbfda8aSnia 4250bbfda8aSnia1. Fixed the following issue: 4260bbfda8aSnia 4270bbfda8aSnia * Poking at the code, it looks like InitVirtualScreens() is called 4280bbfda8aSnia before the configuration file is parsed which would explain what I 4290bbfda8aSnia see since there's no attempt to create them after the config file 4300bbfda8aSnia read. Moving the call after the config parsing causes things to 4310bbfda8aSnia work. 4320bbfda8aSnia 4330bbfda8aSnia * I've run into a few other issues that I fixed with the attached 4340bbfda8aSnia patch: 4350bbfda8aSnia * shadow menus on the right screen open the shadow on the left 4360bbfda8aSnia screen 4370bbfda8aSnia * shadow menus on the left screen open on top of the window 4380bbfda8aSnia * windows on the right screen disappear after startup 4390bbfda8aSnia 4400bbfda8aSnia [Todd Kover] 4410bbfda8aSnia 4420bbfda8aSnia1. Adjustments to ctwm.man. I noticed a couple of small errors. [Ross 4430bbfda8aSnia Combs] 4440bbfda8aSnia 4450bbfda8aSnia * One is that the window list arguments for the opaque keywords are 4460bbfda8aSnia now optional, are listed with square brackets in the man page. 4470bbfda8aSnia 4480bbfda8aSnia * The other is that the two Threshold keywords are shown in the man 4490bbfda8aSnia page as requiring curly-brackets, but they are not required or 4500bbfda8aSnia accepted in configuration files. 4510bbfda8aSnia 4520bbfda8aSnia1. Improve algoritm to deal with mismatched geometry of virtual 4530bbfda8aSnia screens 4540bbfda8aSnia 4550bbfda8aSnia * allow windows to be dragged from one virtual screen to another and 4560bbfda8aSnia have them switch workspaces appropriately 4570bbfda8aSnia 4580bbfda8aSnia * handle restarts properly with virtual screens, including preserving 4590bbfda8aSnia where windows were placed within workspaces regardless of which 4600bbfda8aSnia virtual screen a window was on; preserve across restarts 4610bbfda8aSnia 4620bbfda8aSnia [Todd Kover] 4630bbfda8aSnia 4640bbfda8aSnia1. `WMapCreateCurrentBackGround()` and `WMapCreateDefaultBackGround()` 4650bbfda8aSnia would skip remaining virtual screens if not all parameters are 4660bbfda8aSnia present. Small type errors. 4670bbfda8aSnia [Olaf "Rhialto" Seibert] 4680bbfda8aSnia 4690bbfda8aSnia1. There were some directives in the config file that wanted to set some 4700bbfda8aSnia setting for all virtual screens. However since that list is (now) only 4710bbfda8aSnia set up after parsing the config file, they failed to work. Moreover, 4720bbfda8aSnia these settings were basically meant to be global to all virtual 4730bbfda8aSnia screens, so a better place for them is somewhere in `*Scr`. They all 4740bbfda8aSnia related to the Workspace Manager, so I moved them from `struct 4750bbfda8aSnia WorkSpaceWindow` to `struct WorkSpaceMgr`. 4760bbfda8aSnia 4770bbfda8aSnia The affected directives are StartInMapState, WMgrVertButtonIndent, 4780bbfda8aSnia WMgrHorizButtonIndent, MapWindowCurrentWorkSpace, 4790bbfda8aSnia MapWindowDefaultWorkSpace. The window and icon_name, even though not 4800bbfda8aSnia user-settable, were also moved. 4810bbfda8aSnia 4820bbfda8aSnia This is basically the previous change above done right. 4830bbfda8aSnia [Olaf "Rhialto" Seibert] 4840bbfda8aSnia 4850bbfda8aSnia1. Re-introduced `TwmWindow.oldvs`, used to avoid calling 4860bbfda8aSnia `XReparentWindow()` when possibe (it messed up the stacking order of 4870bbfda8aSnia windows). However, maybe the use of `.vs` should be rethought a bit: 4880bbfda8aSnia in `Vanish()` it is now set to `NULL` with the old value kept in 4890bbfda8aSnia `.oldvs`. However the window is still a child of the same vs. Maybe 4900bbfda8aSnia it is better not to set it to `NULL` and then, when *really* changing 4910bbfda8aSnia the virtual screen, `.vs` can be used instead of `.oldvs`. 4920bbfda8aSnia 4930bbfda8aSnia This whole "virtual screen" thing is unexplained in the manual, which 4940bbfda8aSnia even uses it as a synonym for "workspace" already in the introduction 4950bbfda8aSnia paragraph. (There also does not seem to be a way now to test virtual 4960bbfda8aSnia screens in captive windows) I suspect that all this causes lots of 4970bbfda8aSnia confusion, and when cleared up, can simplify the code a lot. 4980bbfda8aSnia 4990bbfda8aSnia I also fixed up the horrible indentation in the functions 5000bbfda8aSnia where I changed something. 5010bbfda8aSnia [Olaf "Rhialto" Seibert] 5020bbfda8aSnia 5030bbfda8aSnia1. Fixed interaction between "inner" and "outer" workspace 5040bbfda8aSnia selection with "captive" windows. This was because the Gnome 5050bbfda8aSnia `_WIN_WORKSPACE` property is used in 2 conflicting ways: for 5060bbfda8aSnia client windows it indicates which workspace they are in, for 5070bbfda8aSnia root windows it indicates which workspace they show. Captive 5080bbfda8aSnia windows are both. Also, the initially selected inner workspace 5090bbfda8aSnia is now the first, not the same as the outer workspace (this had 5100bbfda8aSnia a different cause). 5110bbfda8aSnia [Olaf "Rhialto" Seibert] 5120bbfda8aSnia 5130bbfda8aSnia1. Introduce `Scr->XineramaRoot` to store the root window that 5140bbfda8aSnia encompasses all virtual screen rootwindows. This further reduces any 5150bbfda8aSnia need to use RealRoot and/or CaptiveRoot. Add a schematic drawing 5160bbfda8aSnia that clarifies the relation between the various root-type windows. 5170bbfda8aSnia [Olaf "Rhialto" Seibert] 5180bbfda8aSnia 5190bbfda8aSnia1. Get rid of all non-locale code and make I18N the silent default 5200bbfda8aSnia (doesn't have to be mentioned any more). **THIS WILL BREAK CTWM ON 5210bbfda8aSnia OLDER (PRE-LOCALE) ENVIRONMENTS**. I strongly recommend an upgrade 5220bbfda8aSnia to "post-locale" standards. 5230bbfda8aSnia [Richard Levitte] 5240bbfda8aSnia 5250bbfda8aSnia1. Enhance RandomPlacement with a displacement argument, so the 5260bbfda8aSnia pseudo-radomness can be of displacements other than +30+30. Here's 5270bbfda8aSnia an example for a pretty funky displacement: 5280bbfda8aSnia 5290bbfda8aSnia RandomPlacement "on" "-30-100" 5300bbfda8aSnia 5310bbfda8aSnia [Richard Levitte] 5320bbfda8aSnia 5330bbfda8aSnia1. Extend the Info window with the geometry seen from the lower 5340bbfda8aSnia right corner as well. 5350bbfda8aSnia [Richard Levitte] 5360bbfda8aSnia 5370bbfda8aSnia1. Extend the pointer button specification for title buttons to take 5380bbfda8aSnia modifiers. As part of this change, the following title pointer 5390bbfda8aSnia button specification is deprecated: 5400bbfda8aSnia 5410bbfda8aSnia Button {j} : {function} 5420bbfda8aSnia 5430bbfda8aSnia in favor of the following, for consistency: 5440bbfda8aSnia 5450bbfda8aSnia Button {j} = {function} 5460bbfda8aSnia 5470bbfda8aSnia The old way still works, but is considered bad form and will 5480bbfda8aSnia be removed in a future version ("ctwm 4.0"). 5490bbfda8aSnia [Richard Levitte] 5500bbfda8aSnia 5510bbfda8aSnia1. Fix position of buttons in Occupy window, to make them centered. (and 5520bbfda8aSnia spread the remaining space evenly in 4). 5530bbfda8aSnia [Olaf "Rhialto" Seibert] 5540bbfda8aSnia 5550bbfda8aSnia1. `TwmWindow.group` was once apparently set to 0 when a window had no 5560bbfda8aSnia group leader but this was changed to pointing to its own window. 5570bbfda8aSnia This resulted however in many places checking for both conditions, 5580bbfda8aSnia and several checking only for 0 which could not occur anymore. 5590bbfda8aSnia Changed it back to 0 (so we can now distinguish again windows that 5600bbfda8aSnia really indicate themselves as group leader, if we wish) and this gave 5610bbfda8aSnia rise to some simplifications. 5620bbfda8aSnia 5630bbfda8aSnia Also, there were various loops through all TwmWindows looking for a 5640bbfda8aSnia group leader (or a `transientfor`), I replaced them with 5650bbfda8aSnia `GetTwmWindow()` which uses the Xlib function `XFindContext()` which 5660bbfda8aSnia uses a hash table lookup. This should be more efficient. 5670bbfda8aSnia 5680bbfda8aSnia When you change the occupation of a group member window, it is now 5690bbfda8aSnia applied to the group leader (which in turn affects all members). 5700bbfda8aSnia 5710bbfda8aSnia I tried this with ExMH, the only program that uses a real group 5720bbfda8aSnia leader that I could find. Iconifying the leader unmaps the members. 5730bbfda8aSnia What should "squeezing" do? ExMH also has an icon window (see ICCCM 5740bbfda8aSnia 4.1.9, 3rd option) which behaves weirdly; this may be a bug in ExMH 5750bbfda8aSnia (see exmh-2.7.2/exmh.BUGS) even though fvwm somehow handles it 5760bbfda8aSnia better. 5770bbfda8aSnia [Olaf "Rhialto" Seibert] 5780bbfda8aSnia 5790bbfda8aSnia1. When Squeezing a window group leader, unmap the member windows, just 5800bbfda8aSnia like happens with iconification. 5810bbfda8aSnia [Olaf "Rhialto" Seibert] 5820bbfda8aSnia 5830bbfda8aSnia1. Simplifications c.q. de-duplications of code regarding the 5840bbfda8aSnia WorkSpaceManager and Occupation windows. This includes coding the 5850bbfda8aSnia layout of these windows only once instead of twice (at initialisation 5860bbfda8aSnia and when resizing). If it's wrong now at least it should be 5870bbfda8aSnia consistent. 5880bbfda8aSnia 5890bbfda8aSnia When changing occupation via functions like f.movetonextworkspace, 5900bbfda8aSnia also move complete window groups (just like when you do it via the 5910bbfda8aSnia Occupation window). Also fixed changing the occupation of the 5920bbfda8aSnia Occupation window. Documented (so far) undocumented possibility to 5930bbfda8aSnia edit the labels of workspaces on the fly (what use this is, I'm not 5940bbfda8aSnia sure). Removed some unused variables. 5950bbfda8aSnia [Olaf "Rhialto" Seibert] 5960bbfda8aSnia 5970bbfda8aSnia1. Get rid of the `USE_SESSION` and `X11R6` macros and make them the 5980bbfda8aSnia silent default. Also cleaned out a few references to the macro 5990bbfda8aSnia `X11R4`, which hasn't been used for ages. **THIS WILL BREAK CTWM ON 6000bbfda8aSnia OLDER (PRE-X11R6) ENVIRONMENTS**. I strongly recommend an upgrade to a 6010bbfda8aSnia newer X11 release. 6020bbfda8aSnia [Richard Levitte] 6030bbfda8aSnia 6040bbfda8aSnia1. Modified the random placement so a negative X displacement has the 6050bbfda8aSnia first "random" window start near the right edge instead of the right 6060bbfda8aSnia and a negative Y displacement has the first "random" window start 6070bbfda8aSnia near the bottom edge instead of the top. 6080bbfda8aSnia [Richard Levitte] 6090bbfda8aSnia 6100bbfda8aSnia 6110bbfda8aSnia 6120bbfda8aSnia## 3.7 (2005-07-19) 6130bbfda8aSnia 6140bbfda8aSnia1. Workspace context (bkctwmws.patch) 6150bbfda8aSnia 6160bbfda8aSnia Makes it possible to bind keys specific to the workspace manager 6170bbfda8aSnia (by Björn Knutsson). Use the event context "workspace" for this. 6180bbfda8aSnia 6190bbfda8aSnia1. New keyword : AlwaysSqueezeToGravity 6200bbfda8aSnia 6210bbfda8aSnia If it is enabled, window squeezing always follows window gravity 6220bbfda8aSnia (instead of northward when the window has a title). 6230bbfda8aSnia (by Rudolph T. Maceyko). 6240bbfda8aSnia 6250bbfda8aSnia1. TwmKeys and TwmVisible menus (dlctwmmenu.patch) 6260bbfda8aSnia 6270bbfda8aSnia Adds TwmKeys (rootmenu listing all keybindings) and TWM Visible (rootmenu 6280bbfda8aSnia showing only deiconified windows) (by Dan Lilliehorn). 6290bbfda8aSnia 6300bbfda8aSnia1. Preliminary GNOME compliance (see README.gnome and TODO.gnome) 6310bbfda8aSnia (by Nathan Dushman). 6320bbfda8aSnia 6330bbfda8aSnia1. IconifyStyle : "normal" "mosaic" "zoomin" "zoomout" "sweep" 6340bbfda8aSnia 6350bbfda8aSnia A few "fancy" graphical effects when you iconify windows, just for fun. 6360bbfda8aSnia 6370bbfda8aSnia1. JPEG images support : You can now use jpeg image files wherever you 6380bbfda8aSnia can use images. Use the `jpeg:imagename` syntax. 6390bbfda8aSnia 6400bbfda8aSnia1. `f.showbackground` 6410bbfda8aSnia 6420bbfda8aSnia Since we can now use fancy jpeg image for root backgrounds, this function 6430bbfda8aSnia unmaps all windows in the current workspace. This is a toggle function, 6440bbfda8aSnia if all windows are unmapped, they are all remapped. Better bind this 6450bbfda8aSnia function in the root context. 6460bbfda8aSnia 6470bbfda8aSnia1. Preliminary support for Xinerama extention. You can define "virtual" 6480bbfda8aSnia screens (it's better if they correspond to you actual screens). The 6490bbfda8aSnia thing is that you can see several workspaces at the sams time, one per 6500bbfda8aSnia virtual screen. Of course, you cannot view the same workspace (or the 6510bbfda8aSnia same window) in 2 vscreens at the same time. The syntax is: 6520bbfda8aSnia 6530bbfda8aSnia VirtualScreens { 6540bbfda8aSnia "1280x1024+0+0" 6550bbfda8aSnia "1600x1200+1280+0" 6560bbfda8aSnia } 6570bbfda8aSnia 6580bbfda8aSnia for 2 screens, the first one (on the left) is 1280x1024, the second one 6590bbfda8aSnia (on the right) is 1600x1200. 6600bbfda8aSnia 6610bbfda8aSnia This is preliminary, because this has not been extensively tested. I did 6620bbfda8aSnia this because I have now 2 screens, but I was unable to get them working 6630bbfda8aSnia properly, so I use only one. 6640bbfda8aSnia 6650bbfda8aSnia1. **[ At this point, Claude has stopped working on CTWM, and the project 6660bbfda8aSnia is now in the hands of Richard Levitte <<richard@levitte.org>>. ]** 6670bbfda8aSnia 6680bbfda8aSnia1. Changed Imakefile to support a distribution target. 6690bbfda8aSnia 6700bbfda8aSnia1. Changed `:xpm:cross` to become a bit larger and have a slightly more 6710bbfda8aSnia 3D appearance, and is visible even in very dark configurations. 6720bbfda8aSnia 6730bbfda8aSnia1. Make AlwaysSqueezeToGravity to work for all windows (if no window 6740bbfda8aSnia list is given). 6750bbfda8aSnia 6760bbfda8aSnia1. New keyword: `NoImagesInWorkSpaceManager` 6770bbfda8aSnia 6780bbfda8aSnia If it's enabled, background images aren't displayed in the workspace 6790bbfda8aSnia map. 6800bbfda8aSnia 6810bbfda8aSnia This was contributed by Thomas Linden. 6820bbfda8aSnia 6830bbfda8aSnia1. New command line option: `-cfgchk` 6840bbfda8aSnia 6850bbfda8aSnia If used, CTWM will only parse the configuration file and indicate 6860bbfda8aSnia if it found errors or not. 6870bbfda8aSnia 6880bbfda8aSnia This was contributed by Matthew D. Fuller. 6890bbfda8aSnia 6900bbfda8aSnia1. `DontMoveOff` patch (by Björn Knutsson) 6910bbfda8aSnia 6920bbfda8aSnia Change the behavior of `DontMoveOff` / `MoveOffResistance` so that 6930bbfda8aSnia when you attempt to move a window off screen, it will not move at all 6940bbfda8aSnia until it's been moved `MoveOffResistance` pixels (as before), but at 6950bbfda8aSnia this time it will no longer "snap", but instead it will start moving 6960bbfda8aSnia off screen. This means that you still have the old behavior of 6970bbfda8aSnia DontMoveOff, but now with the ability to move a window off screen 6980bbfda8aSnia less that `MoveOffResistance` pixels. 6990bbfda8aSnia 7000bbfda8aSnia1. Random placement and DontMoveOff patch (by Björn Knutsson, changed) 7010bbfda8aSnia 7020bbfda8aSnia When random placement was used, DontMoveOff wasn't honored. 7030bbfda8aSnia This behavior has now changed so a window will be kept within 7040bbfda8aSnia the screen when at all possible. When the window is too 7050bbfda8aSnia large, it's top or left edge (or both) will be placed in 7060bbfda8aSnia coordinate 0. 7070bbfda8aSnia This change differs a little bit from Björns contribution by 7080bbfda8aSnia not using rand() at all. 7090bbfda8aSnia 7100bbfda8aSnia1. `f.warpring` patch (by Björn Knutsson) 7110bbfda8aSnia 7120bbfda8aSnia If `IconManagerFocus` is set, there's no reason why the icon 7130bbfda8aSnia manager should get enter and leave events. This fixes some 7140bbfda8aSnia disturbing in the warpring that would otherwise happen. 7150bbfda8aSnia 7160bbfda8aSnia1. `f.movetoprevworkspace`, 7170bbfda8aSnia `f.movetonextworkspace`, 7180bbfda8aSnia `f.movetoprevworkspaceandfollow`, 7190bbfda8aSnia `f.movetonextworkspaceandfollow` patch (by Daniel Holmström) 7200bbfda8aSnia 7210bbfda8aSnia Makes it possible to move a window to the previous or next 7220bbfda8aSnia workspace and, if you like, go to that workspace and focus 7230bbfda8aSnia the moved window. 7240bbfda8aSnia 7250bbfda8aSnia1. `f.fill` "vertical" patch (by Daniel Holmström) 7260bbfda8aSnia 7270bbfda8aSnia Expands the window vertically without overlapping any other window, 7280bbfda8aSnia much like `{ f.fill "top" f.fill "bottom" }` but with the exception 7290bbfda8aSnia that it doesn't expand over window borders. It also sets the windows 7300bbfda8aSnia "zoomed" to `F_FULLZOOM`, so one can toggle between this size, 7310bbfda8aSnia original and maximized. 7320bbfda8aSnia 7330bbfda8aSnia1. `RESIZEKEEPSFOCUS` bugfix patch (by Daniel Holmström) 7340bbfda8aSnia 7350bbfda8aSnia If a window is maximized with `togglemaximize` and then restored it 7360bbfda8aSnia might loose focus if the cursor is outside the restored window. This 7370bbfda8aSnia hack puts the cursor at the left-top corner of the window. 7380bbfda8aSnia 7390bbfda8aSnia1. `f.zoom` bugfix patch (by Daniel Holmström) 7400bbfda8aSnia 7410bbfda8aSnia `f.zoom` now doesn't move the window up (as it sometimes did before) 7420bbfda8aSnia 7430bbfda8aSnia1. `IgnoreTransient` patch (by Peter Berg Larsen) 7440bbfda8aSnia 7450bbfda8aSnia New keyword with list of windows for which to ignore transients. 7460bbfda8aSnia 7470bbfda8aSnia1. Workspace switch peformance optimization (by MC) 7480bbfda8aSnia 7490bbfda8aSnia Stops ctwm from redrawing windows that occupy all workspaces when 7500bbfda8aSnia switching from one workspace to another. 7510bbfda8aSnia 7520bbfda8aSnia1. GTK "group leader" bugfix (by Olaf 'Rhialto' Seibert) 7530bbfda8aSnia 7540bbfda8aSnia Makes ctwm aware of the mysterious GTK group leader windows. 7550bbfda8aSnia 7560bbfda8aSnia1. Resize cursor with non-3D-borders bugfix (by Olaf 'Rhialto' Seibert) 7570bbfda8aSnia 7580bbfda8aSnia BorderResizeCursors now works also for top and left borders when 7590bbfda8aSnia non-3D-borders are used. 7600bbfda8aSnia 7610bbfda8aSnia1. Memory leak bugfix (by Simon Burge) 7620bbfda8aSnia 7630bbfda8aSnia `GetWMPropertyString` in `util.c` no longer leaks memory. 7640bbfda8aSnia 7650bbfda8aSnia1. Warpring bugfix (by Takahashi Youichirou) 7660bbfda8aSnia 7670bbfda8aSnia Solves these two problems when warping the pointer to the 7680bbfda8aSnia next/previous mapped window: 7690bbfda8aSnia 7700bbfda8aSnia * Sometimes the pointer moved right too much and ended up outside the 7710bbfda8aSnia title bar. 7720bbfda8aSnia 7730bbfda8aSnia * When the active window was closed and the pointer ended up on the 7740bbfda8aSnia root window, the pointer wouldn't warp until moved with the mouse. 7750bbfda8aSnia 7760bbfda8aSnia1. NoWarpToMenuTitle patch (by Julian Coleman) 7770bbfda8aSnia 7780bbfda8aSnia Fixes the sometimes annoying feature that the cursor is warped to the 7790bbfda8aSnia menu title if the menu won't fit on the screen below the current 7800bbfda8aSnia pointer position. 7810bbfda8aSnia 7820bbfda8aSnia This patch introduces a new keyword `NoWarpToMenuTitle` keyword to 7830bbfda8aSnia turn this off. 7840bbfda8aSnia 7850bbfda8aSnia1. `Scr->workSpaceMgr.windowFont` font init bugfix (by Martin Stjernholm) 7860bbfda8aSnia 7870bbfda8aSnia `The Scr->workSpaceMgr.windowFont` in workmgr.c is now initialized. 7880bbfda8aSnia 7890bbfda8aSnia1. Full GNU regex patch (by Claude Lecommandeur) 7900bbfda8aSnia 7910bbfda8aSnia It is now possible to use full GNU regex for window or class names by 7920bbfda8aSnia defining `USE_GNU_REGEX` in Imakefile. It is disabled in the default 7930bbfda8aSnia Imakefile. 7940bbfda8aSnia 7950bbfda8aSnia1. DontToggleWorkSpaceManagerState patch (by Dan 'dl' Lilliehorn) 7960bbfda8aSnia 7970bbfda8aSnia New keyword to turn off the feature toggling the workspace manager 7980bbfda8aSnia state to/from map/button state when you press ctrl and the workspace 7990bbfda8aSnia manager window is in focus. 8000bbfda8aSnia 8010bbfda8aSnia1. TWMAllIcons patch (by Dan 'dl' Lilliehorn) 8020bbfda8aSnia 8030bbfda8aSnia Adds the TWMAllIcons menu, listing all iconified windows on all 8040bbfda8aSnia workspaces. 8050bbfda8aSnia 8060bbfda8aSnia1. `f.changesize` patch (by Dan 'dl' Lilliehorn) 8070bbfda8aSnia 8080bbfda8aSnia Adds the function `f.changesize` which allows you to change the size 8090bbfda8aSnia of the focused window via menus and keybindings. 8100bbfda8aSnia 8110bbfda8aSnia Examples: 8120bbfda8aSnia 8130bbfda8aSnia "Down" = c|s: all : f.changesize "bottom +10" 8140bbfda8aSnia "F1" = c|s: all : f.changesize "640x480" 8150bbfda8aSnia 8160bbfda8aSnia1. When crashing, ctwm now refers to ctwm-bugs@free.lp.se instead of 8170bbfda8aSnia Claude.Lecommandeur@epfl.ch. 8180bbfda8aSnia **NOTE: This is historical information: neither of these addresses 8190bbfda8aSnia are the current contact.** 8200bbfda8aSnia 8210bbfda8aSnia1. Changed all the code to use ANSI C prototypes instead of the old 8220bbfda8aSnia K&R style. 8230bbfda8aSnia [Richard Levitte] 8240bbfda8aSnia 8250bbfda8aSnia1. Only use the DefaultFunction if no function was found. 8260bbfda8aSnia [Richard Levitte] 8270bbfda8aSnia 8280bbfda8aSnia1. Correct DontMoveOff 8290bbfda8aSnia 8300bbfda8aSnia The DontMoveOff checks when calculating random placement wasn't 8310bbfda8aSnia satisfactory. It ended up placing all windows that were small enough 8320bbfda8aSnia to fit in a random place at +50+50 with no exception. The behavior 8330bbfda8aSnia has now been changed to only apply to very large windows (almost as 8340bbfda8aSnia large as or larger than the screen). At the same time, the 8350bbfda8aSnia RandomPlacement algorithm and the DonMoveOff checks have been tweaked 8360bbfda8aSnia to keep the title height in mind, so centering and coordinates 8370bbfda8aSnia correspond to the realities of the rest of CTWM. 8380bbfda8aSnia [Richard Levitte] 8390bbfda8aSnia 8400bbfda8aSnia1. Correct resizing from menu 8410bbfda8aSnia 8420bbfda8aSnia Choosing resize from the menu when not having 3D borders moved 8430bbfda8aSnia the target window down and right by a border width. This was 8440bbfda8aSnia an error in window position calculations. 8450bbfda8aSnia [Richard Levitte] 8460bbfda8aSnia 8470bbfda8aSnia1. Enhanced info window 8480bbfda8aSnia 8490bbfda8aSnia Added the outer geometry. Added the 3D border width. 8500bbfda8aSnia [Richard Levitte] 8510bbfda8aSnia 8520bbfda8aSnia1. Restart on subsequent SIGHUPs 8530bbfda8aSnia 8540bbfda8aSnia Reworked the code that catches a SIGHUP and has ctwm restart as 8550bbfda8aSnia a result. The restarting code has moved from Restart() to the new 8560bbfda8aSnia DoRestart(). Restart() now only sets a flag, and CtwmNextEvent() 8570bbfda8aSnia has been changed to react to that flag and call DoRestart(). From 8580bbfda8aSnia now on, CtwmNextEvent() is always used to get the next event, even 8590bbfda8aSnia when no animations are going on. 8600bbfda8aSnia [Richard Levitte] 8610bbfda8aSnia 8620bbfda8aSnia1. A number of VMS-related changes 8630bbfda8aSnia 8640bbfda8aSnia DEC/HP PC is a bit picky, the X11 environment is a little bit 8650bbfda8aSnia different, and there were some sign/unsigned conflicts and one 8660bbfda8aSnia too large symbol (the VMS linker truncates anything beyond the 8670bbfda8aSnia 31 first characters of any symbol name), so some tweaks were 8680bbfda8aSnia needed to get CTWM to build cleanly on VMS. 8690bbfda8aSnia [Richard Levitte] 8700bbfda8aSnia 8710bbfda8aSnia1. Allow gcc users to build with paranoia 8720bbfda8aSnia 8730bbfda8aSnia To make it easier to find possible problems, the Imakefile macro 8740bbfda8aSnia GCC_PEDANTIC can be defined in Imakefile.local. 8750bbfda8aSnia [Richard Levitte] 8760bbfda8aSnia 8770bbfda8aSnia1. Allow spaces in sound files. 8780bbfda8aSnia 8790bbfda8aSnia The .ctwm-sounds file parser would clip sound files at the first 8800bbfda8aSnia spaces. That won't do for sound libraries where file names may 8810bbfda8aSnia have spaces in them. The parser now accepts spaces in file names, 8820bbfda8aSnia and will trim spaces from the beginning and the end of both file 8830bbfda8aSnia names and event tokens, allowing for a slightly more flexible 8840bbfda8aSnia format. 8850bbfda8aSnia [Richard Levitte] 8860bbfda8aSnia 8870bbfda8aSnia1. ctwm.spec 8880bbfda8aSnia 8890bbfda8aSnia Added a specification file for RPM building. 8900bbfda8aSnia [Richard Levitte] 8910bbfda8aSnia 8920bbfda8aSnia1. More info for m4 8930bbfda8aSnia 8940bbfda8aSnia The m4 subprocess now gets the variable PIXMAP_DIRECTORY, which 8950bbfda8aSnia is defined to the directory where the pixmaps are installed, and 8960bbfda8aSnia the new flags IMCONV, GNOME, SOUNDS, SESSION and I18N. 8970bbfda8aSnia [Richard Levitte] 8980bbfda8aSnia 8990bbfda8aSnia1. Document sounds 9000bbfda8aSnia 9010bbfda8aSnia The sounds system is now documented in the man page. 9020bbfda8aSnia [Richard Levitte] 9030bbfda8aSnia 9040bbfda8aSnia1. Build RPMs 9050bbfda8aSnia 9060bbfda8aSnia Added the target "rpm" to build an RPM directly from a distribution 9070bbfda8aSnia tarball. 9080bbfda8aSnia [Richard Levitte] 9090bbfda8aSnia 9100bbfda8aSnia1. Make life easier for package builders 9110bbfda8aSnia 9120bbfda8aSnia Added the possibility to configure where some libraries can be found 9130bbfda8aSnia through the use of `USER_*` make variables in Imakefile.local. Added 9140bbfda8aSnia a lot more commentary in Imakefile.local-template. 9150bbfda8aSnia [Richard Levitte] 9160bbfda8aSnia 9170bbfda8aSnia1. Make it easier to configure on VMS 9180bbfda8aSnia 9190bbfda8aSnia Moved all the configuration definitions to descrip.local-template, 9200bbfda8aSnia and instruct the users to copy that file to descrip.local and make 9210bbfda8aSnia all needed changes there. 9220bbfda8aSnia [Richard Levitte] 9230bbfda8aSnia 9240bbfda8aSnia1. Changed all relevant occurences of levitte@lp.se to 9250bbfda8aSnia richard@levitte.org. 9260bbfda8aSnia [Richard Levitte] 9270bbfda8aSnia 9280bbfda8aSnia 9290bbfda8aSnia 9300bbfda8aSnia## 3.6 (2002-08-08 or earlier) 9310bbfda8aSnia 9320bbfda8aSnia1. Fix line numbers for errors when using m4 preprocessor. Send thanks 9330bbfda8aSnia to Josh Wilmes <<josh@hitchhiker.org>>. 9340bbfda8aSnia 9350bbfda8aSnia1. Fix the way menu entries are selected with the keyboard. Now 9360bbfda8aSnia when you type a letter, the pointer moves to the next entry 9370bbfda8aSnia whose first letter is this letter, but does not activate it. 9380bbfda8aSnia The new keyword IgnoreCaseInMenuSelection, can be used to 9390bbfda8aSnia ignore case for this delection. 9400bbfda8aSnia 9410bbfda8aSnia1. New keyword: DontSave. Takes a window list as argument. All listed 9420bbfda8aSnia windows won't have their characteristics saved for the session manager. 9430bbfda8aSnia Patch from Matthias Baake <<Matthias.Baake@gmx.de>> 9440bbfda8aSnia 9450bbfda8aSnia1. Also from Matthias Baake <<Matthias.Baake@gmx.de>>: 9460bbfda8aSnia With the new keywords BorderLeft, BorderRight, BorderBottom and 9470bbfda8aSnia BorderTop (each of them is optional with a default value of 0 and 9480bbfda8aSnia takes a nonnegative integer as argument) you can declare a border 9490bbfda8aSnia "off limits" for f.move etc.. These borders act the same way as the 9500bbfda8aSnia real borders of the screen when moving windows; you can use 9510bbfda8aSnia f.forcemove to override them. 9520bbfda8aSnia 9530bbfda8aSnia1. Sloppy Focus added with keyword "SloppyFocus" in configuration file 9540bbfda8aSnia (DINH V. Hoa <<dinh@enserb.fr>>). 9550bbfda8aSnia 9560bbfda8aSnia1. The keyword "ClickToFocus" has been correctly implemented 9570bbfda8aSnia (DINH V. Hoa <<dinh@enserb.fr>>). 9580bbfda8aSnia 9590bbfda8aSnia1. The keyword "IgnoreModifier" has been added, to use this feature, you 9600bbfda8aSnia have to add a line `IgnoreModifier { lock m2 }` in the configuration 9610bbfda8aSnia file. All bindings (buttons and keys) will ignore the modifiers you 9620bbfda8aSnia specified. It is useful when you use caps locks or num locks. You 9630bbfda8aSnia don't need IgnoreLockModifier any more with this option. (DINH V. 9640bbfda8aSnia Hoa <<dinh@enserb.fr>>). 9650bbfda8aSnia 9660bbfda8aSnia1. New keyword: WindowBox. Creates a new window called a box, where 9670bbfda8aSnia all the client windows that match the windows list are opened in, 9680bbfda8aSnia instead of the roor window. This is useful to group small windows 9690bbfda8aSnia in the same box (xload for instance) : 9700bbfda8aSnia 9710bbfda8aSnia WindowBox "xloadbox" "320x100+0-0" { 9720bbfda8aSnia "xload" 9730bbfda8aSnia } 9740bbfda8aSnia 9750bbfda8aSnia1. New function: f.fittocontent. Can be used only with window boxes. 9760bbfda8aSnia The result is to have the box have the minimal size that contains 9770bbfda8aSnia all its children windows. 9780bbfda8aSnia 9790bbfda8aSnia1. New keyword: WindowGeometries. Used to give a default geometry to some 9800bbfda8aSnia clients: 9810bbfda8aSnia 9820bbfda8aSnia WindowGeometries { 9830bbfda8aSnia "Mozilla*" "1000x800+10+10" 9840bbfda8aSnia "jpilot*" "800x600-0-0" 9850bbfda8aSnia } 9860bbfda8aSnia 9870bbfda8aSnia1. New keyword: IconMenuDontShow. Don't show the name of these windows 9880bbfda8aSnia in the TwmIcons menu. 9890bbfda8aSnia 9900bbfda8aSnia1. And, as usual, a few bug fixes here and there. 9910bbfda8aSnia 9920bbfda8aSnia 9930bbfda8aSnia 9940bbfda8aSnia## 3.5.2 (1999-09-10 or earlier) 9950bbfda8aSnia 9960bbfda8aSnia1. `f.moveresize`: Takes one string argument which is a geometry with the 9970bbfda8aSnia standard X geometry syntax (e.g. `200x300+150-0`). Sets the current 9980bbfda8aSnia window to the specified geometry. The width and height are to be given 9990bbfda8aSnia in pixel, no base size or resize increment are used. 10000bbfda8aSnia 10010bbfda8aSnia1. AutoLower et `f.autolower`: from Kai Großjohann 10020bbfda8aSnia (Kai.Grossjohann@CS.Uni-Dortmund.DE). Same as autoraise but with lower. 10030bbfda8aSnia 10040bbfda8aSnia1. `WindowRingExclude`: Takes a window list as argument. All listed windows 10050bbfda8aSnia will be excluded from the WarpRing. 10060bbfda8aSnia 10070bbfda8aSnia1. A new menu: "TwmIcons" same as "TwmWindows", but shows only iconified 10080bbfda8aSnia windows. I did this when I got bored of having icons. Now I have no 10090bbfda8aSnia icons and no icon managers. I use this menu to deiconify windows. 10100bbfda8aSnia When I was young, I liked to have brightly colored icons, but now that 10110bbfda8aSnia I am getting old(er), I prefer a bare desktop. 10120bbfda8aSnia 10130bbfda8aSnia 10140bbfda8aSnia 10150bbfda8aSnia## 3.5.1 (1999-05-02 or earlier) 10160bbfda8aSnia 10170bbfda8aSnia1. `f.initsize`: resets a window to its initial size given by the 10180bbfda8aSnia `WM_NORMAL_HINTS` hints. 10190bbfda8aSnia 10200bbfda8aSnia1. `f.ring`: Selects a window and adds it to the WarpRing, or removes it if 10210bbfda8aSnia it was already in the ring. This command makes f.warpring much more 10220bbfda8aSnia useful, by making its configuration dynamic (thanks to Philip Kizer 10230bbfda8aSnia <<pckizer@tamu.edu>>). 10240bbfda8aSnia 10250bbfda8aSnia1. f.jumpleft, f.jumpright, f.jumpup, f.jumpdown : takes one integer 10260bbfda8aSnia argument (the step). These function are designed to be bound to keys, 10270bbfda8aSnia they move the current window (step * {X,Y}MoveGrid) pixels in the 10280bbfda8aSnia corresponding direction. stopping when the window encounters another 10290bbfda8aSnia window (ala f.pack). 10300bbfda8aSnia 10310bbfda8aSnia 10320bbfda8aSnia 10330bbfda8aSnia## 3.5 (1997-11-27 or earlier) 10340bbfda8aSnia 10350bbfda8aSnia1. `f.pack [direction]`. 10360bbfda8aSnia Where direction is one of: "right", "left", "top" or "bottom". 10370bbfda8aSnia The current window is moved in the specified direction until it reaches 10380bbfda8aSnia an obstacle (either another window, or the screen border). The pointer 10390bbfda8aSnia follows the window. Examples: 10400bbfda8aSnia 10410bbfda8aSnia "Right" = m : window : f.pack "right" 10420bbfda8aSnia "Left" = m : window : f.pack "left" 10430bbfda8aSnia "Up" = m : window : f.pack "top" 10440bbfda8aSnia "Down" = m : window : f.pack "bottom" 10450bbfda8aSnia 10460bbfda8aSnia1. `f.fill [direction]`. 10470bbfda8aSnia Where direction is either : "right", "left", "top" or "bottom". 10480bbfda8aSnia The current window is resized in the specified direction until it 10490bbfda8aSnia reaches an obstacle (either another window, or the screen border). 10500bbfda8aSnia 10510bbfda8aSnia "Right" = s|m : window : f.fill "right" 10520bbfda8aSnia "Left" = s|m : window : f.fill "left" 10530bbfda8aSnia "Up" = s|m : window : f.fill "top" 10540bbfda8aSnia "Down" = s|m : window : f.fill "bottom" 10550bbfda8aSnia 10560bbfda8aSnia1. `f.savegeometry`. 10570bbfda8aSnia The geometry of the current window is saved. The next call to 10580bbfda8aSnia `f.restoregeometry` will restore this window to this geometry. 10590bbfda8aSnia 10600bbfda8aSnia1. `f.restoregeometry` 10610bbfda8aSnia Restore the current window geometry to what was saved in the last 10620bbfda8aSnia call to `f.savegeometry`. 10630bbfda8aSnia 10640bbfda8aSnia1. ShortAllWindowsMenus 10650bbfda8aSnia Don't show WorkSpaceManager and IconManagers in the TwmWindows and 10660bbfda8aSnia TwmAllWindows menus. 10670bbfda8aSnia 10680bbfda8aSnia1. f.toggleworkspacemgr 10690bbfda8aSnia Toggle the presence of the WorkSpaceManager. If it is mapped, it will 10700bbfda8aSnia be unmapped and vice verça. 10710bbfda8aSnia 10720bbfda8aSnia1. OpenWindowTimeout number 10730bbfda8aSnia number is an integer representing a number of second. When a window 10740bbfda8aSnia tries to open on an unattended display, it will be automatically 10750bbfda8aSnia mapped after this number of seconds. 10760bbfda8aSnia 10770bbfda8aSnia1. `DontSetInactive { win-list }` 10780bbfda8aSnia These windows won't be set to InactiveState when they become invisible 10790bbfda8aSnia due to a change workspace. This has been added because some ill-behaved 10800bbfda8aSnia clients (Frame5) don't like this. 10810bbfda8aSnia 10820bbfda8aSnia1. `UnmapByMovingFarAway { win-list }` 10830bbfda8aSnia These windows will be moved out of the screen instead of being 10840bbfda8aSnia unmapped when they become invisible due to a change workspace. This has 10850bbfda8aSnia been added because some ill-behaved clients (Frame5) don't like to be 10860bbfda8aSnia unmapped. Use this if the previous doesn't work. 10870bbfda8aSnia 10880bbfda8aSnia1. `AutoSqueeze { win-list }` 10890bbfda8aSnia These windows will be auto-squeezed. i.e. automatically unsqueezed 10900bbfda8aSnia when they get focus, and squeezed when they loose it. Useful for the 10910bbfda8aSnia workspace manager. (Note, it is not possible to AutoSqueeze icon 10920bbfda8aSnia managers). 10930bbfda8aSnia 10940bbfda8aSnia1. `StartSqueezed { win-list }` 10950bbfda8aSnia These windows will first show up squeezed. 10960bbfda8aSnia 10970bbfda8aSnia1. RaiseWhenAutoUnSqueeze 10980bbfda8aSnia Windows are raised when auto-unsqueezed. 10990bbfda8aSnia 11000bbfda8aSnia1. Now if the string "$currentworkspace" is present inside the string 11010bbfda8aSnia argument of f.exec, it will be substituated with the current workspace 11020bbfda8aSnia name. So it is possible to do something like : 11030bbfda8aSnia 11040bbfda8aSnia f.exec "someclient -xrm ctwm.workspace:$currentworkspace &" 11050bbfda8aSnia 11060bbfda8aSnia and the client will popus up in the workspace where the command was 11070bbfda8aSnia started even if you go elsewhere before it actually shows up. 11080bbfda8aSnia 11090bbfda8aSnia1. Fixes for the VMS version. From Richard Levitte - VMS Whacker 11100bbfda8aSnia <<levitte@lp.se>>. 11110bbfda8aSnia 11120bbfda8aSnia1. Better I18N. From Toshiya Yasukawa <<t-yasuka@dd.iij4u.or.jp>>. (Define 11130bbfda8aSnia I18N in Imakefile to activate it). 11140bbfda8aSnia 11150bbfda8aSnia1. Better Session Management interface. Patches from Matthew McNeill 11160bbfda8aSnia <<M.R.McNeill@durham.ac.uk>>. 11170bbfda8aSnia 11180bbfda8aSnia1. new flag : `-name`, useful only for captive Ctwm. Sets the name of the 11190bbfda8aSnia captive root window. Useful too for next point. If no name is 11200bbfda8aSnia specified ctwm-n is used, where n is a number automatically 11210bbfda8aSnia generated. 11220bbfda8aSnia 11230bbfda8aSnia1. Two new client resources are now handled by Ctwm : 11240bbfda8aSnia 11250bbfda8aSnia * `ctwm.redirect: <captive_ctwm_name>` 11260bbfda8aSnia 11270bbfda8aSnia The new client window is open in the captive Ctwm with name 11280bbfda8aSnia `<captive_ctwm_name>`. 11290bbfda8aSnia 11300bbfda8aSnia * `ctwm.rootWindow: <window_id>` 11310bbfda8aSnia 11320bbfda8aSnia The new client window is reparented into `<window_id>` (whaa!!!). 11330bbfda8aSnia It is up to you to find any usefullness to this. 11340bbfda8aSnia 11350bbfda8aSnia1. If the string "$redirect" is present inside the string 11360bbfda8aSnia argument of f.exec, it will be substituated with a redirection 11370bbfda8aSnia to the current captive Ctwm if any (or nothing if in a main Ctwm). 11380bbfda8aSnia So it is possible to do something like : 11390bbfda8aSnia 11400bbfda8aSnia f.exec "someclient $redirect &" 11410bbfda8aSnia 11420bbfda8aSnia and the client will popus up in the right captive Ctwm. 11430bbfda8aSnia 11440bbfda8aSnia1. New function f.hypermove. With it, you can drag and drop a window 11450bbfda8aSnia between 2 captives Ctwm (or between a captive and the root Ctwm). 11460bbfda8aSnia 11470bbfda8aSnia1. 2 new m4 variables defined in your startup file: 11480bbfda8aSnia 11490bbfda8aSnia * TWM_CAPTIVE 11500bbfda8aSnia : value "Yes" if Ctwm is captive, "No" else. 11510bbfda8aSnia 11520bbfda8aSnia * TWM_CAPTIVE_NAME 11530bbfda8aSnia : The name of the captive Ctwm, if captive. 11540bbfda8aSnia 11550bbfda8aSnia1. `RaiseOnClick`: if present a window will be raised on top of others 11560bbfda8aSnia when clicked on, and the ButtonPress event will be correctly 11570bbfda8aSnia forwarded to the client that owns this window (if it asked to). 11580bbfda8aSnia 11590bbfda8aSnia RaiseOnClickButton <n> : <Button number to use for RaiseOnClick> 11600bbfda8aSnia 11610bbfda8aSnia1. `IgnoreLockModifier`: if present, all bindings (buttons and keys) will 11620bbfda8aSnia ignore the LockMask. Useful if you often use caps lock, and don't 11630bbfda8aSnia want to define twice all your bindings. 11640bbfda8aSnia 11650bbfda8aSnia1. AutoFocusToTransients 11660bbfda8aSnia Transient windows get focus automatically when created. Useful with 11670bbfda8aSnia programs that have keyboard shortcuts that pop up windows. (patch 11680bbfda8aSnia from Kai Grossjohann <<grossjohann@charly.cs.uni-dortmund.de>>). 11690bbfda8aSnia 11700bbfda8aSnia1. PackNewWindows 11710bbfda8aSnia Use f.movepack algorithm instead of f.move when opening a new window. 11720bbfda8aSnia 11730bbfda8aSnia 11740bbfda8aSnia 11750bbfda8aSnia## 3.4 (1996-09-14 or earlier) 11760bbfda8aSnia 11770bbfda8aSnia1. 2 new keywords: XMoveGrid and YMoveGrid with an integer parameter. 11780bbfda8aSnia Constrains window moves so that its x and y coordinates are multiple 11790bbfda8aSnia of the specified values. Useful to align windows easily. 11800bbfda8aSnia 11810bbfda8aSnia1. New function: f.deleteordestroy. First tries to delete the window 11820bbfda8aSnia (send it `WM_DELETE_WINDOW` message), or kills it, if the client 11830bbfda8aSnia doesn't accept such message. 11840bbfda8aSnia 11850bbfda8aSnia1. New function : f.squeeze. It squeezes a window to a null vertical 11860bbfda8aSnia size. Works only for windows with either a title, or a 3D border 11870bbfda8aSnia (in order to have something left on the screen). If the window is 11880bbfda8aSnia already squeezed, it is unsqueezed. 11890bbfda8aSnia 11900bbfda8aSnia1. New built-in title button: `:xpm:vbar` (a vertical bar). 11910bbfda8aSnia 11920bbfda8aSnia1. CenterFeedbackWindow : The moving and resizing information window 11930bbfda8aSnia is centered in the middle of the screen instead of the top left 11940bbfda8aSnia corner. 11950bbfda8aSnia 11960bbfda8aSnia1. 2 New options: 11970bbfda8aSnia 11980bbfda8aSnia * -version 11990bbfda8aSnia : Ctwm just prints its version number and exits. 12000bbfda8aSnia * -info 12010bbfda8aSnia : Ctwm prints its detailed version and compile time options. 12020bbfda8aSnia 12030bbfda8aSnia1. WarpToDefaultMenuEntry (Useful only with StayUpMenus) : When using 12040bbfda8aSnia StayUpMenus, and a menu does stays up, the pointer is warped to 12050bbfda8aSnia the default entry of the menu. Try it. Can emulate double click. 12060bbfda8aSnia For example : 12070bbfda8aSnia 12080bbfda8aSnia Button2 = : icon : f.menu "iconmenu" 12090bbfda8aSnia menu "iconmenu" { 12100bbfda8aSnia "Actions" f.title 12110bbfda8aSnia "" f.separator 12120bbfda8aSnia "*Restore" f.iconify 12130bbfda8aSnia "Move" f.move 12140bbfda8aSnia "Squeeze" f.squeeze 12150bbfda8aSnia "Occupy ..." f.occupy 12160bbfda8aSnia "Occupy All" f.occupyall 12170bbfda8aSnia "" f.separator 12180bbfda8aSnia "Delete" f.deleteordestroy 12190bbfda8aSnia } 12200bbfda8aSnia 12210bbfda8aSnia will result in DoubleButton2 on an icon uniconifies it. 12220bbfda8aSnia 12230bbfda8aSnia1. When you popup a menu that is constrained by the border of the screen 12240bbfda8aSnia the pointer is warped to the first entry. (Avoid exiting ctwm when you 12250bbfda8aSnia just want to refresh the screen). 12260bbfda8aSnia 12270bbfda8aSnia1. When compiled with `X11R6` defined, ctwm supports ICE session 12280bbfda8aSnia management. (the code has been stolen directly from the X11R6 twm, 12290bbfda8aSnia it has not been thoroughly tested, humm... actually, not tested at 12300bbfda8aSnia all). 12310bbfda8aSnia 12320bbfda8aSnia1. SchrinkIconTitles: A la Motif schrinking of icon titles, and expansion 12330bbfda8aSnia when mouse is inside icon. 12340bbfda8aSnia (Yes, it's misspelt. Yes, the misspelling is accepted.) 12350bbfda8aSnia 12360bbfda8aSnia1. AutoRaiseIcons: Icons are raised when the cursor enters it. Useful 12370bbfda8aSnia with SchrinkIconTitles. 12380bbfda8aSnia 12390bbfda8aSnia 12400bbfda8aSnia1. XPM files for title bars or buttons may include the following symbolic 12410bbfda8aSnia colors. These symbolic colors allow the possiblity of using the same 12420bbfda8aSnia 3d XPM file with different colors for different titlebars. 12430bbfda8aSnia 12440bbfda8aSnia Background 12450bbfda8aSnia : The main color to be used by the title bar 12460bbfda8aSnia 12470bbfda8aSnia HiShadow 12480bbfda8aSnia : The color to be used as the highlight 12490bbfda8aSnia 12500bbfda8aSnia LoShadow 12510bbfda8aSnia : The color to be used as the dark shadow. 12520bbfda8aSnia 12530bbfda8aSnia Using these colors, I have built some 3d XPM files for various 12540bbfda8aSnia titlebars while still keeping the ability to change titlebar colors. 12550bbfda8aSnia [Matt Wormley <<mwormley@airship.ardfa.calpoly.edu>>] 12560bbfda8aSnia 12570bbfda8aSnia1. Added a keyword to the .ctwmrc file: "UseSunkTitlePixmap". This 12580bbfda8aSnia makes it so the shadows are inversed for title pixmaps when focus is 12590bbfda8aSnia lost. This is similar to having the SunkFocusWindowTitle, but it 12600bbfda8aSnia makes your 3d XPM sink instead of just the whole bar. 12610bbfda8aSnia [Matt Wormley <<mwormley@airship.ardfa.calpoly.edu>>] 12620bbfda8aSnia 12630bbfda8aSnia1. Added 3 new builtin 3d buttons for "Iconify", "Resize" and "Box". They 12640bbfda8aSnia are available with the :xpm: identifier in the .ctwmrc file. 12650bbfda8aSnia [Matt Wormley <<mwormley@airship.ardfa.calpoly.edu>>] 12660bbfda8aSnia 12670bbfda8aSnia1. Added another keyword to the .ctwmrc file: "WorkSpaceFont". This 12680bbfda8aSnia allows you to specify the font to use in the workspace manager. 12690bbfda8aSnia [Matt Wormley <<mwormley@airship.ardfa.calpoly.edu>>] 12700bbfda8aSnia 12710bbfda8aSnia1. 8 new xpm pixmaps for buttons, title highlite, etc... : 12720bbfda8aSnia 3dcircle.xpm 3ddimple.xpm 3ddot.xpm 3dfeet.xpm 3dleopard.xpm 3dpie.xpm 12730bbfda8aSnia 3dpyramid.xpm 3dslant.xpm 12740bbfda8aSnia [Matt Wormley <<mwormley@airship.ardfa.calpoly.edu>>] 12750bbfda8aSnia 12760bbfda8aSnia1. 2 new functions : f.forwmapiconmgr and f.backmapiconmgr, similar to 12770bbfda8aSnia f.forwiconmgr and f.backiconmgr but only stops on mapped windows. 12780bbfda8aSnia [Scott Bolte <<scottb@cirque.moneng.mei.com>>] 12790bbfda8aSnia 12800bbfda8aSnia1. Last minute: PixmapDirectory now accept a colon separated list of 12810bbfda8aSnia directories. 12820bbfda8aSnia 12830bbfda8aSnia1. If you use m4, ctwm now defines `TWM_VERSION` which is the version in 12840bbfda8aSnia the form of floating point (e.g. 3.4). 12850bbfda8aSnia 12860bbfda8aSnia1. I forgot to tell that IconRegion has now 3 more optionnal parameters 12870bbfda8aSnia iconjust, iconregjust and iconregalign. That can be used to give 12880bbfda8aSnia special values to IconJustification, IconRegionJustification and 12890bbfda8aSnia IconRegionAlignement for this IconRegion. The new syntax is : 12900bbfda8aSnia 12910bbfda8aSnia IconRegion geomstring vgrav hgrav gridwidth gridheight \ 12920bbfda8aSnia [iconjust] [iconregjust] [iconregalign] [{ win-list }] 12930bbfda8aSnia 12940bbfda8aSnia 12950bbfda8aSnia 12960bbfda8aSnia## 3.3 (pre-1995-02-11 or 1995-05-04) 12970bbfda8aSnia 12980bbfda8aSnia1. Better 3D borders with SqueezeTitle. 12990bbfda8aSnia 13000bbfda8aSnia1. New keywords : BorderShadowDepth, TitleButtonShadowDepth, 13010bbfda8aSnia TitleShadowDepth, MenuShadowDepth and IconManagerShadowDepth. You can 13020bbfda8aSnia modify the depth of the 3D shadow of all the objects. 13030bbfda8aSnia 13040bbfda8aSnia1. f.altcontext. a new context named "alter" is introduced. The next key 13050bbfda8aSnia or button event after a call to f.altcontext will be interpreted using 13060bbfda8aSnia the alternate context. To define bindings in the alternate context, use 13070bbfda8aSnia the keyword alter in the context field of the binding command. 13080bbfda8aSnia 13090bbfda8aSnia1. f.altkeymap. Up to 5 alternate modifiers (a1 to a5). The next key 13100bbfda8aSnia or button event after a call to f.altkeymap will be interpreted with 13110bbfda8aSnia this alternate modifies set. To define bindings with an alternate 13120bbfda8aSnia modifier, use the keyword 'a' followed by the number of the modifier in 13130bbfda8aSnia the modifier field of the binding command. Only the root, window, icon 13140bbfda8aSnia and iconmgr context are allowed when an alternate modified is used. 13150bbfda8aSnia 13160bbfda8aSnia1. Default menu entry : If a menu entry name begins with a "\*" (star), 13170bbfda8aSnia this star won't be displayed and the corresponding entry will be the 13180bbfda8aSnia default entry for this menu. When a menu has a default entry and is used 13190bbfda8aSnia as a pull-right in another menu, this default entry action will be executed 13200bbfda8aSnia automatically when this submenu is selected without being displayed. 13210bbfda8aSnia It's hard to explain, but easy to understand. 13220bbfda8aSnia 13230bbfda8aSnia1. New keywords: 13240bbfda8aSnia 13250bbfda8aSnia `ReallyMoveInWorkspaceManager` 13260bbfda8aSnia : tells ctwm to move the actual window when the user is moving the 13270bbfda8aSnia small windows in the WorkSpaceMap window. 13280bbfda8aSnia 13290bbfda8aSnia `AlwaysShowWindowWhenMovingFromWorkspaceManager` 13300bbfda8aSnia : tells ctwm to always map the actual window during the move, 13310bbfda8aSnia regardless of whether it crosses the current workspace or not. The 13320bbfda8aSnia Shift key toggles this behaviour. 13330bbfda8aSnia 13340bbfda8aSnia1. 4 new functions: 13350bbfda8aSnia 13360bbfda8aSnia * f.rightworkspace 13370bbfda8aSnia * f.leftworkspace 13380bbfda8aSnia * f.upworkspace 13390bbfda8aSnia * f.downworkspace 13400bbfda8aSnia 13410bbfda8aSnia Do what you expect. 13420bbfda8aSnia 13430bbfda8aSnia1. The function f.raiseicons (from Rickard Westman <<ricwe@ida.liu.se>>). 13440bbfda8aSnia Raises all icons. 13450bbfda8aSnia 13460bbfda8aSnia1. A new keyword: IconRegionAlignement. Like IconRegionJustification 13470bbfda8aSnia but align vertically. The parameter is "top", "center", "bottom" or 13480bbfda8aSnia "border". 13490bbfda8aSnia 13500bbfda8aSnia1. f.addtoworkspace, f.removefromworkspace and f.toggleoccupation. (idea 13510bbfda8aSnia from Kai Grossjohann <<grossjoh@linus.informatik.uni-dortmund.de>>). They 13520bbfda8aSnia take one argument that is a workspace name. When applied to a window, 13530bbfda8aSnia they add to, remove from, or toggle the occupation of this window in 13540bbfda8aSnia this workspace. 13550bbfda8aSnia 13560bbfda8aSnia1. AlwaysOnTop (from Stefan Monnier <<monnier@di.epfl.ch>>). Accept a list 13570bbfda8aSnia of windows as argument. Ctwm will do it's best to keep these windows 13580bbfda8aSnia on top of the screen. Not perfect. 13590bbfda8aSnia 13600bbfda8aSnia1. Some moving stuff. 13610bbfda8aSnia 13620bbfda8aSnia f.movepack 13630bbfda8aSnia : is like f.move, but it tries to avoid overlapping of windows on the 13640bbfda8aSnia screen. When the moving window begin to overlap with another 13650bbfda8aSnia window, the move is stopped. If you go too far over the other 13660bbfda8aSnia window (more than MovePackResistance pixels), the move is resumed 13670bbfda8aSnia and the moving window can overlap with the other window. Useful to 13680bbfda8aSnia pack windows closely. 13690bbfda8aSnia 13700bbfda8aSnia f.movepush 13710bbfda8aSnia : Instead of stopping the move, tries to push the other window to 13720bbfda8aSnia avoid overlap. f.movepush is here mainly because I found it 13730bbfda8aSnia amusing to do it. Is is not very useful. 13740bbfda8aSnia 13750bbfda8aSnia1. `TitleJustification`: Takes one string argument : "left", "center", or 13760bbfda8aSnia "right". Tells ctwm how to justify the window titles. 13770bbfda8aSnia 13780bbfda8aSnia1. `UseThreeDWMap`: Tells ctwm to use 3D decorations for the small windows 13790bbfda8aSnia in the workspace map. 13800bbfda8aSnia 13810bbfda8aSnia1. `ReverseCurrentWorkspace`: Tells ctwm to reverse the background and 13820bbfda8aSnia foreground colors in the small windows in the workspace map for the 13830bbfda8aSnia current workspace. 13840bbfda8aSnia 13850bbfda8aSnia1. `DontWarpCursorInWMap`: Tells ctwm not to warp the cursor to the 13860bbfda8aSnia corresponding actual window when you click in a small window in the 13870bbfda8aSnia workspace map. 13880bbfda8aSnia 13890bbfda8aSnia1. If there is neither MapWindowBackground, nor MapWindowForeground in the 13900bbfda8aSnia config file,the window title colors are used for the small windows in the 13910bbfda8aSnia workspace map. 13920bbfda8aSnia 13930bbfda8aSnia 13940bbfda8aSnia 13950bbfda8aSnia## 3.2 (1994-11-13 or earlier) 13960bbfda8aSnia 13970bbfda8aSnia1. I have considerably reworked the focus handling. So I have probably 13980bbfda8aSnia introduced some problems. 13990bbfda8aSnia 14000bbfda8aSnia1. New keyword: `NoIconManagerFocus`. Tells ctwm not to set focus on windows 14010bbfda8aSnia when the pointer is in an IconManager. 14020bbfda8aSnia 14030bbfda8aSnia1. new option: `-W`. Tells ctwm not to display any welcome when starting. 14040bbfda8aSnia To be used on slow machines. 14050bbfda8aSnia 14060bbfda8aSnia1. New keyword: `StayUpMenus`. Tells ctwm to use stayup menus. These 14070bbfda8aSnia menus will stay on the screen when ButtonUp, if either the menu has 14080bbfda8aSnia not yet been entered by the pointer, or the current item is a 14090bbfda8aSnia f.title. 14100bbfda8aSnia 14110bbfda8aSnia1. Now ctwm tries to use welcome.xwd instead of welcome.xpm if it exists. 14120bbfda8aSnia On my machine the ctwm process size went from 2.3MB to 1MB when changing 14130bbfda8aSnia this. Xpm is very greedy. 14140bbfda8aSnia 14150bbfda8aSnia1. New keyword: `IconRegionJustification`. Tells ctwm how to justify 14160bbfda8aSnia icons inside their place in the IconRegion. This keyword needs a 14170bbfda8aSnia string value. The acceptable values are : "left", "center", "right" 14180bbfda8aSnia and "border". If "border" is given, the justification will be "left" 14190bbfda8aSnia if the icon region gravity is "west" and "right" if the icon region 14200bbfda8aSnia gravity is "east". (clever, isn't it) 14210bbfda8aSnia 14220bbfda8aSnia1. If you specify the `-f filename` option, ctwm will first try to load 14230bbfda8aSnia filename.scrnum, where scrnum is the screen number. If it fails, it 14240bbfda8aSnia will try to load filename as usual. 14250bbfda8aSnia 14260bbfda8aSnia1. TitleButtons can now have different bindings for buttons with the 14270bbfda8aSnia following syntax : 14280bbfda8aSnia 14290bbfda8aSnia LeftTitleButton ":xpm:menu" { 14300bbfda8aSnia Button1 : f.menu "WindowMenu" 14310bbfda8aSnia Button2 : f.zoom 14320bbfda8aSnia Button3 : f.hzoom 14330bbfda8aSnia } 14340bbfda8aSnia 14350bbfda8aSnia The old syntax is of course accepted. 14360bbfda8aSnia Patch from Stefan Monnier <<Stefan_Monnier@NIAGARA.NECTAR.CS.CMU.EDU>>. 14370bbfda8aSnia 14380bbfda8aSnia1. A lot of new animated title buttons : `%xpm:menu-up`, `%xpm:menu-down`, 14390bbfda8aSnia `%xpm:resize-out-top`, `%xpm:resize-in-top`, `%xpm:resize-out-bot`, 14400bbfda8aSnia `%xpm:resize-in-bot`, `%xpm:maze-out`, `%xpm:maze-in`, `%xpm:zoom-out`, 14410bbfda8aSnia `%xpm:zoom-in` and `%xpm:zoom-inout`. From Stefan Monnier 14420bbfda8aSnia <<Stefan_Monnier@NIAGARA.NECTAR.CS.CMU.EDU>>. 14430bbfda8aSnia 14440bbfda8aSnia1. 2 new builtin menus: TwmAllWindows and TwmWorkspaces. Guess what they 14450bbfda8aSnia do. 14460bbfda8aSnia 14470bbfda8aSnia1. You can now bind menus to keys. When a menu is visible, you can 14480bbfda8aSnia navigate in it with the arrow keys. "Down" or space goes down, "Up" 14490bbfda8aSnia goes up, "Left" pops down the menu, and "Right" activates the current 14500bbfda8aSnia entry. The first letter of an entry name activates this entry (the first 14510bbfda8aSnia one if several entries match). If the first letter is ~ then 14520bbfda8aSnia Meta-the-second-letter activates it, if this first letter is ^ then 14530bbfda8aSnia Control-the-second-letter activates it, and if this first letter is space, 14540bbfda8aSnia then the second letter activates it. 14550bbfda8aSnia 14560bbfda8aSnia1. Support for VMS. Patch from Peter Chang <<peterc@v2.ph.man.ac.uk>>. 14570bbfda8aSnia Completely untested. If you have problems to build on VMS ask 14580bbfda8aSnia Peter Chang. 14590bbfda8aSnia 14600bbfda8aSnia1. New keyword: `MoveOffResistance`. Idea borrowed to fvwm. If you set 14610bbfda8aSnia MoveOffResistance to a positive (n) value, dontmoveoff will only 14620bbfda8aSnia prevent you from going off the edge if you're within n pixels off the 14630bbfda8aSnia edge. If you go further, dontmoveoff gives up and lets you go as far 14640bbfda8aSnia as you wish. f.forcemove still allows you to totally ignore 14650bbfda8aSnia dontmoveoff. A negative value puts you back into "never moveoff" mode 14660bbfda8aSnia (it's the default). 14670bbfda8aSnia 14680bbfda8aSnia1. The files `background[1-7].xpm` and `background9.xpm` have been 14690bbfda8aSnia removed from the distribution. Someone tells me that they are 14700bbfda8aSnia copyrighted. I tried to contact him in order to join his copyright, 14710bbfda8aSnia but his mail address is invalid. <<desktop-textures@avernus.com>>. 14720bbfda8aSnia Most of these backgrounds and much more can be obtained in the AIcons 14730bbfda8aSnia package on ftp.x.org. Particularly in cl-bgnd/Textures: bg_blu.gif, 14740bbfda8aSnia concrete.gif, marble1.gif, sharks.gif bg_grn.gif, granite_dark.gif, 14750bbfda8aSnia marble2.gif, snails.gif, coarse.gif, granite_light.gif and pool.gif. 14760bbfda8aSnia 14770bbfda8aSnia1. New keyword: `BorderResizeCursors` with no parameter. If used ctwm 14780bbfda8aSnia will put nice cursors when the cursor in on the window borders. To 14790bbfda8aSnia be used when you have bound a button to f.resize in the frame 14800bbfda8aSnia context. 14810bbfda8aSnia 14820bbfda8aSnia1. The xpm files are now installed in `$(TWMDIR)/images` instead of 14830bbfda8aSnia `$(TWMDIR)`. 14840bbfda8aSnia 14850bbfda8aSnia1. Due to the many problems I had with signals being slightly different 14860bbfda8aSnia on different systems, I rewrote the animation handling without using 14870bbfda8aSnia signals anymore. I hope it is more portable. The old code is still 14880bbfda8aSnia available if you define USE_SIGNALS. 14890bbfda8aSnia 14900bbfda8aSnia 14910bbfda8aSnia 14920bbfda8aSnia## 3.1 (1994-01-28) 14930bbfda8aSnia 14940bbfda8aSnia1. Ctwm is moving. You can now have animated images for icons, root 14950bbfda8aSnia backgrounds, title buttons and focus window title image. This adds 14960bbfda8aSnia one new keyword: `AnimationSpeed`, and 4 new function: 14970bbfda8aSnia `f.startanimation`, `f.stopanimation`, `f.speedupanimation` and 14980bbfda8aSnia `f.slowdownanimation`. An image name is considered an animation if it 14990bbfda8aSnia contains the percent (%) character. In which case ctwm replaces this 15000bbfda8aSnia character by numbers starting a 1, and will play an animation with 15010bbfda8aSnia all these images. There is only 2 examples : ball%.xpm suitable for 15020bbfda8aSnia icons, and supman%.xbm suitable for title highlight. Another example 15030bbfda8aSnia (much more beautiful) can be found in the Mosaic distribution. There 15040bbfda8aSnia is also one built-in animation for title buttons : `%xpm:resize`, for 15050bbfda8aSnia example : 15060bbfda8aSnia 15070bbfda8aSnia RightTitleButton "%xpm:resize" = f.resize 15080bbfda8aSnia 15090bbfda8aSnia1. Add the WMgrButtonShadowDepth keyword to control the depth of the 15100bbfda8aSnia shadow of the workspace manager buttons. 15110bbfda8aSnia 15120bbfda8aSnia1. The RandomPlacement command has now an optionnal parameter: 15130bbfda8aSnia "on", "off", "all" or "unmapped". 15140bbfda8aSnia 15150bbfda8aSnia1. Three new keywords : ChangeWorkspaceFunction, IconifyFunction and 15160bbfda8aSnia DeIconifyFunction, the argument is the name of a function that is 15170bbfda8aSnia executed whenever the corresponding event occurs. Useful for sounds : 15180bbfda8aSnia 15190bbfda8aSnia ChangeWorkspaceFunction !"cat /users/lecom/sounds/bom.au 2>/dev/null 1>/dev/audio &" 15200bbfda8aSnia 15210bbfda8aSnia1. A new keyword : IconJustification with 1 argument, either: "left", 15220bbfda8aSnia "center" or "right". Tells ctwm how to justify the icon image on the 15230bbfda8aSnia icon title (if any). 15240bbfda8aSnia 15250bbfda8aSnia1. flex is now supported. 15260bbfda8aSnia 15270bbfda8aSnia1. The IconRegion keyword now support an optionnal winlist argument. 15280bbfda8aSnia Thanks to Mike Hoswell <<hoswell@ncar.ucar.edu>> for adding this. 15290bbfda8aSnia 15300bbfda8aSnia1. f.separator now works (does something) with 3D menus. 15310bbfda8aSnia 15320bbfda8aSnia1. The format xwd is now accepted for images (icons, background, ...). You 15330bbfda8aSnia have to prefix the image file name with xwd: to use this format. 15340bbfda8aSnia If the first character of an image file name is |, the filename is 15350bbfda8aSnia supposed to be a command that output a xwd image, and it is executed. 15360bbfda8aSnia For example, to use a gif file, use : 15370bbfda8aSnia 15380bbfda8aSnia "|(giftoppm | pnmtoxwd) < /users/lecom/images/2010.gif" 15390bbfda8aSnia 15400bbfda8aSnia1. A new keyword: MaxIconTitleWidth with an integer argument. If an icon 15410bbfda8aSnia title is larger than this integer, it is truncated. 15420bbfda8aSnia 15430bbfda8aSnia1. A sound extension is supported. To use it you have to define 15440bbfda8aSnia `USE_SOUND` in the Imakefile (not defined by default). In order to 15450bbfda8aSnia use this option you need the rplay package. The documentation for 15460bbfda8aSnia this extension is in sounds.doc. Warning: this extension is not 15470bbfda8aSnia mine, and I don't use it, so don't expect a good support if you have 15480bbfda8aSnia problems with it. 15490bbfda8aSnia 15500bbfda8aSnia1. A new keyword : NoBorder with a window list argument. These windows 15510bbfda8aSnia won't have borders. Thanks to J.P. Albers van der Linden 15520bbfda8aSnia <<albers@pasichva.serigate.philips.nl>> for this patch. 15530bbfda8aSnia 15540bbfda8aSnia1. Ctwm has a new option selectable with the flag `-w`, if used, ctwm 15550bbfda8aSnia will not take over the whole screen(s), instead it will create a new 15560bbfda8aSnia window and manage it. The `-w` has an optional argument which is a 15570bbfda8aSnia window id of an existing window, if specified, ctwm will try to 15580bbfda8aSnia manage this window. This is totally useless, but I like it. The 15590bbfda8aSnia `f.adoptwindow` function can be used to capture an existing window 15600bbfda8aSnia into such a captive ctwm. A possible use of such mode can be to test 15610bbfda8aSnia new configuration file without restarting ctwm. 15620bbfda8aSnia 15630bbfda8aSnia1. Now the welcome file can be of any type understood by ctwm. So it must 15640bbfda8aSnia be prefixed with its type. The default is `xpm:welcome.xpm` if the 15650bbfda8aSnia XPM option is compiled in, else it is `xwd:welcome.xwd`. You use for 15660bbfda8aSnia example: 15670bbfda8aSnia 15680bbfda8aSnia setenv CTWM_WELCOME_FILE "|(giftoppm | pnmtoxwd) < ~/images/2010.gif" 15690bbfda8aSnia 15700bbfda8aSnia1. You can now have 3D window borders with the keyword: UseThreeDBorders. 15710bbfda8aSnia In which case the 3D border width is given with: ThreeDBorderWidth. 15720bbfda8aSnia The default value is 6. The color is BorderColor for the window that 15730bbfda8aSnia has focus and BorderTileBackground for all others windows. Note: The 15740bbfda8aSnia 3D borders do not merge very well with squeezed titles, as the top 15750bbfda8aSnia edge of the window where the title is missing does not get a 3d 15760bbfda8aSnia border. 15770bbfda8aSnia 15780bbfda8aSnia1. Now, WindowRing can be specified without argument, in this case all 15790bbfda8aSnia the windows are in the ring. (Alec Wolman 15800bbfda8aSnia <<wolman@blue.cs.washington.edu>>) 15810bbfda8aSnia 15820bbfda8aSnia1. New keyword: WarpRingOnScreen, if present, tells ctwm that f.warpring 15830bbfda8aSnia should warp pointer only to windows visible in the current workspace. 15840bbfda8aSnia 15850bbfda8aSnia 15860bbfda8aSnia 15870bbfda8aSnia## 3.0 (1993-07-21) 15880bbfda8aSnia 15890bbfda8aSnia1. A few bugs fixes. 15900bbfda8aSnia 15910bbfda8aSnia1. A 3D presentation of menus, titles and IconManagers can be selected 15920bbfda8aSnia with UseThreeDMenus, UseThreeDTitles and UseThreeDIconManagers. If 15930bbfda8aSnia UseThreeDTitles is set the default values for TitleButtonBorderWidth, 15940bbfda8aSnia FramePadding, TitlePadding, ButtonIndent are set to 0 pixels. I am 15950bbfda8aSnia not that proud of the appearance of 3D titles but 3D menus look nice. 15960bbfda8aSnia If UseThreeDTitles is set the flag SunkFocusWindowTitle tells ctwm to 15970bbfda8aSnia sunk the title of the window that the focus. 3D features look ugly on 15980bbfda8aSnia monochrome displays, but I have no such display for testing purpose. 15990bbfda8aSnia If a monochrome display owner can have a look, he is welcome. The 16000bbfda8aSnia contrast of the clear and dark shadows can be tuned via the 16010bbfda8aSnia ClearShadowContrast and DarkShadowContrast parameters. These 16020bbfda8aSnia parameters are percentages. The formulas used are : 16030bbfda8aSnia 16040bbfda8aSnia clear.{RGB} = (65535 - color.{RGB}) * (ClearShadowContrast / 100) 16050bbfda8aSnia dark.{RGB} = color.{RGB} * ((100 - DarkShadowContrast) / 100) 16060bbfda8aSnia 16070bbfda8aSnia If you choose UseThreeDIconManagers, icon titles are also 3D. By 16080bbfda8aSnia defaults new colors are allocated for shadows, but you can specify 16090bbfda8aSnia BeNiceToColormap to inform ctwm to use stipple instead of new colors, 16100bbfda8aSnia the effect is less beautiful, but acceptable. 16110bbfda8aSnia 16120bbfda8aSnia 16130bbfda8aSnia1. A new keyword: NoIconTitle with an optionnal window list. 16140bbfda8aSnia 16150bbfda8aSnia1. A new keyword: TransientOnTop with an integer parameter. This 16160bbfda8aSnia paramater is a percentage and tells ctwm to put transient (and 16170bbfda8aSnia non-group leader) windows always on top of their leader only if their 16180bbfda8aSnia surface is smaller than this fraction of the surface of their leader. 16190bbfda8aSnia 16200bbfda8aSnia1. OpaqueMove and OpaqueResize now accept an optionnal list of windows 16210bbfda8aSnia as parameter. They also have their NoOpaqueMove and NoOpaqueResize 16220bbfda8aSnia counterpart with the same syntax. 16230bbfda8aSnia 16240bbfda8aSnia1. Two new keywords: OpaqueMoveThreshold and OpaqueResizeThreshold with 16250bbfda8aSnia one integer parameter. The parameter represent a percentage of the 16260bbfda8aSnia screen surface. If Opaque{Move,Resize} is active for a window, (via 16270bbfda8aSnia point 4) the opaque {move, resize} is done only if the window surface 16280bbfda8aSnia is smaller than this percentage of the screen. The default is large 16290bbfda8aSnia enough. 16300bbfda8aSnia 16310bbfda8aSnia1. Startup is optionally piped into `m4` before ctwm parse it, ypu can 16320bbfda8aSnia now have a common startup file for ctwm, tvtwm, etc ... It can be 16330bbfda8aSnia disabled at compile time by undefining USEM4 in Imakefile. It can be 16340bbfda8aSnia disabled at execution time by using the `-n` option. Take care if you 16350bbfda8aSnia have backquotes (`) in your .ctwmrc file. This character is special 16360bbfda8aSnia to m4. In that case, put something like : 16370bbfda8aSnia 16380bbfda8aSnia changequote(,) 16390bbfda8aSnia changequote(``,'') 16400bbfda8aSnia 16410bbfda8aSnia at the beginning of your .ctwmrc. 16420bbfda8aSnia 16430bbfda8aSnia1. The startup looks nicer (I think). If you use XPM and the file 16440bbfda8aSnia welcome.xpm is present in your PixmapDirectory, it is displayed while 16450bbfda8aSnia the startup is in progress. Unfortunately, the PixmapDirectory is 16460bbfda8aSnia known only after the .ctwmrc is loaded, and this loading is a large 16470bbfda8aSnia part of the startup time. So you can define the environnement 16480bbfda8aSnia variable `CTWM_WELCOME_FILE` to point to an XPM file, in which case 16490bbfda8aSnia it will be displayed very quickly. 16500bbfda8aSnia 16510bbfda8aSnia1. A new function: f.separator, valid only in menus. The effect is to add 16520bbfda8aSnia a line separator between the previous and the following entry. The 16530bbfda8aSnia name selector part in the menu is not used. f.separator works only 16540bbfda8aSnia with conventionnal menus, not with 3D menus. 16550bbfda8aSnia 16560bbfda8aSnia1. Thanks to <<bret@essex.ac.uk>>, the man page is integrated with the 16570bbfda8aSnia original twm one, and is of a much better quality. 16580bbfda8aSnia 16590bbfda8aSnia1. While moving a window, the position is displayed in a similar way as 16600bbfda8aSnia the size when resizing. 16610bbfda8aSnia 16620bbfda8aSnia1. The info window now display the compile time options of the current 16630bbfda8aSnia version of ctwm. 16640bbfda8aSnia 16650bbfda8aSnia1. You can now specify xpm pixmap title buttons and TitleHighlight. 16660bbfda8aSnia There is 5 built-in scalable pixmap for buttons, `:xpm:menu`, 16670bbfda8aSnia `:xpm:dot`, `:xpm:resize`, `:xpm:zoom` and `:xpm:bar`. 16680bbfda8aSnia 16690bbfda8aSnia1. Ctwm now restarts when receiving signal SIGHUP, so to restart it from 16700bbfda8aSnia a shell, use `kill -1 the_ctwm_pid`. 16710bbfda8aSnia 16720bbfda8aSnia1. 2 New keywords: WMgrVertButtonIndent and WMgrHorizButtonIndent with 1 16730bbfda8aSnia parameter, specifying the vertical and horizontal space beetween 16740bbfda8aSnia buttons in the workspace manager. 16750bbfda8aSnia 16760bbfda8aSnia1. Some more xpm files given. Among them several backgrounds. 16770bbfda8aSnia 16780bbfda8aSnia1. Ctwm set the property `WM_WORKSPACELIST` (type STRING) on the root 16790bbfda8aSnia window, this property contains the null separated list of all the 16800bbfda8aSnia workspaces. Now the `WM_OCCUPATION` property on each window is a null 16810bbfda8aSnia separated list instead of a space separated list, it was wrong since 16820bbfda8aSnia workspace names can contain spaces. So, the first time you will start 16830bbfda8aSnia the this version, your windows will show up anywhere. 16840bbfda8aSnia 16850bbfda8aSnia1. A new library libctwm.a and an include file ctwm.h are given. The 16860bbfda8aSnia library contains functions for an external program to have some 16870bbfda8aSnia control over ctwm. The functions are: 16880bbfda8aSnia 16890bbfda8aSnia Bool CtwmIsRunning (); 16900bbfda8aSnia char **CtwmWorkspaces (); 16910bbfda8aSnia char *CtwmCurrentWorkspace (); 16920bbfda8aSnia int CtwmChangeWorkspace (); 16930bbfda8aSnia char **CtwmCurrentOccupation (); 16940bbfda8aSnia int CtwmSetOccupation (); 16950bbfda8aSnia int CtwmAddToCurrentWorkspace (); 16960bbfda8aSnia 16970bbfda8aSnia There is no documentation. A program demolib.c is given to help. 16980bbfda8aSnia 16990bbfda8aSnia 17000bbfda8aSnia 17010bbfda8aSnia## 2.2 (1993-02-05) 17020bbfda8aSnia 17030bbfda8aSnia1. Bugs: 17040bbfda8aSnia 17050bbfda8aSnia * Redraw small windows when icon name changes. 17060bbfda8aSnia * Kill window from the title bar menu 17070bbfda8aSnia * Partial geometry on Workspace manager can core dump. 17080bbfda8aSnia * AutoRaise and tiny windows in the Workspace Map. 17090bbfda8aSnia 17100bbfda8aSnia1. Transient windows and non group leader windows are now always on the 17110bbfda8aSnia top of their leader. 17120bbfda8aSnia 17130bbfda8aSnia1. When an icon name changes, the icon itself changes automatically 17140bbfda8aSnia according the Icons list in your .ctwmrc. This is very useful for 17150bbfda8aSnia clients that have several states. For example xrn or some X mail 17160bbfda8aSnia readers can have two differents icons for new mail (news) / no new 17170bbfda8aSnia mail (news). 17180bbfda8aSnia 17190bbfda8aSnia1. A new keyword: TransientHasOccupation has been added for people 17200bbfda8aSnia annoyed by the fact that since ctwm-2.1, transient-for non 17210bbfda8aSnia group-leader windows have the same occupation that their leader. If 17220bbfda8aSnia you specify this, these windows have their own occupation. 17230bbfda8aSnia 17240bbfda8aSnia1. A new keyword: AutoOccupy. If specified, the occupation of a client is 17250bbfda8aSnia changed automatically when it's name or icon name changes, according 17260bbfda8aSnia to the Occupy list in your .ctwmrc. For example a mail reader can 17270bbfda8aSnia popup instantly in the current workspace when mail arrives. 17280bbfda8aSnia 17290bbfda8aSnia1. A new keyword: DontPaintRootWindow. If specified, the root window is 17300bbfda8aSnia not painted, whatever you told in the Workspaces specification. This 17310bbfda8aSnia is useful to have pixmaps in the Workspace Map but not on the root 17320bbfda8aSnia window. 17330bbfda8aSnia 17340bbfda8aSnia1. You can use XPM pixmaps for your background root window. Use 17350bbfda8aSnia xpm:filename instead of @filename. The latter is still accepted. Of 17360bbfda8aSnia course if your XPM file has transparent parts, there are not 17370bbfda8aSnia transparent on the root window, i.e. you dont see the electron gun 17380bbfda8aSnia through it. 17390bbfda8aSnia 17400bbfda8aSnia1. XPMIconDirectory is replaced by PixmapDirectory. (XPMIconDirectory is 17410bbfda8aSnia still accepted). 17420bbfda8aSnia 17430bbfda8aSnia1. You can now use colored root background pixmap and icons in many 17440bbfda8aSnia formats. Ctwm use the imconv library from the San Diego 17450bbfda8aSnia Supercomputer Center. To use these formats, specify: "im:filename" 17460bbfda8aSnia for the pixmap name. 17470bbfda8aSnia 17480bbfda8aSnia * The following format are supported : 17490bbfda8aSnia 17500bbfda8aSnia bmp 17510bbfda8aSnia : Microsoft Windows bitmap image file 17520bbfda8aSnia 17530bbfda8aSnia cur 17540bbfda8aSnia : Microsoft Windows cursor image file 17550bbfda8aSnia 17560bbfda8aSnia eps 17570bbfda8aSnia : Adobe Encapsulated PostScript file 17580bbfda8aSnia 17590bbfda8aSnia gif 17600bbfda8aSnia : Compuserve Graphics image file 17610bbfda8aSnia 17620bbfda8aSnia hdf 17630bbfda8aSnia : Hierarchical Data File 17640bbfda8aSnia 17650bbfda8aSnia ico 17660bbfda8aSnia : Microsoft Windows icon image file 17670bbfda8aSnia 17680bbfda8aSnia icon 17690bbfda8aSnia : Sun Icon and Cursor file 17700bbfda8aSnia 17710bbfda8aSnia iff 17720bbfda8aSnia : Sun TAAC Image File Format 17730bbfda8aSnia 17740bbfda8aSnia mpnt 17750bbfda8aSnia : Apple Macintosh MacPaint file 17760bbfda8aSnia 17770bbfda8aSnia pbm 17780bbfda8aSnia : PBM Portable Bit Map file 17790bbfda8aSnia 17800bbfda8aSnia pcx 17810bbfda8aSnia : ZSoft IBM PC Paintbrush file 17820bbfda8aSnia 17830bbfda8aSnia pgm 17840bbfda8aSnia : PBM Portable Gray Map file 17850bbfda8aSnia 17860bbfda8aSnia pic 17870bbfda8aSnia : PIXAR picture file 17880bbfda8aSnia 17890bbfda8aSnia pict 17900bbfda8aSnia : Apple Macintosh QuickDraw/PICT file 17910bbfda8aSnia 17920bbfda8aSnia pix 17930bbfda8aSnia : Alias image file 17940bbfda8aSnia 17950bbfda8aSnia ppm 17960bbfda8aSnia : PBM Portable Pixel Map file 17970bbfda8aSnia 17980bbfda8aSnia pnm 17990bbfda8aSnia : PBM Portable aNy Map file 18000bbfda8aSnia 18010bbfda8aSnia ps 18020bbfda8aSnia : Adobe PostScript file 18030bbfda8aSnia 18040bbfda8aSnia ras 18050bbfda8aSnia : Sun Rasterfile 18060bbfda8aSnia 18070bbfda8aSnia rgb 18080bbfda8aSnia : SGI RGB image file 18090bbfda8aSnia 18100bbfda8aSnia rla 18110bbfda8aSnia : Wavefront raster image file 18120bbfda8aSnia 18130bbfda8aSnia rle 18140bbfda8aSnia : Utah Run length encoded image file 18150bbfda8aSnia 18160bbfda8aSnia synu 18170bbfda8aSnia : SDSC Synu image file 18180bbfda8aSnia 18190bbfda8aSnia tga 18200bbfda8aSnia : Truevision Targa image file 18210bbfda8aSnia 18220bbfda8aSnia tiff 18230bbfda8aSnia : Tagged image file 18240bbfda8aSnia 18250bbfda8aSnia viff 18260bbfda8aSnia : Khoros Visualization image file 18270bbfda8aSnia 18280bbfda8aSnia x 18290bbfda8aSnia : AVS X image file 18300bbfda8aSnia 18310bbfda8aSnia xbm 18320bbfda8aSnia : X11 bitmap file 18330bbfda8aSnia 18340bbfda8aSnia xwd 18350bbfda8aSnia : X Window System window dump image file 18360bbfda8aSnia 18370bbfda8aSnia * You can find the imconv package at `ftp.sdsc.edu`. in the directory 18380bbfda8aSnia `/pub/sdsc/graphics/imtools`. 18390bbfda8aSnia 18400bbfda8aSnia * If `(width > screenwidth / 2) || (height > screenheight / 2)` the 18410bbfda8aSnia image is centered else it is tiled. 18420bbfda8aSnia 18430bbfda8aSnia * If you don't have the libim library or don't want to use it, 18440bbfda8aSnia undefine IMCONV in Imakefile. 18450bbfda8aSnia 18460bbfda8aSnia But take care : 18470bbfda8aSnia 18480bbfda8aSnia * It is very memory consuming (on the server side). 18490bbfda8aSnia * It is very color cells consuming. 18500bbfda8aSnia * The ctwm executable is much larger executable. 18510bbfda8aSnia * Startup is much much slower (but not the workspace swap). 18520bbfda8aSnia * It works only for 8 planes pixmaps and 8 planes screens. If there 18530bbfda8aSnia is an imconv specialist somewhere that can generelize this, he is 18540bbfda8aSnia welcome. 18550bbfda8aSnia 18560bbfda8aSnia1. Two new functions : f.nextworkspace, f.prevworkspace. 18570bbfda8aSnia 18580bbfda8aSnia1. Xpm examples files are now automatically installed in `$(TWMDIR)` 18590bbfda8aSnia 18600bbfda8aSnia1. An example of .ctwmrc is given, showing some aspect of ctwm 18610bbfda8aSnia (example.ctwmrc). It is not a complete .ctwmrc, only the ctwm 18620bbfda8aSnia aspects are shown. 18630bbfda8aSnia 18640bbfda8aSnia1. A new file PROBLEMS has been added that lists some problems you 18650bbfda8aSnia can have while using ctwm and some solutions. 18660bbfda8aSnia 18670bbfda8aSniaIs there any good pixmap designer out there, that i can add beautiful 18680bbfda8aSniaicons and background to the distribution. Don't use too many colors, 18690bbfda8aSniatry to use the same few already used in the example icons. 18700bbfda8aSnia 18710bbfda8aSnia 18720bbfda8aSnia 18730bbfda8aSnia## 2.1 (1992-12-22) 18740bbfda8aSnia 18750bbfda8aSnia1. Cleanup code to make gcc happy. 18760bbfda8aSnia 18770bbfda8aSnia1. Bugs fixed 18780bbfda8aSnia 18790bbfda8aSnia * IconMaskHint honored. 18800bbfda8aSnia 18810bbfda8aSnia * Workaround a bug on HP7xx/8.07 servers for RaiseLower in Map 18820bbfda8aSnia window. The stacking order in the MapWindow was not correct on 18830bbfda8aSnia those servers. Use 18840bbfda8aSnia 18850bbfda8aSnia EXTRA_DEFINES = -DBUGGY_HP700_SERVER 18860bbfda8aSnia 18870bbfda8aSnia in your Imakefile if you plan to use this server. It doesn't 18880bbfda8aSnia break on others servers. 18890bbfda8aSnia 18900bbfda8aSnia * No longer core dump if MapWindowCurrentWorkSpace or 18910bbfda8aSnia MapWindowDefaultWorkSpace are specified before WorkSpaces in 18920bbfda8aSnia .ctwmrc 18930bbfda8aSnia 18940bbfda8aSnia * Small windows handling in the WorkspaceMap window works even if the 18950bbfda8aSnia Workspace Manager window has a title (that was not the case with 18960bbfda8aSnia ctwm-2.0). 18970bbfda8aSnia 18980bbfda8aSnia * ForceIcon works for Xpm icons. 18990bbfda8aSnia 19000bbfda8aSnia * Occupation of "transient for" window is correct. 19010bbfda8aSnia 19020bbfda8aSnia * RestartPreviousState necessary to keep previous window occupation 19030bbfda8aSnia on restart. 19040bbfda8aSnia 19050bbfda8aSnia * If a window dies while Occupy Window is mapped, the Occupy Window 19060bbfda8aSnia is correctly unmapped. 19070bbfda8aSnia 19080bbfda8aSnia1. Ctwm now maintains the `WM_CURRENTWORKSPACE` property on the root 19090bbfda8aSnia window and `WM_OCCUPATION` on every windows. They mean what you 19100bbfda8aSnia think. These properties are string properties and are in clear text 19110bbfda8aSnia instead of an obscure mask. If an external application changes these 19120bbfda8aSnia properties ctwm respond with the correct actions, changing the 19130bbfda8aSnia current workspace or the occupation of a window. I give a small 19140bbfda8aSnia example (gtw.c). An application can manage its occupation and it is 19150bbfda8aSnia even possible to write an external workspace manager. It is of course 19160bbfda8aSnia not ICCCM compliant because ICCCM says nothing on multiple 19170bbfda8aSnia workspaces. The special names "all" and "current" can be used. And 19180bbfda8aSnia you can specify relative occupations if the workspace names list 19190bbfda8aSnia begin with a "+" or "-" (ex: "+current" adds a window to the current 19200bbfda8aSnia workspace). 19210bbfda8aSnia 19220bbfda8aSnia1. 3 new functions: 19230bbfda8aSnia 19240bbfda8aSnia `f.pin` 19250bbfda8aSnia : Pin/Unpin a menu on the screen. Only usable inside a root menu. 19260bbfda8aSnia 19270bbfda8aSnia `f.vanish` 19280bbfda8aSnia : Remove a window from the current workspace. Works only if the 19290bbfda8aSnia window occupies at least one other workspace. 19300bbfda8aSnia 19310bbfda8aSnia `f.warphere "win-name"` 19320bbfda8aSnia : Adds the window whose name matches win-name to the current 19330bbfda8aSnia workspace and warps the pointer to it. 19340bbfda8aSnia 19350bbfda8aSnia1. And a new keyword: `NoShowOccupyAll`. Tells ctwm not to show 19360bbfda8aSnia OccupyAll windows in the WorkSpaceMap window. 19370bbfda8aSnia 19380bbfda8aSnia1. All window names can now be specified as (shell-like) regular expressions. 19390bbfda8aSnia 19400bbfda8aSnia 19410bbfda8aSnia 19420bbfda8aSnia## 2.0 (date unknown) 19430bbfda8aSnia 19440bbfda8aSnia1. A few bugs fixed: 19450bbfda8aSnia 19460bbfda8aSnia * Resize at window creation with button2 works. 19470bbfda8aSnia 19480bbfda8aSnia * Some others i don't remember. 19490bbfda8aSnia 19500bbfda8aSnia1. Better support of monochrome displays: video inverse instead of 3d 19510bbfda8aSnia buttons. 19520bbfda8aSnia 19530bbfda8aSnia1. WorkSpaceManager and Occupy Window are now resizable. Don't forget to 19540bbfda8aSnia verify you have a powerful server before resizing the workspace 19550bbfda8aSnia manager with OpaqueResize set. 19560bbfda8aSnia 19570bbfda8aSnia1. X11R4 support with Imakefile.X11R4 (i didn't try so tell me). 19580bbfda8aSnia 19590bbfda8aSnia1. The visibility of the workspace manager is now consistant with the 19600bbfda8aSnia visibility of the icon managers. This mean that by default the 19610bbfda8aSnia workspace manager is *NOT* visible at startup. Use the 19620bbfda8aSnia ShowWorkSpaceManager to make it visible at startup. 19630bbfda8aSnia 19640bbfda8aSnia1. Two new functions: f.showworkspacemgr and f.hideworkspacemgr have been 19650bbfda8aSnia added. They do what you imagine. 19660bbfda8aSnia 19670bbfda8aSnia1. And now, the cherry on the cake. The workspace manager has now 2 19680bbfda8aSnia states, the button state (the usual one) and the map state (the new 19690bbfda8aSnia one). In the map state the buttons are replaced by windows 19700bbfda8aSnia displaying a synthetic view of the corresponding workspaces. All 19710bbfda8aSnia the non-iconified windows of the workspace are shown as small windows 19720bbfda8aSnia with the icon name written in it. It looks like the virtual 19730bbfda8aSnia screen of [t]vtwm, but, of course, much nicer. 19740bbfda8aSnia 19750bbfda8aSnia * In this state, you can modify directly the occupation of your 19760bbfda8aSnia windows by manipulating these little windows. 19770bbfda8aSnia 19780bbfda8aSnia * Button1 move a window from a workspace to another. 19790bbfda8aSnia * Button2 copy a window from a workspace to another. 19800bbfda8aSnia * Button3 remove a window from a workspace. 19810bbfda8aSnia 19820bbfda8aSnia * Clicking in the "root" of these windows warps you to the 19830bbfda8aSnia corresponding workspace. Clicking and releasing Button1 or 19840bbfda8aSnia Button2 quickly in a small window go to the corresponding 19850bbfda8aSnia workspace and warps the pointer to the corresponding window. 19860bbfda8aSnia 19870bbfda8aSnia * The Control-Key (Press and Release) in workspace manager toggles 19880bbfda8aSnia the buttons and map state. 19890bbfda8aSnia 19900bbfda8aSnia * Four variables and Three functions manipulates this: 19910bbfda8aSnia 19920bbfda8aSnia * StartInMapState: The map state is selected at startup, default is 19930bbfda8aSnia buttons state. 19940bbfda8aSnia 19950bbfda8aSnia * MapWindowCurrentWorkSpace: The aspect of the current workspace in 19960bbfda8aSnia the map window. 19970bbfda8aSnia 19980bbfda8aSnia * MapWindowDefaultWorkSpace: Specify the aspect of the non-current 19990bbfda8aSnia workspaces in the map window. 20000bbfda8aSnia 20010bbfda8aSnia * MapWindowBackground: 20020bbfda8aSnia * MapWindowForeground: Specify the aspect of the small windows in 20030bbfda8aSnia the map window on a per-client basis. 20040bbfda8aSnia 20050bbfda8aSnia * f.setbuttonsstate: You can guess. 20060bbfda8aSnia 20070bbfda8aSnia * f.setmapstate: You can guess. 20080bbfda8aSnia 20090bbfda8aSnia * f.togglestate: You can guess. 20100bbfda8aSnia 20110bbfda8aSnia1. AutoRaise with RaiseDelay. Thanks to Johan Vromans <<jv@mh.nl>> who 20120bbfda8aSnia gave me this patch. I think Warren Jessop <<whj@cs.washington.edu>> 20130bbfda8aSnia wrote it for twm. 20140bbfda8aSnia 20150bbfda8aSnia 20160bbfda8aSnia 20170bbfda8aSnia## 1.3 (1992-09-16) 20180bbfda8aSnia 20190bbfda8aSnia1. Many bugs fixed: 20200bbfda8aSnia 20210bbfda8aSnia * Partial geometry in the WorkSpaceManagerGeometry statement no 20220bbfda8aSnia longer cause ctwm to core dump. 20230bbfda8aSnia 20240bbfda8aSnia * The occupy window name now is "Occupy Window" instead of "Occupy WIndow" 20250bbfda8aSnia a typo on the uppercase I in window. 20260bbfda8aSnia 20270bbfda8aSnia * Several types problems that make good compilers to issue warnings. 20280bbfda8aSnia 20290bbfda8aSnia * The icons of the WorkSpaceManager and Occupy Window windows now 20300bbfda8aSnia behave correctly with ButtonPress. 20310bbfda8aSnia 20320bbfda8aSnia * UnknownIcon can now have Xpm icons specified. 20330bbfda8aSnia 20340bbfda8aSnia * f.showiconmgr no longer map empty icon managers. 20350bbfda8aSnia 20360bbfda8aSnia * The ctwm process is smaller (even smaller than twm). 20370bbfda8aSnia 20380bbfda8aSnia1. Add the Occupy command in .ctwmrc, you can now specify at startup 20390bbfda8aSnia which window occupy which workspace. Example: 20400bbfda8aSnia 20410bbfda8aSnia Occupy { 20420bbfda8aSnia "xload" {"all"} 20430bbfda8aSnia Window "xterm" {"here" "there" "elsewhere"} 20440bbfda8aSnia "xv" {"images"} 20450bbfda8aSnia WorkSpace "images" {"xloadimage"} 20460bbfda8aSnia } 20470bbfda8aSnia 20480bbfda8aSnia 20490bbfda8aSnia 20500bbfda8aSnia## 1.2 (date unknown) 20510bbfda8aSnia 20520bbfda8aSnia1. You can now directly edit workspace names in their buttons. only 20530bbfda8aSnia printable characters, delete and backspace keys are honored. 20540bbfda8aSnia 20550bbfda8aSnia1. Ctwm now handle shaped colored icons in XPM format. This added the 20560bbfda8aSnia variable XPMIconDirectory, and slightly modified the syntax of the 20570bbfda8aSnia Icons command. The XPM icon file names should be prefixed by the 20580bbfda8aSnia character '@' to distinguished them from the ordinary bitmap files. 20590bbfda8aSnia 20600bbfda8aSnia Example: 20610bbfda8aSnia 20620bbfda8aSnia XPMIconDirectory "/usr/lib/X11/X11/XPM" 20630bbfda8aSnia 20640bbfda8aSnia Icons { 20650bbfda8aSnia "Axe" "@xedit.xpm" 20660bbfda8aSnia "xterm" "@xterm.xpm" 20670bbfda8aSnia "xrn" "@xrn.xpm" 20680bbfda8aSnia "HPterm" "@hpterm.xpm" 20690bbfda8aSnia "XAlarm" "@datebook.xpm" 20700bbfda8aSnia "Xman" "@xman.xpm" 20710bbfda8aSnia } 20720bbfda8aSnia 20730bbfda8aSnia These above xpm pixmap are given. 20740bbfda8aSnia 20750bbfda8aSnia1. Many bugs fixed: 20760bbfda8aSnia 20770bbfda8aSnia * Icon regions now works. 20780bbfda8aSnia * The absence of ShowIconManager is taken into account. 20790bbfda8aSnia * The `-iconic` flag is honored. 20800bbfda8aSnia * The `-xrm 'ctwm.workspace'` works as expected. 20810bbfda8aSnia * I think that f.warpto[to|ring] works correctly i.e warps. Also to 20820bbfda8aSnia the correct workspace if the destination window doesn't occupy 20830bbfda8aSnia the current workspace. 20840bbfda8aSnia * A few minor bugs fixed. 20850bbfda8aSnia 20860bbfda8aSnia 20870bbfda8aSnia 20880bbfda8aSnia## 1.1 (1992-06-24 or 26) 20890bbfda8aSnia 20900bbfda8aSnia1. Correction of a few bugs 20910bbfda8aSnia 20920bbfda8aSnia1. Add the OpaqueResize flag: similar to OpaqueMove, but redraw the 20930bbfda8aSnia window you are resizing at each motion event. Extremely resource 20940bbfda8aSnia consuming, but beautiful with fast server/client/network. 20950bbfda8aSnia 20960bbfda8aSnia1. Now if you don't specify any background/foreground/pixmap indication 20970bbfda8aSnia for the root window, ctwm leave it alone so you can have your own 20980bbfda8aSnia root background pixmap. 20990bbfda8aSnia 21000bbfda8aSnia1. You can now specify on the command line a list of workspaces in which a 21010bbfda8aSnia new client opens. The syntax is: 21020bbfda8aSnia 21030bbfda8aSnia whatever_client -xrm 'ctwm.workspace: name1 name2 ... namen' 21040bbfda8aSnia 21050bbfda8aSnia or 21060bbfda8aSnia 21070bbfda8aSnia whatever_client -xrm 'ctwm.workspace: all' 21080bbfda8aSnia 21090bbfda8aSnia where 'name1', 'name2', ..., 'namen' are names of workspaces and 21100bbfda8aSnia 'all' refers to all workspaces. Example: 21110bbfda8aSnia 21120bbfda8aSnia xload -xrm 'ctwm.workspace: all' 21130bbfda8aSnia 21140bbfda8aSnia1. Add the OccupyAll command in .ctwmrc, you can now specify at startup 21150bbfda8aSnia a list of windows that occupy all the workspaces. Example: 21160bbfda8aSnia 21170bbfda8aSnia OccupyAll { 21180bbfda8aSnia "xload" 21190bbfda8aSnia "xconsole" 21200bbfda8aSnia "xbiff" 21210bbfda8aSnia } 21220bbfda8aSnia 21230bbfda8aSnia1. Add the f.gotoworkspace function. It goes the workspace specified by 21240bbfda8aSnia its name. Example: 21250bbfda8aSnia 21260bbfda8aSnia "F1" = : root : f.gotoworkspace "cognac" 21270bbfda8aSnia 21280bbfda8aSnia 21290bbfda8aSnia 21300bbfda8aSnia## 1.0 (after 1992-04-22) 21310bbfda8aSnia 21320bbfda8aSnia 21330bbfda8aSnia 21340bbfda8aSnia 21350bbfda8aSnia 21360bbfda8aSnia{>> 21370bbfda8aSnia vim:expandtab:ft=markdown:formatoptions-=q:formatoptions+=2 21380bbfda8aSnia<<} 2139