Haiku User Guide PDF

Download as pdf or txt
Download as pdf or txt
You are on page 1of 112

User Guide

http://www.haiku-os.org/docs/userguide/en/contents.html
16 April 2010

Table of Contents
Welcome to the Haiku User Guide
Boot Loader

......................................................................... 1

....................................................................................................................... 4

Filesystem layout

............................................................................................................. 6

Haiku's GUI

......................................................................................................................... 9

Workspaces

..................................................................................................................... 12

Twitcher

............................................................................................................................ 13

Team Monitor ................................................................................................................. 14


Tracker

............................................................................................................................... 15

Tracker Add-Ons ............................................................................................................ 23


Shortcuts and key Combinations ........................................................................... 24
Deskbar .............................................................................................................................. 27
Filetypes ............................................................................................................................ 31
Attributes
Index

......................................................................................................................... 34

................................................................................................................................... 38

Queries

.............................................................................................................................. 40

Workshop: Filetypes, Attributes, Index and Queries

................................... 44

Applications ..................................................................................................................... 51
Desktop Applets
Workspaces

............................................................................................................ 53

..................................................................................................................... 58

Preferences ...................................................................................................................... 60
Bash and Scripting

...................................................................................................... 103

Welcome to the Haiku User Guide


Below, you'll find the documentation of the most important aspects of Haiku. Naturally,
completing and extending the documentation is a continuing process. If you find errors,
would like to suggest topics or maybe even contribute yourself, please get in touch on the
documentation mailing list. If you're interested in helping with translations, you'll find
information on that at the i18n User Guide Wiki.

Boot Loader

Set safe boot options to solve configuration


problems.

Filesystem layout

Understand the filesystem hierarchy and get

The system folder


The common folder
The home folder

Haiku's GUI
Open and save panels
- Keyboard shortcuts
- Favorites and recent
folders
Replicants

Workspaces
The Workspaces Applet
Switching workspaces
Moving windows between
workspaces
Special functionality

familiar with important file locations and folders.

Learn about the basic elements of the graphical


user interface.

Use virtual desktops for an uncluttered work


environment.

Twitcher

Switch between running applications.

Team Monitor

Kill unresponsive applications or system


components.

Tracker

Learn all about navigating, working with files and


folders and how to configure Haiku's file manager.

Mounting volumes
Navigating
Appearance
Tracker preferences
Working with files
Transaction status
Tracker Add-Ons

Shortcuts and key


combinations

The most common shortcuts to speed up your


workflow.

General shortcuts
Shortcuts for Tracker
navigation
Shortcuts in Terminal
Other key combinations

Deskbar

Use and configure Haiku's version of the "Start"


menu and taskbar.

The Deskbar Menu


The Tray
The list of running
programs

Filetypes
The File Type
The Preferred Application
The Icon
Special settings for
applications
Global settings with the
Filetypes Preferences

Attributes
Attributes in Tracker
Attributes in Terminal

Set default applications, change file types and


create your own.

One of Haiku's main features lets you manage and


add any kind of data to any file.

Index

Use indexing to be able to search for attributes.

Queries

Use Haiku's lightning fast queries to quickly find


what you're looking for.

The Find window


Basic queries - "by Name"
Advanced queries - "by
Attribute"
Even more advanced
queries - "by Formula"
The result window
Query Templates

Workshop: Filetypes,
Attributes, Index and

Learn to use some of Haiku's key features by


organizing your DVDs.

Queries
Applications
Installing applications
Uninstalling applications
Haiku's applications
Bundled applications

Learn how to un/install applications in general and


how work with the ones that come with Haiku.

Desktop Applets

Simple tools to install on your Desktop and Deskbar.

Preferences

Configuring and setting up your system.

Bash and Scripting

Learn of some interesting scripts used by the


system and about online resources for working in
the shell and scripting.

Boot Loader
Haiku's Boot Loader can help when you experience hardware related problems or want to choose
which Haiku installation to start, if you have more than one (maybe on an installation CD or USB stick)
.
It's also handy after you installed a software component that acts up and prevents you from booting
the system to remove it again. The Disable user add-ons option that's mentioned below, will start
Haiku without loading user installed components, e.g. a driver.
To enter the Boot Loader options, you have to press the SPACE BAR right at the beginning of the boot
process. It's easy to miss so you best keep hitting the key until it shows up.

Once it's there, you're offered three menus:


Select boot

Choose which Haiku installation to start.

volume
Select safe
mode options

There are several options to try in case of hardware related trouble. When moving
the selection bar to an option, a short explanation appears at the bottom of the
screen.
- Safe mode
- Disable user add-ons
- Disable IDE DMA
- Use fail-safe video mode
- Don't call the BIOS
- Disable APM
- Disable ACPI
- Disable IO-APIC
- Enable serial debug output - Enable on screen debug output

Select fail safe


video mode

If you had to activate the option Use fail-safe video mode, you can set resolution
and color depth.

After activating one or more options, you return to the main menu and continue booting, which
presents you with this boot screen:

If everything works OK, one symbol after another quickly lights up.
The different symbols roughly correspond to these boot stages:
Atom

Initializing modules.

Disk + magnifier

Creating rootfs (/) and mounting devfs (/dev ).

Plug-in card

Initializing device manager.

Boot disk

Mounting boot disk.

Chip

Loading CPU specific modules.

Folder

Final initialization of subsystems.

Rocket

Boot script starting the system.

Filesystem layout
Haiku's filesystem layout is quite transparent, trying to always use non-cryptic names for files and
folders, that don't leave the user guessing. Files and folders that are important for the system to
function properly, are protected from accidental tempering by showing one of these alerts:

The second alert pops up if you try to rename or delete something in the system hierarchy. Here, the
"Do it" button will only become clickable when you're holding down the SHIFT key.
Generally, there are three separate branches springing from the root folder of the boot volume:
/boot/system/ belongs to the system. Don't touch!
/boot/common/ holds files that are shared between users.
/boot/home/

is your personal folder where you keep your data and settings.

The system folder - /boot/system/


Under Haiku's predecessor BeOS, this folder was named /boot/beos/. You may still find it in some older
documentation (e.g. in the original BeBook).
Whatever it's named, you should not alter what's inside. Every update of Haiku can add, remove or
overwrite anything within it. If you want to add functionality, maybe with other Tracker Add-Ons or
Translators or maybe another hardware driver, you install these things under your own /boot/home/
hierarchy or, if it's supposed to be for every user, under /boot/common/. As long as Haiku isn't multiuser, this distinction has no apparent effect, as there's only one user with one home folder. But since
there will be support for more users than one eventually, it makes sense to learn the right way from
the start.
So, let's say you want to install a new Translator for the latest image format, you don't simply copy it
into the respective system folder. Remember: Don't touch!
Instead, you put it into the mirrored hierarchy under /boot/common/ or /boot/home/config/.
In our example the location for Translators in the system folder would be
/boot/system/add-ons/Translators/

So, the user "mirror" folder is either


/boot/home/config/add-ons/Translators/

or
/boot/common/add-ons/Translators/

This has another advantage: If the component you have installed messes things up (which is possible
as you install hardware drivers like this, too) you are able to choose "Disable User Add-Ons" from the
Boot Loader menu and are thus always able to boot without the offending component.
Most of the time, however, you won't have to deal with these things at all, since every software that
comes from a trusted source should include an installation routine that handles these things.

The common folder - /boot/common/


Haiku is not a multi-user system yet. Once it is though, every user has her own home folder that is not
accessible to anyone else. Every application or added component like Tracker Add-Ons, Translators
etc. as well as any data that's supposed to be shared between different users, go here.

The home folder - /boot/home/


