Custom IDE Configuration

To customize initial set of plugins used in cloud9 create a new file in configs directory named client-workspace-X.js and either provide a custom set of plugins or modify list of plugins returned by client-default.js

"use strict";

module.exports = function(options) {
    // Remove C runner
    delete options.runners['C (simple)'];
    
    var config = require("./client-default")(options);
    
    var includes = [
    ];
    
    var excludes = {
        "plugins/c9.ide.run/gui": true,
        "plugins/c9.ide.run/output": true
    };
    
    config = config.concat(includes).map(function(p) {
        if (typeof p == "string")
            p = { packagePath: p };
        return p;
    }).filter(function (p) {
        if (p.packagePath == "plugins/c9.ide.layout.classic/preload") {
            p.defaultTheme = "flat-light"; // set flat theme as default
        }
        else if (p.packagePath == "plugins/c9.core/settings") {
            if (p.settings)
                p.settings.user = {}; // reset user settings
        }
        return !excludes[p.packagePath];
    });
    
    return config;
};

Now when opening ide with ?workspacetype=X in the url, it will try to load configuration from client-workspace-X.js

Workspace type also can be speciafied by passing --workspacetype=X argument to server.js script.

Configurations created this way can be used to create new workspace types on c9.io