Emacs and Haiku
Haiku is a Unix-like operating system that originated as a re-implementation of the operating system BeOS. This section describes the peculiarities of using Emacs built with the Application Kit, the windowing system native to Haiku. The oddities described here do not apply to using Emacs on Haiku built without windowing support, or built with X11.
Installation and usage peculiarities under Haiku
Emacs installs two separate executables under Haiku; it is up to the user to decide which one suits him best: A regular executable, with the lowercase name emacs, and a binary containing Haiku-specific application metadata, with the name Emacs. If you are launching Emacs from the Tracker, or want to make the Tracker open files using Emacs, you should use the binary named Emacs; if you are going to use Emacs in the terminal, or wish to launch separate instances of Emacs, or do not care for the aforementioned system integration features, use the binary named emacs instead. On Haiku, unusual modifier keys such as the Hyper key are unsupported. By default, the super key corresponds with the option key defined by the operating system, the meta key with the command key, the control key with the system control key, and the shift key with the system shift key. On a standard PC keyboard, Haiku should map these keys to positions familiar to those using a GNU system, but this may require some adjustment to your system's configuration to work. It is impossible to type accented characters using the system super key map. You can customize the correspondence between modifier keys known to the system, and those known to Emacs. The variables that allow for that are described below.
-
haiku-meta-keysym - The system modifier key that will be treated as the Meta key by Emacs. It defaults to
command. -
haiku-control-keysym - The system modifier key that will be treated as the Control key by Emacs. It defaults to
control. -
haiku-super-keysym - The system modifier key that will be treated as the Super key by Emacs. It defaults to
option. -
haiku-shift-keysym - The system modifier key that will be treated as the Shift key by Emacs. It defaults to
shift.
The value of each variable can be one of the symbols command, control, option, shift, or nil. nil or any other value will cause the default value to be used instead. On Haiku, Emacs defaults to using the system tooltip mechanism. This usually leads to more responsive tooltips, but the tooltips will not be able to display text properties or faces. If you need those features, customize the variable use-system-tooltips to the nil value, and Emacs will use its own implementation of tooltips. Unlike the X window system, Haiku does not have a system-wide resource database. Since many important options are specified via X resources (X Resources), an emulation is provided: upon startup, Emacs will load a file named GNU Emacs inside the user configuration directory (normally /boot/home/config/settings), which should be a flattened system message where keys and values are both strings, and correspond to attributes and their values respectively. You can create such a file with the xmlbmessage tool.
What to do when Emacs crashes
If the variable haiku-debug-on-fatal-error is non-nil, Emacs will launch the system debugger when a fatal signal is received. It defaults to t. If GDB cannot be used on your system, please attach the report generated by the system debugger when reporting a bug.
Font and font backend selection on Haiku
Emacs, when built with Haiku windowing support, can be built with several different font backends. You can specify font backends by specifying -xrm Emacs.fontBackend:BACKEND on the command line used to invoke Emacs, where BACKEND is one of the backends specified below, or on a per-frame basis by changing the font-backend frame parameter. Two of these backends, ftcr and ftcrhb are identical to their counterparts on the X Window System. There is also a Haiku-specific backend named haiku, that uses the App Server to draw fonts, but does not at present support display of color font and emoji.