133 lines
5.6 KiB
Plaintext
133 lines
5.6 KiB
Plaintext
@c This is part of the Emacs manual.
|
|
@c Copyright (C) 2021--2026 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.
|
|
|
|
This appendix describes the peculiarities of using Emacs built with
|
|
the Application Kit, the windowing system indigenous to Haiku. The
|
|
idiosyncrasies illustrated here do not apply to Emacs on Haiku built
|
|
without windowing support, or configured with X11.
|
|
|
|
@menu
|
|
* Haiku Basics:: Basic Emacs usage and installation under Haiku.
|
|
* Haiku Fonts:: Various options for displaying fonts on Haiku.
|
|
@end menu
|
|
|
|
@node Haiku Basics
|
|
@section Haiku Installation and Startup
|
|
@cindex haiku application
|
|
@cindex haiku installation
|
|
|
|
When Emacs is installed under Haiku, two executables are copied to
|
|
the binaries directory, which are identical save for some identifying
|
|
file-system metadata. The first is a normal Emacs executable,
|
|
@file{emacs}, whereas the second, @file{Emacs}, incorporates an icon
|
|
and an application ``signature'' that abets the system in attributing
|
|
both file types and open frames to it, thereby enabling it to receive
|
|
file type assignments, and thus to open files directly from the
|
|
Tracker.
|
|
|
|
Several file attributes are set within @file{Emacs} that prompt the
|
|
system to permit only a single copy to run at any given time. This
|
|
invariant is verified upon the establishment of a display connection,
|
|
and is enforced by terminating any Emacs process that attempts to
|
|
create a display connection when one is already present.
|
|
|
|
For this and other reasons, @file{Emacs} is appropriate for starting
|
|
a GUI session of Emacs, while @file{emacs} should be used for other
|
|
types of Emacs sessions.
|
|
|
|
@cindex modifier keys and system keymap (Haiku)
|
|
Emacs is incapable of receiving unusual modifier keys such as
|
|
@kbd{Hyper} under Haiku, or to receive accented characters produced
|
|
from the system Super key map.
|
|
|
|
By default, the @key{Super} modifier is reported when the Option key
|
|
defined by the operating system is depressed. Analogously, the
|
|
@key{Meta} modifier is assigned to the Command key, and of course
|
|
@key{Control} to the system Control key and @key{Shift} to 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.
|
|
|
|
You can customize the relation between modifier keys known to the
|
|
system and those known to Emacs by means of the variables below.
|
|
|
|
@cindex modifier key customization (Haiku)
|
|
@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 be 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.
|
|
Tooltips thus generated are sometimes more responsive, but will not be
|
|
able to display text properties or faces. If you need those features,
|
|
customize the variable @code{use-system-tooltips} to @code{nil} value,
|
|
whereupon Emacs will use its own implementation of tooltips instead.
|
|
|
|
@cindex X resources on Haiku
|
|
Unlike the X window system, Haiku does not provide a system-wide
|
|
resource database. Since many important options are specified via X
|
|
resources (@pxref{X Resources}), an emulation is provided: upon
|
|
startup, Emacs will load a file named @file{GNU Emacs} inside the user
|
|
configuration directory (normally @file{/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. Such a file may be created with the
|
|
@command{xmlbmessage} tool.
|
|
|
|
@cindex crashes, Haiku
|
|
@cindex haiku debugger
|
|
@vindex haiku-debug-on-fatal-error
|
|
If the variable @code{haiku-debug-on-fatal-error} is non-@code{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.
|
|
|
|
@node Haiku Fonts
|
|
@section Font Backends and Selection under Haiku
|
|
@cindex font backend selection (Haiku)
|
|
|
|
Emacs supports several different font backends when built with Haiku
|
|
windowing support, though the subset supported is subject to the list
|
|
of dependencies present and enabled when Emacs was configured. You
|
|
can specify which font backends to utilize by providing @w{@code{-xrm
|
|
Emacs.fontBackend:@var{backend}}} on the command line used to invoke
|
|
Emacs, where @var{backend} is one of the backends listed below, or on
|
|
a per-frame basis by changing the @code{font-backend} frame parameter.
|
|
|
|
Two of these backends, @code{ftcr} and @code{ftcrhb} 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 presently cannot display color fonts or Emoji.
|