This folder belongs to you. Here you can create and delete files and folders as you wish. However, you
shouldn't mess too much with the ~/config/ directory and its subfolders. You could delete e.g. the ~/
config/settings/ folder without damaging the operating system itself, but who wants to lose all his
configurations and application settings? In any case, the system warns you with the at the top
mentioned alert.
Besides the ~/config/add-ons/ folder, which mirrors the system's add-ons folder for additional
components as described above, there are a few other folders of interest. (By the way, the tilde ("~") is
a shortcut for your home folder, so you don't always have to write "/boot/home/" in Terminal.)

~/mail

By default, this is where your mails are kept.

~/queries

Queries are stored, by default temporarily for 7 days, in this folder.

~/config/be/

Again from our BeOS legacy, the be folder contains what's shown in the
Deskbar menu. You can add and remove items either with the Deskbar
configuration panel or by putting files, folders or links into this folder
directly.
Complements the system's /boot/system/bin/ folder and holds all your

~/config/bin/

command line programs.


~/config/boot/

This folder is the place for User Scripts that are executed before or
after the system boots up or shuts down.

~/config/boot/launch/

Links to programs or documents in this folder are automatically


launched on every boot-up.

~/config/fonts/

Simply copy a TrueType or Postscript font into this folder and its usable
right away.

~/config/settings/

This folder contains the settings to all applications and a few


configurations for the system. Some applications manage their settings
in their own subfolders, others simply put their configuration file in
there.

~/config/settings/beos_
mime/

In this MIME (Multipurpose Internet Mail Extensions) database Haiku keeps


track of all the different filetypes and their settings.
There's one settings file that may be of interest: kernel offers some low
level configurations like disabling SMP (Symmetric Multi Processing),
activating serial debugging or enabling advanced power management.

~/config/settings/
kernel/drivers/

You activate a configuration line by removing the commentary symbol "#


". Be careful here!
Here are some interesting subfolders:

~/config/settings/
Tracker/
DefaultFolderTemplate/

Show and arrange all attributes and the window size to your liking. Every
new folder you create will use it as a template.

DefaultQueryTemplates/

You can define the layout of query result windows for certain filetypes.
See topic Query: The result window.

Go/

Put links to your favorite locations in here to make them available e.g. in
open and save panels. See topic Haiku's GUI: Favorites and recent
folders.

Tracker New Template/

Add a template for any filetype that's then available from Tracker's File |
New... menu. See topic Tracker: Working with files.

Haiku's GUI
Haiku's graphical user interface is an integral part of the system. Unlike Unix-based operating
systems, there's no separate window manager and booting just into a command line shell is not
possible. Haiku's focus being on the desktop user, this is just not considered necessary.
As you probably have experience with other graphical environments, let's skip over the standards like
menus, right-click context menus, drag&drop etc. Let's have a look at the few unique aspects of
Haiku's GUI instead.

There are only a few things in Haiku's GUI that aren't obvious and deserve an explanation.
1. The Deskbar is Haiku's "Start" menu and taskbar, if you will. See topic Deskbar.
2. The yellow tab offers more than just a program's name or a document's filename:
You can move it by holding the SHIFT key while dragging it to another position, enabling you to
stack a number of windows and conveniently access them by their named tab.
You minimize a window with a double-click on its tab (or with CTRL ALT M ). A such hidden
window can be accessed by its entry in the Deskbar or the Twitcher.
You can send a window to the back with a right-click on its tab (or its border).
3. The close button.
4. The "alternative size" button (or CTRL ALT Z ). In most applications, this will expand a window to
maximum size. It doesn't have to, however. Tracker windows, for example, will resize to best fit the
contents.
5. The resize corner. Dragging anywhere else on a window's border will move the window.
While holding CTRL ALT , you can click anywhere into a window to move it with the left
mouse button; the right mouse button sends it to the back.

Open and save panels


9

When opening or saving a file from any application, a panel like this opens:

It has all the usual things: A list of files of the current folder to choose from, in case of a save panel, a
text field to enter a filename and a drop-down menu for different file formats and their settings.
You can enter parent folders with the drop-down menu above the file listing.
If you already have a Tracker window with the location for a file open, you can simply drag either any
file or the folder-representation (i.e. the symbol to the far right in its menu bar) into the panel. This
changes the panel to that new location.

Keyboard shortcuts
You can use many of the shortcuts also used in Tracker. Besides the commands that are also available
through the File menu, there are a few not that obvious:
ALT N

Creates a new folder.

ALT E

Lets you rename the selected entry.

ALT

Opens the parent folder.

ALT

or ENTER

Opens the selected folder.

ALT D

Takes you to your Desktop.

ALT H

Takes you to your Home folder.

Favorites and recent folders


The menu Favorites provides recently visited folders and favorite locations that you can set up yourself.
As indicated by the little arrow, you can also use these locations to navigate further down the
hierarchy via submenus.

10

To add a Favorite, you simply navigate to your destination and choose Favorites | Add Current Folder.
From now on it will appear in every open/save panel. To remove a Favorite, choose Favorites | Configure
Favorites... and delete its entry.
All Favorites are kept in /boot/home/config/settings/Tracker/Go/. So you might as well add and remove
links to files and folders there directly.

Replicants
Replicants are small self-contained parts of applications that can be integrated into other programs.
Provided Deskbar's option to Show Replicants is activated, you'll recognize a replicantable part of an
appliction by its small handle, normally in the bottom right corner:

The most prominent place that accepts Replicants is the Desktop: You simply drag&drop the little
handle onto it. From now on it's part of the Desktop and the Replicant's originating app doesn't have
to be started for it to work.
A right-click on a Replicant handle offers a context menu to show the originating app's About window
and to Remove Replicant.
Examples for replicatable applications are the graphs of the ActivityMonitor, the Workspaces
applet or DeskCalc.

11

Workspaces
Workspaces are virtual desktops, complete with their own resolution, color depth and
background. Up to 32 of these workspaces can be set from the Screen preferences.

Switching workspaces
You switch between workspaces by either clicking into the Workspaces applet (which is
seen in the above image) or by using the keyboard shortcut ALT FX , where "x" is the
workspace number. It's a good idea to arrange your workspaces in rows of four to mimick
the layout of the FX keys on the keyboard.
Also, clicking on an application or one of its windows in the Deskbar will send you to the
workspace it's in.
Another very convenient way is to use CTRL ALT / / / to navigate spatially the rows/
columns of the available workspaces. If you additionally hold down SHIFT , the active
window will move with you to the new workspace.
You can switch back and forth between two workspaces with ALT

(the actual key

depends on the keymap you're using - it is the key below ESC ). Again, holding SHIFT will
take the active window with you.

12

Twitcher
The Twitcher is a task switcher to jump between running applications and their windows.

Just tap CTRL TAB to switch between the current and the last application/window. Tapping CTRL TAB
very quickly will switch between all applications. Or press and hold CTRL TAB to go through all running
applications by repeatedly hitting TAB or / . If you need to get to a specific window of a program,
move to its icon as described and then go through its open windows with the / keys.
You cycle through all an applications visible windows on the current workspace with CTRL
depending on the keymap you're using, is the key below ESC ).

(which,

It's also possible to invoke the Twitcher with CTRL TAB and then use the mouse to choose the
application/window you'll jump to when releasing the CTRL key.
The Twitcher also offers a few more advanced keyboard shortcuts:
ESC

Aborts the twitching and returns to the formerly active window.

Quits the selected application.

Hides all windows of the selected application.

13

Team Monitor
With CTRL ALT DEL you invoke the Team Monitor which lists all currently running programs.

Programs that were launched by the system are blue, those started by the user black.
Applications that are unresponsive, which is often a sign the program has crashed, are marked red.
You can kill a program by selecting it and pressing the Kill Application button.
You can summon a Terminal with ALT SHIFT T .
If your Tracker or Deskbar crashed or froze, a new button appears (you may have to kill the offending
team first): Restart the Desktop will restart Tracker and/or Deskbar for you.

14

Tracker
The Tracker is the graphical interface to all your files. It let's you create new files and folders or find,
launch or rename as well as copy or delete existing ones.
Being an application like any other (the Desktop with its icons is really just a fullscreen window in the
background), Tracker appears with its windows in the Deskbar and can be quit and restarted. The
easiest way to quit and restart a crashed or frozen Tracker (or a wayward Deskbar) is to call the Team
Monitor.

Mounting Volumes
In order to access a harddisk, CD, USB stick etc., you first have to mount the volume, that is, let the
system know it's there. This is done with a right-click on the Desktop or an already mounted volume
(like the boot disk) and choosing the volume from the Mount submenu. You find the same Mount menu
in the Deskbar.

There are also Mount Settings so you don't have to mount everything manually after every bootup.
The above settings will automatically mount any storage device you connect/insert and also mount all
disks on bootup that were mounted previously.
Before you disconnect e.g. a harddrive or USB stick, make sure you have successfully
unmounted the volume. This guarantees that all data transfer has finished. Otherwise
you may lose data or corrupt the disk!

Navigating
By default, when you double-click a folder, Tracker opens a new window while leaving the parent
window open. This can quickly lead to an overcrowded desktop.
You can prevent that by holding down the OPT key, which automatically closes the parent window.
This is also true for keyboard navigation. For more on that, see topic Shortcuts and key
combinations.

15

Moving through your folders is one of Trackers main purposes, just like the file managers on other
platforms. Haiku's Tracker has some unique features that will help you doing that efficiently.

Drilling down the submenus


Instead of double-clicking your way down folder after folder, there's a better way to drill down:

Right-click onto a folder, and at the top of the usual context menu you'll find a submenu of the current
folder that let's you navigate down a level. Just move down the hierarchy until you find the file or
folder you're looking for and click on it to open it. The above shows the contents of the folder /boot/
system/documentation/.
If you do the above while dragging a file with you, it will be moved to where you eventually drop it.

A similar method can be used from any Tracker window:

Click on the area in the lower left, where the number of items is listed, and you'll get submenus for
every level above your current location. From there you can drill down through the folders as usual.

16

Note, that the Desktop is always the topmost level as that is where Tracker shows mounted volumes.
So, if you want to go to another disk, you first have to navigate to the top (Desktop) and cross over to
your other disk from there.

You'll get the same submenu-navigating when you drag a file over a folder. After a short while of
hovering, a submenu pops up and you can drill down to your destination. If you initiated the drag with
the right mousebutton, you can choose between copying, moving or linking the file when you release
the mouse.

Jumping to files with type-ahead


You may be familiar with the concept from file managers of other operating systems: typing the first
few letters of a filename will jump to the first file matching these starting characters. Haiku took the
idea a step further. If there isn't a file starting with those letters it will jump to the first file including
the string anywhere in its name. And if there's nothing with the string in its filename, the attributes
are searched next.

In the above example, there are many files starting with "Haiku logo", rendering simpler approaches
to typing ahead quite useless. In Haiku however, typing "web" jumps right to its first occurence in
"Haiku logo - website". The characters you enter appear in the bottom left corner where you normally
find the item count of all files in the folder. A second after entering a character, the display jumps
back to normal and you're ready for a new type ahead search.

Appearance

17

Tracker windows offer three different viewing modes from the Window menu:
Icon View ( ALT 1 ) - Big icons, you can change the size from the submenu or in/decrease their size
with ALT + / ALT - .
Mini Icon View ( ALT

2)

- Small icons.

List View ( ALT 3 ) - A detailed list of your files enabling you to show/hide available attributes. (See
topic Attributes.)
The Window menu offers a number of other functions:
Resize Window ( ALT Y ) - Resizes the window to its ideal size.
Clean Up ( ALT K ) - Aligns all icons to an invisible grid. Hold down SHIFT and the menu becomes
Clean Up All which additionally sorts all icons alphabetically.
Select... ( SHIFT ALT A ) - Select files according to a regular expression.
Close ( ALT W ) - Closes the window. Hold down SHIFT and the menu becomes Close All which closes
every Tracker window.
Close All in Workspace ( ALT Q ) - Closes every Tracker window in the current workspace. A useful
shortcut if you forgot to hold the OPT key while clicking through folders and all those still open
Tracker windows clutter your workspace.
Sometimes you just want to rearrange a few icons without doing a complete Clean Up ( ALT K ). In that
case, you select these icons and start to drag them to their new location. Before you drop them there,
keep ALT pressed. This will align the icons to the invisible grid.
The rest of the functions are pretty self-explanatory, leaving the Tracker preferences.

Tracker preferences
Window | Preferences... opens a panel that offers a number of settings that, where not obvious, should
become clear once tried out. Since all settings are applied live, you'll immediately see the changes.
So, in short, the not so obvious settings:
Desktop - Decide if all mounted disks appear directly on the Desktop or in a window after clicking a
single Disk icon sitting on the Desktop.

18

Windows - You can set Single Window Navigation, i.e. a double-clicked folder doesn't open in its own
window, but inside the already open window instead, replacing the view of it's parent folder. This is
not the same as clicking while holding the OPT key, as described above, because you'll lose the per
window saved position and size.

Before you switch Tracker to Single Window Navigation mode, because that may feel more familiar
to you, we recommend giving the menu based browsing a try first, as that may actually work much
faster for you after getting used to. On the other hand, single window browsing offers a Navigator
where you can enter or copy&paste a path name and use back, forward and up buttons.
Date and Time - Set date and time formats.
Trash - Set the behavior when deleting a file.
Volume Icons - Set the color of an optional indicator of free space that's shown besides a disk's
icon.
This panel, by the way, is also available as Tracker from Deskbar's Preferences.

Working with files


When invoked on a selected file, most of the File menu commands are also offered in the context
menu by right-clicking that file.
As usual the commands are pretty clear.
Find... - Find a file or folder. See topic Query for more info.

19

New - Create a new folder or any other file based on a template.

>
Choosing Edit Templates... opens the folder /boot/home/config/settings/Tracker/Tracker New Templates.
Creating a file in that folder will offer its filetype with the file's name and other attributes as
template in the New menu. Here, there's a file "Text" with the filetype text/plain. See topic
Filetypes for more info.
Open With... - A submenu offers all applications that can handle this filetype.

The preferred application that would open the file when double-clicked, is checkmarked. This
submenu lists first those applications that can handle the exact filetype, in this case it's a text file,
the type text/plain. Next come all applications that can handle that supertype in general, here
text/*. Last in the list are those that can deal with any file. If you don't click on an app in the
submenu, but on the Open With... entry instead, a panel opens:

20

Here you'll again find the programs that were listed in the submenu. By selecting one and clicking
the Open and Make Preferred button, you changed the preferred application for every file of that
filetype, here text/plain.
Get Info

The panel presents info on the selected file and lets you set the default application and, after you
expanded that part of the panel, permissions and owner. Clicking on the path will open it in a
Tracker window.
Edit Name, Duplicate and Move to Trash - lets you rename or duplicate a file or put the selected
file(s) to the trash.
Move to, Copy to and Create Link - lets you move, copy or link the selected file(s) using the
submenu navigating method. Holding SHIFT while invoking the menu offers the option to create a
relative link.
Cut, Copy and Paste - lets you cut, copy and paste files using the clipboard. By holding SHIFT while
invoking the menu you can Copy/Cut more files, maybe from another folder that you can paste
somewhere else later. Also, while holding SHIFT you can paste the copied files in the clipboard as
links.

21

Identify - will sniff out and set the type of files if they didn't have one before, e.g. if you transferred
a file with wget which doesn't set a filetype itself. Holding SHIFT while invoking the menu changes
the item to Force Identify which identifies the filetype and corrects it if it was false before.
Add-Ons - offers you every generic Tracker add-on and those that can handle the selected file(s).
See topic Tracker Add-ons for more information.

Transaction status
When you copy, move or delete files, Tracker shows its progress with a status window. If you initiate
more than one transaction, each job gets its own status display.

To the right are two buttons to pause or stop a transaction entirely. Sometimes it can be useful to
temporarily pause a large transaction. For example, you may need to quickly launch a large
application. Copying large amounts of data chokes your harddisk's IO bandwidth and thus delays your
workflow.

22

Tracker Add-Ons
Applications can install add-ons so they can be invoked easily on a selection of files from Tracker.
Only the add-ons that can handle a specific filetype are presented under Add-Ons from the context
menu or the File menu of a Tracker window. Some add-ons don't necessarily need a file to work on
and are thus always present.
Tracker Add-Ons, or links to applications that can act as add-ons, can be installed in three different
locations (see topic Filesystem layout):
/boot/system/system/add-ons/Tracker/

for system provided add-ons.

/boot/common/add-ons/Tracker/

for add-ons available to every user.

/boot/home/config/add-ons/Tracker/

for add-ons only available to yourself.

The file name of an add-on can be suffixed with a dash and capital letter, and is then available via
keyboard shortcut. For example, Open Target Folder-T opens with ALT OPT T .
Of course, you have to take care of possible shortcut collisions when deciding on a shortcut. You can't
have the same for different add-ons.

Haiku's Tracker Add-Ons


These Tracker Add-Ons come with every Haiku installation:
Background-B

Opens the Background preferences to change the color or image of the Desktop
or any folder. Invoked on an image file the Background panel is launched with that
image already loaded as a potential background.

DiskUsage-I

Starts the DiskUsage application with the according folder as basis.

FileType-F

Invoked on a file, opens its specific FileType panel, otherwise the general
FileTypes preferences are launched.

Open Target
Folder-T

It can only be used on a linked file and opens the folder that file lives in.

TextSearch-G

Starts the TextSearch application to look for a string in the selected folder (and
its subfolders).

ZipOMatic-Z

A selection of files will be added to a zip archive, invoked without a selection


opens a panel to create an archive via drag&drop.

23

Shortcuts and key combinations


By default, Haiku's shortcut key, to invoke commands from menus for example, is not the usual CTRL
key, but ALT instead. This has historical reasons, because the BeOS was inspired somewhat by
MacOS. After you get used to it, it actually has advantages as e.g. ALT C and ALT V integrate
seamlessly into the bash (Bourne Again Shell) shell of the Terminal, where CTRL C quits the running
process.
In any case, you can switch to the maybe more familiar CTRL key in the Keymap preferences. The
user guide will always describes the default configuration with the command key being ALT .
If you're in doubt which keys are the OPT or MENU keys on your particular keymap/keyboard-layout,
again use the Keymap preferences. There you can see what keystroke is sent when you press a key
on your keyboard.

General shortcuts
Here's a table of many of the most commonly used shortcuts that are always available, even if there
isn't a corresponding menu:
Switches to Workspace X ( FX is the function key corresponding to that

ALT F X

workspace).
CTRL ALT

///

Navigates spatially the rows/columns of the available workspaces.

CTRL TAB

Hold down to bring up the Twitcher.

CTRL ALT DEL

Opens the Team Monitor.

ALT ESC

Enters the menu bar (leave with ESC ).

ALT C

Copies the selection to the clipboard.

ALT X

Cuts the selection to the clipboard.

ALT V

Pastes the clipboard's contents.

ALT W

Closes the active window.

CTRL ALT Z

Expands a window to an alternative size (maximum size for most


applications).

CTRL ALT M

Minimizes the active window.

CTRL ALT H

Hides (minimizes) all windows of the active application.

ALT Q

Quits an application.

Shortcuts for Tracker navigation


Additionally to the general shortcuts, here are some more for navigating with Tracker:
ALT

Opens the parent folder.

24

ALT

or

Opens the selected folder.

ENTER

Holding it while opening a folder will automatically close the parent folder. This

OPT

also works when navigating with the mouse.


MENU

Opens the Deskbar menu (leave with ESC ).

ALT Z

Undo last action. The undo history is only limited by the available memory. Note,
this only works for actions on the file itself, changed attributes and permission
settings can't be undone with this. Also, once a file is removed from Trash it's gone
for good.

ALT SHIFT Z

Redo the action you just reverted with ALT Z .

Shortcuts in Terminal
ALT N

Opens another Terminal session in a new window.

ALT T

Opens another Terminal session in a new tab.

ALT

1 , 2 , 3 ...

SHIFT

ALT TAB
ALT

ALT ENTER
SHIFT

SHIFT P AGEUP /

Switches to the corresponding tab.


Switches to the previous/next tab.
Switch to the next Terminal window.
Increase/Decrease font size.
Enter/leave fullscreen mode.
Scrolls the Terminal output up/down one line.
Scrolls the Terminal output up/down one page.

P AGEDOWN
TAB

Tab-completion. After entering a few letters, press TAB once to auto-complete a


filename or path. If there is more than one match, it stops where the name starts
to differ and you have to provide some more letters to further distinguish them.
You can also press TAB twice to have all matches listed.

CTRL R

Moves up or down in a history of all previously entered commands.


Bash history. All the commands you enter are stored in the file ~/.bash_history.
Press CTRL R and start to enter a command and you'll be provided with the first
match from the bash history. Keep pressing CTRL R until you find the right
command line and press enter to execute it.

CTRL C

Stops the currently running command.

CTRL D

Closes the current Terminal session.

Other key combinations


You can add or remove items to/from a selection by holding down a modifier key while clicking on a
entry (or file in case of Tracker).

25

SHIFT

This will select everything between the first selected item and the one you click on.

ALT

Adds or removes the item you're clicking on from the selection.

In a Tracker window, if you just start typing, Tracker scrolls to and selects the file that best fits your
incremental search. If there's no file starting with your typed letters, files that contain the search
string anywhere in their name or other displayed attributes are selected. This search is not casesensitive.
The letters you type appear at the bottom-left, where normally the number of items is listed. After a
second it reverts back and you could start a new incremental search.

26

Deskbar
The Deskbar is the little panel that by default is located in the upper right corner of the screen. It's
Haiku's version of Windows' taskbar with its Start button. It contains the Deskbar menu from where
you can start applications and preferences, a tray with a clock and other tools below that and a list of
currently running programs at the bottom.

You can move the Deskbar to any corner or as a bar along the upper or lower border of the screen by
gripping the knobbly area on the left side of the tray and drag&drop it into the new position. You can
also fold it into a more compact layout by drag&dropping the knobbly area onto the Deskbar menu.

The Deskbar Menu


A menu opens when you click on the Deskbar's top:

About This System... - Shows some basic information of the system, licenses and the credits of
the Haiku project.
Find... - Opens the Query dialog.

27

Show Replicants - Shows/hides the little Replicant widget you use to drag it around, remove or
access its context menu.
Mount - Offers the same options as when invoked by right-clicking the Desktop (see Mounting
Volumes).
Deskbar Settings
Configure Deskbar
Menu...

Opens a panel to configure the Deskbar menu (see below).

Always on Top

The Deskbar always stays above all other windows.

Auto Raise

The Deskbar pops to the front if the mouse pointer touches it.

Sort Running
Applications

Sorts the list of running programs alphabetically.

Tracker always First

Even if you sort alphabetically, the Tracker entry always stays first in the list.

24 Hour Clock

Toggles between 24 and 12 hour clock.

Show Seconds

Adds the display of seconds to the clock.

European Date

Shows the date in European format: day-month-year

---- Full Date ---Show Application


Expander

Provides a small widget to show/hide all windows of a program directly under


its entry in the Deskbar.

Expand New
Applications

Newly launched programs have their windows automatically expanded under


their entry in the Deskbar.

Shutdown - Offers options to either Restart System or Power Off.


Recent Documents, Folders, Applications - List of the last recently opened documents, folders
and applications (see Configure Deskbar Menu... below).
Applications, Demos, Deskbar Applets, Preferences - List of installed applications, demos,
applets and preferences (see Configure Deskbar Menu... below).

Configure Deskbar Menu...

28

In this panel you set the number of recent documents, folders and applications that are shown in the
Deskbar, or if you show them at all.
Here, you also configure folders and their contents, which are by default Applications, Demos, Deskbar
Applets, and Preferences. You can add your own entries and edit or remove items.
This part of the panel is just a representation of the folder /boot/home/config/be/. You can just as well
link or copy files and folders or even queries directly in Tracker to configure your Deskbar.
It's even easier to simply drag a file, folder or saved query and drop it where you want it into the
Deskbar.

The Tray

Among other things, the tray is housing the clock. Left-click it to toggle between date and time. Rightclick
it
to
hide/show
it
or
launch
the
Time
preferences
to
set
it.

29

Here you can also launch a calendar that also appears, when you hold down the left mouse button on
the clock for a little time.
Any program can install an icon in the tray to provide an interface to the user. The email system, for
instance, shows a different symbol when there's unread mail and offers a context menu to e.g. create
or check for new mail. ProcessController is another example that uses its icon in the tray to provide
information (CPU/memory usage) and to offer a context menu.

The list of running programs

You can change to a specific running application by clicking on its entry in the Deskbar and choosing
(one of) its windows, from the submenu. By right-clicking you can minimize or close a window or the
entire application.
If you activated Expanders in the Deskbar settings, you can expand/collapse the list of windows
directly under an application's entry.
In front of every application's windows is a symbol providing info on its state. A bright symbol means
a window is visible, a dark one that it's minimized. Three lines in front of a symbol shows that it's not
on the current workspace.

30

Filetypes
Other

than

Windows, Haiku doesn't

rely

on

the

3-letter

file extension

for a

file type

(e.g. .txt, .jpg, .mp3). This method is only a last resort fallback. Haiku uses MIME (Multipurpose Internet
Mail Extensions) types just like it's custom on the internet.
While there's no reason to use file extensions in Haiku, remember to add them to files
you want to share with users of other operating systems, e.g. over email, uploading to a
server or via exchange of an USB drive. Otherwise their system may not recognize the
file type.

Setting the filetype of a specific file


You can change the type of a specific file, its icon and the associated application. Select the file and
invoke the Add-Ons | Filetype add-on from the right-click context menu.

The File Type


This is a JPEG file, it's MIME string image/jpeg. Let's say you definitely know that it's not a JPEG but a
GIF. You can change that either by entering the correct MIME string by hand or with one of the two
buttons below the textbox:
Select...

shows a hierarchical list of filetypes where you navigate to image | GIF Image.

Same
as...

opens a file dialog where you choose any file that already has the filetype you're looking
for.

The Preferred Application


This drop-down menu shows a list of all applications that can handle this particular filetype. From here
you can choose which program should open this specific file when it's double-clicked. You could, for
example, change a HTML file's preferred application from the browser to a text editor while you're
working on it. Every other HTML file still opens in the browser, only this particular one starts in your
text editor.

31

The Default Application is the one that's set globally for that filetype. If you don't find the program you
want to associate with this file in the drop-down menu, you'll again find the buttons Select... and Same
As... which do the similar thing described under "The File Type" above.

The Icon
If you're wondering why the icon well on the top right is empty: Icons are normally inherited from the
system default for that filetype. You can open the Filetype Add-On of a file that contains an icon and
drag&drop it into your file's icon well. Or you double-click the icon well and create or edit your own
icon. For more info on icons and how to create your own, see topic Icon-O-Matic.

Special settings for applications


If you invoke the Filetype Add-On on an executable (here: StyledEdit), you'll get a different dialog:

On top, you'll see, instead of a standardized MIME string, the unique application signature. With it, the
system finds the program wherever it's installed.
Below it are several flags, controlling the app's behaviour:

32

Single Launch

Only one instance of the app can be running per executable file. If you have two copies
of that app, however, they can run side by side.

Multiple
Launch

Many instances of the app can run simultaneously.

Exclusive

Really only one instance with that app's signature is allowed to run at a time.

Launch
Args Only

Indicates the app doesn't respond to messages.

Background
App

The app won't appear in Twitcher or the list of running apps of the Deskbar.

Then there's the list of supported filetypes. You can add (and remove) filetypes if you think the
application can handle them. As a consequence, the app will appear in the menu for preferred
applications or Tracker's Open with... context menu when you right-click on a file of that type.
At the bottom are version and copyright information . Like the application signature, they are filled in
by the app's author and shouldn't be altered.

Global settings with the Filetypes Preferences


The Filetypes preferences don't deal with individual files but with global settings of filetypes. You can
change default icons and preferred applications or add, remove, or alter attributes of whole filetypes.
You can even create your own filetype from scratch.
All filetypes and their configurations are stored in /boot/home/config/settings/beos_mime/. Before you
start experimenting, it may be prudent to make a backup of that folder...
To learn more about the Filetypes preferences see the workshop: Filetypes, Attributes, Index and
Queries.

33

Attributes
Attributes are data fields that belong to a file but aren't part of that file, e.g. they are not computed
into the file size and can be copied or changed without touching the file itself. The system uses these
attributes to store e.g. file size, file type or date of the last modification. This is similar to other
operating systems and their filesystems.
What's different is that you can add any kind of attribute to any file and display it or make it editable
in a Tracker window. You just have to define the kind of attribute you want to add to a file type (e.g.
string, integer or time) and give it a name and description.
The file itself doesn't even need any contents at all. Take a look at these People files for example:

As you can see, these are all 0-sized files with attached attributes, the E-mail attribute of "John Nox"
being edited right in Tracker.
If you index these attributes, as People, Email or audio files are by default, they are also searchable
with Haiku's fast query system.

Attributes in Tracker
Attributes are displayed quite similar to a database or spreadsheet. Using Tracker you can choose
which attributes to display (columns) and sort file listings (rows) accordingly.
To do this, open a Tracker window, click on the Attributes menu, and select the attributes you want to
display. Alternatively, simply right-click onto a column heading and mark the items in the context
menu. You can rearrange the columns by a simple drag&drop of the column heading. Moving a
column out of a window, is a fast way to get rid of columns you don't need.
Double-click on the line between two attributes in the heading to automatically resize a column to its
optimal width.
Click on a column heading to toggle the sorting order from ascending to descending. You can
establish a secondary sort order by pressing the SHIFT key while clicking on a column heading. Doing
that you can, for example, sort your People files by company and within that order sort by contact
name. See the above screenshot as an example. The secondary sort order is marked by a lighter
colored indicator beside the heading.

34

Editing these attributes is as simple as renaming a file: Either click on an entry or press ALT E and
move between the attributes with TAB and SHIFT TAB . ESC leaves the editing mode without applying
the changes.

Attributes in Terminal
If you prefer to use the commandline or plan to work with many files using scripting, there are several
commands for controlling attributes from Terminal:
listattr - lists a file's attributes, but doesn't show the contents of the attributes.
usage: listattr 'filename' ['filename' ...]

From our screenshot example above:

~/people ->listattr Clara\ Botters


File: Clara Botters
Type
Size
Name
----------- --------- ------------------------------MIME String
21 "BEOS:TYPE"
Text
14 "META:name"
Text
6 "META:nickname"
Text
1 "META:company"
Text
Text
Text
Text
Text

18
8
1
1
1

"META:address"
"META:city"
"META:state"
"META:zip"
"META:country"

Text
Text
Text
Text
Text

1
13
1
19
1

"META:hphone"
"META:wphone"
"META:fax"
"META:email"
"META:url"

Text
Raw Data

5
20

"META:group"
"_trk/pinfo_le"

131 bytes total in attributes.

Besides all the "META:*" attributes that hold the contact's information , there are two attributes that
are managed by the system:
BEOS:TYPE holds the file type as a MIME (Multipurpose Internet Mail Extensions) string, here
"application/x-person. It determines the default icon and the application that opens the file when
you e.g. double click it.
"_trk/pinfo_le" is the attribute with which Tracker keeps track of a file's icon position.

35

Note the backslash after "Clara". In Terminal you have to "escape" special characters
like '"*\$?!. The space between "Clara" and "Botters" is also one of those. Therefore
the backslash is really in front of the space character, and not after "Clara".

catattr - displays the contents of a specific attribute of a file.


usage: catattr [--raw|-r] attr_name file1 [file2...]

Again our example:

~/people ->catattr META:city Clara\ Botters


Clara Botters : string : Whelton

addattr - adds an attribute to a file and/or fills it with a value.


usage: addattr [-t type] attr value file1 [file2...]
or: addattr [-f value-from-file] [-t type] attr file1 [file2...]
Type is one of:
string, mime, int, llong, float, double, bool, raw
or a numeric value (ie. 0x1234, 42, 'ABCD', ...)
The default is "string"

So, say dear Clara took a job with the multi-national Barkelbaer Inc., you fill the formerly empty
"Company" attribute with that data (which is of type "string"):

~/people ->addattr -t string META:company Barkelbaer\ Inc. Clara\ Botters

rmattr - completely removes an attribute from a file.


usage: rmattr [-p] attr filename1 [filename2...]
'attr' is the name of an attribute of the file
If '-p' is specified, 'attr' is regarded as a pattern.

Though in all practicality it would be enough to just not fill the "Fax" attribute, you can completely
remove it from Clara's file by typing:

~/people ->rmattr META:fax Clara\ Botters

36

copyattr - copies attributes from one or more files to another. By default, the actual contents of the
file is not copied.
Usage: copyattr <options> <source> [ ... ] <destination>
If you do want to copy the attributes plus the data of the file itself, you can add the option "-d" or "-data".

More information on these commands and their options can be found by typing the command name
followed by "-h" or "--help".

37

Index
Attributes and Queries are key features of Haiku. While attributes are useful on their own, to
display additional information on a file, for a query on them, they need to be indexed. It puts them
into a lookup table, which in turn makes queries lightning fast.
The index is part of the filesystem and is kept for every volume/partition separately.

Indexing commands in Terminal


There are several commands to manage the index:
lsindex - Displays the indexed attributes on the current volume/partition.
These are the attributes that are indexed by default:

~ ->lsindex
BEOS:APP_SIG
MAIL:account
MAIL:cc
MAIL:chain
MAIL:draft
MAIL:flags
MAIL:from
MAIL:name
MAIL:pending_chain
MAIL:priority
MAIL:reply
MAIL:status
MAIL:subject
MAIL:thread
MAIL:to
MAIL:when
META:address
META:city
META:company
META:country
META:email
META:fax
META:group
META:hphone
META:name
META:nickname
META:state
META:url
META:wphone
META:zip
_signature
_status
_trk/qrylastchange
_trk/recentQuery
be:deskbar_item_status
last_modified

38

name
size

mkindex - Adds an attribute to the index of a volume/partition.


Usage: mkindex [options] <attribute>
Creates a new index for the specified attribute.
-d, --volume=PATH
-t, --type=TYPE

--copy-from
-v, --verbose

a path on the volume to which the index will be added,


defaults to current volume.
the type of the attribute being indexed. One of "int",
"llong", "string", "float", or "double".
Defaults to "string".
path to volume to copy the indexes from.
print information about the index being created

Only new files with that attribute come automatically into the index!
Existing files have to be added manually by copying them and deleting the originals after that.
Alternatively you can use the tool reindex.
rmindex - Removes an attribute from the index of a volume/partition.
Usage: rmindex [OPTION]... INDEX_NAME
Removes the index named INDEX_NAME from a disk volume. Once this has been
done, it will no longer be possible to use the query system to search for
files with the INDEX_NAME attribute.
-d, --volume=PATH
-h, --help
-p, --pattern
-v, --verbose

a path on the volume from which the index will be


removed
display this help and exit
INDEX_NAME is a pattern
print information about the index being removed

INDEX_NAME is the name of a file attribute.


If no volume is specified, the volume of the current directory is assumed.

39

Queries
A query is a file search based on file attributes and can be performed within Tracker or in Terminal.
Queries are saved in /boot/home/queries/ and by default last seven days before being purged. Note,
these aren't static result lists of your search, but are the query formulas which trigger a new search
whenever you open them.
Even better, you don't have to double-click to re-do a query. You can drill down a saved query just
like any folder by right-clicking on it and navigating through the submenus.

The Find window


You start a query by invoking the Find... menu either from the Deskbar menu or any Tracker window or
the Desktop (which is actually a fullscreen Tracker window). The shortcut is ALT F . You're presented
with the Find window:

1. Select previous or saved queries or save the current query.


2. Narrow down your search from "All files and folders" to specific file types.
3. Define the search method:
by Name - a basic search by filename
by Attribute - an advanced search, you specify search terms for one or more attributes
by Formula - an even more advanced search, you can fine-tune a complex query term
4. Select which drives to search on.
5. Enter the search term.
6. The expander hides/unhides the additional options.
7. Uncheck the Temporary checkbox if you don't want this query self-destruct after 7 days.
8. Check if your query is supposed to Include trash.
9. Optionally, enter a name for this query if you want to save it.
10. You can drag&drop the icon to save the query.

Basic queries - "by Name"

40

If you simply want to find all files on your mounted disks that match a certain pattern, simply leave
the search method at "by Name", enter the search term into the text box and press ENTER .

Advanced queries - "by Attribute"


You can create more advanced queries by searching within the attributes of specific file types. For
that to work, these attributes have to be indexed.

You start by setting the filetype from "All files and folders" to "text | E-mail" and change the search method
to "by Attribute".
This adds a drop-down menu to the left of the textbox and the buttons "Add and Remove under that.
From the menu you choose which attribute to query. With Add and Remove you can query additional
attributes or remove them again. These attributes can be logically linked with AND/OR.
Let's do an email query as an example:

This is your Find window when you're looking for all emails Clara Botters has sent to you in the last
two months that had in the subject "vibraphone" or "skepticality".

Even more advanced queries - "by Formula"


Typing in a formula query by hand is daunting and really quite unpractical. It still has its uses.

41

Take the above query by attribute of Clara's mails concerning vibraphones etc. If you have all the
attributes and their search terms set, try switching to "by Formula" mode and be overwhelmed by this
one line query string:

Once more as text, edited for readability:

(((((MAIL:from=="*[cC][lL][aA][rR][aA] [bB][oO][tT][tT][eE][rR][sS]*")
&&(MAIL:when>=%2 months%))
&&(MAIL:subject=="*[vV][iI][bB][rR][aA][pP][hH][oO][nN][eE]*"))
||(MAIL:subject=="*[sS][kK][eE][pP][tT][iI][cC][aA][lL][iI][tT][yY]*"))
&&(BEOS:TYPE=="text/x-email"))

What's the use?


You could copy and paste the string into an email, forum or IRC for others to use or debug.
You can use this method to construct a query in Attribute mode and then switch to Formula mode, to
comfortably generate a search string to use for a query in Terminal or a script.
You can fine tune your query by inserting parenthesis where needed, make parts case-sensitive or
negate logical combinations by changing. e.g. "==" to "!=" for a NOT AND. All you need is a basic
understanding of regular expressions and maybe some scripting basics.

The result window


After you start a search, the Find window will be replaced by a result window. Here is an example that
queried for "server":

42

Besides the gray background, result windows work exactly like any other Tracker window. Some
things are worth noting:
You can open the folder a file resides in by double clicking on its path attribute.
With File | Edit Query or ALT G you get back to your Find window to refine your query.
A query is live, i.e. if a file that matches your search criteria appears or disappears from your
system, this change is reflected in your results in real-time.
You can assign a sensible attribute layout for query results of a specific filetype. Open a folder
containing files of the filetype you'd like to create a template for and arrange the attributes how you'd
like to have query results presented. Copy this layout with Attributes | Copy Layout.
Open /boot/home/config/settings/Tracker/DefaultQueryTemplates, create a new folder and rename it to
group/filetype, replacing slashes with underscores, e.g."audio_x-mp3". Open the new folder and paste
in the layout with Attributes | Paste Layout.

43

Workshop: Filetypes, Attributes, Index and Queries


This is a workshop to show the use of Attributes, Queries, the Index and custom Filetypes. As an
example, we build a database to keep track of our DVD library.

Preparations
Let's first decide what filetype and attributes would serve our needs. Originally, I wanted to use a
Bookmark file with a link to the movie's IMdB page, but Haiku doesn't have a "bookmarkable" browser
like BeOS' NetPositive at the moment, so I came up with this: The file itself will be a JPEG image for the
movie cover.
To that we add a couple of attributes. Here we have to decide if we want to query it later (then we
have to add it to the index) and if so, what type of attribute it should be. Numbers (int, float) can be
evaluated differently than text (</=/> vs. is/contains/starts with).
Here are the attributes I'd like to see for my DVDs:
Movie title
Genre
URL to e.g. IMdB
Director/Cast
Plot
My rating from 1 to 10
Coordinates in my shelf, e.g. A2, B3, so I find the DVD also in Real Life :)
If so, who's borrowed the disk...

Creating a custom filetype


Start the Filetypes preferences, and click on the Add... button below the hierarchical list on the left. A
small dialog opens and you specify in which MIME Group your new filetype will reside. You can also
create a completely new group. Let's put it into "applications" and set the "Internal Name" to DVDdb.

44

Now, a panel for your new DVDdb filetype opens:

Icon

45

Double-click the icon well to open Icon-O-Matic to design an icon for your filetype. You can also
drag&drop an icon from the icon well of another type, maybe as starting point for a modified version.

File Recognition
You can add suffixes like .txt, .jpg, .mp3 to recognize files by their extention. Useful when working with
files from systems without MIME typing. We don't need that for our example.

Description
Type Name - Appears e.g. in the Attribute menu of Tracker windows and the "Kind" attribute of a
file.
Description - A bit more detailed description.

Preferred Application
This drop-down menu shows a list of all applications that can handle this particular filetype. From here
you can choose which program should open this specific file when it's double-clicked.
Select...

opens a file dialog where you choose the application to open with this filetype. Here, we set
ShowImage to display the DVD's cover.

Same
as...

opens a file dialog where you choose any file that already has the preferred application set
that you're looking for.

Extra Attributes
Here we enter all the custom attributes we decided on in our preparations. Clicking the Add... button
opens a panel:

46

Attribute Name - Appears e.g. as the column heading in Tracker windows.


Internal Name - Is used for indexing and querying the attribute.
Type - Defines the value the attribute can hold and therefore how it can be queried.
String for normal text
Boolean for binary data: 0 or 1
Integer for integer numbers with different ranges:
8 bit: 255
16 bit: 65,535
32 bit: 4,294,967,295
64 bit: 18,446,744,073,709,551,615
Float for floatingpoint numbers, single precision
Double for floatingpoint numbers, double precision
Time for time and date format
Visible - This checkbox determines if the attribute is visible in a Tracker window at all. Since the
Tracker will be the interface to our DVD database, we check it and define its appearance with:
Display As - Leave on "Default". In the future more option will become available, e.g. a bar or stars
for a rating etc.
Editable - Determines if the attribute shall be editable in Tracker.
Width - The default width of that attributes column in a Tracker window.
Alignment - The attribute can be displayed left, center, or right aligned.
Now, insert all the info for our attributes:

47

Internal Name

Attribute type

indexed?

Description

DVDdb:title

text

yes

Movie title

DVDdb:genre

text

yes

Genre

DVDdb:url

text

no

URL

DVDdb:cast

text

yes

Director/Cast

DVDdb:plot

text

no

Plot

DVDdb:rating

int-32

yes

Rating 1 to 10

DVDdb:coord

text

no

Shelf

DVDdb:lent

text

yes

Lent to

Indexing
Before we start entering data in our little DVD database, we should add certain attributes to the
Index. Only indexed attributes can use Haiku's fast Queries.
So, what will we be searching in the future? We probably won't ask "What's in the B4 coordinate in my
shelf?" or "Does the IMdB URL or the plot of the movie contain the word 'pope-shenooda'?".
This leaves these attributes:
Internal Name

Attribute type

DVDdb:title

text

DVDdb:genre

text

DVDdb:cast

text

DVDdb:rating

int-32

To index them, we open a Terminal and simply add one attribute after the other:

mkindex -t string DVDdb:title


mkindex -t string DVDdb:genre
mkindex -t string DVDdb:cast
mkindex -t int DVDdb:rating

48

The -t option defines the type of attribute, which is "string" for all but the rating, which is an integer
number.

Filling in the data


Now, everything's set and we can begin putting some data into our base.
Since our basic file is a cover image, we go to some online resource like IMdB, look for our first movie
and save the cover or movie poster in a new folder where we want to keep our DVDdb files.
Opening that folder we see a typical Tracker window with one JPEG in it. Right-clicking it, we change its
filetype to application/DVDdb with the Filetype Addon. There's more info on this in the Filetypes
document.
Now, we activate all our DVDdb attributes from the Attributes menu of the Tracker window and
rearrange the columns to our taste:

By clicking on a yet empty attribute (or pressing ALT E ) we enter editing mode and fill each attribute.
With TAB and SHIFT TAB you can navigate between attributes.
In our example, we usually start with a downloaded JPG cover and change its type to applications/
DVDdb. There's another elegant way to produce a file to work with. Just copy an empty file of our
filetype to /boot/home/config/settings/Tracker/Tracker New Templates and rename it to DVDdb.
Right-clicking into a Tracker window, you'll find a new entry under New... besides the default "New
folder".

Querying the database


Several hours of grunt work later, we have a nice little database that you can query to find all your
Christina Ricci movies that have a 7+ rating... :)
You can assign a sensible attribute layout for query results of a specific filetype.
Open the folder containing your DVDdb files and arrange the attributes how you'd like to have query
results presented. Copy this layout with Attributes | Copy Layout.
Open /boot/home/config/settings/Tracker/DefaultQueryTemplates, create a new folder and rename it to
group/filetype, replacing slashes with underscores; in our case "applications_DVDdb".
Open the new folder and paste in the layout with Attributes | Paste Layout. Voil:

49

50

Applications
Before diving into all the applications that come with Haiku, let's have a more detailed look at how to
install and uninstall programs you downloaded somewhere, for example from a site mentioned on the
Welcome page.

Installing applications
Haiku software always comes as an archive. Most of the time it's a ZIP, some old BeOS packages come
in Software Valet's PKG format. Software Valet was able to automatically execute installation scripts,
so after double-clicking you just select a destination folder and everything's taken care of.
If it's a ZIP archive, double-clicking opens Expander where you also set the destination and unpack it. As
explained in the topic Filesystem layout, that destination is either
/boot/common/apps/

for applications available to every user

/boot/home/apps/

for applications only available to yourself

This distinction will only become relevant once Haiku gets multi-user support, of course.
Once the archive is unpacked, you should have a look into the newly created folder. Often you find
ReadMe files or other documentation of interest.
Some programs need further configurations. For example, Tracker Add-Ons, Translators or other
system enhancing components have to be put into the right folders. Either you'll find a little script file
(often with the suffix .sh) like install that you simply double click to have all taken care of.
Sometimes you'll find folders that link to the correct destination named "drag [filename] here...". So,
you simply follow that instruction and you're done.
Most of the time, however, nothing of the sort is necessary and you're done after unpacking.
See topic Deskbar or LaunchBox to see how to add shortcuts to your newly installed application.

Uninstalling applications
If the installation was done with an install script, chances are, there's an uninstall script as well. In that
case, double-click it and you're done.
Otherwise, uninstalling is simply done by deleting the application's folder.
This, of course, leaves back possible configuration files in your ~/config/settings folder. This may be
on purpose, if you want to keep those settings in case you'll install the program again in the future.
Also, when the installation involved those "drag [filename] here..." folders, those files are also left
behind.
One method to quickly get to all the app's files is to do a quick query for a significant part of the
application's name. This will reveal the app's binary, its installation folder and its settings as well as
possible links in the Deskbar etc. Simply select all relevant files and delete them.

Haiku's applications
51

Haiku comes with a set of mostly small but essential applications. You'll find all of them at /boot/
system/apps/ or /boot/common/apps/. Applications that are not usually launched by a double-click on a
data file (e.g. ShowImage for image files) can be found in the Applications menu of the Deskbar.
ActivityMonitor

A tool to track system resources like CPU and memory usage.

CDPlayer

A player for audio CDs.

CharacterMap

An application that shows the Unicode character map.

CodyCam

A tool to regularly upload images from a webcam to a server.

DeskCalc

A calculator.

DiskProbe

A HEX editor for files and devices.

DiskUsage

A tool to visualize a disk's memory usage.

DriveSetup

A harddisk partitioning tool.

Expander

A tool to unpack common archives.

Icon-O-Matic

An app to create Haiku's vector icons.

Installer

The tool to install Haiku to a partition.

Magnify

A magnified view of the area around your mouse pointer.

Mail

An email client. [still missing]

MediaPlayer

A player for all supported audio/video files. [still missing]

MidiPlayer

A player for MIDI files. [still missing]

PackageInstaller

Installer for BeOS packages in PKG format. [still missing]

People

A contact manager.

PoorMan

A simple web server.

Screenshot

A tool to take screenshots.

ShowImage

A simple image viewer. [still missing]

SoundRecorder

A tool to record audio from line-in or a microphone. [still missing]

StyledEdit

A simple text editor.

Terminal

Access to the bash.

TextSearch

A search tool for text files. [still missing]

TV

A viewer for analog TV. [still missing]

Bundled applications
Besides the above listed programs, which are all maintained by the Haiku project, there are a few
essential applications bundled in a standard Haiku system. Bugs and feature requests for those have
to be filed with the particular maintainer.
BePDF

A PDF (Portable Document Format) viewer.

BeZillaBrowser

A web browser based on Mozilla's source code.

Pe

An advanced texteditor with syntax coloring and much more.

Vision

An IRC (Internet Relay Chat) client.

VLC media player VideoLAN's media player.


WonderBrush

YellowBite's graphics programm.

52

Desktop Applets
Haiku provides a few useful tools that can be installed on the Desktop or the Deskbar via their
Replicants.
LaunchBox

Shortcuts to your favorite applications.

NetworkStatus

Is your connection up?

ProcessController

See and control every running app and service.

Workspaces

A miniature version of all workspaces.

53

LaunchBox
Deskbar:

Desktop Applets

Location:

/boot/system/apps/LaunchBox

Settings:

~/config/settings/LaunchBox/*

One or more LaunchBox applets can be started to organize shortcuts to your favorite applications or
documents. You decide if each is shown on all or just the current workspace. They can also serve to
quickly open a document in a specific application. For example, you could drag&drop a HTML file onto
a text editor in a LaunchBox to open it in the editor instead of its preferred application, the browser.

All options are reached from the context menu:


Add Button Here

Adds an empty button.

54

Clear Button

Empties a button.

Remove Button

Removes a button.

Settings
- Horizontal Layout
- Icon size

Aligns the buttons horizontally.


Sets the icon size between 16 and 64 pixel.

Launches the object only once, even when you (accidentally) double-click.
Shows the window border.
LaunchBox pops up if the mouse is near the screen edge.
Shows the LaunchBox on every workspace.

Ignore Double-click
Show Window Border
Auto Raise
Show On All Workspaces

Pad
- New
- Clone
- Close

Add a new pad.


Duplicate the current pad.
Close the current pad.

LaunchBox
- About...
- Quit

Shows the About window.


Quits all LaunchBox pads.

55

NetworkStatus
Deskbar:

Desktop Applets

Location:

/boot/system/apps/NetworkStatus

Settings:

none

Documentation is still missing. If you want to work on it, please announce it on the Documentation
mailing list to avoid duplication.

56

ProcessController
Deskbar:

Desktop Applets

Location:

/boot/system/apps/ProcessController

Settings:

none

Documentation is still missing. If you want to work on it, please announce it on the Documentation
mailing list to avoid duplication.

57

Workspaces
Workspaces are virtual desktops, complete with their own resolution, color depth and background. Up
to 32 of these workspaces can be set from the Screen preferences.

The Workspaces Applet


Deskbar:

Desktop Applets

Location:

/boot/system/apps/Workspaces

Settings:

~/config/settings/system/app_server/workspaces
~/config/settings/Workspaces_settings - Stores the panel's window position.

You find the Workspaces applet with the other Desktop Applets in the Deskbar. It shows a miniature
version of all workspaces. There are several options available from the context menu of the applet's
window, which are all pretty self-explaining.
Change Workspace Count... will open the Screen preferences where you set the number of workspaces
and their arrangement (how many rows and columns).
Since the applet is a Replicant, you can resize the window as desired and then drag&drop it by its
handle onto the desktop (make sure "Show Replicants" is activated in the Deskbar menu).

Switching workspaces
You switch between workspaces by either clicking into the Workspaces applet or by using the
keyboard shortcut ALT FX , where "x" is the workspace number. It's a good idea to arrange your
workspaces in rows of four to mimick the layout of the FX keys on the keyboard.
Also, clicking on an application or one of its windows in the Deskbar will send you to the workspace it's
in.
Another very convenient way is to use CTRL ALT
the available workspaces.

/ / / to navigate spatially the rows/columns of

You can switch back and forth between two workspaces with ALT ~ (which, depending on the keymap
you're using, is the key below ESC , which you have to hit twice to get a ~).

58

Moving windows between workspaces


To move a window, you grab it in the Workspaces applet and simply drag it to another workspace. This
has the advantage, that you can move it without leaving your current desktop. Of course, that only
works well when there aren't too many windows in a workspace and your target isn't obscured by
other windows. Another possibility is to grab a window by its tab and just holding on to it while
switching workspaces with ALT FX .

Special functionality
The Workspaces applet provides some additional functionality when clicking on a window while
holding certain modifier keys:
CTRL

Brings the the window to the foreground.

CTRL SHIFT

Minimizes the window.

OPT

Sends the window to the back.

59

Preferences
While a key philosophy of Haiku is to cut down on options and have sensible defaults instead, there
are some things that have to be configured or can be set to individual preference. You find all panels
in Deskbar's Preferences menu.
Appearance

Configure certain aspects of the graphical interface.

Backgrounds

Set a color or image as background of the Desktop or any other folder.

DataTranslations

Settings for all supported file formats.

E-mail

Configure your email accounts.

FileTypes

Add, remove and configure filetypes.

Fonts

Set your system fonts.

Keyboard

Configure repeat delay and rate.

Keymap

Set the mapping of your keyboard.

Media

Audio and video settings like in/output devices and the system's audio
mixer.

Mouse

Configure your mouse.

Network

Configure your network.

Printers

Add, remove and configure printers.

Screen

Configure resolution, depth and refresh rate.

ScreenSaver

Add, remove and configure a screen saver.

Sounds

Assign sounds to different system events.

Time

Set time, date and timezone.

Tracker

Configure Haiku's file manager.

VirtualMemory

Set the amount of swap space.

60

Appearance
Deskbar:

Preferences

Location:

/boot/system/preferences/Appearance

Settings:

~/config/settings/system/app_server/appearance

The Appearance preferences lets you change some aspects of Haiku's visuals.

Colors

In the first tab, Colors, you can change the colors of different parts of the user interface. The color well
accepts drag&drops from other programs, letting you drag colors over from e.g. WonderBrush, Icon-OMatic or the Backgrounds panel.

Antialiasing

61

The second tab, Antialiasing, provides different settings for how things are rendered on screen.

Glyph hinting
An activated Glyph hinting aligns all letters in such a way that their vertical and horizontal edges rest
exactly between two pixels. The result is a perfect contrast, especially when dealing with black on
white. Text appears crisper. There's also a setting for "Monospaced Fonts Only" that's especially helpful
with low resolution devices like netbooks. Small fonts can look pretty bad when hinting is turned on,
but with this setting you still have the advantage of hinting for text editors and Terminal.
See the difference hinting makes with these magnified screenshots:

Hinting: off

Hinting: on

It should be pointed out that all the Magnify windows on this page are of course rendered themselves
with the different options as well. So, you get a real world impression of the settings by comparing, for
example, the bold yellow tab title or the text "33 x 15 @ 8 pixels/pixel".

Antialiasing type

62

Another technique to improve rendering is Antialiasing, which supports all vector graphics as well as
text. It smooths lines by changing the color of certain pixels. There are two methods for that:
Grayscale changes the intensity of pixels at the edge.
LCD subpixel does an even better job, especially with (high resolution) LCD monitors. Instead of the
intensity of a pixel, it changes its color which moves an edge by a fraction of a pixel, because LCD
displays produce every pixel with a red, green and blue component.
Again, the two different methods with magnified screenshots:

Grayscale, Hinting: off

LCD subpixel, Hinting: off

Subpixel based antialiasing adds a slight colored shine to objects. Something not everyone tolerates.
In Haiku you can mix the two antialiasing methods and find the right setting for you by using a slider.
The subpixel based antialiasing in combination with the glyph hinting is subject of a
software patent and is therefore not available by default. Depending on where in the
world you live, you may get an unlocked version. Sorry about that. Talk with your
representative.
If you do activate hinting plus LCD subpixel rendering by changing the source and recompiling, this is
how it looks compared to hinting with Grayscale:

Grayscale, Hinting: on

LCD subpixel, Hinting: on

At the bottom of the panel are two buttons:

63

Defaults resets everything to default values.


Revert

brings back the settings that were active when you started the Appearance preferences.

64

Backgrounds
Deskbar:

Preferences

Location:

/boot/system/preferences/Backgrounds

Settings:

~/config/settings/system/app_server/workspaces
~/config/settings/Backgrounds settings - Stores the panel's window position.

You can set a color or an image as background for every folder and the Desktop for every workspace.

The top drop-down menu specifies if your changes are applied to the current workspace, all
workspaces, a specific folder or as default for every new folder.
Below that you can assign an image or select None if you want simply a colored background. Images
can also be drag&dropped onto the preview to the left.
If you are using an image, you have to decide on the placement:
Manual

lets you specify the coordinates. You can drag the picture around in the preview to the left
or enter X and Y manually.

Center

centers the picture in the middle of the screen.

Scale to
fit

enlarges the picture with no regard to its aspect ratio until it fills the screen.

Tile

fills the screen by repeating the picture.

If you are using an image you can activate Icon label outline which will put an thin contour around an
icon's label.
If an icon label's actual text is black or white depends on setting of the color picker. A dark color sets
the text to white, a light color to black. So, if you assign a very bright image to the background, you
should also set the color picker to a bright color in order to have icon labels readable in black. (Or use
the

outline

option

65

above.)

The selected color is also reflected in the Workspaces applet, which ignores images as
backgrounds.
Revert brings back the settings that were active when you started the Backgrounds preferences.
Apply

sets your changes.

66

DataTranslations
Deskbar:

Preferences

Location:

/boot/system/preferences/DataTranslations

Settings:

~/config/settings/* - Every Translator creates its own settings file here after you've

changes its defaults.


~/config/settings/system/DataTranslations settings - Stores the panel's window position.

Every application has the ability to open and save every file format for which there's a Translator
installed. The settings for these Translators are configured in the DataTranslations preferences.

Depending on its capabilities, each Translator offers different settings. At least you'll get an Info...
button that opens a window with the credits and the installation path.
The following table gives an overview of the default Translators and their most useful options.
BMP Images

24bit, uncompressed, no transparency

EXR Images

ILM (Industrial Light & Magic)'s high dynamic-range (HDR) format

67

8bit, lossless compression, transparency

GIF Images

You can reduce the filesize by limiting the number of used colors and the palette.
You can write images with transparency, either by automatically using the alpha
channel or by setting the RGB value that will be transparent by hand.
JPEG2000

24bit, compressed, no transparency

Images

Here, you normally only care about the output quality.

JPEG Images

24bit, compressed, no transparency


Besides the output quality you can also set a smoothing that will lessen compression
artefacts but can blur the picture a little.

PCX Images

24bit, uncompressed, no transparency, PC Paintbrush Exchange format

PNG Images

32bit, lossless compression, transparency

PPM Images

24bit, uncompressed, no transparency, Portable PixMap format

RAW Images

up to 48bit, uncompressed, no transparency

RTF Text Files

Formatted text

SGI Images

24bit, optional lossless compression, transparency

StyledEdit Files

Formatted text

TGA Images

32bit, optional lossless compression, transparency

TIFF Images

24bit, optional lossless compression, layers, transparency

WonderBrush
Images

32bit, layers, transparency, vector/pixel data

Screenshots, charts, black&white drawings and other images with few used colors, as
well as small pictures are best saved as GIF (up to 256 colors) or PNG (millions of colors).
JPEG, for example, introduces compression artefacts without gain in smaller filesize.

68

E-mail
Deskbar:

Preferences

Location:

/boot/system/preferences/E-mail

Settings:

~/config/settings/Mail/*

Haiku provides a system that retrieves e-mail regularly via a mail_daemon and saves each mail as a
single text file. It parses the mail and fills its attributes with all necessary header information, like
from, to, subject and its unread status. Now it can be queried by you or any application. This system
also makes switching e-mail clients easy as all the data and your configuration stays the same.
The configuration is done in the E-Mail preference panel.

Creating a new e-mail account


Let's go through the process of setting up an e-mail account.
You start by clicking the Add button to create a new, unnamed account. This opens a panel where you
fill in your account info:

First, declare the Account Type which is either Receive Mail Only, Send Mail Only, or the most usual type,
Send and Receive Mail. Then you set how you get your mail, via POP3 or IMAP.
Now you enter your E-mail Address, Login Name and Password, give an Account Name under which it
will be known under Haiku and your Real Name.
If your account is from a major e-mail provider, Haiku already knows all technical details like server IP
addresses and the following information is already filled in automatically. If that is not the case, just
follow this guide and fill in the details to your e-mail account accordingly.

69

Setting up incoming e-mail


Click on Incoming under your account's name to set up how e-mails are received.

From the drop-down menu you choose the protocol used by your provider. IMAP and POP3 are
supported.
Next is the Mail Server address for incoming mails. If your provider needs you to log into a specific port,
you add that to the address, separated by a colon. For example, pop.your-provider.org:1400.
Then you enter your login information , Username and Password, and if necessary change the Login
Type from the default Plain Text to APOP for authentication .
If you use POP3 and retrieve mails of this account from different computers, you may want to activate
the option to Leave mail on server and only Remove mail from server when deleted locally.
If you use IMAP instead, you have the option to Remove mail from server when deleted locally. You can
specify a Top Mailbox Folder to only synchronize with a specific folder and its subfolders.
The New Mail Notification offers different methods to announce the arrival of new mail. Try different
settings to see what works best for you.
You can change the Location of your inbox (default: /boot/home/mail/in/), which is useful if you'd like
to separate the mails from different accounts into their own folders. However, queries let you sort
things out just as well.

70

Last on this page, you can opt to only Partially download messages that are larger than a certain size. This
will only get the header and you can decide if you want to download the rest of the message plus
possible attachments after seeing the subject and who sent it. Useful if you have a slow connection .

Setting up outgoing e-mail


Click on Outgoing under your account's name to set up how e-mails are sent.

As with incoming mail, you can also change the Location of your outbox (default: /boot/home/mail/
out/).
Next is the SMTP Server address for outgoing mails. As with the incoming server before, you can use a
specific port if needed, e.g. mail.your-provider.org:1200.
If you need to login, you change the Login Type to ESMTP and enter username and password above.
The other type is used for providers that need you to check for mail with POP3 before SMTP for
identification.

Setting up e-mail filters


If you want to filter your incoming email, you click on E-Mail Filters under your account's name to set up
automatic sorting. You can add any number of filters that are applied one after the other. You can
rearrange

them

by

drag&dropping

them

71

to

their

new

position.

Besides the R5 Daemon Filter that's used for backward compatibility, there are two other Incoming Mail
Filters you can add.

Spam Filter

The spam filter uses statistical methods to classify a mail as unwanted spam. It assigns a value
between 0 and 1 to it and you can decide what are the limits for a genuine mail and what will be
considered spam.
You can have that spam rating added to the start of the subject.
Also, the spam filter can learn from all incoming e-mail. Of course, you'll have to teach it by sorting out
the false positives, mails that were mistakenly marked as spam. You'll find more on that when we
discuss the application Mail.
Together with the following Match Header filter, you're able to automatically sort out detected spam
mails.

Match Header

72

This filter compares a header to a search pattern and performs some action when it matches.
With the first text field you specify which header to check against. These are available:
Name

the name of the sender

From

the e-mail address of the sender

To

your e-mail address (different for each e-mail account)

Reply To

the e-mail address replies are sent to

When

the date and time the mail was received

Subject

the subject line

Cc

addresses of anyone receiving a carbon copy (Cc)

Account

the name of the e-mail's account

Status

The current status of the e-mail. Normally, this can be "Read", "Replied", "Sent",
"Forwarded", "New", or anything you have designated yourself. However, unless you
change it yourself in a filter, it will always be "New" when the mail_daemon fetched
the mail.

Priority

is set by the sender's e-mail program (e.g. "urgent")

Thread

essentially the same as "Subject", but without things like Re: or Fwd:

Classification
Group

depending on what the spam filter classified it as, this will either be empty (if
uncertain) or contain the word "Genuine" or "Spam"

Spam/Genuine

this is a numerical estimate that the spam filter assigned to the e-mail. They are

Estimate

shown in scientific notation, where 1.065e-12 translates to 1.065 divided by 10 to the


12th power, which in this case translates to 0.000000000001065.

73

The second text field holds your search pattern. It accepts regular expressions which gives it great
flexibility, while unfortunately complicating things a bit. Read up on it a bit, it's well worth it and
simple search patterns aren't that complicated at all.
With the drop-down menu below it, you assign an action when the pattern matches. You can move or
delete a mail, set the status to "Read" or anything else or set the e-mail account you'll reply with.

Outgoing Mail Filters


At this moment, there's only one filter that deals with outgoing mail: fortune.
It will attach a randomly chosen funny or wise "fortune cookie" to the end of every mail before it's
sent out. You can do a dry run by issuing the command fortune in a Terminal.

Setting up the mail_daemon


Now that your incoming and outgoing mail servers (and maybe some filters, too), are configured, you
have to tell the mail_server that does all the actual mail checking and fetching how to do its job.

Under Mail Checking you configure the interval at which the account's mail server is probed for new
mail.
If you're on a dial-up connection , you may want to do that Only When Dial-Up is Connected and also
Schedule Outgoing Mail When Dial-Up is Disconnected to avoid dialing automatically in regularly only to check
for mail.

74

The mail_daemon has a status window which you can set to show up Never, While Sending, While Sending
and Receiving or Always.
Make sure to Start Mail Services on Startup or there will be no mail_daemon running to do your bidding...

Edit Mailbox Menu... will open the folder /boot/home/config/Mail/Menu Links/. All folders or queries (!) or
their links put into this folder will appear in the context menu of the mailbox icon of the Mail Services
in the Deskbar tray.
From that menu, you can also Create New Message..., Check For Mail Now or Edit Preferences....
The mailbox icon itself shows if there are unread messages (status "New") when there are envelopes
inside.

75

FileTypes
Deskbar:

Preferences

Location:

/boot/system/preferences/FileTypes

Settings:

~/config/settings/FileTypes settings
~/config/settings/beos_mime/* - Stores all MIME types as folders.

Please refer to topic Filetypes and the workshop Filetypes, Attributes, Index and Queries that
explains most of this preference panel.

76

Fonts
Deskbar:

Preferences

Location:

/boot/system/preferences/Fonts

Settings:

~/config/settings/system/app_server/fonts
~/config/settings/Font_settings - Stores the panel's window position.

Haiku defines three standard fonts for different purposes. You set plain, bold and fixed font types and
sizes that will be used throughout the system. Besides these, there's also a separate setting for the
font used in menus.
Defaults resets everything to default values.
Revert

brings back the settings that were active when you started the Fonts preferences.

Installing new fonts


You install new fonts by copying them into their respective user folder, i.e. /boot/common/fonts/ or /
boot/home/config/fonts/ (see topic Filesystem layout).

77

Keyboard
Deskbar:

Preferences

Location:

/boot/system/preferences/Keyboard

Settings:

~/config/settings/Keyboard_settings

Set the repeat rate and the delay until a held down key starts to repeat. You can test your settings in
the text field at the bottom.
Defaults resets everything to default values.
Revert

brings back the settings that were active when you started the Keyboard preferences.

78

Keymap
Deskbar:

Preferences

Location:

/boot/system/preferences/Keymap

Settings:

~/config/settings/Keymap/* - Location of user modified keymaps.


~/config/settings/Key_map

To the right, the Keymap window shows a representation of your keyboard. When you press a key, the
corresponding key is darkened and the assigned symbol is entered into the Sample and Clipboard text
field at the bottom. From there you can also copy and paste it into a document.
Thus, the Keymap preferences are not only for configuring your local keymap, but are also useful
when looking for a special symbol used in other languages. For example, you can switch the keymap
to "French", find the "" and copy it into your mail to Franois. (Though you'll find the "cedil" also in
other keymaps...)
Pressing modifier keys like SHIFT , CONTROL or OPTION changes the displayed keyboard accordingly.
Then there are the keys that are marked with a blue background. These keys are called Dead Keys
that can change the key you press after that. If you click on such a blue key with your mouse, those
changeable keys light up yellow. Click again and everything's back to normal. Examples are , , or
.
Below the keyboard representation are two more options:
Select Dead Keys for setting the above mentioned blue keys.
Switch Shortcut

for using the shortcut key in Windows/Linux mode, i.e. CONTROL (normally CTRL ) or

Key...

Haiku mode, i.e. COMMAND (normally ALT ).

The lists on the left offer the available pre-configured keymaps of the system, and below that, if
available, user-defined maps. You can change a keymap via drag&drop in the keyboard

79

representation: a left-click-drag copies a key, a right-click-drag exchanges the two keys.


When you're done you can save the result from the menu File | Save.... Your modified map will only
appear in the user-defined list if it's stored in ~/config/settings/Keymap/. Otherwise you'll have to
manually load it via File | Open....
To better match the Keymap panel to your physical keyboard, there are several different settings
available from the Layout menu.
The font used in the keyboard representation is set from the Font menu. Note, that it may or may not
contain all symbols for a specific keymap.
Finally, there's a Revert button to bring back the settings that were active when you started the
Keymap preferences.

Advanced keymap manipulation


There's another method to customize your keymap besides the Keymap preference panel. It involves
editing a text file containing loads of hex values, which may appear daunting on first sight, but isn't
really that impossible to grasp.
You can dump the current keymap with a command in Terminal:

keymap -d MyKeymap

The generated text file can then be opened in a text editor. Make sure to use a fixed font in that editor
or you'll never grok that file...
At the beginning of that file, you'll find a legend of a stylized keyboard with the hex value
corresponding to each key. Below that are the actual assignments of every value. You can do all the
customizing that's also available from the Keymap preference panel, and then some. If you happen to
have some special keys on your keyboard, you may be able to activate them. That is, use them as
ordinary keys or like an option or control key. You won't be able to, for example, have your multimedia
keys de/increase the volume or start some application. For this you can use e.g. SpicyKeys.
When you're finished, you'll save the file and have your system load the modified keymap with this
command:

keymap -l MyKeymap

This is the dumped file (the rightmost keys of the stylized keyboard are cut-off for a nicer display on
this page):

#!/bin/keymap -l
#
#
Raw key numbering for 101 keyboard...
#
#
# [esc]

[ f1] [ f2] [ f3] [ f4] [ f5] [ f6] [ f7] [ f8] [ f9] [f10] [f11] [f12]

80

# 0x01
0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d
#
# [ ` ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 0 ] [ - ] [ = ] [bck]
# 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e
#
# [tab] [ q ] [ w ] [ e ] [ r ] [ t ] [ y ] [ u ] [ i ] [ o ] [ p ] [ [ ] [ ] ] [ \ ]
# 0x26 0x27 0x28 0x29 0x2a 0x2b 0x2c 0x2d 0x2e 0x2f 0x30 0x31 0x32 0x33
#
# [cap] [ a ] [ s ] [ d ] [ f ] [ g ] [ h ] [ j ] [ k ] [ l ] [ ; ] [ ' ] [
# 0x3b 0x3c 0x3d 0x3e 0x3f 0x40 0x41 0x42 0x43 0x44 0x45 0x46
#
# [shift]
#
0x4b
#
# [ctr]
#
#
#
#

[ z ] [ x ] [ c ] [ v ] [ b ] [ n ] [ m ] [ , ] [ . ] [ / ]
0x4c 0x4d 0x4e 0x4f 0x50 0x51 0x52 0x53 0x54 0x55
[cmd]

0x5c

#
#
#
#

0x5d

space

0x5e

0x5f

NOTE: On a Microsoft Natural Keyboard:


left option = 0x66
right option = 0x67
menu key
= 0x68
NOTE: On an Apple Extended Keyboard:
left option = 0x66

#
#
#
Version = 3

right option = 0x67


keypad '='
= 0x6a
power key
= 0x6b

CapsLock = 0x3b
ScrollLock = 0x0f
NumLock = 0x22
LShift = 0x4b
RShift =
LCommand
RCommand
LControl

[cmd]

0x56
= 0x5d
= 0x60
= 0x5c

RControl = 0x00
LOption = 0x66
ROption = 0x5f
Menu = 0x68
#
# Lock settings
# To set NumLock, do the following:
#
LockSettings = NumLock
#
# To set everything, do the following:
#
LockSettings = CapsLock NumLock ScrollLock
#
LockSettings =
# Legend:

81

enter
0x47

[shift]
0x56
[ctr]
0x60

#
#
#

n = Normal
s = Shift
c = Control

#
C = CapsLock
#
o = Option
# Key
n
Cos

os

Cs

Co

Key 0x00 = ''


''
Key 0x01 = 0x1b
0x1b

''

''

''

''

''

''

''

0x1b

0x1b

0x1b

0x1b

Key 0x02 = 0x10


0x10
Key 0x03 = 0x10
0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

Key 0x04 = 0x10


0x10
Key 0x05 = 0x10
0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

Key 0x06 = 0x10


0x10
Key 0x07 = 0x10
0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

Key 0x08 = 0x10


0x10
Key 0x09 = 0x10
0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

Key 0x0a = 0x10


0x10
Key 0x0b = 0x10
0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

Key 0x0c = 0x10


0x10
Key 0x0d = 0x10
0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

Key 0x0e = 0x10


0x10
Key 0x0f = 0x10
0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0x10

Key 0x10 = 0x10


0x10
Key 0x11 = '^'
''

0x10

0x10

0x10

0x10

0x10

0x10

0x10

0xc2b0

''

' '

''

'^'

0xc2b0

' '

Key 0x12 = '1'


''
Key 0x13 = '2'
''

'!'

''

' '

''

'!'

'1'

' '

'"'

''

0xc2b2

''

'"'

'2'

0xc2b2

Key 0x14 = '3'


''

0xc2a7

''

0xc2b3

''

0xc2a7

'3'

0xc2b3

82

0x1b

0x1b

0x1b

Key 0x15 = '4'


''
Key 0x16 = '5'
''
Key 0x17 = '6'
''
Key 0x18 = '7'
''
Key 0x19 = '8'
''
Key 0x1a = '9'
''
Key 0x1b = '0'
''
Key 0x1c = 0xc39f
''
Key 0x1d = 0xc2b4
''
Key 0x1e = 0x08
0x08
Key 0x1f = 0x05
0x05
Key 0x20 = 0x01
0x01
Key 0x21 = 0x0b
0x0b
Key 0x22 = ''
''
Key 0x23 = '/'
'/'
Key 0x24 = '*'
'*'
Key 0x25 = '-'
'-'
Key 0x26 = 0x09
0x09
Key 0x27 = 'q'
''
Key 0x28 = 'w'
''
Key 0x29 = 'e'
''
Key 0x2a = 'r'
''
Key 0x2b = 't'
''
Key 0x2c = 'z'

'$'

''

' '

''

'$'

'4'

' '

'%'

''

' '

''

'%'

'5'

' '

'&'

''

' '

''

'&'

'6'

' '

'/'

''

'{'

''

'/'

'7'

'{'

'('

''

'['

''

'('

'8'

'['

')'

''

']'

''

')'

'9'

']'

'='

''

'}'

''

'='

'0'

'}'

'?'

''

'\\'

''

'?'

0xc39f

'\\'

'`'

''

' '

''

0xc2b4

'`'

' '

0x08

0x08

0x08

0x08

0x08

0x08

0x08

0x05

0x05

0x05

0x05

0x05

0x05

0x05

0x01

0x01

0x01

0x01

0x01

0x01

0x01

0x0b

0x0b

0x0b

0x0b

''

''

''

''

'/'

'/'

'/'

'/'

'*'

'*'

'*'

'*'

'-'

'-'

'-'

'-'

'-'

'-'

'-'

0x09

0x09

0x09

0x09

0x09

0x09

0x09

'Q'

0x11

'@'

''

'Q'

'q'

'@'

'W'

0x17

' '

''

'W'

'w'

' '

'E'

0x05

0xe282ac ''

'E'

'e'

0xe282ac

'R'

0x12

' '

''

'R'

'r'

' '

'T'

0x14

' '

''

'T'

't'

' '

'Z'

0x1a

' '

''

' Z'

' z'

' '

' U'

0x15

' '

''

' U'

' u'

' '

0x0b
''
'/'
'*'

0x0b
''
'/'
'*'

0x0b
''
'/'
'*'

''
Key 0x2d = ' u'

83

''
Key 0x2e = 'i'
''

'I'

0x09

' '

''

'I'

'i'

' '

'O'

0x0f

' '

''

'O'

'o'

' '

'P'

0x10

' '

''

'P'

'p'

' '

0xc39c

0x1b

' '

''

0xc39c

0xc3bc

' '

'*'

0x1d

'~'

''

'*'

'+'

'~'

Key 0x33 = '#'


''
Key 0x34 = 0x7f
0x7f

'\''

0x1c

' '

''

'\''

'#'

' '

0x7f

0x7f

0x7f

0x7f

0x7f

Key 0x35 = 0x04


0x04
Key 0x36 = 0x0c
0x0c

0x04

0x04

0x04

0x04

0x0c

0x0c

0x0c

0x0c

0x0c

0x0c

0x0c

Key 0x37 = 0x01


'7'
Key 0x38 = 0x1e
'8'

'7'

0x01

0x01

'7'

0x01

'7'

0x01

'8'

0x1e

0x1e

'8'

0x1e

'8'

0x1e

Key 0x39 = 0x0b


'9'
Key 0x3a = '+'
'+'

'9'

0x0b

0x0b

'9'

0x0b

'9'

0x0b

'+'

'+'

'+'

'+'

'+'

'+'

'+'

Key 0x3b = ''


''
Key 0x3c = 'a'
''

''

''

''

''

''

''

''

'A'

0x01

' '

''

'A'

'a'

' '

Key 0x3d = 's'


''
Key 0x3e = 'd'
''

'S'

0x13

' '

''

'S'

's'

' '

'D'

0x04

' '

''

'D'

'd'

' '

Key 0x3f = 'f'


''
Key 0x40 = 'g'
''

'F'

0x06

' '

''

'F'

'f'

' '

'G'

0x07

' '

''

'G'

'g'

' '

Key 0x41 = 'h'


''
Key 0x42 = 'j'
''

'H'

0x08

' '

''

'H'

'h'

' '

'J'

0x0a

' '

''

'J'

'j'

' '

Key 0x43 = 'k'


''
Key 0x44 = 'l'
''

'K'

0x0b

' '

''

'K'

'k'

' '

'L'

0x0c

' '

''

'L'

'l'

' '

Key 0x45 = 0xc3b6


''

0xc396

''

' '

''

0xc396

0xc3b6

' '

Key 0x2f = 'o'


''
Key 0x30 = 'p'
''
Key 0x31 = 0xc3bc
''
Key 0x32 = '+'
''

84

0x04

0x7f
0x04

0x7f
0x04

Key 0x46 = 0xc3a4


''
Key 0x47 = 0x0a
0x0a
Key 0x48 = 0x1c
'4'
Key 0x49 = ''
'5'
Key 0x4a = 0x1d
'6'
Key 0x4b = ''
''
Key 0x4c = 'y'
''
Key 0x4d = 'x'
''
Key 0x4e = 'c'
''
Key 0x4f = 'v'
''
Key 0x50 = 'b'
''
Key 0x51 = 'n'
''
Key 0x52 = 'm'
''
Key 0x53 = ','
''
Key 0x54 = '.'
''
Key 0x55 = '-'
''
Key 0x56 = ''
''
Key 0x57 = 0x1e
0x1e
Key 0x58 = 0x04
'1'
Key 0x59 = 0x1f
'2'
Key 0x5a = 0x0c
'3'
Key 0x5b = 0x0a
0x0a
Key 0x5c = ''
''
Key 0x5d = ''
''
Key 0x5e = ' '

0xc384

''

' '

''

0xc384

0xc3a4

0x0a

0x0a

0x0a

0x0a

0x0a

0x0a

0x0a

'4'

0x1c

0x1c

'4'

0x1c

'4'

0x1c

'5'

''

''

'5'

''

'6'

0x1d

0x1d

''

''

''

''

''

''

''

'Y'

0x19

' '

''

'Y'

'y'

' '

'X'

0x18

' '

''

'X'

'x'

' '

'C'

0x03

' '

''

'C'

'c'

' '

'V'

0x16

' '

''

'V'

'v'

' '

'B'

0x02

' '

''

'B'

'b'

' '

'N'

0x0e

' '

''

'N'

'n'

' '

'M'

0x0d

0xc2b5

''

'M'

'm'

0xc2b5

';'

','

' '

''

';'

','

' '

':'

'.'

' '

''

':'

'.'

' '

'_'

''

' '

''

'-'

'_'

' '

''

''

''

''

''

''

''

0x1e

0x1e

0x1e

0x1e

0x1e

0x1e

0x1e

'1'

0x04

0x04

'1'

0x04

'1'

0x04

'2'

0x1f

0x1f

'2'

0x1f

'2'

0x1f

'3'

0x0c

0x0c

'3'

0x0c

'3'

0x0c

0x0a

0x0a

0x0a

0x0a

0x0a

0x0a

0x0a

''

''

''

''

''

''

''

''

''

''

''

''

''

''

' '

0x00

' '

' '

' '

' '

' '

'6'

85

0x1d

'5'
'6'

' '

''
0x1d

'

'
Key 0x5f = ''
''

''

''

''

''

''

''

''

Key 0x60 = ''


''
Key 0x61 = 0x1c
0x1c

''

''

''

''

''

''

''

0x1c

0x1c

0x1c

0x1c

0x1c

0x1c

0x1c

Key 0x62 = 0x1f


0x1f
Key 0x63 = 0x1d
0x1d

0x1f

0x1f

0x1f

0x1f

0x1f

0x1f

0x1f

0x1d

0x1d

0x1d

0x1d

0x1d

0x1d

0x1d

Key 0x64 = 0x05


'0'
Key 0x65 = 0x7f
','

'0'

0x05

0x05

'0'

0x05

'0'

0x05

','

0x7f

0x7f

','

0x7f

','

0x7f

Key 0x66 = ''


''
Key 0x67 = ''
''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

Key 0x68 = ''


''
Key 0x69 = '<'
''

''

''

''

''

''

''

''

'>'

''

'|'

''

'<'

'>'

'|'

Key 0x6a = ''


''
Key 0x6b = ''
''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

Key 0x6c = ''


''
Key 0x6d = ''
''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

Key 0x6e = ''


''
Key 0x6f = ''
''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

Key 0x70 = ''


''
Key 0x71 = ''
''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

Key 0x72 = ''


''
Key 0x73 = ''
''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

Key 0x74 = ''


''
Key 0x75 = ''
''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

Key 0x76 = ''


''

''

''

''

''

''

''

''

86

Key 0x77 = ''


''
Key 0x78 = ''
''
Key 0x79 = ''
''
Key 0x7a = ''
''
Key 0x7b = ''
''
Key 0x7c = ''
''
Key 0x7d = ''
''
Key 0x7e = ''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''

''
Key 0x7f = ''
''
Acute ' '

= 0xc2b4

Acute
Acute
Acute
Acute

'A'
'E'
'I'
'O'

=
=
=
=

0xc381
0xc389
0xc38d
0xc393

Acute
Acute
Acute
Acute

'U'
'Y'
'a'
'e'

=
=
=
=

0xc39a
0xc39d
0xc3a1
0xc3a9

Acute
Acute
Acute
Acute

'i'
'o'
'u'
'y'

=
=
=
=

0xc3ad
0xc3b3
0xc3ba
0xc3bd

Acute ''
=
Acute ''
=
Acute ''
=
AcuteTab = Normal

''
''
''
Shift Option Option-Shift CapsLock CapsLock-Shift CapsLock-Option

CapsLock-Option-Shift
Grave ' '
= '`'
Grave 'A'
= 0xc380
Grave 'E'
= 0xc388
Grave
Grave
Grave
Grave

'I'
'O'
'U'
'a'

=
=
=
=

0xc38c
0xc392
0xc399
0xc3a0

Grave
Grave
Grave
Grave

'e'
'i'
'o'
'u'

=
=
=
=

0xc3a8
0xc3ac
0xc3b2
0xc3b9

Grave ''
Grave ''

= ''
= ''

87

Grave ''
Grave ''
Grave ''

= ''
= ''
= ''

GraveTab = Normal Shift Option Option-Shift CapsLock CapsLock-Shift CapsLock-Option


CapsLock-Option-Shift
Circumflex ' '
= '^'
Circumflex 'A'
= 0xc382
Circumflex
Circumflex
Circumflex
Circumflex

'E'
'I'
'O'
'U'

=
=
=
=

0xc38a
0xc38e
0xc394
0xc39b

Circumflex
Circumflex
Circumflex
Circumflex

'a'
'e'
'i'
'o'

=
=
=
=

0xc3a2
0xc3aa
0xc3ae
0xc3b4

Circumflex
Circumflex
Circumflex
Circumflex

'u'
''
''
''

=
=
=
=

0xc3bb
''
''
''

Circumflex ''
= ''
Circumflex ''
= ''
CircumflexTab = Normal Shift Option Option-Shift CapsLock CapsLock-Shift CapsLockOption CapsLock-Option-Shift
Diaeresis
Diaeresis
Diaeresis
Diaeresis

' '
'A'
'E'
'I'

=
=
=
=

0xc2a8
0xc384
0xc38b
0xc38f

Diaeresis
Diaeresis
Diaeresis
Diaeresis

'O'
'U'
'Y'
'a'

=
=
=
=

0xc396
0xc39c
0xc5b8
0xc3a4

Diaeresis
Diaeresis
Diaeresis
Diaeresis

'e'
'i'
'o'
'u'

=
=
=
=

0xc3ab
0xc3af
0xc3b6
0xc3bc

Diaeresis
Diaeresis
Diaeresis
Diaeresis

'y'
''
''
''

=
=
=
=

0xc3bf
''
''
''

DiaeresisTab = Normal Shift Option Option-Shift CapsLock CapsLock-Shift CapsLockOption CapsLock-Option-Shift


Tilde ' '
= '~'
Tilde 'A'
= 0xc383
Tilde
Tilde
Tilde
Tilde

'O'
'N'
'a'
'o'

Tilde 'n'
Tilde ''

=
=
=
=

0xc395
0xc391
0xc3a3
0xc3b5

= 0xc3b1
= ''

88

Tilde ''
Tilde ''
Tilde ''

= ''
= ''
= ''

Tilde
Tilde
Tilde
Tilde

=
=
=
=

''
''
''
''

''
''
''
''

Tilde ''
= ''
TildeTab = Normal Shift Option Option-Shift CapsLock CapsLock-Shift CapsLock-Option
CapsLock-Option-Shift

89

Media
Deskbar:

Preferences

Location:

/boot/system/preferences/Media

Settings:

~/config/settings/Media/*
~/config/settings/System Audio Mixer
~/config/settings/MediaPrefs Settings - Stores the panel's window position.

Documentation is still missing. If you want to work on it, please announce it on the Documentation
mailing list to avoid duplication.

90

Mouse
Deskbar:

Preferences

Location:

/boot/system/preferences/Mouse

Settings:

~/config/settings/Mouse_settings

Set your type of mouse: 1, 2 or 3 button mouse. You can simulate the 2nd (=right) mouse button by
holding down CTRL while left-clicking. For the 3rd (=middle) mouse button, it's CTRL ALT and a leftclick. A middle-click is also simulated by clicking left and right button together. Useful for notebooks,
which mostly don't have a 3rd button.
You can rearrange the mouse buttons by clicking on them and choose their new meaning from the
drop-down menu.
With the sliders to the right, you adjust double-click speed, mouse speed and acceleration.
Focus follows mouse means, that you don't have to click into a window to activate it. There are three
modes:
Enabled

The window under the mouse pointer is always activated automatically, but doesn't pop
to the front.

Warping

Choosing a window from Deskbar or the Twitcher will have the mouse pointer glide
smoothly toward it.

InstantWarping

Choosing a window from Deskbar or the Twitcher will have the mouse pointer jump
instantly toward it.

All settings are immediately applied.

91

Defaults resets everything to default values.


Revert

brings back the settings that were active when you started the Mouse preferences.

92

Network
Deskbar:

Preferences

Location:

/boot/system/preferences/Network

Settings:

/boot/system/etc/resolv.conf

At the top, you choose which network adapter to configure.


Then you specify if you get your network settings dynamically from a server or router via DHCP
(Dynamic Host Configuration Protocol) or if you're using static addresses. If it's the latter, you'll have to

fill out IP Address, Netmask, Gateway and DNS Servers yourself. Otherwise the panel will show the
addresses currently set with DHCP.
Revert brings back the settings that were active when you started the Network preferences.
Apply

sets the entered configuration.

93

Printers
Deskbar:

Preferences

Location:

/boot/system/preferences/Printers

Settings:

~/config/settings/printers/*

Documentation is still missing. If you want to work on it, please announce it on the Documentation
mailing list to avoid duplication.

94

Screen
Deskbar:

Preferences

Location:

/boot/system/preferences/Screen

Settings:

~/config/settings/system/app_server/workspaces
~/config/settings/kernel/drivers/vesa - Only when running in VESA mode.
~/config/settings/Screen_data - Stores the panel's window position.

Each of your workspaces can have its own resolution and color depth.

The top drop-down menu specifies if your changes are applied only to the current or to all workspaces.
Depending on your graphics card, the other two drop-down menus contain all supported resolution
and depth settings.
After clicking on Apply, the graphics mode is changed and an alert appears, asking you to keep or
cancel the changes. If you don't answer that alert, the graphics mode reverts after 12 seconds to the
previous setting. Maybe you couldn't see the alert because your monitor didn't support the setting.
To the left, you can set the number of workspaces and arrange them in columns and rows and open
the Backgrounds preferences.
Revert brings back the setting that was active when you started the Screen preferences.

95

ScreenSaver
Deskbar:

Preferences

Location:

/boot/system/preferences/Screensaver

Settings:

~/config/settings/ScreenSaver_settings

The panel of the ScreenSaver preferences is split into two tabs:

Fade

The top checkbox enables/disables the screen saver.


With the slider below it, you control after how long an idle time the screen saver kicks in.
The next two sliders are only usable after you activated their checkboxes:
One slider determines after how many minutes the screen is powered off.
The other, after how many minutes you need a password to unlock your machine.
By clicking into different corners of the two screens at the bottom, you tell the system when to
immediately start the screen saver or when to prevent it from kicking in when you rest the mouse in
the indicated corner. Click in the middle of the screens to disable that feature again.

Modules

96

The second tab shows a list of all installed screen saver modules and their individual settings. You can
test your settings with the Test button below the list and add modules with the Add... button beside it.
Other ways to install new screen savers is by a simple drag&drop into the list. Of course, you can also
copy/delete a module's file in its respective user folder, i.e. /boot/common/add-ons/screensavers/ or /
boot/home/config/add-ons/screensavers/ (see topic Filesystem layout).

97

Sounds
Deskbar:

Preferences

Location:

/boot/system/preferences/Sounds

Settings:

~/config/settings/Media/MMediaFilesManager

You can assign sounds to certain events in the system. Just select the event from the list and choose a
sound from the drop-down menu below.
None

will silence an event.

Other... will open a file panel to find a new sound that isn't yet in the menu.
You can use any format that's supported by the system. If MediaPlayer can deal with it, so can any
other program.
You can "pre-hear" an event's sound by selecting it and using the Play and Stop buttons.

98

Time
Deskbar:

Preferences

Location:

/boot/system/preferences/Time

Settings:

~/config/settings/RTC_time_settings
~/config/settings/timezone - A link to the current timezone in /boot/system/etc/timezones/
*/*
~/config/settings/Time_settings - Stores the panel's window position.

The panel of the Time preferences is split into two tabs:

Date & Time

On the left side, you can set the day of the month by simply clicking on it in the calendar. You change
the month and year by clicking on it and using the up/down arrows to the right or the cursor keys on
your keyboard.
Similarly, you set the time. There are two modes for the clock:
Local Time to display your local time.
GMT

to display Greenwich Mean Time.

Timezone

99

Simply find and choose your location from the drop-down menu and the list of cities and press Set Time
Zone to set your zone.
Revert brings back the settings that were active when you started the Time preferences.

100

Tracker
Deskbar:

Preferences

Location:

/boot/system/preferences/Tracker

Settings:

~/config/settings/Tracker/TrackerSettings

The Tracker preference panel is also available from every Tracker window with the menu Window |
Preferences....
Its functions are discussed in the topic on Tracker.

101

VirtualMemory
Deskbar:

Preferences

Location:

/boot/system/preferences/VirtualMemory

Settings:

~/config/settings/kernel/drivers/virtual_memory
~/config/settings/VM_data - Stores the panel's window position.

Virtual memory let's the system swap out memory to harddisk, if the RAM can be used more sensibly
for other things. So, even if you have lots of RAM, providing virtual memory is never a bad idea.

You can set the size to even more than your physical memory size if needed. With today's huge
harddisks, assigning the physical memory size shouldn't be a problem. Still, you can quickly adjust the
size if your free space ever runs low. In that case you should also have a look at DiskUsage to find
out what's eating up your diskspace.
Normally, the swap file's written to your boot partition. If you often run into disk thrashing due to the
virtual memory system swapping memory in and out, you can try to use a separate harddisk for you
swap file. Simply another partition on the same harddisk with your system/data won't help.
Upgrading your RAM is of course the most effective way to go...
Defaults resets everything to default values.
Revert

brings back the settings that were active when you started the VirtualMemory preferences.

102

Bash and Scripting


"Scripting" is the technique of automating procedures by stringing together commands and saving it
all as text files, so called "scripts". Every time you run such a script, the commands are processed one
after the other just like they would if you entered them into the Terminal by hand.
Scripts can range from simply executing a few commands in a specific order to sophisticated pieces of
code that solve complex tasks.

The Bash
Since scripts rely naturally a lot on the shell they are interpreted by, you should first familiarize
yourself with the BASH that's used by Haiku. There are many resources online as it's a widely used
shell. One nice document is Johan Jansson's Introduction to bash - a tutorial for bash under
BeOS <http://www.beforever.com/bashtut.htm>.

The Scripting Bible


After you've learned a few basics about working in the shell, it's time to slowly ease yourself into the
world of scripting. Again, you'll find loads of tutorials and reference material online as well as in
bookstores. A very nice introduction that's practically tailor-made for Haiku is the online available
Scripting Chapter <http://www.birdhouse.org/beos/bible/bos/ch_scripting1.html> (PDF, 900kb) of Scot
Hacker's BeOS Bible.

Scripts in Haiku
In Haiku, the system makes of course also use of scripting. Booting and shutting down are typical
scripting procedures. These defined sequences can be augmented by the user with certain user
scripts.
If they don't exist already, you'll have to create the needed files yourself. Otherwise simply add your
commands where in the process you want them to be executed.

The UserBootscript
/boot/home/config/boot/UserBootscript will be executed after the system has finished its boot process.

For example, you could launch a number of programs that would then be automatically started on
every boot up:

# Start LaunchBox
/boot/system/apps/LaunchBox &
# Start Workspaces Applet
/boot/system/apps/Workspaces &

103

Remember to end a command with an "&" to start it as a background process, or the script will halt
until that command has finished (in this case: the launched app was closed again).
A simple alternative to the above for launching applications at boot up is to put links to them in the /
boot/home/config/boot/launch directory. This can be done simply by right-clicking on the application
you wish to have started automatically, going to Create Link and then navigating to the above
directory.

The UserShutdownScript
/boot/home/config/boot/UserShutdownScript will be executed as the first step in the shutdown process. If

the script returns a non-zero exit status, the shutdown is aborted.

The UserShutdownFinishScript
/boot/home/config/boot/UserShutdownFinishScript is executed as the last step in the shutdown process.

Note, that most parts of the system have terminated by the time this script is executed.

104

Terminal
Deskbar:

Applications

Location:

/boot/system/apps/Terminal

Settings:

~/config/settings/Terminal_settings
~/.profile - adds/overrides defaults in /boot/system/etc/profile
~/.inputrc - adds/overrides defaults in /boot/system/etc/inputrc

The Terminal is Haiku's interface to bash, the Bourne Again Shell.


Please refer to the topic on Scripting for a few links to online tutorials on working in the shell. Here,
we'll concentrate on the Terminal application itself.

Appearance
You can open as many Terminals as needed, either each in it's own window by simply launching more
Terminals or with ALT N from an already running Terminal. Or you use Terminal's tabbed view and
open another tab with ALT T .
A Terminal window can be resized like any other window or you use the presets from the Settings |
Window Size menu. ALT ENTER toggles fullscreen mode.
Changed window size and text encoding are only kept choosing Settings | Save as default.

Settings | Preferences opens a panel where you can set font type, font size and the different text and
background colors. You can save different settings as separate profiles, which on double-click open an

105

accordingly configured Terminal.


Pressing OK will save the current settings as default.

Bash customization
Coming from Unix, there are countless possibilities to customize the bash itself. There are two files
that are especially important to the user: .profile and .inputrc
Both files can be created in the home/ folder and add or override the system defaults that are defined
in /boot/system/etc/.

.profile
The .profile is loaded every time you open a new Terminal. It sets all kinds of aliases and variables
that will affect bash's behavior and appearance. You'll find many online resources that will detail all
possibilities.
The Haiku/BeOS Tip Server has quite a few tips to get you started, for example:
Customize your Terminal prompt
More prompt customizations
Enhancing bash
Custom keyboard shortcuts
There are more, have a look.

.inputrc
The .inputrc deals with keybindings. Since Haiku provides useful defaults, you probably don't have to
mess with these more involved settings. If you do have special needs here, consult one of the many
online resources, e.g. The GNU Readline Library.

Keyboard shortcuts
You'll find a list of useful shortcuts in Shortcuts and key combinations.

Hints for working with the Terminal


Dragging a file or folder from a Tracker window into the Terminal will insert its path at the location of
the cursor. Dragging with the right mouse button offers additional actions in a context menu:
Insert Path

Inserts the location of the file, same as drag&dropping with the left mouse button.

Change Directory Changes to the folder of the dragged file.


Create Link Here

Creates a link to the dragged file in the current working directory of the Terminal.

Move Here

Moves the dragged file into the current working directory of the Terminal.

Copy Here

Copies the dragged file into the current working directory of the Terminal.

You can open any file with its preferred application with the command open [filename]. This also
works with the representation of the current (".") and parent ("..") folder which then open in a
Tracker window. So, to open the current working directory, you type:

106

open .

107

You might also like