Current release: 4.0.2
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.
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 bzr installed. In most OS's, it would be in a package called 'bzr' or 'bazaar'; if you wind up with a baz command, you got the wrong one (and should flee in terror).
## Create a workspace and get the current code % mkdir -p ~/src/ctwm % cd ~/src/ctwm % bzr branch lp:ctwm trunk ## The `bzr 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 % bzr pull % make [... etc ...]
Here is a crash course describing how to use bzr for developing CTWM.
A semi-official git mirror is maintained on github at https://github.com/fullermd/ctwm-mirror. 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 bzr isn't an option.