Current Release

Current release: 4.1.0

Platform Support

CTWM has historically supported (to some extent at least) a gigantic list of platforms. But most of them are now defunct, and have been for many years. As of 4.0.0, we're no longer worrying much about breaking older systems. If you're using CTWM on something significantly different from a reasonably modern *nix system, there's a fair chance it'll break at some point.

We require a compiler with at least basic C99-level capabilities, moderately current POSIX compatibility, and some non-standard but common extensions like getopt_long(3) and asprintf(3).

We'd be happy to hear from you on the mailing list if things do break for you, and if you're willing to help test and shepherd the platform longer term, we're happy to work with you to keep it going. But platforms out of the ordinary that lack an active voice in the community are probably going to be left behind. Sorry.

Source Repository

The CTWM source is managed using Breezy. The repository is hosted on launchpad, with the main branch being lp:ctwm See the project page on launchpad for more. Formerly Bazaar was the recommended program for interacting with the repository; it would still work if you have it, but since it requires python 2.7 it's no longer recommended (or even easy to get working on many platforms).


If you're pulling the current dev code intending to work on the codebase, see the more detailed docs linked below. However, if you're just wanting to pull down the code to run and test it, you can follow a more simplified process.

You'll need to have brz installed. In most OS's, it would be in a package called 'brz' or 'breezy'; if you wind up with a baz command, you got the wrong one (and should flee in terror). The Breezy site has more download/install instructions.

## Create a workspace and get the current code
% mkdir -p ~/src/ctwm
% cd ~/src/ctwm
% brz branch lp:ctwm trunk

## The `brz branch command will probably give a warning about
## "launchpad-login".  If you're not intending to push code back
## up to launchpad, you can ignore it.

## Build, etc
% cd ~/src/ctwm/trunk
% make
% vi whatever
  [... etc ...]

## Pull down changes over time
% cd ~/src/ctwm/trunk
% brz pull
% make
  [... etc ...]


Here is a crash course describing how to use brz for developing CTWM.


A semi-official git mirror is maintained on github at Note that this is a read-only mirror, so using it as a basis for development you intend to contribute back, sending pull requests, etc, won't work any better than just sending patches. It's mostly useful to fetch the source for people more comfortable with git, or for special situations where using brz isn't an option.

Old Releases