An extension to add Emacs's editing features to Firefox
JavaScript Haskell Shell
Pull request Compare This branch is 33 commits behind kazu-yamamoto:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


The author of Firemacs is Kazu YAMAMOTO <>

* To make the .xpi package

  On the top directory of firemacs:

	% sh

  "work/firemacs-x.y.xpi" will be created.

* To use this sources directly, instead of .xpi

  1) Find the profile directory of Firefox.

     On Mac, it is "~/Library/Application Support/Firefox/"

  2) Find the firemacs directory under the profile directory

     Suppose your profile name is "profile.default", it would be

  3) Change directory to the firemacs directory.

  4) Remove all files on the firemacs directory using:

	% rm -rf *

  5) Create three files: "components", "chrome", "install.rdf",

  5.1) Make symbolic link to the "components" directory of Git:

	% ln -s $GITDIR/components

  5.2) Make symbolic link to the "chrome" directory of Git:

	% ln -s $GITDIR/chrome

  5.3) Copy the "install.rdf" file from Git:

	% cp $GITDIR/install.rdf .

  5.4) Create the "chrome.manifest" file whose contents are:

overlay	chrome://browser/content/browser.xul	chrome://firemacs/content/statusbar.xul
content	firemacs	chrome/content/
skin	firemacs	classic/1.0	chrome/skin/

  6) Your modification to the source files will be in effect when you
     restart Firefox.

* Generating files in the "chrome/content" directory

  "config-name.js","keybinding.js", and "config.xul" under the
  "chrome/content" directory are automatically generated.

  Automatic make tool is in the "chrome/content/db" directory.

  - "firemacs.yml" contains keybiding information in the YML style.
  - "make.hs" will create these three files above from "firemacs.yml"
    and "config.xul".

  "make.hs" is written by Haskell. To compile and run it, type in the
  "chrome/content/db" directory:

	% runghc make.hs
	Generating "../config-name.js"... done
	Generating "../keybinding.js"... done
	Generating "../config.xul"... done