*os_haiku.txt*	For MNV version 10.0.  Last change: 2026 Feb 14


		  MNV REFERENCE MANUAL	  by Bram Moolenaar


							*Haiku*
This file contains the particularities for the Haiku version of MNV.  For
matters not discussed in this file, MNV behaves very much like the Unix
|os_unix.txt| version.

Haiku is an open-source operating system inspired by BeOS, that specifically
targets personal computing.

 1. General			|haiku-general|
 2. Compiling MNV		|haiku-compiling|
 3. The Haiku GUI		|haiku-gui|
 4. The $MNV directory		|haiku-mnvdir|
 5. The $USER_SETTINGS_DIR
    directory			|haiku-user-settings-dir|
 6. Drag & Drop			|haiku-dragndrop|
 7. Single Launch vs. Multiple
    Launch			|haiku-launch|
 8. Fonts			|haiku-fonts|
 9. The meta key modifier	|haiku-meta|
10. Mouse key mappings		|haiku-mouse|
11. Color names			|haiku-colors|
12. GUI Toolbar Images		|haiku-toolbar-images|
13. Credits			|haiku-support-credits|
14. Bugs & to-do		|haiku-bugs|


1. General						*haiku-general*

The default syntax highlighting mostly works with different foreground colors
to highlight items.  This works best if you set your Terminal window to a
darkish background and light letters.  Some middle-grey background (for
instance (r,g,b)=(168,168,168)) with black letters also works nicely.


2. Compiling MNV					*haiku-compiling*

MNV can be compiled using the standard configure/make approach.  Running
./configure without any arguments or passing --enable-gui=haiku, will compile
mnv with the Haiku GUI support.  Run ./configure --help , to find out other
features you can enable/disable.

Haiku uses "ncurses6" as its terminal library, therefore you need to have
"ncurses6_devel" package installed from HaikuDepot in order to configure
the Haiku build.  Just append "--with-tlib=ncurses" to ./configure command.

Now you should use "make" to compile MNV, then "make install" to install it.
For seamless integration into Haiku, the GUI-less mnv binary should be
additionally installed over the GUI version.  Typical build commands are:

  ./configure --prefix=`finddir B_SYSTEM_NONPACKAGED_DIRECTORY` \
    --datarootdir=`finddir B_SYSTEM_NONPACKAGED_DATA_DIRECTORY` \
    --mandir=`finddir B_SYSTEM_NONPACKAGED_DIRECTORY`/documentation/man \
    --with-tlib=ncurses
  make clean
  make install

  ./configure --prefix=`finddir B_SYSTEM_NONPACKAGED_DIRECTORY`  \
    --datarootdir=`finddir B_SYSTEM_NONPACKAGED_DATA_DIRECTORY` \
    --mandir=`finddir B_SYSTEM_NONPACKAGED_DIRECTORY`/documentation/man \
    --with-tlib=ncurses \
    --disable-gui
  make clean
  make install


3. The Haiku GUI					*haiku-gui*

Normally MNV starts with the GUI if you start it as gmnv or mnv -g.  The mnv
version with GUI tries to determine if it was started from the Tracker instead
of the Terminal, and if so, uses the GUI anyway.  However, the current
detection scheme is fooled if you use the command "mnv - </dev/null".

Toggling between normal managed window and fullscreen mode can be done by
pressing <Alt-Enter>.

Stuff that does not work yet:

- Mouse up events are not generated when outside the window.  You can notice
  this when selecting text and moving the cursor outside the window, then
  letting go of the mouse button.  Another way is when you drag the scrollbar
  and do the same thing.  Because MNV still thinks you are still playing with
  the scrollbar it won't change it itself.  There is a workaround which kicks
  in when the window is activated or deactivated (so it works best with focus-
  follows-mouse turned on).
- The cursor does not flash.
- Switching windows using <C-Tab-Up> and <C-Tab-Down> in Twitcher does not
  work.  This is due to each gmnv window being managed by a separate instance
  completely unaware of other mnv processes.

4. The $MNV directory					*haiku-mnvdir*

$MNV is the symbolic name for the place where MNV's support files are stored.
The default value for $MNV is set at compile time and can be determined with:

  :version

The normal value is /boot/system/data/mnv for Haikuports version,
/boot/system/non-packaged/data/mnv for manual builds.  If you don't like it
you can set the MNV environment variable to override this, or set 'helpfile'
in your .mnvrc: >

  :if version >= 500
  :    set helpfile=~/mnv/runtime/doc/help.txt
  :    syntax on
  :endif


