# Customizing exmh
by Brent Welch

exmh is built with the assumption that you'll want to customize it to some degree. This chapter describes the four ways to customize exmh:

- The simplest way is by the Preferences user interface. It exposes numerous knobs and dials that control a lot of the behavior of exmh.
- The second way is by defining X resources. Do this if you want to control fonts and colors. It would be great if there were a user interface for this, but that's still on the to-do list. You also use X resources to define new buttons and menus.
- The third way is by adding custom Tcl code to the implementation of exmh. exmh supports a personal library of Tcl routines. To slip in your new feature, you can add new buttons or menus -- or take advantage of some hook points inside exmh. It's also possible to completely replace any module of the exmh implementation.
- Finally, exmh has introduced a few MH profile entries. These may eventually migrate out of the profile and into the Preferences package.

Although this chapter gives only basic information about X resources and Tcl programming, you should be able to do a lot of what you need with no more introduction. Look at the examples; imitate what's already been done in the files that exmh uses. If you'd like more information, try the online Tcl(1) and Tk(1) manual pages. The Reference List suggests some books. Several sections of this book explain the MH profile -- especially Section An MH Profile, in General.