Microsoft Compiled HTML Help or more commonly known as .CHM format, is a proprietary format for online help files by Microsoft which was first released in 1997 in Windows 98 as a successor to the Microsoft WinHelp format. CHM packages and archives all HTML files into one single file, including the associated images and other media.

Although been replaced with new generation of Windows Help called Microsoft Assistance Markup Language since Windows Vista, .CHM frmat is still supported and distributed through Windows XP and Vista platform (although HLP extension format has been dropped in Vista). However, Linux and Mac OS X machines do not have built-in support for CHM format either, and requires user install third party tools for CHM support.

There are plenty of CHM files viewer libraries for Linux operating system that allows Linux users to read and open CHM files. And most of the CHM viewer libraries is available in the default distribution repositories of popular mainstream LInux distros, or in ports collection of BSD system.

Opening and Viewing CHM Files on Fedora 9 with Okular

Fedora 9 already installed with Okular application, a document viewer for KDE 4. Okular supports Microsoft Compiled HTML Help (CHM) with the libCHM backend. In other Linux distros using KDE4, Okular can be installed to view CHM files too.

Okular

How to Install libchm or chmlib in Debian/Ubuntu/Fedora/RedHat/Suse and Other Linux Distros

libchm and chmlib are a very basic but sufficient library for dealing with Microsoft ITSS/CHM format files. These two libraries (each for different Linux distribution) serve to provide basic functionality related CHM files, which other CHM viewer tools rely on and use. With just the basic library, user will be able to extract the contents of the CHM files. And as most third-party CHM tools to view CHM on desktop require the basic library too, it should be installed first, if it’s not installed yet.

For Debian or Ubuntu Linux, install libchm with the following command:

$ sudo apt-get install libchm-bin

For Fedora, Fedora Core, RedHat and SuSE Linux, install chmlib with the following command:

$ sudo yum -y install chmlib

General Commands to Install Application Software from Linux Repositories

Most CHM viewers are included into the Linux repositories, and thus can be installed via respective repo-tools (yum or apt-get). The command syntax as below:

For Fedora, Fedora Code, Red-Hat, SuSE Linux, Madriva Linux:

$ sudo yum -y install <library_name>

For Debian and Ubuntu Linux:

$ sudo apt-get install <library_name>

For BSD or FreeBSD, search for the application in the ports collection, and then issue “make install clean” command in the application port directory, or use “pkg_add -r <package_name> command.

CHM File Viewer Tools for Linux

KchmViewer

KChmViwer

The standard KDE viewer for CHM files. Available in most repositories.

Help Explorer Viewer

Available for both Windows and Linux platform, and support Microsoft Windows Help (WinHelp) in .HLP format, Microsoft HTML Help 1.x in .CHM format, and Microsoft Help 2.0 in .HXS format.

Help Explorer Viewer

After downloading the HelpExplorer3.0_LINUX.tar.gz, su to root and issue these commands to install Help Explorer Viewer:

tar zxf HelpExplorer3.0_LINUX.tar.gz
cd Setup/
./setup.sh

ChmSee

ChmSee is an open source Gtk2+ package for GNOME wrote by a Chinese. After downloading the source package tarball chmsee-1.0.1.tar.gz, run the following commands to compile ChmSee.

$ tar xzf chmsee-1.0.1.tar.gz
$ cd chmsee-1.0.1
$ ./configure
$ make
# make install

ChmSee

System cannot find the chmlib can use “–with-chmlib=/path/to/chmlib” parameter to specify the path to chmlib. Compiling requiers Gtk2+, libglade, gecko, gtkhtml, chmlib, libgcrypt and OpenSSL. But pre-compiled packages are available for Debian, Fedora (RPM) and Gentoo (as part of Gentoo China Overlay)

GnoCHM

GnoCHM is a CHM file viewer for Gnome, and uses PyCHM, a Python package that exports the CHMLIB API. Features are:

  • Support for external ms-its links
  • Full text search support
  • Bookmarks
  • Configurable support for HTTP links
  • Integrated with Gnome2
  • Support for multiple languages (be, cs, de, el, es, fr, hu, it, ja, pl, pt_BR, ru, sv, tr, vi, zh_CN, zh_TW)
  • Support to open multiple files at once
  • Displays HTML page source

Install via repositories.

GnoCHM

xCHM

xCHM is a cross-platform GUI front-end to chmlib, supports UNIX systems (Linux, *BSD, Solaris), Mac OS X and Windows.

xCHM

Install via repositories package or ports collection, else download for various xCHM distro packages available here.

KCHM

KCHM is a .chm file viewer which uses the Qt widget toolkit and the KDE core libraries. Seems to not been actively developed anymore. Requires chmlib, Qt 3, KDE 3.1.4 and automake stuff for compilation, where source package can be downloaded from SourceForge.net.

KCHM

Using CHM Reader Add-On Extension in Firefox

CHM Reader add-on is an extension for Firefox web browser that able to open Compiled HTML (.CHM) file. It adss a new “Open CHM Files” entry to the Firefox File menu. When you opening a CHM file, the table of contents is hidden by default, but can be brought up by pressing Ctrl-E.

Opening CHM in Firefox

To install CHM Reader, go to this page with Firefox and then click on “Install” button. Restart the Firefox after installation.

How to Extract the Contents (HTML Files) Inside the CHM Archive

To extract the contents of CHM file, use the following command:

extract_chmlib filename.chm /destination_dir/

Change the filename to actualy file name for the CHM, and destination_dir to a directory to place the extracted and unpacked HTML files and contents.