README
1This is a port of OpenBSD's excellent cwm[0] to Linux and other Unices.
2
3 cwm is a window manager for X11 which contains many features that
4 concentrate on the efficiency and transparency of window
5 management. cwm also aims to maintain the simplest and most
6 pleasant aesthetic.
7
8This port requires pkg-config, Xft, Xinerama and Xrandr. The included Makefile
9should work with both GNU make and BSD make. It has been built successfully on
10OpenBSD, FreeBSD, NetBSD, OS X 10.9 and Linux.
11
12This version actively tracks changes in the OpenBSD CVS repository.
13Releases are roughly coordinated.
14
15The revision controlled version is at https://github.com/leahneukirchen/cwm
16Releases can be found at http://leahneukirchen.org/releases
17
18You are welcome to join the IRC channel ##cwm on Freenode to talk about cwm.
19
20
21ChangeLog:
22
232012-05-02: First public release 5.1 of portable cwm.
24
252014-04-13: Second public release 5.5 of portable cwm.
26
27User visible changes (for a full list including smaller bug fixes, see
28http://www.openbsd.org/plus.html ff.)
29
30Changes made between OpenBSD 5.1 and 5.2
31* Fixed cwm(1) atom (WM_PROTOCOLS) style handing; closing a window will no
32 longer close entire application if the client supports CLIENT_PROTO_DELETE.
33* Re-implement atom handing for more consistent separation of cwm(1) and
34 Extended Window Manager Hints.
35* cwm(1) better integrated into the freedesktop.org Window Manager
36 Specification Project.
37
38Changes made between OpenBSD 5.2 and 5.3
39* Set the initial cwm(1) group to "1".
40* Added cwm(1) per-group vert/horiz tiling support with new bind commands
41 "vtile" and "htile."
42* Made cwm(1) screen font an Xft(3) font.
43* Specific last match for autogroup in cwmrc(5).
44* Tab completion support for cwm(1) menus.
45* Allow cwm(1) clients to be resized from a max state.
46* Multibyte input to cwm(1) menu code now possible.
47
48Changes made between OpenBSD 5.3 and 5.4
49* Added support for mouse based group {,r}cycle to cwmrc(5).
50* Allow mouse button4 and button5 in cwmrc(5).
51* Made cwm(1) check for, and honour, CWStackMode and CWSibling change requests
52 during a ConfigureRequest event.
53* Honour PATH search order for cwm(1)'s exec.
54
55Changes made between OpenBSD 5.5 and 5.4
56* Only set the cwm(1) urgency flag if the client is not active.
57* Allow the cwm(1) config parser continue parsing even after encountering an
58 error.
59* cwm(1) now follows the EWMH spec: if the cardinal returned is 0xFFFFFFFF (-1)
60 then the window should appear on all desktops.
61* Made cwm(1) supply a more useful title for windows launched via the ssh(1)
62 command menu ("[ssh] ").
63* Allowed cwm(1) to accept _NET_WM_DESKTOP and _NET_CURRENT_DESKTOP
64 ClientMessage.
65* Implemented cwm(1) support for _NET_WM_STATE_FULLSCREEN hint, with keybinding
66 changes: CM-f "fullscreen", CM-m "maximize".
67* Instead of using the work area, use the Xinerama area for cwm(1) snap
68 calculations.
69* Save-set when cwm(1) is re-exec'ing so as to not lose State on our hidden
70 clients.
71* Added cwmrc(5) support for XUrgency and matching
72 _NET_WM_STATE_DEMANDS_ATTENTION ewmh hint, with configurable urgencyborder.
73* Prepend the group shortcut in the cwm(1) client search menu;
74 prepend shortcut in unhide menu.
75* If not hidden during an UnmapNotify event, cwm(1) will now un-manage the
76 client.
77* Like "gap", made cwm(1) "snapdist" per-screen.
78* Removed cwmrc(5) option to bind a key by keycode with brackets, which never
79 worked. Users should be using keysym names not keycodes.
80* Re-added cwm(1) support for WM_TAKE_FOCUS. Solves keyboard input focus loss
81 for java apps.
82* For cwm(1) clients that support WM_TAKE_FOCUS in their WM_PROTOCOLS property,
83 send a ClientMessage event.
84
852015-01-24: Third public release 5.6 of portable cwm.
86
87* Support building on FreeBSD and OS X.
88* Support for sticky windows (_NET_WM_STATE_STICKY).
89* Internal cleanups and bug fixes.
90
91Changes made between OpenBSD 5.6 and 5.7
92* Implemented _NET_WM_STATE_STICKY in cwm(1). Allows client to "stick"
93 to all desktops or groups.
94* Ensure cwm(1) client that wants to be in nogroup stays in nogroup
95 (thus stays in view), even when (re)reading NET_WM_DESKTOP.
96
97Changes made between OpenBSD 5.7 and 5.8
98* In cwm(1), introduce "groupsearch" for group menu search.
99* In cwm(1), show an empty "ssh to" menu if the known_hosts file is missing.
100* In cwm(1), replace screen region info gathering with XRandR
101 equivalent of Xinerama queries.
102
103Changes made between OpenBSD 5.8 and 5.9
104* Don't allow freeze operations on fullscreen.
105* Implement _NET_CLIENT_LIST_STACKING.
106
1072017-10-17: Fourth public release 6.2 of portable cwm.
108
109Changes made between OpenBSD 6.2 and 6.3
110* Fix blocking bug during moving or resizing.
111* window-snap-* commands to move windows to edges and corners.
112* Add support for _NET_WM_STATE_SKIP_PAGER and _NET_WM_STATE_SKIP_TASKBAR.
113* Add support for re-exec'ing with SIGHUP.
114
1152018-05-14: Fifth public release 6.3 of portable cwm.
116
1172020-01-04: Sixth public release 6.6 of portable cwm.
118
119Changes made between OpenBSD 6.4 and 6.5
120* Added a configtest flag (-n) to cwm(1).
121* Introduced 'group-close-[n]' action to cwm(1) to close all windows
122 within a specified group.
123
1242020-05-22: Seventh public release 6.7 of portable cwm.
125
126Changes made between OpenBSD 6.6 and 6.7
127* Allowed cwm(1) configuration of window size based on percentage of
128 the master window during horizontal and vertical tiling actions.
129* Allowed use of window-htile and window-vtile with the "empty" group
130 clients in cwm(1).
131
132
133--Leah Neukirchen <leah@vuxu.org>
134
135[0]: http://cvsweb.openbsd.org/cgi-bin/cvsweb/xenocara/app/cwm/
136