1 <?xml version=
"1.0" encoding=
"UTF-8"?>
2 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns=
"http://www.w3.org/1999/xhtml" lang=
"en-US" xml:
lang=
"en-US">
7 * Copyright 2008-2017, Haiku. All rights reserved.
8 * Distributed under the terms of the MIT License.
11 * Humdinger <humdingerb@gmail.com>
14 <meta http-equiv=
"content-type" content=
"text/html; charset=utf-8" />
15 <meta http-equiv=
"Content-Style-Type" content=
"text/css" />
16 <meta name=
"robots" content=
"all" />
17 <title>Haiku's GUI
</title>
18 <meta name=
"viewport" content=
"width=device-width, initial-scale=1.0" />
19 <link rel=
"stylesheet" type=
"text/css" href=
"../Haiku-doc.css" />
24 <div><span>User guide
</span></div>
29 <ul class=
"lang-menu">
30 <li class=
"now"><img src=
"../images/flags/gb.png" alt=
"" /> English
</li>
31 <li><a href=
"../ca/gui.html"><img src=
"../images/flags/ca.png" alt=
"" />Català
</a></li>
32 <li><a href=
"../de/gui.html"><img src=
"../images/flags/de.png" alt=
"" />Deutsch
</a></li>
33 <li><a href=
"../es/gui.html"><img src=
"../images/flags/es.png" alt=
"" />Español
</a></li>
34 <li><a href=
"../fr/gui.html"><img src=
"../images/flags/fr.png" alt=
"" />Français
</a></li>
35 <li><a href=
"../it/gui.html"><img src=
"../images/flags/it.png" alt=
"" />Italiano
</a></li>
36 <li><a href=
"../hu/gui.html"><img src=
"../images/flags/hu.png" alt=
"" />Magyar
</a></li>
37 <li><a href=
"../pl/gui.html"><img src=
"../images/flags/pl.png" alt=
"" />Polski
</a></li>
38 <li><a href=
"../pt_PT/gui.html"><img src=
"../images/flags/pt_PT.png" alt=
"" />Português
</a></li>
39 <li><a href=
"../pt_BR/gui.html"><img src=
"../images/flags/pt_BR.png" alt=
"" />Português (Brazil)
</a></li>
40 <li><a href=
"../ro/gui.html"><img src=
"../images/flags/ro.png" alt=
"" />Română
</a></li>
41 <li><a href=
"../sk/gui.html"><img src=
"../images/flags/sk.png" alt=
"" />Slovenčina
</a></li>
42 <li><a href=
"../fi/gui.html"><img src=
"../images/flags/fi.png" alt=
"" />Suomi
</a></li>
43 <li><a href=
"../sv_SE/gui.html"><img src=
"../images/flags/sv_SE.png" alt=
"" />Svenska
</a></li>
44 <li><a href=
"../zh_CN/gui.html"><img src=
"../images/flags/zh_CN.png" alt=
"" /> 中文 [中文]
</a></li>
45 <li><a href=
"../ru/gui.html"><img src=
"../images/flags/ru.png" alt=
"" />Русский
</a></li>
46 <li><a href=
"../uk/gui.html"><img src=
"../images/flags/uk.png" alt=
"" />Українська
</a></li>
47 <li><a href=
"../jp/gui.html"><img src=
"../images/flags/jp.png" alt=
"" />日本語
</a></li>
50 «
<a href=
"filesystem-layout.html">Filesystem layout
</a>
51 ::
<a href=
"contents.html" class=
"uplink">Contents
</a>
52 ::
<a href=
"workspaces.html">Workspaces
</a> »
59 <table class=
"index" id=
"index" summary=
"index">
60 <tr class=
"heading"><td>Index
</td></tr>
61 <tr class=
"index"><td>
62 <a href=
"#move-resize">Easy moving and resizing
</a><br />
63 <a href=
"#stack-tile">Stack
& Tile
</a><br />
64 <a href=
"#open-save-panel">Open and save panels
</a><br />
65 <a href=
"#replicants">Replicants
</a></td></tr>
70 <p>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.
</p>
71 <p>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.
</p>
72 <img src=
"images/gui-images/gui.png" alt=
"gui.png" />
73 <p>There are only a few things in Haiku's GUI that aren't obvious and deserve an explanation.
</p>
75 <li><p>The Deskbar is Haiku's
"Start" menu and taskbar, if you will. See topic
<a href=
"deskbar.html">Deskbar
</a>.
</p></li>
76 <li>The yellow tab offers more than just a program's name or a document's filename:
77 <ul><li>You can move it by holding the
<span class=
"key">SHIFT
</span> key while dragging it to another position, enabling you to stack a number of windows and conveniently access them by their named tab.
</li>
78 <li>You minimize a window with a double-click on its tab (or with
<span class=
"key">CTRL
</span> <span class=
"key">ALT
</span> <span class=
"key">M
</span>). A such hidden window can be accessed by its entry in the
<a href=
"deskbar.html">Deskbar
</a> or the
<a href=
"twitcher.html">Twitcher
</a>.
</li>
79 <li>You can send a window to the back with a right-click on its tab (or its border).
</li></ul></li>
80 <li><p>The close button.
</p></li>
81 <li><p>The
"zoom" button (or
<span class=
"key">CTRL
</span> <span class=
"key">ALT
</span> <span class=
"key">Z
</span>). 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.
</p></li>
82 <li><p>The window border. Left-dragging moves the window, right-dragging resizes.
</p></li>
83 <li><p>The resize corner.
</p></li>
87 <a href=
"#"><img src=
"../images/up.png" style=
"border:none;float:right" alt=
"index" /></a>
88 <a id=
"move-resize" name=
"move-resize">A quick way to move or resize windows
</a></h2>
89 <p>Moving and resizing windows is a large part of interacting with several concurrently running applications. Instead of aiming at the small yellow title tab or the even tinier window border, there's a more convenient way to move a window. Also, additionally to its small size, the resize corner has another limitation: It only allows resizing at and in the direction of the lower right corner.
<br />Right-dragging a border for resizing works, but again you'll have to aim carefully.
</p>
90 <p>To address these issues, Haiku provides a neat solution using the window management key combo
<span class=
"key">CTRL
</span> <span class=
"key">ALT
</span> and the mouse. See also chapter
<a href=
"keyboard-shortcuts.html#general">Shortcuts and key combinations
</a> for more shortcuts concerning window management.
</p>
91 <img src=
"images/gui-images/resizing.png" alt=
"resizing.png" />
92 <p>Holding down
<span class=
"key">CTRL
</span> <span class=
"key">ALT
</span> will highlight the window borders nearest to the mouse pointer. Move the mouse in the direction of another border to change the target. Click and dragging with the
<i>right mouse button
</i> will resize the window along the highlighted border(s).
</p>
93 <p>Hold down
<span class=
"key">CTRL
</span> <span class=
"key">ALT
</span> and click and drag with the
<i>left mouse button
</i> anywhere in a window to move it around. A quick click with the
<i>right mouse button
</i> sends it to the back.
</p>
96 <a href=
"#"><img src=
"../images/up.png" style=
"border:none;float:right" alt=
"index" /></a>
97 <a id=
"stack-tile" name=
"stack-tile">Stack
& Tile
</a></h2>
98 <p>Haiku's user interface provides a unique feature that puts the fact that windows have a yellow tab instead of a full-width title bar to perfect use. It's called
"Stack & Tile".
<br />
99 In the example below, a Tracker window with bookmarks is tiled to the left of a WebPositive window, which itself is stacked with another Tracker window showing the source folder
<tt>haiku
</tt>. In this animation, the user clicks on the tabs of the stacked windows to alternately bring one or the other to the front.
</p>
100 <img src=
"images/gui-images/gui-s+t.gif" alt=
"gui-s+t.gif" />
101 <p>Connected like this, the group of windows can be moved and resized together - a nice arrangement to work in a more project centric environment. Instead of looking for the right browser window with documentation, editor and Tracker windows and maybe a related email concerning one project you are currently working on, just stack
&tile them together.
</p>
102 <p>Doing the actual arranging of windows is easy: Hold down
<span class=
"key">OPT
</span> while dragging a window by its tab close to another window's tab or border until it's highlighted and release the mouse button.
</p>
103 <p>Stack
& Tile consists of two related parts.
</p>
104 <table summary=
"layout" border=
"0" cellspacing=
"0" cellpadding=
"2">
105 <tr><td><img src=
"images/gui-images/gui-stacking.png" alt=
"gui-stacking.png" /></td><td width=
"10"></td>
106 <td><p>"<i>Stacking</i>" is putting windows on top of each other, automatically moving the yellow tabs into position.
<br />
107 While holding
<span class=
"key">OPT
</span>, tabs change color when they overlap; drop the window to establish the stacking.
</p></td></tr></table>
108 <table summary=
"layout" border=
"0" cellspacing=
"0" cellpadding=
"2" vspace=
"10">
109 <tr><td><img src=
"images/gui-images/gui-tiling.png" alt=
"gui-tilinging.png" /></td><td></td>
110 <td><p>"<i>Tiling</i>" means gluing windows horizontally or vertically together.
<br />
111 Again, while holding
<span class=
"key">OPT
</span>, the borders that'll fuse together when you drop the window change color when brought near each other.
</p></td></tr></table>
112 <p>Separation is done in the same way, by holding
<span class=
"key">OPT
</span> while dragging a window by its tab out of the group.
</p>
115 <a href=
"#"><img src=
"../images/up.png" style=
"border:none;float:right" alt=
"index" /></a>
116 <a id=
"open-save-panel" name=
"open-save-panel">Open and save panels
</a></h2>
117 <p>When opening or saving a file from any application, a panel like this opens:
</p>
118 <img src=
"images/gui-images/open-save.png" alt=
"open-save.png" />
119 <p>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 pop-up menu for different file formats and their settings.
<br />
120 You can enter parent folders with the pop-up menu above the file listing.
</p>
121 <p>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.
</p>
124 <a href=
"#"><img src=
"../images/up.png" style=
"border:none;float:right" alt=
"index" /></a>
125 <a id=
"open-save-shortcuts" name=
"open-save-shortcuts">Keyboard shortcuts
</a></h3>
126 <p>Many shortcuts in open and save panels are the same used in Tracker. Besides the commands that are also available through the
<span class=
"menu">File
</span> menu, there are a few not that obvious:
</p>
127 <table summary=
"shortcuts" border=
"0" cellspacing=
"0" cellpadding=
"2">
128 <tr><td><span class=
"key">ALT
</span> <span class=
"key">N
</span></td><td></td><td> Creates a new folder.
</td></tr>
129 <tr><td><span class=
"key">ALT
</span> <span class=
"key">E
</span></td><td></td><td> Lets you rename the selected entry.
</td></tr>
130 <tr><td><span class=
"key">ALT
</span> <span class=
"key">↑
</span></td><td style=
"width:24px;"></td><td> Moves into the parent folder.
</td></tr>
131 <tr><td class=
"onelinetop"><span class=
"key">ALT
</span> <span class=
"key">↓
</span> or
<span class=
"key">ENTER
</span></td><td></td><td> Moves into the selected folder.
</td></tr>
132 <tr><td><span class=
"key">ALT
</span> <span class=
"key">D
</span></td><td></td><td> Takes you to your Desktop.
</td></tr>
133 <tr><td><span class=
"key">ALT
</span> <span class=
"key">H
</span></td><td></td><td> Takes you to your Home folder.
</td></tr>
135 <p>For keyboard shortcuts in Haiku in general, see chapter
<a href=
"keyboard-shortcuts.html">Shortcuts and key combinations
</a>.
</p>
138 <a href=
"#"><img src=
"../images/up.png" style=
"border:none;float:right" alt=
"index" /></a>
139 <a id=
"favorites-recent" name=
"favorites-recent">Favorites and recent folders
</a></h3>
140 <p>The
<span class=
"menu">Favorites
</span> menu in open and save panels 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.
</p>
141 <img src=
"images/gui-images/favorites.png" alt=
"favorites.png" />
142 <p>To add a Favorite, you simply navigate to your destination and choose
<span class=
"menu">Favorites | Add current folder
</span>. From now on it will appear in every open/save panel. To remove a Favorite, choose
<span class=
"menu">Favorites | Configure favorites...
</span> and delete its entry.
<br />
143 All Favorites are kept in
<span class=
"path">/boot/home/config/settings/Tracker/Go/
</span>. So you might as well add and remove links to files and folders there directly.
</p>
146 <a href=
"#"><img src=
"../images/up.png" style=
"border:none;float:right" alt=
"index" /></a>
147 <a id=
"replicants" name=
"replicants">Replicants
</a></h2>
148 <p>Replicants are small self-contained parts of applications that can be integrated into other programs. Provided Deskbar's option to
<span class=
"menu">Show replicants
</span> is activated, you'll recognize a replicantable part of an application by its small handle, normally in the bottom right corner:
</p>
149 <img src=
"../images/gui-images/replicant.png" alt=
"replicant.png" />
150 <p>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.
<br />
151 A right-click on a Replicant handle offers a context menu to show the originating app's
<span class=
"menu">About
</span> window and to
<span class=
"menu">Remove replicant
</span>.
</p>
152 <div class=
"box-info">Should you experience difficulties with a Replicant on the Desktop and just can't get rid of it, delete
<span class=
"path">~/config/settings/Tracker/tracker_shelf
</span>. Unfortunately, this will remove
<i>all
</i> Replicants from the Desktop.
</div>
153 <p>Examples for replicatable applications are the graphs of the
<a href=
"applications/activitymonitor.html">ActivityMonitor
</a>, the
<a href=
"workspaces.html">Workspaces applet
</a> or
<a href=
"applications/deskcalc.html">DeskCalc
</a>.
</p>
158 <div class=
"inner"><span>
159 «
<a href=
"filesystem-layout.html">Filesystem layout
</a>
160 ::
<a href=
"contents.html" class=
"uplink">Contents
</a>
161 ::
<a href=
"workspaces.html">Workspaces
</a> »