@c This is part of the Emacs manual. @c Copyright (C) 2021 Free Software Foundation, Inc. @c See file emacs.texi for copying conditions. @node Haiku @appendix Emacs and Haiku @cindex Haiku Haiku is a Unix-like operating system that originated as a re-implementation of the operating system BeOS. As it is free software, this port of GNU Emacs is provided for the convenience of its users. 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. @menu * Haiku Basics:: Basic Emacs usage and installation under Haiku. * Haiku Fonts:: The various options for displaying fonts on Haiku. @end menu @node Haiku Basics @section Installation and usage peculiarities under Haiku @cindex haiku application @cindex haiku installation 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 @code{emacs}, and a binary containing Haiku-specific application metadata, with the name @code{Emacs}. @cindex launching Emacs from the tracker @cindex tty Emacs in haiku If you are launching Emacs from the Tracker, or want to make the Tracker open files using Emacs, you should use the binary named @code{Emacs}; ff 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 @code{emacs} instead. @cindex modifier keys and system keymap (Haiku) @cindex haiku keymap 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. @cindex modifier key customization (Haiku) You can customize which Emacs modifiers the various system modifier keys correspond to through the following variables: @table @code @vindex haiku-meta-keysym @item haiku-meta-keysym The system modifier key that will be treated as the Meta key by Emacs. It defaults to @code{command}. @vindex haiku-control-keysym @item haiku-control-keysym The system modifier key that will be treated as the Control key by Emacs. It defaults to @code{control}. @vindex haiku-super-keysym @item haiku-super-keysym The system modifier key that will be treated as the Super key by Emacs. It defaults to @code{option}. @vindex haiku-shift-keysym @item haiku-shift-keysym The system modifier key that will be treated as the Shift key by Emacs. It defaults to @code{shift}. @end table The value of each variable can one of the symbols @code{command}, @code{control}, @code{option}, @code{shift}, or @code{nil}. @code{nil} or any other value will cause the default value to be used instead. @cindex tooltips (haiku) @cindex haiku tooltips 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 use advanced display features. If that is what you need, you can disable the use of system tooltips by setting the variable @code{haiku-use-system-tooltips} to nil. (@pxref{Tooltips,,, elisp, The Emacs Lisp Reference Manual}). @table @code @vindex haiku-use-system-tooltips @item haiku-use-system-tooltips This variable controls whether or not system tooltips will be used. When non-nil, tooltips are displayed by the Application Kit and not Emacs, and accordingly do not have a tooltip frame. As such, they are also unable to utilize any display properties. @end table @subsection What to do when Emacs crashes @cindex crashes, Haiku @cindex haiku debugger @vindex haiku-debug-on-fatal-error If the variable @code{haiku-debug-on-fatal-error} is non-nil, Emacs will launch the system debugger when a fatal signal is received. It defaults to @code{t}. If GDB cannot be used on your system, please attach the report generated by the system debugger when reporting a bug. @table @code @vindex haiku-use-system-debugger @item haiku-use-system-debugger When non-nil, Emacs will ask the system to launch the system debugger whenever it experiences a fatal error. This behaviour is standard among Haiku applications. @end table @node Haiku Fonts @section Font and font backend selection on Haiku @cindex font backend selection (Haiku) Emacs, when built with Haiku windowing support, can be built with several different font backends. You can specify font backends by specifying @kbd{-xrm Emacs.fontBackend:BACKEND} on the command line used to invoke Emacs, where @kbd{BACKEND} is one of the backends specified below, or on a per-frame basis by changing the @code{font-backend} frame parameter. (@pxref{Parameter Access,,, elisp, The Emacs Lisp Reference Manual}). Two of these backends, @code{ftcr} and @code{ftcrfont} are identical to their counterparts on the X Window System. There is also a Haiku-specific backend named @code{haiku}, that uses the App Server to draw fonts, but does not at present support display of color font and emoji.