5. The $USER_SETTINGS_DIR directory		*haiku-user-settings-dir*

$USER_SETTINGS_DIR is the symbolic name for the place where Haiku
configuration and settings files are stored.

The normal value is /boot/home/config/settings.


6. Drag & Drop						*haiku-dragndrop*

You can drop files and directories on either the MNV icon (starts a new MNV
session, unless you use the File Types application to set MNV to be "Single
Launch") or on the MNV window (starts editing the files).  Dropping a folder
sets MNV's current working directory |:cd| |:pwd|.  If you drop files or
folders with either SHIFT key pressed, MNV changes directory to the folder
that contains the first item dropped.  When starting MNV, there is no need to
press shift: MNV behaves as if you do.

Files dropped set the current argument list. |argument-list|


7. Single Launch vs. Multiple Launch			*haiku-launch*

As distributed MNV's Application Flags (as seen in the FileTypes preference)
are set to Multiple Launch.  If you prefer, you can set them to Single Launch
instead.  Attempts to start a second copy of MNV will cause the first MNV to
open the files instead.  This works from the Tracker but also from the command
line.  In the latter case, non-file (option) arguments are not supported.
Another drawback of the Single Launch is silent ignore of "Open With ..."
requests by mnv instance that running as non-GUI application even GUI support
was compiled in.  MNV instance running with GUI has no such problems.

NB: Only the GUI version has a BApplication (and hence Application Flags).
This section does not apply to the GUI-less version, should you compile one.


8. Fonts						*haiku-fonts*

Set fonts with >

  :set guifont=DejaVu_Sans_Mono/Book/12

where the first part is the font family, the second part the style, and the
third part the size.  You can use underscores instead of spaces in family and
style.

Best results are obtained with monospaced fonts.  MNV attempts to use all
fonts in B_FIXED_SPACING mode but apparently this does not work for
proportional fonts (despite what the BeBook says).

To verify which encodings are supported by the current font give the >

  :digraphs

command, which lists a bunch of characters with their ISO Latin 1 encoding.
If, for instance, there are "box" characters among them, or the last character
isn't a dotted-y, then for this font the encoding does not work.

If the font you specify is unavailable, you get the system fixed font.

GUI Font Selection Dialog is available at giving the:

  :set guifont=*

command.


9. The meta key modifier				*haiku-meta*

The META key modifier is obtained by the left or right OPTION keys.  This is
because the ALT (aka COMMAND) keys are not passed to applications.


10. Mouse key mappings					*haiku-mouse*

MNV calls the various mouse buttons LeftMouse, MiddleMouse and RightMouse.  If
you use the default Mouse preference settings these names indeed correspond to
reality.  MNV uses this mapping:

    Button 1 -> LeftMouse,
    Button 2 -> RightMouse,
    Button 3 -> MiddleMouse.

If your mouse has fewer than 3 buttons you can provide your own mapping from
mouse clicks with modifier(s) to other mouse buttons.  See the file
$MNV/macros/swapmous.mnv for an example.		|gui-mouse-mapping|


11. Color names						*haiku-colors*

MNV has a number of color names built-in.  Additional names can be defined in
|v:colornames|.  See |:colorscheme| for details.


12. GUI Toolbar Images					*haiku-toolbar-images*

Alternative set of toolbar images should be the PNG image of any height you
like.  Image width is calculated to contain at least 32 buttons in one-row
cells.
The image should be stored under the name $VIRUNTIME/bitmaps/builtin-tools.png
More info about the buttons assignment are at |builtin-tools|.


13. Credits						*haiku-support-credits*

Haiku port is based on work done for BeOS version by many people
 - BeBox GUI support Copyright 1998 by Olaf Seibert;
 - Ported to R4 by Richard Offer <richard@whitequeen.com> Jul 99;
 - Those who contributed, not listed above but not forgotten;
 - Haiku support by Siarzhuk Zharski <imker@gmx.li> Apr-Mai 2009.

All the changes and patches released under mnv-license.

Thank you, all!


14. Bugs & to-do					*haiku-bugs*

The port is under development now and far away from the perfect state.  For
bug reports, patches and wishes, please use the MNV mailing list or MNV Github
repository.

Mailing list: https://www.mnv.org/maillist.php
MNV Github repository: https://github.com/Project-Tick/Project-Tick


 mnv:tw=78:ts=8:ft=help:norl:
