Harmonia-Mode User's Guide Printer-Friendly Version  

Installation and Setup


Please download Harmonia from our download page. These instructions are for the binary release of Harmonia.

Running Harmonia-Mode

  • Linux and Solaris
    1. To run Harmonia-mode, just run xemacs from your shell.
      • Note that xemacs is not the same as emacs! Harmonia-mode doesn't work with regular emacs, so make sure that you run xemacs.
    2. You will be able to tell that you ran the right program if you see Loading Harmonia...done in the bottom line of your XEmacs window. If you do not see this message, it may have been overwritten by a later one. Look for it in the Message Log (Choose the Show Message Log menu item from the View menu).
  • MacOS X
    1. To run Harmonia-mode, just double-click on Harmonia-XEmacs in your /Applications folder.

Harmonia-Mode comes with a demo directory in /usr/harmonia/demo (on MacOS X it is /Library/Application Support/Harmonia/demo), inside of which are example programs in each language that this release supports. Load a C file (ending in ".h" or ".c"), a Java file (ending in ".java"), a Scheme file (ending in ".scm"), a Titanium file (ending in ".ti"), or a Cool file (ending in ".cl") and start editing! You should see Harmonia-C, Harmonia-Java, Harmonia-Scheme, Harmonia-Titanium or Harmonia-Cool at the bottom of your window in the modeline. Try them out!

To see what you can do with Harmonia-Mode, read the Features section of this manual (Language Analyses, Indentation and Highlighting, Structural Movement, Structural Search, and Elision).

If you decide to stop using Harmonia-mode, you can switch to the fundamental XEmacs editing mode by typing M-x fundamental-mode. For a more permanent solution, see the next page: Turning it On.

Additional Setup for Harmonia-mode for C

Harmonia-C-Mode uses the C preprocessor. If your preprocessor is not installed in its standard location for your platform, you will need to configure Harmonia to know where it is.

Additional Setup for Harmonia-mode for Java

On Linux and Solaris, Harmonia-Java-Mode needs access to the Java runtime source code in order to properly analyze your Java files. You will need to configure Harmonia to know where to find it.


  1. XEmacs starts but I don't see the message that Harmonia has loaded.
    1. There may be something in your ~/.xemacs/init.el (or ~/.emacs) file that has an error with XEmacs. This may prevent Harmonia-Mode from loading. Check out your XEmacs startup files and try to fix the problem.
  2. I loaded a Java file, but Harmonia-Mode does not start.
    1. Harmonia-Mode is too slow to use on really large files. We disable it on files larger than 200K. You can change this value by configuring Harmonia.
  3. I loaded a Titanium file that ends in .java, but it starts in Harmonia-Java-Mode, not Harmonia-Titanium-Mode.
    1. Titanium files must end in .ti to be autodetected by Harmonia-Mode. To switch modes manually, type
      M-x harmonia-titanium-mode.

Crash Recovery and Bug Reporting

Harmonia-mode has been engineered to recover from crashes in order to preserve your work, and to help us with debugging. If it crashes, it will ask for permission to file a bug report (via email to harmonia-bugs@sequoia.cs.berkeley.edu). (Note: sending email will not work on MacOS X).

Crash indicator

Harmonia-mode will then restart itself on your buffer, and allow you to edit your program again.

If you have any other problems with Harmonia-Mode, please report them using M-x harmonia-report-bug, or send us email at harmonia-bugs@sequoia.cs.berkeley.edu. Harmonia-mode is currently in active development, and we will be updating these web pages to notify you as we fix bugs and add features.

Next Section: Turning it On