# FreeMind

Freemind is a program used to create mind maps. Freemind is Free Open Source Software and is currently in version 0.9.0 RC6 on which this article will be based.
This book aims to be an overview of how to use FreeMind and what features are available. I will describe how to access functions with keyboard shortcuts when I know of them because that way the program is useful for taking notes in class and is generally faster to work with.

### If you are running Linux or windows

Please note that keyboard shortcuts differ on different platforms. I am on an Apple MacBook which means I have a <command> key. Where-ever I write <command>, I believe you can substitute it for the <ctrl> key if you are running Linux or Windows.

### Installing

To install FreeMind on your system you point your browser to their Download page, which currently will tell you that the latest version is 0.8.1*, and there you will find detailed installation instructions. At the bottom of the page you will find a link to the "unstable" version, which is what I will be using. If you decide on the older version, some functionality might differ or be missing.
* Update: Latest Stable Release shows as version 1.0.0

## Getting started

When the installation is done and you have started the program you are presented with the main view, containing an empty mind map.

### Terminology

The grey elliptical blob with "New Mindmap" on it is called the root node. It is the node from which all other nodes stem. An end node is called a leaf and a node with other nodes attached to it is called a branch. Nodes you add to another node are called its children and the node having children added to it is called their parent. A child of a node's parent is called a sibling. Ancestor and descendant, grandchild and grandparent are defined analogously. The line between two nodes is called an edge.
Emulating this with a list will give an example:
* Root
** Branch
*** Leaf
*** Leaf
** Leaf
** Child of root
** Node1
*** Child of Node1
**** Child of 'Child of Node1', descendant of Node1
** Parent of Node2, Node3 and Node4
*** Node2
*** Node3 (a sibling of Node2 and Node4)
*** Node4
These are all common terms used to talk about tree-like structures in science.

### Basics

Clicking the root node will let you rename it. When you have typed a new name you press <enter> to confirm or <escape> to cancel. To add a new node you press <tab> or <enter> and type its name. When a node is selected its background is grey, and you can rename it by pressing F2 or just start typing.
To create a sibling node of the currently selected node, press <enter>. To create a child node, press <tab>. To navigate between nodes use the arrow keys. You can also select a key by placing the mouse cursor on top of it. (If this annoys you as much as it annoys me, you change this setting in the preferences: under Behaviour you change selection method from delay to by click.)

### Decoration

To change the appearance of nodes you can add icons, change their style and their colour and you can format their text if you like.
To add an icon to a node, you either just click one of the icons in the leftmost icon-list or you press <alt>+c to get an icon palette that you can navigate with the arrow keys or select from with the mouse. To remove an icon you press the red x in the icon list, and to remove all added icons you press the rubbish bin in that same list.
To change a node's style you have to right-click the node and choose Format and then either Fork (default) or Bubble (gives the node an outline). When you change the style of a node, all its descendants change as well (unless previously given an explicit style). This behaviour can be changed in the preferences though.
To change a node's colour, you can either right-click it and choose Format→Node Colour... or you can press <shift><alt>+c. From the right-click pop-up–list you can also change the node background colour and its edge colour (<shift><alt>+e).
To format the text of a node you press <alt>+<enter> to get a rich text editor to pop up. When you are satisfied you press <alt>+<enter> again. That means you can use <enter> to get line breaks in the text.

## Using FreeMind to take notes

After having learned the basic functionality you can now use FreeMind to take notes during a lecture. That means you can focus on contents and let the structure be apparent automatically. When the lecture is over you can spend a little time to format and restructure the notes into a powerful memory aid.

### An example

Suppose we are attending a lecture on using FreeMind.
The lecturer starts by explaining the terminology used: node, root, parent, child etc.; and then he groups them into three different metaphor systems, deriving from: trees, family relationships and geometry. After having listened to him talk about this you get this map:
(http://bayimg.com/image/aaibhaacb.jpg)
This is not optimally organised, you would rather have the nodes attached to their respective metaphor. So you drag them one at a time to the corresponding metaphor (or holding shift you can mark several and drag them all together). This can also be achieved with the keyboard if you want. You navigate which node is selected by the arrow keys, and then hold <command> (on a mac, probably <ctrl> on windows or linux) while using the arrow keys to move the selected node in the tree. <Up> and <down> work as expected and <left> and <right> as well, except you will want to notice that when moving nodes away from the root, it will select the sibling above itself as its new parent.
After having rearranged the nodes like this you can move the metaphor node's children up to the terminology node and then delete the metaphor node.
When you are pleased with the structure you can change the layout as well. To change the position of a node and its descendants you hover your mouse pointer where the edge form the parent comes in to see a small black oval. Click and drag it to move the node around.
(http://bayimg.com/image/daibaaacb.jpg)
Restructuring efforts like this are probably best made with the mouse. And if the lecture is high pace you might want to wait until the end with doing it.
When the lecture continues with keyboard shortcuts you continue taking notes. You select the root and press <tab> or <enter> to get a new child. After taking some notes, and making use of icons now (<alt>+i, remember?) we get this sub-map:
(http://bayimg.com/image/eaibhaacb.jpg)
Then you spend some time formatting the map to aid memory better, maybe adding some small things you found on your own:
(http://bayimg.com/image/gaibiaacb.jpg)
In here you see examples of some features I have not covered. Let's go through them now:

#### Hyper-links

    makes a node link to a web page (but can also be used to link to a local file). For this, press <command>+K (or <shift><command>+K for a local file). Here I have formatted one word in the node as underlined blue to make it obvious what the link will point to. A hyper-linked node is decorated with a red little arrow icon in front of it.

#### Links

    You create links between nodes simplest by dragging a node into another with the right mouse button, but you can also drag it normally and hold <shift> and <alt> when dropping. A third option is to mark two nodes and press <ctrl>+L. Right-clicking the created link or arrow will give you the option of deciding its direction (this way, that way, both ways or no arrow-head at all) and its colour. To change its path you click somewhere on the arrow and drag while holding. Start this action at different points of the link and notice the different effect. You will see a faint visualisation of the bezier control points while holding the mouse button, but unfortunately you do not seem to be able to manipulate them directly.

#### Searching

    Press <command>+F to search the current node and its children for a phrase. If you want to search the whole map, you press escape first to select the root node.

#### Clouds

    You can mark a whole sub-tree as a unit by enclosing it in a cloud, by pressing <shift><command>+b. That will create a cloud around the currently selected node and all its descendants.
You can find all available functions by exploring the menus and they will tell you about the keyboard shortcuts too.