One of the most universal and simple solutions for writing screenplays is Screenwriter, a fork of Screenplay-Mode by Vance L. Simpson. Screenwriter is a plugin for the famous GNU Emacs text editor (or in Emacs terminology, it is a [major] “mode”).

Screenwriter mode is easy to use, efficient, and works on any and every platform that the ubiquitous and revered GNU Emacs works on.

Strengths [Weaknesses]


Write screenplays with on-the-fly formatting, but in the universal format of plain text. This is not a markup language, so what you see is what you will get on the page.


Screenwriter is a plugin for an existing popular editor, meaning that there's nothing to install aside from one .el file. And if you're using Emacs on a daily basis anyway, this fits nicely in with your existing workflow.


Emacs is a complex editor, with a high ceiling that frightens many tech-hesitant users, but Screenwriter mode is easy to use and involves only the simplest keyboard shortcuts.

Weaknesses [Strengths]


Plain text is eternal, but Screenwriter does format the text, so the output is intended for print. It being plain text, the formatting can be easily reversed, but Screenwriter output is not as unstructured as Fountain markup.


There's no denying that the Emacs interface is unique. Even though Screenwriter uses only the most basic features of Emacs, it's common for users to find complexity in the most unexpected places. For a more familiar interface that acts more like a modern word processor, try Trelby.


If you are running a default install of Slackware, as Slackermedia recommends, then you will have Emacs installed already. If you have not installed Emacs, you will find it in the e package set and is available on your install media, Slackpkg, or directly from a Slackware mirror.

Installing .el files for Emacs is as simple as placing the .el in a user-owned ~/elisp directory, and then adding that ~/elisp directory into Emacs's load directory if it is not already there:

$ mkdir ~/elisp
$ wget
$ tar -xf screenwriter-X.Y.Z.tar.gz
$ mv ./screenwriter-mode/screenwriter.el ~/elisp
$ echo "(add-to-list 'load-path \"~/elisp\")" >> .emacs 
$ echo "(require 'screenplay)" >> .emacs


Start Emacs from either the K Menu or from a terminal. Once Emacs is open, press alt x, and type screenwriter-mode. You are now in screenplay-mode and can write in proper screenplay format.

Screenwriting in Emacs.

There are three elements in screenplays:

  • Slug Lines - scene headings, such as INT. CAFE - NIGHT
  • Screen Direction (or “action”) - text describing what a character is doing physically during a scene
  • Dialogue - heavily indented blocks of text in which characters speak
  • Transitions - FADE IN, FADE OUT, DISSOLVE TO, and so on

Accessing each element is done with keyboard commands that can be easily remembered with the mnemonic (more or less) SAD:

  • ctrl c, s Slugline
  • ctrl c, a Action (Screen direction)
  • ctrl c, d Dialogue

Plus the straggler, and infrequently used:

  • ctrl c, t Transition

Or for refugees of closed source screenwriting applications that used the Tab key for control:

  • tab, return Slugline
  • tab, tab, return Action
  • tab, tab, tab, return Dialogue
  • tab, tab, tab, tab, return Transition

Regardless of how you trigger different line types, whitespace is handled for you; there is no need to explicitly place a blank line between the actor's lines, or between a slugline and the beginning of the action, and so on.

Streamlining Screenwriter

Make screenwriter-mode a quicker launch from within emacs by adding a global keyboard shortcut for it, and defining the expected file suffix in your ~/.emacs file:

; quick and easy way to enter screenwriter-mode

(global-set-key (kbd "<f5>")

; open .scp or .screenplay
; files in screenwriter-mode

(setq auto-mode-alist (cons '("\\.scp" . screenwriter-mode)

(setq auto-mode-alist (cons '("\\.screenplay" . screenwriter-mode)

Save your .emacs file and launch Emacs.

Pressing F5 should place you in Screenwriter mode.

Save a sample screenplay (sample.scp, for example), and then close Emacs. Open Emacs again and open a file via the File menu → Open File or by using the ctrl x ctrl f key sequence. Open your sample.scp and note that Emacs opens it in screenwriter-mode.

In Dolphin, right-click on sample.scp and choose Open With Emacs. The file will be opened in screenwriter-mode in Emacs. However, default KDE uses the much faster single-click method, so it would be nice if a single click on any .scp or .screenplay file would open in Emacs, and Emacs in turn would start Screenwriter mode.

Emacs is already set for .scp and .screenplay, so only KDE needs to be configured:

  • Open System Settings and click the File Associations icon.
  • Click the Add… button on the left of the panel to add a new file type.
  • Place your new file type in the Text category. It will be placed at the bottom of the text list; select it and configure it on the right side of the panel.
  • You may give your file type a custom icon or just use the default.
  • Define the file extension as both .scp and .screenplay (or whatever custom extension you want to use, if neither of these appeal to you).
  • Give the Application Preference Order a sensible set of applications. The documents are in plain text, so they may be opened in any text editor; Emacs as the first is obvious, but Kate and KWrite are likely candidates for fallback applications.
  • Click the Apply button in the lower right corner to save your configuration.

Now if you click on sample.scp from Dolphin, KDE will open the file in Emacs, and Emacs will enter screenwriter-mode upon detecting the .scp suffix.

You now have a screenplay authoring program for Slackermedia, and quite likely for any other platform you could possibly run.


The screenplay-tools suite is a set of shell scripts to help with page breakdowns, scheduling, and planning a shoot. They are bundled with screenwriter-mode but do not run in Emacs. They run in a terminal.

Full documentation is included in the download, and also on

See Also