Starting with version 0.11.0, j executes the BeanShell script ~/.j/init.bsh (Unix) or C:\.j\init.bsh (Windows) on startup if it exists. This is done after the user's preferences, theme, and custom key maps (if any) have been loaded.

In principle it is possible to execute arbitrary Java code in init.bsh, but only the following commands are officially supported:

        void globalMapKey(String keyText, String command)
        void globalUnmapKey(String keyText)
        void mapKeyForMode(String keyText, String command, String modeName)
        void unmapKeyForMode(String keyText, String modeName)
You can use these commands to make minor changes to the default key mappings without having to define a full set of custom key maps (see Key Mappings).

For these commands, the keyText parameter is the name of the key or key combination to be mapped or unmapped (e.g. "F7", "Ctrl Shift G", "J"). When in doubt, you can use insertKeyText to insert the appropriate text string. The command parameter is the name of the command to be mapped (e.g. "openFile", "cyclePaste", "jdkHelp"). The modeName parameter is the name of the mode, as displayed in the status bar when that particular mode is in effect in the current buffer (e.g. "Java", "HTML", "Plain Text").

Some examples:

        globalMapKey("Mouse-1", "mouseSetPoint");
        mapKeyForMode("Alt Mouse-1", "mouseFindTag", "Java");
        unmapKeyForMode("F4", "perl");
If you make changes to init.bsh while j is running, you can use the command evalBuffer to execute the changed script without restarting j.