Create a custom Atom application version


Hey there,

I was considering creating a special fork/package/something (not sure of correct terms) of Atom with a set of packages and configurations suited to a specific purpose. Much like Facebook Nuclide for example.

Is there a simple and ‘official’ process for something like this? Be it an actual fork, or some sort of packaging script?


It depends on what configurations you’re looking for. In some cases (like tool-bar), packages are set up to accept configurations from outside packages or config.cson. This is how Nuclide generates its toolbar. There are some packages with config options that really have to be set via Settings or by someone with access to the package’s source. If you don’t want to edit any of those, then you don’t have to fork anything.

Packages like Nuclide and every tool-bar and atom-linter plugin have instructions in their package.json file to tell Atom to download certain other packages (Nuclide uses the key package-deps while tool-bar-atom uses packageDependencies). PlatformIO actually defines those dependencies in code.


Cool thanks! Just creating a custom dependencies file might be a nice ‘lean’ start to see if there’s interest and demand, or if I feel any config changes are needed.

I want to make an Atom tailored for writers, because I feel that it’s one of tailored best editors around when used with a couple of different plugins and some tweaks.


That shouldn’t require more complex configurations than a custom toolbar.

I agree, and I’ve considered that myself. One thing I’ve juggled around in my head is an idea for a package that maintains your table of contents for you. That is, it looks at the directories containing your text, puts everything in the order you tell it to be in, provides a pane or modal containing a mockup with links to jump to each section, and will export into Pandoc or markdown when you’re ready to assemble the document. There are a couple of packages that generate a TOC from a single markdown file, but they are simplistic and don’t do much for someone while they’re editing. What I’m imagining would be like a living outline that’s constantly updated (with optional annotations) so that you can stand back and see the whole scope of your work.


Cool, I am going to write a blog post first documenting what I use, why and how, and then think about this some more. I am also working on a my own couple of plugins, but got stuck with one question here if you have any idea…