712.1.2
by Matthew Fuller
Convert README from multimarkdown to asciidoc. |
1 |
= CTWM |
308.1.1
by Matthew Fuller
Rewrite README into multimarkdown. Relatively few changes. |
2 |
|
712.1.2
by Matthew Fuller
Convert README from multimarkdown to asciidoc. |
3 |
== Intro |
308.1.1
by Matthew Fuller
Rewrite README into multimarkdown. Relatively few changes. |
4 |
|
5 |
ctwm is an extension to twm, originally written by Claude Lecommandeur |
|
286
by Matthew Fuller
Expand these tabs and set a modeline to keep doing it. |
6 |
that support multiple virtual screens, and a lot of other goodies. |
62
by Richard Levitte
Rework the README. |
7 |
|
308.1.1
by Matthew Fuller
Rewrite README into multimarkdown. Relatively few changes. |
8 |
You can use and manage up to 32 virtual screens called workspaces. You |
9 |
swap from one workspace to another by clicking on a button in an |
|
62
by Richard Levitte
Rework the README. |
10 |
optionnal panel of buttons (the workspace manager) or by invoking a |
11 |
function. |
|
12 |
||
308.1.1
by Matthew Fuller
Rewrite README into multimarkdown. Relatively few changes. |
13 |
You can customize each workspace by choosing different colors, names and |
62
by Richard Levitte
Rework the README. |
14 |
pixmaps for the buttons and background root windows. |
15 |
||
308.1.1
by Matthew Fuller
Rewrite README into multimarkdown. Relatively few changes. |
16 |
Major features include: |
62
by Richard Levitte
Rework the README. |
17 |
|
308.1.1
by Matthew Fuller
Rewrite README into multimarkdown. Relatively few changes. |
18 |
* Optional 3D window titles and border (ala Motif). |
19 |
* Shaped, colored icons. |
|
20 |
* Multiple icons for clients based on the icon name. |
|
21 |
* Windows can belong to several workspaces. |
|
22 |
* A map of your workspaces to move quickly windows between |
|
62
by Richard Levitte
Rework the README. |
23 |
different workspaces. |
308.1.1
by Matthew Fuller
Rewrite README into multimarkdown. Relatively few changes. |
24 |
* Animations: icons, root backgrounds and buttons can be animated. |
25 |
* Pinnable and sticky menus. |
|
26 |
* etc... |
|
62
by Richard Levitte
Rework the README. |
27 |
|
584.1.14
by Matthew Fuller
We're a long way from "slightly modified twm sources". |
28 |
The sources files were once the twm ones only workmgr.[ch] added (written |
29 |
from scratch by Claude Lecommandeur) and minor modifications to some twm |
|
30 |
files. Since then much more extensive changes and reorganization have |
|
31 |
been done, so the codebase is now significantly different from plain twm. |
|
62
by Richard Levitte
Rework the README. |
32 |
|
275
by Matthew Fuller
Don't suggest people send a not [sic] to Richard, just point |
33 |
If you find bugs in ctwm, or just want to tell us how much you like it, |
34 |
please send a report to the mailing list. |
|
35 |
||
308.1.1
by Matthew Fuller
Rewrite README into multimarkdown. Relatively few changes. |
36 |
There is a manual page, which always needs more work (any volunteers?). |
408.1.4
by Matthew Fuller
Add suffixes to a couple xrefs where it makes sense. Don't chase |
37 |
Many useful information bits are only in the CHANGES.md file, so please |
38 |
read it. |
|
308.1.1
by Matthew Fuller
Rewrite README into multimarkdown. Relatively few changes. |
39 |
|
40 |
||
712.1.2
by Matthew Fuller
Convert README from multimarkdown to asciidoc. |
41 |
== Configuration |
308.1.1
by Matthew Fuller
Rewrite README into multimarkdown. Relatively few changes. |
42 |
|
43 |
ctwm is build using CMake, which does its best to root around in your |
|
294.1.45
by Matthew Fuller
Update README to describe how to use cmake for the build. |
44 |
system to find the pieces the build needs. Occasionally though you might |
45 |
have to give it some help, or change the defaults of what features are |
|
46 |
expected. |
|
47 |
||
48 |
In the common case, the included Makefile will do the necessary |
|
49 |
invocations, and you won't need to worry about it; just run a normal |
|
308.1.1
by Matthew Fuller
Rewrite README into multimarkdown. Relatively few changes. |
50 |
`make ; make install` invocation. If you need to make alterations
|
294.1.45
by Matthew Fuller
Update README to describe how to use cmake for the build. |
51 |
though, you may have to invoke cmake manually and set various params on
|
52 |
the command line (cmake also has various GUI configurators, not covered
|
|
53 |
here).
|
|
54 |
||
399.1.18
by Matthew Fuller
Actually, this is probably better phrasing. |
55 |
The following parameters control configuration/installation locations:
|
399.1.14
by Matthew Fuller
Document the override params for install locations. |
56 |
|
712.1.2
by Matthew Fuller
Convert README from multimarkdown to asciidoc. |
57 |
CMAKE_INSTALL_PREFIX::
|
58 |
Where paths are based. This is a standard cmake var. Referred
|
|
584.1.15
by Matthew Fuller
Clarify naming. |
59 |
to as `$PREFIX` below.
|
399.1.14
by Matthew Fuller
Document the override params for install locations. |
60 |
|
712.1.2
by Matthew Fuller
Convert README from multimarkdown to asciidoc. |
61 |
ETCDIR::
|
62 |
Where ctwm will look for a `system.ctwmrc` to fall back to if it
|
|
399.1.14
by Matthew Fuller
Document the override params for install locations. |
63 |
doesn't find a per-user config. Nothing is installed here by |
64 |
default. |
|
65 |
(default: `$PREFIX/etc`) |
|
66 |
||
712.1.2
by Matthew Fuller
Convert README from multimarkdown to asciidoc. |
67 |
BINDIR:: |
68 |
Where the ctwm binary is installed. |
|
399.1.14
by Matthew Fuller
Document the override params for install locations. |
69 |
(default: `$PREFIX/bin`) |
70 |
||
712.1.2
by Matthew Fuller
Convert README from multimarkdown to asciidoc. |
71 |
DATADIR:: |
72 |
Where run-time data like image pixmaps are installed. |
|
399.1.14
by Matthew Fuller
Document the override params for install locations. |
73 |
(default: `$PREFIX/share/ctwm`) |
74 |
||
712.1.2
by Matthew Fuller
Convert README from multimarkdown to asciidoc. |
75 |
MANDIR:: |
76 |
Base directory under which manpage dirs like `man1` and `man2` |
|
399.1.14
by Matthew Fuller
Document the override params for install locations. |
77 |
live. |
584.1.16
by Matthew Fuller
Improve wording. |
78 |
(default: `$PREFIX/share/man` or `$PREFIX/man`, whichever is |
79 |
found first) |
|
399.1.14
by Matthew Fuller
Document the override params for install locations. |
80 |
|
712.1.2
by Matthew Fuller
Convert README from multimarkdown to asciidoc. |
81 |
DOCDIR:: |
82 |
Where non-manpage docs are installed. |
|
399.1.14
by Matthew Fuller
Document the override params for install locations. |
83 |
(default: `$PREFIX/share/doc/ctwm`) |
84 |
||
712.1.2
by Matthew Fuller
Convert README from multimarkdown to asciidoc. |
85 |
EXAMPLEDIR:: |
86 |
Where various example files get installed. These include the |
|
399.1.14
by Matthew Fuller
Document the override params for install locations. |
87 |
system.ctwmrc that is compiled into ctwm as a fallback. |
88 |
(default: `$PREFIX/share/examples/ctwm`) |
|
89 |
||
90 |
||
294.1.45
by Matthew Fuller
Update README to describe how to use cmake for the build. |
91 |
The following parameters control the features/external libs that are |
92 |
available. The defaults can be changed by passing parameters like |
|
308.1.1
by Matthew Fuller
Rewrite README into multimarkdown. Relatively few changes. |
93 |
`-DUSE_XYZ=OFF` to the cmake command line. |
94 |
||
712.1.2
by Matthew Fuller
Convert README from multimarkdown to asciidoc. |
95 |
USE_M4:: |
96 |
Enables use of m4(1) for preprocessing config files at runtime. |
|
308.1.1
by Matthew Fuller
Rewrite README into multimarkdown. Relatively few changes. |
97 |
If your m4 is called something other than `m4` or `gm4`, you may |
98 |
need to also set M4_CMD to point at it. |
|
99 |
(**ON** by default) |
|
100 |
||
712.1.2
by Matthew Fuller
Convert README from multimarkdown to asciidoc. |
101 |
USE_XPM:: |
102 |
Enables the use of XPM images. Disable if libxpm isn't present, |
|
308.1.1
by Matthew Fuller
Rewrite README into multimarkdown. Relatively few changes. |
103 |
which is just barely possible on very old systems.
|
104 |
(**ON** by default)
|
|
105 |
||
712.1.2
by Matthew Fuller
Convert README from multimarkdown to asciidoc. |
106 |
USE_JPEG::
|
107 |
Enables the use of jpeg images via libjpeg. Disable if libjpeg
|
|
308.1.1
by Matthew Fuller
Rewrite README into multimarkdown. Relatively few changes. |
108 |
isn't present. |
109 |
(**ON** by default) |
|
110 |
||
712.1.2
by Matthew Fuller
Convert README from multimarkdown to asciidoc. |
111 |
USE_EWMH:: |
112 |
Enables EWMH support. |
|
365
by Matthew Fuller
Document USE_EWMH param. |
113 |
(**ON** by default) |
114 |
||
712.1.2
by Matthew Fuller
Convert README from multimarkdown to asciidoc. |
115 |
USE_RPLAY:: |
116 |
Build with sound support via librplay. `USE_SOUND` is a still |
|
463.1.26
by Matthew Fuller
Switch USE_SOUND to USE_RPLAY (while noting that the former is still |
117 |
valid but deprecated alias for this, and will give a warning. |
308.1.1
by Matthew Fuller
Rewrite README into multimarkdown. Relatively few changes. |
118 |
(**OFF** by default) |
119 |
||
712.1.2
by Matthew Fuller
Convert README from multimarkdown to asciidoc. |
120 |
USE_XRANDR:: |
121 |
Enables the use of multi-monitors of different sizes via |
|
614.1.124
by Matthew Fuller
Tweak wording. |
122 |
libXrandr. Disable if libXrandr isn't present or is older than 1.5. |
614.1.11
by Maxime Soulé
Xrandr support can be disabled at compile time (ON by default) |
123 |
(**ON** by default)
|
124 |
||
294.1.45
by Matthew Fuller
Update README to describe how to use cmake for the build. |
125 |
|
126 |
Additional vars you might need to set:
|
|
127 |
||
712.1.2
by Matthew Fuller
Convert README from multimarkdown to asciidoc. |
128 |
M4_CMD::
|
129 |
Name of m4 program, if it's not `m4` or `gm4`, or full path to it |
|
399.1.15
by Matthew Fuller
Tweak desc of M4_CMD as long as I'm editing this file. |
130 |
if it's not in your `$PATH`. |
308.1.1
by Matthew Fuller
Rewrite README into multimarkdown. Relatively few changes. |
131 |
|
132 |
||
133 |
## Building
|
|
108
by Richard Levitte
Enhance the README with configuration information adapted to the |
134 |
|
294.1.45
by Matthew Fuller
Update README to describe how to use cmake for the build. |
135 |
In the simple case, the defaults should work. Most modern or semi-modern
|
136 |
systems should fall into this.
|
|
137 |
||
308.1.1
by Matthew Fuller
Rewrite README into multimarkdown. Relatively few changes. |
138 |
funny prompt> make
|
294.1.72
by Matthew Fuller
Expand verbiage about adding extra config bits to cmake a little, to |
139 |
|
140 |
If you need to add special config, you'll have to pass extra bits to |
|
141 |
cmake via an invocation like |
|
142 |
||
308.1.1
by Matthew Fuller
Rewrite README into multimarkdown. Relatively few changes. |
143 |
funny prompt> make CMAKE_EXTRAS="-DUSE_XPM=OFF -DM4_CMD=superm4" |
294.1.72
by Matthew Fuller
Expand verbiage about adding extra config bits to cmake a little, to |
144 |
|
145 |
Though in more complicated cases it may be simpler to just invoke cmake |
|
146 |
directly: |
|
147 |
||
308.1.1
by Matthew Fuller
Rewrite README into multimarkdown. Relatively few changes. |
148 |
funny prompt> ( cd build ; cmake -DUSE_XPM=OFF -DM4_CMD=superm4 .. ) |
149 |
funny prompt> make |
|
150 |
||
712.1.2
by Matthew Fuller
Convert README from multimarkdown to asciidoc. |
151 |
=== Required Libs |
544
by Matthew Fuller
Add a little verbiage about the X libs we need to build and possibly |
152 |
|
153 |
ctwm requires various X11 libraries to be present. That list will |
|
154 |
generally include libX11, libXext, libXmu, libXt, libSM, and libICE. |
|
155 |
Depending on your configuration, you may require extra libs as discussed |
|
644.1.2
by Matthew Fuller
Rewrap. |
156 |
above (libXpm, libjpeg, and libXrandr are included in the default |
157 |
config). If you're on a system that separates header files etc. from the |
|
158 |
shared lib itself (many Linux dists do), you'll probably need -devel or |
|
159 |
similarly named packages installed for each of them as well. |
|
544
by Matthew Fuller
Add a little verbiage about the X libs we need to build and possibly |
160 |
|
308.1.1
by Matthew Fuller
Rewrite README into multimarkdown. Relatively few changes. |
161 |
|
162 |
||
712.1.2
by Matthew Fuller
Convert README from multimarkdown to asciidoc. |
163 |
== Installation |
308.1.1
by Matthew Fuller
Rewrite README into multimarkdown. Relatively few changes. |
164 |
|
165 |
funny prompt> make install |
|
166 |
||
712.1.2
by Matthew Fuller
Convert README from multimarkdown to asciidoc. |
167 |
=== Packaging |
469
by Matthew Fuller
Drop a quick doc to suggest how to use cpack to build RPM's, and |
168 |
|
169 |
The CMake build system includes sufficient info for CPack to be used to |
|
170 |
build RPM (and presumably, though not tested, DEB) packages. As a quick |
|
171 |
example of usage: |
|
172 |
||
173 |
funny prompt> make |
|
174 |
funny prompt> (cd build && cpack -G RPM) |
|
175 |
||
308.1.1
by Matthew Fuller
Rewrite README into multimarkdown. Relatively few changes. |
176 |
|
712.1.2
by Matthew Fuller
Convert README from multimarkdown to asciidoc. |
177 |
== Dev and Support |
308.1.1
by Matthew Fuller
Rewrite README into multimarkdown. Relatively few changes. |
178 |
|
712.1.2
by Matthew Fuller
Convert README from multimarkdown to asciidoc. |
179 |
=== Mailing list |
308.1.1
by Matthew Fuller
Rewrite README into multimarkdown. Relatively few changes. |
180 |
|
181 |
There is a mailing list for discussions: <ctwm@ctwm.org>. Subscribe by |
|
182 |
sending a mail with the subject "subscribe ctwm" to |
|
183 |
<minimalist@ctwm.org>. |
|
184 |
||
712.1.2
by Matthew Fuller
Convert README from multimarkdown to asciidoc. |
185 |
=== Repository |
308.1.1
by Matthew Fuller
Rewrite README into multimarkdown. Relatively few changes. |
186 |
|
680
by Matthew Fuller
Swap README ref from bzr to brz. |
187 |
ctwm development uses breezy (see <https://www.breezy-vcs.org/>) for |
308.1.1
by Matthew Fuller
Rewrite README into multimarkdown. Relatively few changes. |
188 |
version control. The code is available on launchpad as `lp:ctwm`. See |
189 |
<https://launchpad.net/ctwm> for more details. |
|
190 |
||
191 |
||
712.1.2
by Matthew Fuller
Convert README from multimarkdown to asciidoc. |
192 |
== Further information |
308.1.1
by Matthew Fuller
Rewrite README into multimarkdown. Relatively few changes. |
193 |
|
194 |
Additional information can be found from the project webpage, at |
|
584.1.17
by Matthew Fuller
https-ize link to project page. |
195 |
<https://www.ctwm.org/>. |
308.1.1
by Matthew Fuller
Rewrite README into multimarkdown. Relatively few changes. |
196 |
|
197 |
||
712.1.2
by Matthew Fuller
Convert README from multimarkdown to asciidoc. |
198 |
// vim:expandtab |