summaryrefslogtreecommitdiffstats
path: root/doc/chalk
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2011-06-26 00:41:16 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2011-06-26 00:41:16 +0000
commit698569f8428ca088f764d704034a1330517b98c0 (patch)
treebf45be6946ebbbee9cce5a5bcf838f4c952d87e6 /doc/chalk
parent2785103a6bd4de55bd26d79e34d0fdd4b329a73a (diff)
downloadkoffice-698569f8428ca088f764d704034a1330517b98c0.tar.gz
koffice-698569f8428ca088f764d704034a1330517b98c0.zip
Finish rebranding of Krita as Chalk
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/koffice@1238363 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'doc/chalk')
-rw-r--r--doc/chalk/Makefile.am4
-rw-r--r--doc/chalk/README.SCREENSHOTS7
-rw-r--r--doc/chalk/commands-dialogs.docbook1411
-rw-r--r--doc/chalk/commands-menus.docbook2158
-rw-r--r--doc/chalk/commands-palettes.docbook769
-rw-r--r--doc/chalk/commands-toolbars.docbook752
-rw-r--r--doc/chalk/commands.docbook14
-rw-r--r--doc/chalk/createdocument.pngbin0 -> 27560 bytes
-rw-r--r--doc/chalk/credits.docbook63
-rw-r--r--doc/chalk/crocusses-autocontrast.pngbin0 -> 499566 bytes
-rw-r--r--doc/chalk/crocusses-blur.pngbin0 -> 468963 bytes
-rw-r--r--doc/chalk/crocusses-brightnesscontrast.pngbin0 -> 546359 bytes
-rw-r--r--doc/chalk/crocusses-bumpmap.pngbin0 -> 571359 bytes
-rw-r--r--doc/chalk/crocusses-coloradjustment.pngbin0 -> 528837 bytes
-rw-r--r--doc/chalk/crocusses-colortoalpha.pngbin0 -> 415308 bytes
-rw-r--r--doc/chalk/crocusses-colortransfer.pngbin0 -> 555355 bytes
-rw-r--r--doc/chalk/crocusses-customconvolution.pngbin0 -> 554020 bytes
-rw-r--r--doc/chalk/crocusses-desaturate.pngbin0 -> 406993 bytes
-rw-r--r--doc/chalk/crocusses-edgebottom.pngbin0 -> 559660 bytes
-rw-r--r--doc/chalk/crocusses-edgeleft.pngbin0 -> 571228 bytes
-rw-r--r--doc/chalk/crocusses-edgeright.pngbin0 -> 571084 bytes
-rw-r--r--doc/chalk/crocusses-embossall.pngbin0 -> 510986 bytes
-rw-r--r--doc/chalk/crocusses-embosshorvert.pngbin0 -> 458936 bytes
-rw-r--r--doc/chalk/crocusses-embossvariable.pngbin0 -> 422056 bytes
-rw-r--r--doc/chalk/crocusses-gaussianblur.pngbin0 -> 530129 bytes
-rw-r--r--doc/chalk/crocusses-gaussiannoise.pngbin0 -> 286299 bytes
-rw-r--r--doc/chalk/crocusses-invert.pngbin0 -> 539223 bytes
-rw-r--r--doc/chalk/crocusses-lenscorrection.pngbin0 -> 508845 bytes
-rw-r--r--doc/chalk/crocusses-maximizechannel.pngbin0 -> 459662 bytes
-rw-r--r--doc/chalk/crocusses-meanremoval.pngbin0 -> 567175 bytes
-rw-r--r--doc/chalk/crocusses-minimizechannel.pngbin0 -> 425665 bytes
-rw-r--r--doc/chalk/crocusses-oilpaint.pngbin0 -> 495456 bytes
-rw-r--r--doc/chalk/crocusses-pixelize.pngbin0 -> 478589 bytes
-rw-r--r--doc/chalk/crocusses-raindrops.pngbin0 -> 534756 bytes
-rw-r--r--doc/chalk/crocusses-randomnoise.pngbin0 -> 564986 bytes
-rw-r--r--doc/chalk/crocusses-randompick.pngbin0 -> 519596 bytes
-rw-r--r--doc/chalk/crocusses-roundcorners.pngbin0 -> 539417 bytes
-rw-r--r--doc/chalk/crocusses-sharpen.pngbin0 -> 553923 bytes
-rw-r--r--doc/chalk/crocusses-smalltiles.pngbin0 -> 361991 bytes
-rw-r--r--doc/chalk/crocusses-sobel.pngbin0 -> 471366 bytes
-rw-r--r--doc/chalk/crocusses-topedge.pngbin0 -> 559862 bytes
-rw-r--r--doc/chalk/crocusses-unsharpmask.pngbin0 -> 428074 bytes
-rw-r--r--doc/chalk/crocusses-wave.pngbin0 -> 523440 bytes
-rw-r--r--doc/chalk/crocusses-waveletnoise.pngbin0 -> 529842 bytes
-rw-r--r--doc/chalk/crocusses.pngbin0 -> 793765 bytes
-rw-r--r--doc/chalk/developers-plugins.docbook1553
-rw-r--r--doc/chalk/developers-scripting.docbook534
-rw-r--r--doc/chalk/developers.docbook13
-rw-r--r--doc/chalk/dialogs-addpalette.pngbin0 -> 4551 bytes
-rw-r--r--doc/chalk/dialogs-blur.pngbin0 -> 48397 bytes
-rw-r--r--doc/chalk/dialogs-brightnesscontrast.pngbin0 -> 49053 bytes
-rw-r--r--doc/chalk/dialogs-bumpmap.pngbin0 -> 67767 bytes
-rw-r--r--doc/chalk/dialogs-coloradjustment.pngbin0 -> 51960 bytes
-rw-r--r--doc/chalk/dialogs-colorrange.pngbin0 -> 15922 bytes
-rw-r--r--doc/chalk/dialogs-colortoalpha.pngbin0 -> 87706 bytes
-rw-r--r--doc/chalk/dialogs-colortransfer.pngbin0 -> 95725 bytes
-rw-r--r--doc/chalk/dialogs-convertimagetype.pngbin0 -> 20431 bytes
-rw-r--r--doc/chalk/dialogs-convertlayertype.pngbin0 -> 20122 bytes
-rw-r--r--doc/chalk/dialogs-cubism.pngbin0 -> 24275 bytes
-rw-r--r--doc/chalk/dialogs-customconvolution.pngbin0 -> 56964 bytes
-rw-r--r--doc/chalk/dialogs-documentinformation.pngbin0 -> 15469 bytes
-rw-r--r--doc/chalk/dialogs-dropshadow.pngbin0 -> 7698 bytes
-rw-r--r--doc/chalk/dialogs-emboss.pngbin0 -> 43741 bytes
-rw-r--r--doc/chalk/dialogs-filtersgallery.pngbin0 -> 96050 bytes
-rw-r--r--doc/chalk/dialogs-gaussiannoise.pngbin0 -> 90251 bytes
-rw-r--r--doc/chalk/dialogs-histogram.pngbin0 -> 16401 bytes
-rw-r--r--doc/chalk/dialogs-imageproperties.pngbin0 -> 7708 bytes
-rw-r--r--doc/chalk/dialogs-imagerestoration.pngbin0 -> 50998 bytes
-rw-r--r--doc/chalk/dialogs-imagesize.pngbin0 -> 16604 bytes
-rw-r--r--doc/chalk/dialogs-layerproperties.pngbin0 -> 14492 bytes
-rw-r--r--doc/chalk/dialogs-layersize.pngbin0 -> 13466 bytes
-rw-r--r--doc/chalk/dialogs-lenscorrection.pngbin0 -> 94890 bytes
-rw-r--r--doc/chalk/dialogs-newadjustmentlayer.pngbin0 -> 93986 bytes
-rw-r--r--doc/chalk/dialogs-newlayer.pngbin0 -> 5868 bytes
-rw-r--r--doc/chalk/dialogs-oilpaint.pngbin0 -> 37142 bytes
-rw-r--r--doc/chalk/dialogs-pixelize.pngbin0 -> 16146 bytes
-rw-r--r--doc/chalk/dialogs-raindrops.pngbin0 -> 45473 bytes
-rw-r--r--doc/chalk/dialogs-randomnoise.pngbin0 -> 139396 bytes
-rw-r--r--doc/chalk/dialogs-randompick.pngbin0 -> 91945 bytes
-rw-r--r--doc/chalk/dialogs-rotateimage.pngbin0 -> 16183 bytes
-rw-r--r--doc/chalk/dialogs-rotatelayer.pngbin0 -> 20300 bytes
-rw-r--r--doc/chalk/dialogs-roundcorners.pngbin0 -> 46187 bytes
-rw-r--r--doc/chalk/dialogs-separateimage.pngbin0 -> 7936 bytes
-rw-r--r--doc/chalk/dialogs-shearimage.pngbin0 -> 9517 bytes
-rw-r--r--doc/chalk/dialogs-shearlayer.pngbin0 -> 7941 bytes
-rw-r--r--doc/chalk/dialogs-smalltiles.pngbin0 -> 32127 bytes
-rw-r--r--doc/chalk/dialogs-sobel.pngbin0 -> 83673 bytes
-rw-r--r--doc/chalk/dialogs-substrate.pngbin0 -> 22652 bytes
-rw-r--r--doc/chalk/dialogs-unsharpmask.pngbin0 -> 93324 bytes
-rw-r--r--doc/chalk/dialogs-wave.pngbin0 -> 99302 bytes
-rw-r--r--doc/chalk/dialogs-waveletnoise.pngbin0 -> 77064 bytes
-rw-r--r--doc/chalk/faq.docbook51
-rw-r--r--doc/chalk/index.docbook138
-rw-r--r--doc/chalk/installation.docbook73
-rw-r--r--doc/chalk/introduction.docbook153
-rw-r--r--doc/chalk/mainscreen.pngbin0 -> 79116 bytes
-rw-r--r--doc/chalk/mountains-burn.pngbin0 -> 160961 bytes
-rw-r--r--doc/chalk/mountains-color.pngbin0 -> 192281 bytes
-rw-r--r--doc/chalk/mountains-darken.pngbin0 -> 159111 bytes
-rw-r--r--doc/chalk/mountains-divide.pngbin0 -> 173190 bytes
-rw-r--r--doc/chalk/mountains-dodge.pngbin0 -> 173312 bytes
-rw-r--r--doc/chalk/mountains-hue.pngbin0 -> 234147 bytes
-rw-r--r--doc/chalk/mountains-lighten.pngbin0 -> 149118 bytes
-rw-r--r--doc/chalk/mountains-multiply.pngbin0 -> 172594 bytes
-rw-r--r--doc/chalk/mountains-normal.pngbin0 -> 3514 bytes
-rw-r--r--doc/chalk/mountains-original.pngbin0 -> 238432 bytes
-rw-r--r--doc/chalk/mountains-overlay.pngbin0 -> 249222 bytes
-rw-r--r--doc/chalk/mountains-saturation.pngbin0 -> 231772 bytes
-rw-r--r--doc/chalk/mountains-screen.pngbin0 -> 172229 bytes
-rw-r--r--doc/chalk/mountains-value.pngbin0 -> 218819 bytes
-rw-r--r--doc/chalk/mountains.pngbin0 -> 975941 bytes
-rw-r--r--doc/chalk/newimage.pngbin0 -> 29884 bytes
-rw-r--r--doc/chalk/palettes-colors-gray.pngbin0 -> 1426 bytes
-rw-r--r--doc/chalk/palettes-colors-hsv.pngbin0 -> 10419 bytes
-rw-r--r--doc/chalk/palettes-colors-palettes.pngbin0 -> 3356 bytes
-rw-r--r--doc/chalk/palettes-colors-rgb.pngbin0 -> 1841 bytes
-rw-r--r--doc/chalk/palettes-colors-watercolors.pngbin0 -> 3031 bytes
-rw-r--r--doc/chalk/palettes-controlbox-bezier.pngbin0 -> 2961 bytes
-rw-r--r--doc/chalk/palettes-controlbox-brush.pngbin0 -> 3644 bytes
-rw-r--r--doc/chalk/palettes-controlbox-colorpicker.pngbin0 -> 7578 bytes
-rw-r--r--doc/chalk/palettes-controlbox-contiguousfill.pngbin0 -> 5642 bytes
-rw-r--r--doc/chalk/palettes-controlbox-crop.pngbin0 -> 4123 bytes
-rw-r--r--doc/chalk/palettes-controlbox-duplicate.pngbin0 -> 5857 bytes
-rw-r--r--doc/chalk/palettes-controlbox-ellipse.pngbin0 -> 3444 bytes
-rw-r--r--doc/chalk/palettes-controlbox-fill.pngbin0 -> 5468 bytes
-rw-r--r--doc/chalk/palettes-controlbox-gradient.pngbin0 -> 6695 bytes
-rw-r--r--doc/chalk/palettes-controlbox-histogram.pngbin0 -> 1597 bytes
-rw-r--r--doc/chalk/palettes-controlbox-line.pngbin0 -> 3815 bytes
-rw-r--r--doc/chalk/palettes-controlbox-overview.pngbin0 -> 20949 bytes
-rw-r--r--doc/chalk/palettes-controlbox-paintwithfilters.pngbin0 -> 7826 bytes
-rw-r--r--doc/chalk/palettes-controlbox-polygon.pngbin0 -> 4286 bytes
-rw-r--r--doc/chalk/palettes-controlbox-polyline.pngbin0 -> 3815 bytes
-rw-r--r--doc/chalk/palettes-controlbox-rectangle.pngbin0 -> 3444 bytes
-rw-r--r--doc/chalk/palettes-controlbox-select.pngbin0 -> 1538 bytes
-rw-r--r--doc/chalk/palettes-controlbox-selectcontiguous.pngbin0 -> 3525 bytes
-rw-r--r--doc/chalk/palettes-controlbox-selectmagnetic.pngbin0 -> 3765 bytes
-rw-r--r--doc/chalk/palettes-controlbox-selectsimilar.pngbin0 -> 2806 bytes
-rw-r--r--doc/chalk/palettes-controlbox-star.pngbin0 -> 5078 bytes
-rw-r--r--doc/chalk/palettes-controlbox-text.pngbin0 -> 4120 bytes
-rw-r--r--doc/chalk/palettes-controlbox-transform.pngbin0 -> 1529 bytes
-rw-r--r--doc/chalk/palettes-layers-layers.pngbin0 -> 2825 bytes
-rw-r--r--doc/chalk/palettes-layers-scriptsmanager.pngbin0 -> 10082 bytes
-rw-r--r--doc/chalk/preferences-color.pngbin0 -> 9181 bytes
-rw-r--r--doc/chalk/preferences-display.pngbin0 -> 2053 bytes
-rw-r--r--doc/chalk/preferences-general.pngbin0 -> 4016 bytes
-rw-r--r--doc/chalk/preferences-grid.pngbin0 -> 4554 bytes
-rw-r--r--doc/chalk/preferences-performance.pngbin0 -> 2846 bytes
-rw-r--r--doc/chalk/preferences-sidebar.pngbin0 -> 8953 bytes
-rw-r--r--doc/chalk/preferences-tablet.pngbin0 -> 3391 bytes
-rw-r--r--doc/chalk/settings.docbook229
-rw-r--r--doc/chalk/tool-bezier-example.pngbin0 -> 3300 bytes
-rw-r--r--doc/chalk/tool-bezier-example2.pngbin0 -> 3588 bytes
-rw-r--r--doc/chalk/tool-bezier-example3.pngbin0 -> 8637 bytes
-rw-r--r--doc/chalk/tool-bezier.pngbin0 -> 862 bytes
-rw-r--r--doc/chalk/tool-brush.pngbin0 -> 759 bytes
-rw-r--r--doc/chalk/tool-colorpicker.pngbin0 -> 821 bytes
-rw-r--r--doc/chalk/tool-contiguousfill.pngbin0 -> 1197 bytes
-rw-r--r--doc/chalk/tool-crop.pngbin0 -> 902 bytes
-rw-r--r--doc/chalk/tool-duplicate.pngbin0 -> 1235 bytes
-rw-r--r--doc/chalk/tool-ellipse.pngbin0 -> 885 bytes
-rw-r--r--doc/chalk/tool-eraseselection.pngbin0 -> 1178 bytes
-rw-r--r--doc/chalk/tool-gradient.pngbin0 -> 481 bytes
-rw-r--r--doc/chalk/tool-line.pngbin0 -> 574 bytes
-rw-r--r--doc/chalk/tool-move.pngbin0 -> 883 bytes
-rw-r--r--doc/chalk/tool-paintselection.pngbin0 -> 1073 bytes
-rw-r--r--doc/chalk/tool-paintwithfilters-example.pngbin0 -> 236144 bytes
-rw-r--r--doc/chalk/tool-paintwithfilters.pngbin0 -> 882 bytes
-rw-r--r--doc/chalk/tool-pan.pngbin0 -> 913 bytes
-rw-r--r--doc/chalk/tool-perspectivegrid.pngbin0 -> 1044 bytes
-rw-r--r--doc/chalk/tool-perspectivetransform.pngbin0 -> 883 bytes
-rw-r--r--doc/chalk/tool-polygon.pngbin0 -> 898 bytes
-rw-r--r--doc/chalk/tool-polyline.pngbin0 -> 708 bytes
-rw-r--r--doc/chalk/tool-rectangle.pngbin0 -> 539 bytes
-rw-r--r--doc/chalk/tool-selectbezier.pngbin0 -> 797 bytes
-rw-r--r--doc/chalk/tool-selectcontiguous.pngbin0 -> 876 bytes
-rw-r--r--doc/chalk/tool-selectelliptical.pngbin0 -> 775 bytes
-rw-r--r--doc/chalk/tool-selectmagnetic.pngbin0 -> 1123 bytes
-rw-r--r--doc/chalk/tool-selectoutline.pngbin0 -> 927 bytes
-rw-r--r--doc/chalk/tool-selectpolygonal.pngbin0 -> 939 bytes
-rw-r--r--doc/chalk/tool-selectrectangular.pngbin0 -> 637 bytes
-rw-r--r--doc/chalk/tool-selectsimilar.pngbin0 -> 835 bytes
-rw-r--r--doc/chalk/tool-star.pngbin0 -> 1042 bytes
-rw-r--r--doc/chalk/tool-text.pngbin0 -> 1008 bytes
-rw-r--r--doc/chalk/tool-transform.pngbin0 -> 616 bytes
-rw-r--r--doc/chalk/tool-zoom.pngbin0 -> 981 bytes
-rw-r--r--doc/chalk/toolbar-brushes-brushshapes-autobrush.pngbin0 -> 6981 bytes
-rw-r--r--doc/chalk/toolbar-brushes-brushshapes-custombrush.pngbin0 -> 24320 bytes
-rw-r--r--doc/chalk/toolbar-brushes-brushshapes-predefined.pngbin0 -> 5756 bytes
-rw-r--r--doc/chalk/toolbar-brushes-gradients.pngbin0 -> 12138 bytes
-rw-r--r--doc/chalk/toolbar-brushes-patterns-custompattern.pngbin0 -> 18845 bytes
-rw-r--r--doc/chalk/toolbar-brushes-patterns.pngbin0 -> 37517 bytes
-rw-r--r--doc/chalk/toolbar-brushesandstuff.pngbin0 -> 4514 bytes
-rw-r--r--doc/chalk/toolbar-chalk.pngbin0 -> 21661 bytes
-rw-r--r--doc/chalk/toolbar-edit.pngbin0 -> 1852 bytes
-rw-r--r--doc/chalk/toolbar-file.pngbin0 -> 3617 bytes
-rw-r--r--doc/chalk/toolbar-navigation.pngbin0 -> 1196 bytes
-rw-r--r--doc/chalk/toolbar-transformationtools.pngbin0 -> 2339 bytes
-rw-r--r--doc/chalk/toolbars-button-zoomin.pngbin0 -> 1079 bytes
-rw-r--r--doc/chalk/toolbars-button-zoomout.pngbin0 -> 1040 bytes
-rw-r--r--doc/chalk/tutorial-quick-starts.docbook183
-rw-r--r--doc/chalk/tutorial-quick-starts1.pngbin0 -> 517486 bytes
-rw-r--r--doc/chalk/tutorial-quick-starts10.pngbin0 -> 5261 bytes
-rw-r--r--doc/chalk/tutorial-quick-starts11.pngbin0 -> 15273 bytes
-rw-r--r--doc/chalk/tutorial-quick-starts12.pngbin0 -> 64871 bytes
-rw-r--r--doc/chalk/tutorial-quick-starts2.pngbin0 -> 13703 bytes
-rw-r--r--doc/chalk/tutorial-quick-starts3.pngbin0 -> 376212 bytes
-rw-r--r--doc/chalk/tutorial-quick-starts4.pngbin0 -> 5868 bytes
-rw-r--r--doc/chalk/tutorial-quick-starts5.pngbin0 -> 251715 bytes
-rw-r--r--doc/chalk/tutorial-quick-starts6.pngbin0 -> 45704 bytes
-rw-r--r--doc/chalk/tutorial-quick-starts7.pngbin0 -> 73296 bytes
-rw-r--r--doc/chalk/tutorial-quick-starts8.pngbin0 -> 3636 bytes
-rw-r--r--doc/chalk/tutorial-quick-starts9.pngbin0 -> 7115 bytes
-rw-r--r--doc/chalk/tutorial-select-layer-1.pngbin0 -> 99976 bytes
-rw-r--r--doc/chalk/tutorial-select-layer-10.pngbin0 -> 21980 bytes
-rw-r--r--doc/chalk/tutorial-select-layer-11.pngbin0 -> 28349 bytes
-rw-r--r--doc/chalk/tutorial-select-layer-12.pngbin0 -> 2908 bytes
-rw-r--r--doc/chalk/tutorial-select-layer-13.pngbin0 -> 5912 bytes
-rw-r--r--doc/chalk/tutorial-select-layer-2.pngbin0 -> 7974 bytes
-rw-r--r--doc/chalk/tutorial-select-layer-3.pngbin0 -> 17499 bytes
-rw-r--r--doc/chalk/tutorial-select-layer-4.pngbin0 -> 3852 bytes
-rw-r--r--doc/chalk/tutorial-select-layer-5.pngbin0 -> 5555 bytes
-rw-r--r--doc/chalk/tutorial-select-layer-6.pngbin0 -> 14353 bytes
-rw-r--r--doc/chalk/tutorial-select-layer-7.pngbin0 -> 5173 bytes
-rw-r--r--doc/chalk/tutorial-select-layer-8.pngbin0 -> 6463 bytes
-rw-r--r--doc/chalk/tutorial-select-layer-9.pngbin0 -> 21072 bytes
-rw-r--r--doc/chalk/tutorial-select-layer-sample.pngbin0 -> 5905 bytes
-rw-r--r--doc/chalk/tutorial-select-layer.docbook263
-rw-r--r--doc/chalk/tutorial-starting.docbook117
-rw-r--r--doc/chalk/tutorial-tablet-1.pngbin0 -> 99770 bytes
-rw-r--r--doc/chalk/tutorial-tablet-2.pngbin0 -> 27896 bytes
-rw-r--r--doc/chalk/tutorial-tablet-3.pngbin0 -> 33492 bytes
-rw-r--r--doc/chalk/tutorial-tablet.docbook141
-rw-r--r--doc/chalk/tutorial.docbook14
-rw-r--r--doc/chalk/using-colorspaces.docbook149
-rw-r--r--doc/chalk/using-filters.docbook923
-rw-r--r--doc/chalk/using-images.docbook66
-rw-r--r--doc/chalk/using-layers.docbook620
-rw-r--r--doc/chalk/using-selections-1.pngbin0 -> 115987 bytes
-rw-r--r--doc/chalk/using-selections-2.pngbin0 -> 128193 bytes
-rw-r--r--doc/chalk/using-selections-3.pngbin0 -> 131771 bytes
-rw-r--r--doc/chalk/using-selections-4.pngbin0 -> 29987 bytes
-rw-r--r--doc/chalk/using-selections-5.pngbin0 -> 24734 bytes
-rw-r--r--doc/chalk/using-selections-6.pngbin0 -> 194321 bytes
-rw-r--r--doc/chalk/using-selections.docbook200
-rw-r--r--doc/chalk/using-views.docbook167
245 files changed, 10765 insertions, 0 deletions
diff --git a/doc/chalk/Makefile.am b/doc/chalk/Makefile.am
new file mode 100644
index 00000000..085981d9
--- /dev/null
+++ b/doc/chalk/Makefile.am
@@ -0,0 +1,4 @@
+
+KDE_LANG = en
+KDE_DOCS = AUTO
+
diff --git a/doc/chalk/README.SCREENSHOTS b/doc/chalk/README.SCREENSHOTS
new file mode 100644
index 00000000..bc1d55bd
--- /dev/null
+++ b/doc/chalk/README.SCREENSHOTS
@@ -0,0 +1,7 @@
+Note for translators:
+
+The file "mountains.png" is the original photo used for creating the screenshots
+in the Dialogs section.
+
+
+- ASK \ No newline at end of file
diff --git a/doc/chalk/commands-dialogs.docbook b/doc/chalk/commands-dialogs.docbook
new file mode 100644
index 00000000..86ef91d1
--- /dev/null
+++ b/doc/chalk/commands-dialogs.docbook
@@ -0,0 +1,1411 @@
+<sect1 id="commands-dialogs">
+<title>Dialogs</title>
+
+<para>
+This section describes &chalk;'s dialog windows.
+</para>
+
+<sect2 id="commands-dialogs-image">
+<title>Dialogs for working with images</title>
+
+<sect3 id="commands-dialogs-images-colorrange">
+<title>The <guilabel>Color Range</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Color Range</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-colorrange.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Color Range</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Color Range</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+You can create a selection based on the color values of pixels here. In the
+dropdown box, choose which color range you want to select. Pixels will be
+selected according to their color value on this scale (&eg; a fully yellow
+pixel would score maximally on the yellow scale and on the red and green scales).
+If you check the <guilabel>Invert</guilabel> box, the selection becomes inverted:
+pixels will become selected if they have a lower value in the specified range instead.
+You can choose whether the current selection should be
+added to or subtracted from the color range selection by clicking the
+respective option: <guilabel>Add to current selection</guilabel> or
+<guilabel>Subtract from current selection</guilabel>. Choose
+<guibutton>Select</guibutton> to actually perform the selection or
+<guibutton>Deselect</guibutton> to remove these pixels from the selection.
+</para>
+
+</sect3>
+
+<sect3 id="commands-dialogs-image-convertimagetype">
+<title>The <guilabel>Convert Image Type</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Convert Image Type</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-convertimagetype.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Convert Image Type</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Convert Image Type</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+This dialog allows you to convert your image from one color space to another.
+The <guilabel>Target color space</guilabel> and <guilabel>Destination ICM
+profile</guilabel> are used to set to which colorspace and profile the image
+will be converted. You can influence how this conversion is done with the
+<guilabel>Rendering Intent</guilabel> option.
+</para>
+<para>
+With <guilabel>Perceptual</guilabel> conversion, the source color space is
+mapped linearly to the destination color space. If the destination color space
+<quote>accepts</quote> a lesser color range than the source, shifts may occur
+because the range is compressed. <guilabel>Relative colorimetric</guilabel>
+conversion converts every color to the closest color in the destination color
+space. This may mean that a certain color range is mapped to one color in the
+destination color space. <guilabel>Saturation</guilabel> means that fully
+saturated colors will remain fully saturated, even if this means that the
+actual color is changed. With <guilabel>Absolute colorimetric</guilabel>
+conversion, the same approach is used as with <guilabel>Relative
+colorimetric</guilabel>, but the white point of the color space (the value
+designating the color white) is not changed to match the new color space,
+which may result in unwanted changes to near colors.
+</para>
+
+</sect3>
+
+<sect3 id="commands-dialogs-image-imageproperties">
+<title>The <guilabel>Image Properties</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Image Properties</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-imageproperties.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Image Properties</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Image Properties</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+In this dialog you can change a couple of image properties. First of all, the
+<guilabel>Name</guilabel> of the image. If you did not set a name earlier
+(that can also be done when creating the image), it will have a default name
+like <quote>Image1</quote>. Then, you can set its size (determined by the
+<guilabel>Width</guilabel> and <guilabel>Height</guilabel> in pixels and
+the <guilabel>Resolution</guilabel> in dots per inch) and the color profile to
+be used (<guilabel>Profile</guilabel>). Finally, you can fill in the
+<guilabel>Description</guilabel> field with any information you want to add to
+the image.
+</para>
+
+</sect3>
+
+<sect3 id="commands-dialogs-image-imagesize">
+<title>The <guilabel>Image Size</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Image Size</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-imagesize.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Image Size</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Image Size</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+This dialog lets you resize your image. In the top part, you can choose the
+way the image is resized. If you choose <guilabel>Resize</guilabel>, the size
+of the image is changed, but its layers (which contain the actual contents)
+will not be modified. So, when you double the height and width of the image,
+your original image will occupy the top-left quarter part of your new image.
+On decreasing the size of your image, the image layers will stretch out over
+the image borders, unless you choose <guilabel>Crop layers on image
+resize</guilabel>, which will crop all layers to the new image size.
+</para><para>
+With <guilabel>Scale</guilabel>, the image layers will be resized with the
+image. So increasing the image size will actually enlarge the contents, and
+similar for decreasing.
+</para><para>
+Under <guilabel>Pixel dimensions</guilabel>, you can set which new size you
+want the image to have. The original size is given as a reference. The new
+size can be set both as pixels or as a percentage, with 100% being the
+original size. If you select <guilabel>Constrain proportions</guilabel>, the
+new width and height will always be set to the same percentage. For example,
+if you have an image of 200 x 100 pixels, and set the width to 20 pixels, the
+height will automatically be changed to 10. With this checkbox unselected, you
+can also resize the image non-proportionally.
+</para><para>
+The <guilabel>Filter:</guilabel> dropdown box can be used to select a
+different algorithm for determining the colors of the pixels in the newly
+resized image that did not correspond to a pixel in the old image (the
+calculated corresponding location in the old image was located in between
+pixels). <guilabel>BSpline</guilabel> uses a 4 x 4 pixel grid and results into a quite high
+blurring. <guilabel>Bell</guilabel> is quite fast while resulting in a reasonably smooth image.
+<guilabel>Box</guilabel> is the fastest method, but yields the least appealing result. <guilabel>Hermite</guilabel>
+keeps the image quite sharp, while smoothing it as well, and is reasonably
+fast. <guilabel>Lanczos3</guilabel> results in sharp images, but is very slow. <guilabel>Mitchell</guilabel> (the
+default) is not very fast, but often yields a good intermediate result.
+<guilabel>Triangle/Bilinear</guilabel> uses the 2 x 2 pixel grid around the calculated location
+resulting in relatively sharp lines.
+</para>
+
+</sect3>
+
+<sect3 id="commands-dialogs-image-rotateimage">
+<title>The <guilabel>Rotate Image</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Rotate Image</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-rotateimage.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Rotate Image</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Rotate Image</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+With this dialog, you can rotate the image. The top part of the dialog shows
+the result of the rotation in the form of a change in dimension (if any).
+Under <guilabel>Direction</guilabel> you can choose between
+rotating clockwise and counter-clockwise. Under <guilabel>Angle</guilabel>,
+you can set the amount of rotation. 90, 180 and 270 degrees can be selected
+using the respective option button, other amounts need to be specified with
+the <guilabel>Custom</guilabel> spin box.
+</para>
+
+</sect3>
+
+<sect3 id="commands-dialogs-image-separateimage">
+<title>The <guilabel>Separate Image</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Separate Image</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-separateimage.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Separate Image</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Separate Image</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+With this dialog, you can separate (part of) your image. Every color component
+(channel) will be put into a separate layer or image. At the top of the
+dialog, the current color model is shown. Below that, a couple of options can
+be set.
+</para>
+<para>
+Under <guilabel>Source</guilabel>, you can choose what part of the image to
+separate. The two options are <guilabel>Current layer</guilabel>, which
+(obviously) only uses the currently selected layer and <guilabel>Flatten all
+layers before separation</guilabel>, which uses the entire image.
+</para>
+<para>
+Under <guilabel>Output</guilabel>, you can choose where the result of the
+separation should be written to: either to a couple of layers, or to a couple
+of images.
+</para>
+<para>
+Under <guilabel>Alpha Options</guilabel>, you can choose what should be done
+with the alpha channel of the selected layer(s). It can be copied to each new
+channel, be discarded, or separated on its own.
+</para>
+<para>
+The two options at the bottom of the dialog, finally, determine whether the
+source should be downscaled to 8 bit colors (if it contains more), and whether
+the output should be in color (default is to separate the channels to grayscale
+values).
+</para>
+</sect3>
+
+<sect3 id="commands-dialogs-image-shearimage">
+<title>The <guilabel>Shear Image</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Shear Image</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-shearimage.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Shear Image</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Shear Image</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+This dialog allows you to shear your image. By shearing, the bounding
+rectangle of your image is transformed into a parallellogram. One pixel
+row/column is kept in place, the next one is shifted by a certain amount, the
+next one by the same amount relative to the previous one, etcetera.
+The X and Y shearing angles can be set using the two spin boxes.
+</para>
+
+</sect3>
+
+<sect3 id="commands-dialogs-image-substrate">
+<title>The <guilabel>Substrate</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Substrate</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-substrate.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Substrate</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Substrate</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+(This dialog is still to be described.)
+</para>
+
+</sect3>
+
+</sect2>
+
+<sect2 id="commands-dialogs-layers">
+<title>Dialogs for working with layers</title>
+
+<sect3 id="commands-dialogs-layers-convertlayertype">
+<title>The <guilabel>Convert Layer Type</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Convert Layer Type</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-convertlayertype.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Convert Layer Type</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Convert Layer Type</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+This dialog is exactly the same as the <link
+linkend="commands-dialogs-image-convertimagetype"><guilabel>Convert Image
+Type</guilabel> dialog</link>, which converts an entire image instead of a
+single layer. See the description there for details.
+</para>
+
+</sect3>
+
+<sect3 id="commands-dialogs-layers-dropshadow">
+<title>The <guilabel>Drop Shadow</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Drop Shadow</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-dropshadow.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Drop Shadow</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Drop Shadow</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+With this dialog, you can add a drop shadow effect to the current layer.
+Select the X and Y offsets (displacements) of the shadow relative to the
+original layer with the two topmost spin boxes. The <guilabel>Blur
+radius</guilabel> spinbox determines the radius in which the shadow will be
+blurred (to achieve a smooth transition at the shadow border). If you want
+a special color for the shadow, you can choose one with the
+<guilabel>Color</guilabel> field. The <guilabel>Opacity</guilabel> slider and
+spinbox can be used to make the shadow more or less transparent. Disable the
+<guilabel>Allow resizing</guilabel> checkbox if you don't want the layer to be
+resized in order to give it a shadow.
+</para>
+
+</sect3>
+
+<sect3 id="commands-dialogs-layers-histogram">
+<title>The <guilabel>Histogram</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Histogram</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-histogram.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Histogram</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Histogram</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+This dialog shows a histogram for the current layer. With the
+<guilabel>Method:</guilabel> settings, you can choose what kind of histogram
+to show. You can change the channel(s) to show with the
+<guilabel>Channels:</guilabel> listbox, and the scale on which it should be
+drawn with the <guilabel>Linear</guilabel> and
+<guilabel>Logarithmic</guilabel> radio buttons. Under the preview, there are
+buttons available to zoom in to, and move over, the histogram. These are
+activated for 16-bit colorspace layers.
+</para>
+
+</sect3>
+
+<sect3 id="commands-dialogs-layers-layerproperties">
+<title>The <guilabel>Layer Properties</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Layer Properties</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-layerproperties.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Layer Properties</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Layer Properties</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+This dialog is in essence the same as the <link
+linkend="commands-dialogs-layers-newlayer">New Layer</link> dialog, with the difference that
+you cannot change its colorspace or profile anymore. These properties are
+shown, though, to keep the information complete.
+</para>
+</sect3>
+
+<sect3 id="commands-dialogs-layers-layersize">
+<title>The <guilabel>Layer Size</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Layer Size</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-layersize.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Layer Size</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Layer Size</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+This dialog allows you to resize the current layer.
+Under <guilabel>Pixel dimensions</guilabel>, you can set which new size you
+want the layer to have. The original size is given as a reference. The new
+size can be set both as pixels or as a percentage, with 100% being the
+original size. If you select <guilabel>Constrain proportions</guilabel>, the
+new width and height will always be set to the same percentage. For example,
+if you have a layer of 200 x 100 pixels, and set the width to 20 pixels, the
+height will automatically be changed to 10. With this checkbox unselected, you
+can also resize the layer non-proportionally. The <guilabel>Filter:</guilabel>
+dropdown list can be used to select a different algorithm for resizing the
+layer.
+</para>
+
+</sect3>
+
+<sect3 id="commands-dialogs-layers-newadjustmentlayer">
+<title>The <guilabel>New Adjustment Layer</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>New Adjustment Layer</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-newadjustmentlayer.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>New Adjustment Layer</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>New Adjustment Layer</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+In this dialog, you can select the type of adjustment layer to add to the
+image. In the left-hand list, you can see the available adjustment layers,
+each with a preview. When you select one, the <guilabel>Preview</guilabel>
+will change to show a correctly scaled preview of what the result of the
+adjustment layer is going to be.
+</para><para>
+You can then choose to show either the original image or the preview of the
+adjustment layer with the radio buttons below the preview window. The buttons
+next to these allow you to zoom in, zoom out, and refresh the preview,
+respectively. The <guilabel>Autoupdate</guilabel> checkbox determines if the
+preview window should update automatically after you made a change.
+</para><para>
+The various options available for the filter that is used to create the
+adjustment layer, are shown at the bottom of the dialog. See the section on
+<link linkend="commands-dialogs-filters">filters</link> of this chapter for
+descriptions.
+</para>
+
+</sect3>
+
+<sect3 id="commands-dialogs-layers-newlayer">
+<title>The <guilabel>New Layer</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>New Layer</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-newlayer.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>New Layer</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>New Layer</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+You can add a new layer to your image with this dialog. If you want a
+descriptive name for your layer, you can fill one in at
+<guilabel>Name:</guilabel>. You can select the desired colorspace for the new
+layer from the <guilabel>Colorspace:</guilabel> list, and the specific
+color profile for that colorspace at <guilabel>Profile:</guilabel>.
+You can preset the layer's <guilabel>Opacity</guilabel> (you can change it later with the slider in
+the <guilabel>Layer</guilabel> box), and choose the mode with which the layer should be composited
+onto the final image.
+</para>
+
+</sect3>
+
+<sect3 id="commands-dialogs-layers-rotatelayer">
+<title>The <guilabel>Rotate Layer</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Rotate Layer</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-rotatelayer.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Rotate Layer</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Rotate Layer</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+This dialog, similar to the <link
+linkend="commands-dialogs-image-rotateimage"><guilabel>Rotate Image</guilabel>
+dialog</link>, allows you to rotate the current layer. You can choose the
+direction in which to rotate and the amount to rotate the layer by.
+</para>
+
+</sect3>
+
+<sect3 id="commands-dialogs-layers-shearlayer">
+<title>The <guilabel>Shear Layer</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Shear Layer</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-shearlayer.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Shear Layer</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Shear Layer</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+This dialog works the same as the <link
+linkend="commands-dialogs-image-shearimage"><guilabel>Shear Image</guilabel>
+dialog</link>, except that it operates on the current layer instead of on the
+entire image.
+</para>
+
+</sect3>
+
+</sect2>
+
+<sect2 id="commands-dialogs-filters">
+<title>Dialogs for working with filters</title>
+
+<para>
+All filter dialogs consist of a filter-specific part, at the left, and a
+generic part, at the right. The generic part contains a preview window, which
+you can configure using the controls below it. Choose
+<guilabel>Preview</guilabel> or <guilabel>Original</guilabel> depending on
+whether you want the preview window to show the preview of the filter effect
+or the original image. The four buttons at the bottom right allow you to zoom
+in and zoom out, set the zooming factor to 100% (this shows the image at its
+original size), and refresh the preview, respectively. Furthermore, the option
+<guilabel>Autoupdate</guilabel> determines if the preview window is updated
+automatically. If you uncheck this checkbox, you will have to refresh the
+preview yourself.
+</para>
+
+<sect3 id="commands-dialogs-filters-blur">
+<title>The <guilabel>Blur</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Blur</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-blur.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Blur</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Blur</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+This dialog allows you to customize the way your image is blurred. The
+<guilabel>Half-width</guilabel> and <guilabel>Half-height</guilabel> spinboxes
+determine the size of the areas of your image that are consecutively blurred.
+With the <guilabel>Strength</guilabel> spinbox you can set the strength with which the
+blurring should be applied, and with the <guilabel>Angle</guilabel> spinbox
+you can add a rotation to the area. The <guilabel>Shape</guilabel> setting,
+finally, allows you to choose between circular and rectangular areas
+</para>
+
+</sect3>
+
+
+<sect3 id="commands-dialogs-filters-brightnesscontrast">
+<title>The <guilabel>Brightness / Contrast</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Brightness / Contrast</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-brightnesscontrast.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Brightness / Contrast</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Brightness / Contrast</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+With this dialog, you can customize the brightness and contrast of your image.
+</para><para>
+The curve diagram has a histogram-like background that shows you the abundance
+of various brightness levels. The curve itself (initially a diagonal line from
+bottom left to top right) determines to which new brightness level (on the
+vertical axis) pixels with a certain original level (on the horizontal axis) are
+to be mapped. For example, the default diagonal line from bottom left to top
+right sets every original pixel to its own brightness value, meaning no
+change. A horizontal line means that all pixels will get the same brightness.
+This means minimal contrast, the brightness itself is indicated by the height
+at which the line is placed.
+</para><para>
+You can click on a handle (red circle) to select it (a selected handle is
+indicated by a filled circle) and drag it around to change the shape of the
+curve. The curve will be drawn smoothly through the handles (always
+strictly from left to right). If you click on the curve, a handle is added to
+it at that position. Clicking somewhere else in the image will also add a
+handle at that point. You can press <keycap>Delete</keycap> to delete the
+currently selected handle.
+</para>
+
+</sect3>
+
+<sect3 id="commands-dialogs-filters-bumpmap">
+<title>The <guilabel>Bumpmap</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Bumpmap</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-bumpmap.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Bumpmap</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Bumpmap</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+You can apply a bumpmap effect and customize it using this dialog. One layer
+is used as bumpmap layer: it is read as grayscale image and the gray values of
+its pixels are used to to distort the other layer for creating the depth
+illusion. High grey values, &ie; more white, mean a larger height, small
+values, &ie; near black, mean a smaller height &mdash; or a larger depth, the
+height can get <quote>below sealevel</quote>. A light source, shining
+<quote>from above</quote> on the image that lies <quote>on the ground</quote>,
+is simulated to determine the depth and direction of the shadows.
+</para><para>
+The first option in this dialog offers you the selection of the
+<guilabel>Bumpmap layer</guilabel>.
+</para><para>
+Under <guilabel>Type</guilabel>, you can select what kind of bumpmap to be
+applied. There are three types, <guilabel>Linear</guilabel> (a normal
+application of the bumpmap), <guilabel>Spherical</guilabel> (focusing on the
+extremes, that is, the shadow and highlight values) and
+<guilabel>Sinusoidal</guilabel> (focusing on the midtone values).
+</para><para>
+Then, there are three options to modify the bumpmap apart from its
+algorithmical application. With <guilabel>Compensate for darkening</guilabel>,
+the image is restored to about its original average lightness if using the
+bumpmap filter would make it darker. The <guilabel>Invert bumpmap</guilabel>
+option creates an inverted bumpmap (high and low are reversed). With
+<guilabel>Tile bumpmap</guilabel>, a bumpmap layer that is smaller than the
+layer it is applied to, will be tiled (repeatedly) to cover the entire layer.
+</para><para>
+Under <guilabel>Settings</guilabel>, you can select the mathematical
+parameters for the bumpmap. First of all, <guilabel>Azimuth</guilabel> (the
+angle of the light source in the X-Y plane), <guilabel>Elevation</guilabel>
+(the height of the simulated light source above the surface in degrees, with 0
+degrees being on the ground and 90 degrees being vertically above the image),
+and <guilabel>Depth</guilabel> (the maximal vertical distortion of the image).
+</para><para>
+Then, there are the <guilabel>X offset</guilabel> and <guilabel>Y
+offset</guilabel>, with which you can displace the bumpmap layer relative to
+the destination layer, <guilabel>Water level</guilabel> (the depth seen as
+neutral), and <guilabel>Ambient light</guilabel>, which determines the
+relative amount of ambient (environmental) light.
+</para>
+
+</sect3>
+
+<sect3 id="commands-dialogs-filters-coloradjustment">
+<title>The <guilabel>Color Adjustment</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Color Adjustment</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-coloradjustment.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Color Adjustment</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Color Adjustment</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+This dialog allows you to customize the <guilabel>Color Adjustment</guilabel> filter. You can use
+the curve (see the section on <link
+linkend="commands-dialogs-filters-brightnesscontrast">Brightness /
+Contrast</link> for a description on the curve) to determine the mapping
+from old to new color levels, for each of the channels separately.
+</para>
+
+</sect3>
+
+<sect3 id="commands-dialogs-filters-colortoalpha">
+<title>The <guilabel>Color to Alpha</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Color to Alpha</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-colortoalpha.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Color to Alpha</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Color to Alpha</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+With this dialog, you can make parts of the image having a certain color
+transparent (officially <quote>alpha-transparent</quote>). You can select the
+color you want to remove from the image (replacing it with transparency) with
+the <guilabel>Color</guilabel> swatch, and how much a color may differ from
+the selected one before it is considered not to match, with the
+<guilabel>Threshold</guilabel> spinbox. Setting a threshold of zero (0)
+ensures that only pixels with the exact matching color will be made
+transparent, higher thresholds will make other colors match as well.
+</para>
+
+</sect3>
+<sect3 id="commands-dialogs-filters-colortransfer">
+<title>The <guilabel>Color Transfer</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Color Transfer</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-colortransfer.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Color Transfer</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Color Transfer</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+This dialog lets you copy the colors from one image (the <guilabel>Reference
+Image</guilabel>) to the current one. The colors in both images are compared
+and each color in the one you are working with, will be replaced by the
+nearest one in the reference image.
+</para>
+
+</sect3>
+
+<!--
+<sect3 id="commands-dialogs-filters-cubism">
+<title>The <guilabel>Cubism</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Cubism</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-cubism.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Cubism</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The Cubism dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+This dialog has two filter-specific options. The <guilabel>Tile
+size:</guilabel> slider and spinbox determine how big the tiles are in which
+the image is subdivided, the <guilabel>Tile saturation:</guilabel> setting
+sets the color saturation of the tiles.
+</para>
+
+</sect3>
+-->
+
+<sect3 id="commands-dialogs-filters-customconvolution">
+<title>The <guilabel>Custom Convolution</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Custom Convolution</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-customconvolution.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Custom Convolution</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Custom Convolution</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+With this filter, you can apply a customized distortion effect to your image.
+The nine spinboxes at the top left determine the distortion. Each pixel is
+assigned a new value based on these values: the old color values of the pixel
+inself and the eight surrounding pixels are each multiplied by the values in
+the respective spinboxes, these results are added, and the final result is the
+new color value for the pixel. Before being applied, this final result can be
+multiplied with a certain <guilabel>Factor:</guilabel> or a certain
+<guilabel>Offset:</guilabel> can be added to it.
+</para><para>
+In the example screenshot, each pixel is assigned a new value based on its
+own (the 1 in the center), to which are added the values of the pixels to its
+top right and directly below it (each with a factor of 1, &ie; the actual
+value, since multiplying by one has no effect), and from which are subtracted
+the values of the pixels to its bottom right and directly above it (added with
+a factor of -1, so subtracted by a factor of 1).
+</para>
+
+</sect3>
+
+<sect3 id="commands-dialogs-filters-emboss">
+<title>The <guilabel>Emboss</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Emboss</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-emboss.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Emboss</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Emboss</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+This dialog contains just one option, the <guilabel>Depth:</guilabel> slider
+and spinbox which determines the depth of the embossing effect.
+</para>
+
+</sect3>
+
+<sect3 id="commands-dialogs-filters-filtersgallery">
+<title>The <guilabel>Filters Gallery</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Filters Gallery</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-filtersgallery.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Filters Gallery</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Filters Gallery</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+This dialog can be used to get a quick overview of what the various available
+filters do. The filters are in turn applied to the current image and the
+results are put in the left list box as thumbnails. If you select one, its
+options become available in the <guilabel>Configuration</guilabel> section.
+See the description of the respective filter for details.
+</para>
+
+</sect3>
+
+<sect3 id="commands-dialogs-filters-gaussiannoise">
+<title>The <guilabel>Gaussian Noise Reduction</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Gaussian Noise Reduction</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-gaussiannoise.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Gaussian Noise Reduction</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Gaussian Noise Reduction</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+This dialog allows you to customize a Gaussian noise reduction. The
+<guilabel>Threshold</guilabel> setting is a measure for how much noise should
+be removed (&ie; how quickly a <quote>lonely</quote> pixel should be made
+equal to its surroundings), while the <guilabel>Window Size</guilabel> setting
+determines the radius of the area considered when changing pixels.
+</para>
+
+</sect3>
+
+<sect3 id="commands-dialogs-filters-lenscorrection">
+<title>The <guilabel>Lens Correction</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Lens Correction</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-lenscorrection.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Lens Correction</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Lens Correction</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+With this dialog, you can fix an image which is distorted due to common lens
+anomalies. You can specify a <guilabel>Distortion correction</guilabel>,
+indicating how much the image should be corrected if its
+concaveness / convexness is not right, for areas near the center and areas
+near the edges. If you want an asymmetrical correction, you can specify
+different <guilabel>X</guilabel> and <guilabel>Y</guilabel> coordinates for
+the center (in percentages of the total width and height, measured from the
+top left).
+</para><para>
+You can also correct a too light or too dark image with the
+<guilabel>Brightness correction</guilabel> spinbox.
+</para>
+
+</sect3>
+
+<sect3 id="commands-dialogs-filters-imagerestoration">
+<title>The <guilabel>Image Restoration</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Image Restoration</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-imagerestoration.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Image Restoration</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Image Restoration</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+Using this dialog, you can specify exactly how the image restoration should
+be done. This filter tries to increase the quality of an image, for instance
+by removing scratches. Various options are available to customize its
+behaviour.
+</para><para>
+(Unfortunately, these are not described as of yet.)
+</para>
+
+</sect3>
+
+<sect3 id="commands-dialogs-filters-oilpaint">
+<title>The <guilabel>Oilpaint</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Oilpaint</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-oilpaint.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Oilpaint</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Oilpaint</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+This dialog can configure two parameters for the associated filter. The
+<guilabel>Brush size:</guilabel> setting determines the size of the brush that
+is used to simulate the oilpaint effect, the <guilabel>Smooth:</guilabel>
+setting specifies if the difference in colors between adjacent
+<quote>swatches</quote> may be large (low smoothness) or should be small (high
+smoothness).
+</para>
+
+</sect3>
+
+<sect3 id="commands-dialogs-filters-pixelize">
+<title>The <guilabel>Pixelize</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Pixelize</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-pixelize.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Pixelize</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Pixelize</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+On this dialog, you can adjust two settings. <guilabel>Pixel width:</guilabel>
+and <guilabel>Pixel height:</guilabel> indicate the width and height of the
+area that should be taken together and averaged to form one new, large
+<quote>pixel</quote>.
+</para>
+
+</sect3>
+
+<sect3 id="commands-dialogs-filters-raindrops">
+<title>The <guilabel>Raindrops</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Raindrops</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-raindrops.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Raindrops</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Raindrops</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+This filter can be configured using the settings <guilabel>Drop
+size:</guilabel> (the average diameter of the raindrops),
+<guilabel>Number:</guilabel> (the number of raindrop effects that should be
+added to the image), and <guilabel>Fish eyes:</guilabel> (the percentage of
+raindrops that should be rendered as fisheye lens effects instead of plain
+raindrop effects).
+</para>
+</sect3>
+
+<sect3 id="commands-dialogs-filters-randomnoise">
+<title>The <guilabel>Random Noise</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Random Noise</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-randomnoise.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Random Noise</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Random Noise</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+This filter adds random noise (speckles, or something similar) to your image.
+There are two customizable settings: the amount of noise
+(<guilabel>Level</guilabel>, as a percentage) and the
+<guilabel>Opacity</guilabel> of the noise (should the original color still be
+a bit visible or not).
+</para>
+
+</sect3>
+<sect3 id="commands-dialogs-filters-randompick">
+<title>The <guilabel>Random Pick</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Random Pick</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-randompick.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Random Pick</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Random Pick</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+In this dialog, you can specify parameters for the <guilabel>Random Pick</guilabel>
+filter. The <guilabel>Level</guilabel> setting determines how much pixels will
+be affected (measured as a percentage), the area which is looked in to take a
+new color for a pixel is set with the <guilabel>Size of the window</guilabel>
+setting, and the <guilabel>Opacity</guilabel> of the modifications can be set as
+well.
+</para>
+
+</sect3>
+
+
+<sect3 id="commands-dialogs-filters-roundcorners">
+<title>The <guilabel>Round Corners</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Round Corners</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-roundcorners.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Round Corners</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Round Corners</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+This dialog has one setting: the radius of the rounded corners.
+</para>
+
+</sect3>
+
+<sect3 id="commands-dialogs-filters-smalltiles">
+<title>The <guilabel>Small Tiles</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Small Tiles</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-smalltiles.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Small Tiles</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Small Tiles</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+In this dialog, you can set the amount of subdivisions with the
+<guilabel>Number of tiles</guilabel> settings.
+</para>
+
+</sect3>
+
+<sect3 id="commands-dialogs-filters-sobel">
+<title>The <guilabel>Sobel</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Sobel</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-sobel.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Sobel</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Sobel</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+Here, you can set the parameters for the <guilabel>Sobel</guilabel> edge
+detection filter. First of all you can determine which directions to sobel in:
+horizontally, vertically, or both. The <guilabel>Keep sign of
+result</guilabel> setting does not affect regular images.
+<guilabel>Make image opaque</guilabel> determines whether the resulting image
+is opaque or transparent.
+</para>
+
+</sect3>
+
+<sect3 id="commands-dialogs-filters-unsharpmask">
+<title>The <guilabel>Unsharp Mask</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Unsharp Mask</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-unsharpmask.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Unsharp Mask</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Unsharp Mask</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+This dialog offers three options for the sharpening filter
+<guilabel>Unsharp Mask</guilabel>: the radius (<guilabel>Half-size</guilabel>)
+of the mask, the <guilabel>Amount</guilabel> of sharpening that should be
+done, and the <guilabel>Threshold</guilabel> level.
+</para>
+
+</sect3>
+
+<sect3 id="commands-dialogs-filters-wave">
+<title>The <guilabel>Wave</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Wave</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-wave.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Wave</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Wave</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+For both the horizontal and the vertical components of the wave distortion
+(note: a vertical wave means that the vertical position is dependent on the
+horizontal one, and hence looks like a <quote>W</quote>),
+you can determine four settings here. The <guilabel>Wavelength</guilabel> (a
+shorter wavelength means a more erratical wave), the
+<guilabel>Shift</guilabel> (which point of the wave should be started at), the
+<guilabel>Amplitude</guilabel> (the amount of distortion), and the
+<guilabel>Shape</guilabel> (<guilabel>Sinusoidal</guilabel> or rounded,
+versus <guilabel>Triangle</guilabel> or pointy).
+</para>
+
+</sect3>
+
+<sect3 id="commands-dialogs-filters-waveletnoise">
+<title>The <guilabel>Wavelet Noise Reduction</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Wavelet Noise Reduction</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-waveletnoise.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Wavelet Noise Reduction</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Wavelet Noise Reduction</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+The only setting here, <guilabel>Threshold</guilabel>, indicates how easily pixels
+are seen as noise that should be removed and made equal to the surrounding area.
+</para>
+
+</sect3>
+
+</sect2>
+
+<sect2 id="commands-dialogs-misc">
+<title>Miscellaneous dialogs</title>
+
+<sect3 id="commands-dialogs-misc-addpalette">
+<title>The <guilabel>Add Palette</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Add Palette</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-addpalette.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Add Palette</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Add Palette</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+With this dialog, you can add a custom color palette to &chalk;. Fill in the
+name for your palette in the text field at the top. Then make the palette: use
+the button <guibutton>Add New Color...</guibutton> to add a color to the palette
+and <guibutton>Remove Selected Color</guibutton> to remove the currently
+selected color. Click the button <guibutton>Add to Predefined
+Palettes</guibutton> to add your newly created palette to the palette list, or
+just choose <guibutton>OK</guibutton> when you're done.
+</para>
+
+</sect3>
+
+<sect3 id="commands-dialogs-misc-documentinformation">
+<title>The <guilabel>Document Information</guilabel> dialog</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Document Information</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-documentinformation.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Document Information</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Document Information</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+This dialog is the same as in other &koffice; programs. You can enter various
+information about your document here, which will be saved with the document so
+that you can retrieve it later to review or edit.
+</para>
+
+<para>
+On the <guilabel>General</guilabel> tab, you can enter the title, subject and
+keywords, as well as an abstract. On the bottom of this tab, some statistical
+information is displayed. On the <guilabel>Author</guilabel> tab, you can
+store information about yourself. The third tab, <guilabel>User-defined
+Metadata</guilabel>, allows you to store any other information.
+</para>
+</sect3>
+
+</sect2>
+
+
+</sect1>
diff --git a/doc/chalk/commands-menus.docbook b/doc/chalk/commands-menus.docbook
new file mode 100644
index 00000000..e0a58131
--- /dev/null
+++ b/doc/chalk/commands-menus.docbook
@@ -0,0 +1,2158 @@
+<sect1 id="commands-menus">
+<title>Menus</title>
+
+<para>
+Some of &chalk;'s menus are standard in &kde; or &koffice;, while others are
+particular to &chalk;. The <guimenu>File</guimenu> menu contains commands for
+manipluating files. In the <guimenu>Edit</guimenu> menu, you can find commands
+that do things with the current selection. With the commands from the
+<guimenu>View</guimenu> menu, you can change the way you look at the image.
+The <guimenu>Image</guimenu> menu contains commands that change the entire
+image, like converting all layers to another color model or resizing or
+scaling the image. The <guimenu>Layer</guimenu> menu is like the
+<guimenu>Image</guimenu> menu, but the commands only work on the current
+layer. The <guimenu>Select</guimenu> menu contains commands to create and
+manipulate selections. The <guimenu>Filter</guimenu> menu contains all the
+filters you have installed. These work on the current layer. The
+<guimenu>Scripts</guimenu> menu contains entries for working with scripts.
+The <guimenu>Settings</guimenu> menu is again common to &koffice; and allows
+you to manipulate the toolbars, shortcuts and configuration of &chalk;.
+Finally, the <guimenu>Help</guimenu> menu gives you access to various
+(hopefully helpful) information, such as this handbook.
+</para>
+
+<!-- ====== File ================================================ -->
+
+<sect2 id="commands-menus-file">
+<title>The <guimenu>File</guimenu> Menu</title>
+<para>
+<variablelist>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo
+action="simul">&Ctrl;<keycap>N</keycap></keycombo></shortcut>
+<guimenu>File</guimenu>
+<guimenuitem>New</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Creates a new document.</action> This displays the
+<guilabel>New document</guilabel> dialog, standard across &koffice;, in which
+you can choose to start with a blank document of a certain type, or to open a
+recently opened document.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo
+action="simul">&Ctrl;<keycap>O</keycap></keycombo></shortcut>
+<guimenu>File</guimenu>
+<guimenuitem>Open...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens an existing document.</action>
+Because this uses the usual &kde; <guilabel>Open Document</guilabel>
+dialog to let you select a file, you can open files via various protocols
+(ftp, fish, etcetera).
+</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>File</guimenu>
+<guimenuitem>Open Recent</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens a recently
+opened document.</action> Clicking this menu item will show a
+submenu with the ten most recently opened documents in which
+you can quickly open an image you have been working on lately.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo
+action="simul">&Ctrl;<keycap>S</keycap></keycombo></shortcut>
+<guimenu>File</guimenu>
+<guimenuitem>Save</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Saves the document.</action> If you
+haven't saved the document before, you will get the <guilabel>Save
+Document As</guilabel> dialog, otherwise the document will be saved under
+its current name. </para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>File</guimenu>
+<guimenuitem>Save As...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Saves the document under a different name.</action>
+The default &kde; dialog is used, so saving remotely via ftp
+or ssh (fish) is perfectly possible.</para> </listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>File</guimenu>
+<guimenuitem>Reload</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Reloads the current document
+from disk.</action> All changes since you last saved the document
+will be lost.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>File</guimenu>
+<guimenuitem>Import...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens an existing document.</action> Unlike
+<menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></menuchoice>,
+this does not load the actual document, but only its contents: you receive a
+copy of the chosen file as a new document.
+</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>File</guimenu>
+<guimenuitem>Export...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Saves the document under a different name.</action> (For
+the moment, this is the same as
+<menuchoice><guimenu>File</guimenu><guimenuitem>Save
+As...</guimenuitem></menuchoice>.)
+</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>File</guimenu>
+<guimenuitem>Mail...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Sends the document via email.</action> The default &kde;
+mail compose window will be used.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo
+action="simul">&Ctrl;<keycap>P</keycap></keycombo></shortcut>
+<guimenu>File</guimenu>
+<guimenuitem>Print...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Prints the document.</action> You will see the usual
+&kde; print dialog appear.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>File</guimenu>
+<guimenuitem>Print Preview...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Shows a preview of what the printed document
+will look like.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>File</guimenu>
+<guimenuitem>Document Information</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the <link
+linkend="commands-dialogs-misc-documentinformation"><guilabel>Document
+Information</guilabel> dialog</link>.</action> This dialog can be used to add
+various information to the image, like title, subject, keywords, author
+information, and any other information you want to save with the
+image.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo
+action="simul">&Ctrl;<keycap>W</keycap></keycombo></shortcut>
+<guimenu>File</guimenu>
+<guimenuitem>Close</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Closes the document.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo
+action="simul">&Ctrl;<keycap>Q</keycap></keycombo></shortcut>
+<guimenu>File</guimenu>
+<guimenuitem>Quit</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Quits &chalk;.</action></para></listitem>
+</varlistentry>
+
+</variablelist>
+</para>
+
+</sect2>
+
+<!-- ====== Edit ================================================ -->
+
+
+<sect2 id="commands-menus-edit">
+<title>The <guimenu>Edit</guimenu> Menu</title>
+<para>
+<variablelist>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo
+action="simul">&Ctrl;<keycap>Z</keycap></keycombo></shortcut>
+<guimenu>Edit</guimenu>
+<guimenuitem>Undo</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Undoes the last action carried out.</action> Actions
+(like painting a stroke, filling an area, etcetera) are stored on
+a <quote>stack</quote>. The last action you did will be undone, and the image is
+restored to the state before that. Immediately choosing
+<guimenuitem>Undo</guimenuitem> again will undo the action that was carried
+out before the one just undone, etcetera.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo
+action="simul">&Ctrl;&Shift;<keycap>Z</keycap></keycombo></shortcut>
+<guimenu>Edit</guimenu>
+<guimenuitem>Redo</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Redoes the last action undone.</action> As described at
+<guimenuitem>Undo</guimenuitem>, a series of actions can be undone. With
+<guimenuitem>Redo</guimenuitem>, an action undone is carried out again, and if
+more actions have been undone before that, you can redo these in
+turn.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo
+action="simul">&Ctrl;<keycap>X</keycap></keycombo></shortcut>
+<guimenu>Edit</guimenu>
+<guimenuitem>Cut</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Cuts the selection to the
+clipboard.</action> The current selection is put on the &kde;
+clipboard, and the selection is cleared.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo
+action="simul">&Ctrl;<keycap>C</keycap></keycombo></shortcut>
+<guimenu>Edit</guimenu>
+<guimenuitem>Copy</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Copies the selection to the
+clipboard.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo
+action="simul">&Ctrl;<keycap>V</keycap></keycombo></shortcut>
+<guimenu>Edit</guimenu>
+<guimenuitem>Paste</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Pastes the contents of the
+clipboard.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Edit</guimenu>
+<guimenuitem>Paste into New Image</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Pastes the contents of the
+clipboard as a new image.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Edit</guimenu>
+<guimenuitem>Clear</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Clears the selection.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo
+action="simul">&Alt;&Backspace;</keycombo></shortcut>
+<guimenu>Edit</guimenu>
+<guimenuitem>Fill with Foreground Color</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Fills the selection with the current foreground
+color.</action> The current foreground color is shown in the top left color
+square of the <guilabel>Colors</guilabel> palette.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut>&Backspace;</shortcut>
+<guimenu>Edit</guimenu>
+<guimenuitem>Fill with Background Color</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Fills the selection with the current background
+color.</action> The current background color is shown in the bottom right color
+square in the top left corner of the <guilabel>Colors</guilabel>
+palette.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Edit</guimenu>
+<guimenuitem>Fill with Pattern</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Fills the selection with the current pattern.</action>
+The current pattern is shown on the <guilabel>Brush Shapes</guilabel> toolbar,
+usually at the top right of the &chalk; window.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Edit</guimenu>
+<guisubmenu>Resources</guisubmenu>
+</menuchoice></term>
+<listitem><para><action>Contains options for working with color
+palettes.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Edit</guimenu>
+<guisubmenu>Resources</guisubmenu>
+<guimenuitem>Add New Palette...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the <link
+linkend="commands-dialogs-misc-addpalette"><guilabel>Add Palette</guilabel>
+dialog</link>.</action> You can create a custom color palette
+here.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Edit</guimenu>
+<guisubmenu>Resources</guisubmenu>
+<guimenuitem>Edit Palette...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the <guilabel>Edit Palette</guilabel>
+dialog.</action> Choose a color palette to edit from this list. You will then be
+given the same dialog as with <guilabel>Add Palette</guilabel>, with the
+difference that you edit the chosen color palette instead of adding a new
+one.</para>
+</listitem></varlistentry>
+
+</variablelist>
+</para>
+
+</sect2>
+
+<!-- ====== View ================================================ -->
+
+
+<sect2 id="commands-menus-view">
+<title>The <guimenu>View</guimenu> Menu</title>
+<para>
+<variablelist>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo
+action="simul">&Ctrl;&Shift;<keycap>F</keycap></keycombo></shortcut>
+<guimenu>View</guimenu>
+<guimenuitem>Full Screen Mode</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Switches between normal view
+and full screen view.</action> In full screen view, the title
+bar is hidden and the actual application window is resized to the entire
+screen.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>View</guimenu>
+<guimenuitem>New View</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens a new view for the
+current document.</action> A new application window is opened
+so that you can have two different views of the same document, for example
+to work on different areas at the same time, or to look at an area at different
+zoom levels simultaneously. Changes you make to the document in one view are
+immediately visible in other views.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo
+action="simul">&Ctrl;&Shift;<keycap>W</keycap></keycombo></shortcut>
+<guimenu>View</guimenu>
+<guimenuitem>Close All Views</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Closes all views.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>View</guimenu>
+<guimenuitem>Split View</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Splits the current view.</action> The
+drawing area will be split into two parts, which can be used
+just like two views in different windows.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>View</guimenu>
+<guimenuitem>Remove View</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Unsplits the view.</action> The second
+view (the bottom or right one) will be closed and the first one will remain
+visible.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>View</guimenu>
+<guisubmenu>Splitter Orientation</guisubmenu>
+</menuchoice></term>
+<listitem><para><action>Changes the way the split
+view is displayed.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>View</guimenu>
+<guisubmenu>Splitter Orientation</guisubmenu>
+<guimenuitem>Vertical</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Changes the orientation of
+the splitter to vertical.</action> The two split
+views will be positioned side by side.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>View</guimenu>
+<guisubmenu>Splitter Orientation</guisubmenu>
+<guimenuitem>Horizontal</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Changes the orientation of
+the splitter to horizontal.</action> The two split views will
+be positioned above each other.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo
+action="simul">&Ctrl;<keycap>+</keycap></keycombo></shortcut>
+<guimenu>View</guimenu>
+<guimenuitem>Zoom In</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Zooms in on the view.</action> The view
+will be more detailed, but a smaller area will be visible at the
+same time.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo
+action="simul">&Ctrl;<keycap>-</keycap></keycombo></shortcut>
+<guimenu>View</guimenu>
+<guimenuitem>Zoom Out</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Zooms out of the view.</action> A larger
+area will be visible at the same time, but it will be less
+detailed.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo
+action="simul">&Ctrl;<keycap>0</keycap></keycombo></shortcut>
+<guimenu>View</guimenu>
+<guimenuitem>Actual Pixels</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Zooms the view to actual pixel
+level.</action> (1:1 scale)</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>View</guimenu>
+<guimenuitem>Actual Size</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Zooms the view to the actual image
+size.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>View</guimenu>
+<guimenuitem>Fit to Page</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Zooms the view so that the image fills the available
+workspace.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo
+action="simul">&Ctrl;<keycap>R</keycap></keycombo></shortcut>
+<guimenu>View</guimenu>
+<guimenuitem>Show Rulers</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Toggles display of the
+rulers on and off.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>View</guimenu>
+<guimenuitem>Show Grid</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Toggles display of the
+grid lines on and off.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>View</guimenu>
+<guisubmenu>Grid Spacing</guisubmenu>
+</menuchoice></term>
+<listitem><para><action>Contains various options to set the distance between
+grid lines.</action> The available spacing options are
+<guimenuitem>1x1</guimenuitem>, <guimenuitem>2x2</guimenuitem>,
+<guimenuitem>5x5</guimenuitem>, <guimenuitem>10x10</guimenuitem>,
+<guimenuitem>20x20</guimenuitem>, and <guimenuitem>40x40</guimenuitem>.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>View</guimenu>
+<guisubmenu>Show Perspective Grid</guisubmenu>
+</menuchoice></term>
+<listitem><para><action>Toggles display of the perspective grid on and off.</action>
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>View</guimenu>
+<guisubmenu>Clear Perspective Grid</guisubmenu>
+</menuchoice></term>
+<listitem><para><action>Clears the perspective grid.</action> (All grid lines
+that were created, are deleted.)</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>View</guimenu>
+<guisubmenu>Palettes</guisubmenu>
+</menuchoice></term>
+<listitem><para><action>Allows you to toggle the
+display of the various palettes on and off.</action> The
+default view of &chalk; shows all palettes, and the items are listed as Hide
+<replaceable>palette</replaceable> therefore. When a certain palette is hidden,
+the corresponding menu item changes to Show
+<replaceable>palette</replaceable>.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo
+action="simul">&Ctrl;&Shift;<keycap>H</keycap></keycombo></shortcut>
+<guimenu>View</guimenu>
+<guisubmenu>Palettes</guisubmenu>
+<guimenuitem>Hide All Palette Windows</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Hides all palettes.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>View</guimenu>
+<guisubmenu>Palettes</guisubmenu>
+<guimenuitem>Hide Overview</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Hides the
+<guilabel>Overview</guilabel> palette.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>View</guimenu>
+<guisubmenu>Palettes</guisubmenu>
+<guimenuitem>Hide HSV</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Hides the
+<guilabel>HSV</guilabel> palette.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>View</guimenu>
+<guisubmenu>Palettes</guisubmenu>
+<guimenuitem>Hide RGB</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Hides the
+<guilabel>RGB</guilabel> palette.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>View</guimenu>
+<guisubmenu>Palettes</guisubmenu>
+<guimenuitem>Hide Gray</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Hides the
+<guilabel>Gray</guilabel> palette.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>View</guimenu>
+<guisubmenu>Palettes</guisubmenu>
+<guimenuitem>Hide Palettes</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Hides the
+<guilabel>Palettes</guilabel> palette.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>View</guimenu>
+<guisubmenu>Palettes</guisubmenu>
+<guimenuitem>Hide Layers</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Hides the <guilabel>Layers</guilabel>
+palette.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>View</guimenu>
+<guisubmenu>Palettes</guisubmenu>
+<guimenuitem>Hide Scripts Manager</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Hides the <guilabel>Scripts Manager</guilabel>.
+</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>View</guimenu>
+<guisubmenu>Palettes</guisubmenu>
+<guimenuitem>Hide Histogram</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Hides the
+<guilabel>Histogram</guilabel> palette.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>View</guimenu>
+<guisubmenu>Palettes</guisubmenu>
+<guimenuitem>Hide Watercolors</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Hides the <guilabel>Watercolors</guilabel>
+palette.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>View</guimenu>
+<guisubmenu>Palettes</guisubmenu>
+<guimenuitem>Hide Brush, Ellipse, Filter tool, Line, Polygon &etc;</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Hides the palette of the selected
+<guilabel>Tool</guilabel>.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>View</guimenu>
+<guimenuitem>Wetness Visualisation</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Toggles indication of the wetness of watercolor paint
+on and off.</action></para></listitem>
+</varlistentry>
+
+</variablelist>
+</para>
+
+</sect2>
+
+<!-- ====== Image =============================================== -->
+
+
+<sect2 id="commands-menus-image">
+<title>The <guimenu>Image</guimenu> Menu</title>
+<para>
+<variablelist>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Image</guimenu>
+<guimenuitem>Image Properties</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the <link
+linkend="commands-dialogs-image-imageproperties"><guilabel>Image
+Properties</guilabel> dialog</link>,
+in which you can change the image name, size,
+profile and description.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Image</guimenu>
+<guimenuitem>Resize Image to Size of Current Layer</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Resizes the image to the
+size of the currently active layer.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Image</guimenu>
+<guisubmenu>Substrate...</guisubmenu>
+</menuchoice></term>
+<listitem><para><action>Opens the <link
+linkend="commands-dialogs-image-substrate"><guilabel>Substrate</guilabel> dialog</link>.</action></para></listitem>
+</varlistentry>
+<varlistentry>
+<term><menuchoice>
+<guimenu>Image</guimenu>
+<guisubmenu>Rotate</guisubmenu>
+</menuchoice></term>
+<listitem><para><action>Rotates the image.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Image</guimenu>
+<guisubmenu>Rotate</guisubmenu>
+<guimenuitem>Rotate Image...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the <link
+linkend="commands-dialogs-image-rotateimage"><guilabel>Rotate Image</guilabel>
+dialog</link>.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Image</guimenu>
+<guisubmenu>Rotate</guisubmenu>
+<guimenuitem>Rotate Image CW</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Rotates the image 90 degrees
+clockwise.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Image</guimenu>
+<guisubmenu>Rotate</guisubmenu>
+<guimenuitem>Rotate Image CCW</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Rotates the image 90 degrees counterclockwise
+(270 degrees clockwise).</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Image</guimenu>
+<guisubmenu>Rotate</guisubmenu>
+<guimenuitem>Rotate 180</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Rotates the image 180 degrees.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Image</guimenu>
+<guimenuitem>Convert Image Type...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the <link
+linkend="commands-dialogs-image-convertimagetype"><guilabel>Convert All
+Layers</guilabel> dialog</link>.</action> This allows you to convert the image
+to a different color space. Apart from the color space, the profile and
+rendering intent can be specified as well.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Image</guimenu>
+<guimenuitem>Separate Image...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the
+<link linkend="commands-dialogs-image-separateimage"><guilabel>Separate Image</guilabel>
+dialog</link>.</action> You can separate the image into layers for each
+individual colorspace component there.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Image</guimenu>
+<guimenuitem>Change Image Size...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the
+<link linkend="commands-dialogs-image-imagesize"><guilabel>Image Size</guilabel>
+dialog </link>.</action> You can resize or scale the image using various
+algorithms here.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Image</guimenu>
+<guimenuitem>Shear Image...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the <link
+linkend="commands-dialogs-image-shearimage"><guilabel>Shear Image</guilabel>
+dialog</link>.</action> You can shear the image in X or Y directions,
+or both.</para></listitem>
+</varlistentry>
+
+</variablelist>
+</para>
+
+</sect2>
+
+<!-- ====== Layer =============================================== -->
+
+<sect2 id="commands-menus-layer">
+<title>The <guimenu>Layer</guimenu> Menu</title>
+
+<para>
+<variablelist>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guisubmenu>New</guisubmenu>
+</menuchoice></term>
+<listitem><para><action>Creates a new layer.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo
+action="simul">&Ctrl;&Shift;<keycap>N</keycap></keycombo></shortcut>
+<guimenu>Layer</guimenu>
+<guisubmenu>New</guisubmenu>
+<guimenuitem>Add...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the
+<link linkend="commands-dialogs-layers-newlayer"><guilabel>New Layer</guilabel>
+dialog</link>.</action> This will create a new empty
+layer. You can set the name, opacity, composite mode and
+layer type.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guisubmenu>New</guisubmenu>
+<guisubmenu>Object Layer</guisubmenu>
+</menuchoice></term>
+<listitem><para><action>Creates a new layer for a
+given &koffice; object type.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guisubmenu>New</guisubmenu>
+<guisubmenu>Object Layer</guisubmenu>
+<guimenuitem>Scalable Graphics</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Creates a new layer for an
+embedded &karbon14; object.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guisubmenu>New</guisubmenu>
+<guisubmenu>Object Layer</guisubmenu>
+<guimenuitem>Text Documents</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Creates a new layer for an
+embedded &kword; document.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guisubmenu>New</guisubmenu>
+<guisubmenu>Object Layer</guisubmenu>
+<guimenuitem>Flowchart &amp; Diagram</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Creates a new layer for an embedded
+&kivio; object.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guisubmenu>New</guisubmenu>
+<guisubmenu>Object Layer</guisubmenu>
+<guimenuitem>Slide Presentations</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Creates a new layer for an embedded
+&kpresenter; object.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guisubmenu>New</guisubmenu>
+<guisubmenu>Object Layer</guisubmenu>
+<guimenuitem>Image Object</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Creates a new layer for an
+embedded &chalk; object.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guisubmenu>New</guisubmenu>
+<guisubmenu>Object Layer</guisubmenu>
+<guimenuitem>Report Template</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Creates a new layer for an embedded
+&kugar; Designer object.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guisubmenu>New</guisubmenu>
+<guisubmenu>Object Layer</guisubmenu>
+<guimenuitem>Chart</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Creates a new layer for an
+embedded &kchart; object.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guisubmenu>New</guisubmenu>
+<guisubmenu>Object Layer</guisubmenu>
+<guimenuitem>Formula Editor</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Creates a new layer for an
+embedded &kformula; object.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guisubmenu>New</guisubmenu>
+<guisubmenu>Object Layer</guisubmenu>
+<guimenuitem>Report Generator</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Creates a new layer for an
+embedded &kugar; object.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guisubmenu>New</guisubmenu>
+<guisubmenu>Object Layer</guisubmenu>
+<guimenuitem>Project Management</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Creates a new layer for an
+embedded KPlato object.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guisubmenu>New</guisubmenu>
+<guisubmenu>Object Layer</guisubmenu>
+<guimenuitem>Spreadsheets</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Creates a new layer for an
+embedded &kspread; document.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guisubmenu>New</guisubmenu>
+<guimenuitem>Adjustment Layer</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the <link
+linkend="commands-dialogs-layers-newadjustmentlayer"><guilabel>New Adjustment
+Layer</guilabel>dialog</link>.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guisubmenu>New</guisubmenu>
+<guimenuitem>Insert Image as Layer...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the <guilabel>Import Image</guilabel>
+dialog.</action> You can browse and select an image file,
+which will be inserted in a new layer.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo
+action="simul">&Ctrl;&Shift;<keycap>J</keycap></keycombo></shortcut>
+<guimenu>Layer</guimenu>
+<guisubmenu>New</guisubmenu>
+<guimenuitem>Cut Selection to New Layer</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Cuts the current selection
+and inserts it as a new layer.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo
+action="simul">&Ctrl;<keycap>J</keycap></keycombo></shortcut>
+<guimenu>Layer</guimenu>
+<guisubmenu>New</guisubmenu>
+<guimenuitem>Copy Selection to New Layer</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Copies the current selection
+and inserts it as a new layer.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guimenuitem>Remove</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Removes the current layer
+and its contents.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guimenuitem>Duplicate</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Duplicates the current
+layer.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guimenuitem>Hide/Show</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Toggles the visibility of
+the current layer in the image editing window.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guisubmenu>Mask</guisubmenu>
+</menuchoice></term>
+<listitem><para>Contains actions for working with layer masks.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guisubmenu>Mask</guisubmenu>
+<guimenuitem>Create Mask</guimenuitem>
+</menuchoice></term>
+<listitem><para><action></action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guisubmenu>Mask</guisubmenu>
+<guimenuitem>Mask From Selection</guimenuitem>
+</menuchoice></term>
+<listitem><para><action></action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guisubmenu>Mask</guisubmenu>
+<guimenuitem>Mask To Selection</guimenuitem>
+</menuchoice></term>
+<listitem><para><action></action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guisubmenu>Mask</guisubmenu>
+<guimenuitem>Apply Mask</guimenuitem>
+</menuchoice></term>
+<listitem><para><action></action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guisubmenu>Mask</guisubmenu>
+<guimenuitem>Remove Mask</guimenuitem>
+</menuchoice></term>
+<listitem><para><action></action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guisubmenu>Mask</guisubmenu>
+<guimenuitem>Edit Mask</guimenuitem>
+</menuchoice></term>
+<listitem><para><action></action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guisubmenu>Mask</guisubmenu>
+<guimenuitem>Show Mask</guimenuitem>
+</menuchoice></term>
+<listitem><para><action></action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo
+action="simul">&Ctrl;<keycap>]</keycap></keycombo></shortcut>
+<guimenu>Layer</guimenu>
+<guimenuitem>Raise</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Moves the current layer one
+level upward.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo
+action="simul">&Ctrl;<keycap>[</keycap></keycombo></shortcut>
+<guimenu>Layer</guimenu>
+<guimenuitem>Lower</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Moves the current layer one
+level downward.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo
+action="simul">&Ctrl;&Shift;<keycap>]</keycap></keycombo></shortcut>
+<guimenu>Layer</guimenu>
+<guimenuitem>To Top</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Moves the current layer to the
+top.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo
+action="simul">&Ctrl;&Shift;<keycap>[</keycap></keycombo></shortcut>
+<guimenu>Layer</guimenu>
+<guimenuitem>To Bottom</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Moves the current layer to
+the bottom.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guimenuitem>Save Layer as Image...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the <guilabel>Export Layer</guilabel>
+dialog.</action> The current layer will be saved to the
+chosen file.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guimenuitem>Flip on X Axis</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Flips the current layer
+horizontally.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guimenuitem>Flip on Y Axis</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Flips the current layer
+vertically.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guimenuitem>Properties</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the <link
+linkend="commands-dialogs-layers-layerproperties"><guilabel>Layer
+Properties</guilabel> dialog</link>.</action> You can change the name,
+colorspace, opacity, composite mode and position of the current layer
+here.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo
+action="simul">&Ctrl;<keycap>E</keycap></keycombo></shortcut>
+<guimenu>Layer</guimenu>
+<guimenuitem>Merge with Layer Below</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Merges the current layer
+with the one below it.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo
+action="simul">&Ctrl;&Shift;<keycap>E</keycap></keycombo></shortcut>
+<guimenu>Layer</guimenu>
+<guimenuitem>Flatten Image</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Merges all visible layers.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guisubmenu>Rotate</guisubmenu>
+</menuchoice></term>
+<listitem><para><action>Rotates the current layer.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guisubmenu>Rotate</guisubmenu>
+<guimenuitem>Rotate Layer...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the <link
+linkend="commands-dialogs-layers-rotatelayer"><guilabel>Rotate Layer</guilabel>
+dialog</link>.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guisubmenu>Rotate</guisubmenu>
+<guimenuitem>Rotate CW</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Rotates the current layer 90 degrees
+clockwise.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guisubmenu>Rotate</guisubmenu>
+<guimenuitem>Rotate CCW</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Rotates the current layer 90 degrees counterclockwise
+(270 degrees clockwise).</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guisubmenu>Rotate</guisubmenu>
+<guimenuitem>Rotate 180</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Rotates the current layer by
+180 degrees.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guimenuitem>Histogram...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the <link
+linkend="commands-dialogs-layers-histogram"><guilabel>Histogram</guilabel>
+dialog</link>, in which you can see histograms for the current
+layer.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guimenuitem>Convert Layer Type...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the
+<link linkend="commands-dialogs-layers-convertlayertype"><guilabel>Convert
+Current Layer</guilabel> dialog</link>.</action> You can
+set various options with respect to the colorspace and
+rendering intent.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guimenuitem>Scale Layer...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the <link
+linkend="commands-dialogs-layers-layersize"><guilabel>Layer
+Size</guilabel> dialog</link>.</action> You can choose the new
+dimensions and the resize filter to use.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guisubmenu>Layer Effects</guisubmenu>
+</menuchoice></term>
+<listitem><para>Contains commands to add effects to the current layer.
+</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guisubmenu>Layer Effects</guisubmenu>
+<guimenuitem>Add Drop Shadow...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the <link
+linkend="commands-dialogs-layers-dropshadow"><guilabel>Drop Shadow</guilabel>
+dialog</link>.</action> This dialog can be used to add a drop shadow beneath
+the current layer.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Layer</guimenu>
+<guimenuitem>Shear Layer...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the <link
+linkend="commands-dialogs-layers-shearlayer"><guilabel>Shear Layer</guilabel>
+dialog</link>.</action> You can select the X and Y angles to shear
+by.</para></listitem>
+</varlistentry>
+
+</variablelist>
+</para>
+
+</sect2>
+
+<!-- ====== Select ============================================== -->
+
+
+<sect2 id="commands-menus-select">
+<title>The <guimenu>Select</guimenu> Menu</title>
+<para>
+<variablelist>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo
+action="simul">&Ctrl;<keycap>A</keycap></keycombo></shortcut>
+<guimenu>Select</guimenu>
+<guimenuitem>Select All</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Selects the entire
+current layer.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo
+action="simul">&Ctrl;&Shift;<keycap>A</keycap></keycombo></shortcut>
+<guimenu>Select</guimenu>
+<guimenuitem>Deselect</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Unselects everything.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo
+action="simul">&Ctrl;&Shift;<keycap>D</keycap></keycombo></shortcut>
+<guimenu>Select</guimenu>
+<guimenuitem>Reselect</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Reselects the previous
+unselected areas.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo
+action="simul">&Ctrl;<keycap>I</keycap></keycombo></shortcut>
+<guimenu>Select</guimenu>
+<guimenuitem>Invert</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Inverts the selection.</action>
+(Everything that is selected will be unselected and vice
+versa.)</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo
+action="simul">&Alt;&Ctrl;<keycap>D</keycap></keycombo></shortcut>
+<guimenu>Select</guimenu>
+<guimenuitem>Feather...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Feathers the selection.</action> (Adds
+a soft border around it.)</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Select</guimenu>
+<guimenuitem>Similar</guimenuitem>
+</menuchoice></term>
+<listitem><para><action></action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo
+action="simul">&Ctrl;<keycap>H</keycap></keycombo></shortcut>
+<guimenu>Select</guimenu>
+<guisubmenu>Hide Selection</guisubmenu>
+</menuchoice></term>
+<listitem><para><action>Hides the selection.</action> The selection is still
+active, but it is not made visible anymore.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Select</guimenu>
+<guisubmenu>Grow Selection...</guisubmenu>
+</menuchoice></term>
+<listitem><para><action>Grows the selection.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Select</guimenu>
+<guisubmenu>Shrink Selection...</guisubmenu>
+</menuchoice></term>
+<listitem><para><action>Shrinks the selection.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Select</guimenu>
+<guisubmenu>Border Selection...</guisubmenu>
+</menuchoice></term>
+<listitem><para><action>Borders the selection.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Select</guimenu>
+<guimenuitem>Color Range...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the <link
+linkend="commands-dialogs-images-colorrange"><guilabel>Color Range</guilabel>
+dialog</link>.</action></para></listitem>
+</varlistentry>
+
+</variablelist>
+</para>
+
+</sect2>
+
+<!-- ====== Filter ============================================== -->
+
+
+<sect2 id="commands-menus-filter">
+<title>The <guimenu>Filter</guimenu> Menu</title>
+
+<para>See the <link linkend="filters">Filters</link> chapter for more
+information on filters.</para> <para>
+<variablelist>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo
+action="simul">&Ctrl;&Shift;<keycap>J</keycap></keycombo></shortcut>
+<guimenu>Filter</guimenu>
+<guimenuitem>Apply Filter Again</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Repeats the last filter
+action.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Adjust</guisubmenu>
+</menuchoice></term>
+<listitem><para>Contains various options for changing the
+colors in your image.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Adjust</guisubmenu>
+<guimenuitem>Auto Contrast</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Automatically changes the image to obtain as much
+contrast as possible.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Adjust</guisubmenu>
+<guimenuitem>Brightness/Contrast...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the
+<link
+linkend="commands-dialogs-filters-brightnesscontrast"><guilabel>Brightness/Contrast</guilabel>
+dialog</link>.</action> You can set the
+brightness and contrast ratio of your image here.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Adjust</guisubmenu>
+<guimenuitem>Desaturate</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Desaturates the image.</action> This
+will effectively convert the current image to grayscale, but all subsequent
+painting is done with usual colors.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Adjust</guisubmenu>
+<guimenuitem>Invert</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Inverts the image or
+selection.</action> (Black becomes white, blue becomes yellow,
+etcetera.)</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Adjust</guisubmenu>
+<guimenuitem>Color Adjustment...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the <link
+linkend="commands-dialogs-filters-coloradjustment"><guilabel>Color Adjustment</guilabel>
+dialog</link>.</action> You can adjust the colorspace components
+of the current image there (for example, in an RGB image, you can change the
+contribution of red, green, and blue to the total image).</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Artistic</guisubmenu>
+</menuchoice></term>
+<listitem><para>Contains various filters for
+<quote>artistic</quote> actions.</para></listitem>
+</varlistentry>
+
+<!--<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Artistic</guisubmenu>
+<guimenuitem>Cubism...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the <link
+linkend="commands-dialogs-filters-cubism"><guilabel>Cubism</guilabel>
+dialog</link>.</action> This allows you to add a cubism effect to the
+selection or image.</para></listitem>
+</varlistentry>-->
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Artistic</guisubmenu>
+<guimenuitem>Oilpaint...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the <link
+linkend="commands-dialogs-filters-oilpaint"><guilabel>Oilpaint</guilabel>
+dialog</link> to add
+an oilpaint effect to the selection or image.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Artistic</guisubmenu>
+<guimenuitem>Pixelize...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the <link
+linkend="commands-dialogs-filters-pixelize"><guilabel>Pixelize</guilabel>
+dialog</link> to pixelize the image.</action> (A block of pixels is
+changed so that they all become the same, averaged color.)</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Artistic</guisubmenu>
+<guimenuitem>Raindrops...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the <link
+linkend="commands-dialogs-filters-raindrops"><guilabel>Raindrops</guilabel>
+dialog</link> to add a raindrops effect to the selection or
+image.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Artistic</guisubmenu>
+<guimenuitem>Dry the Paint</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Dries wet paint.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Blur</guisubmenu>
+</menuchoice></term>
+<listitem><para>Contains various blur filters.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Blur</guisubmenu>
+<guimenuitem>Gaussian Blur</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Performs a slight blur on the image or
+selection.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Colors</guisubmenu>
+</menuchoice></term>
+<listitem><para>Contains filters that change the image colors.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Colors</guisubmenu>
+<guimenuitem>Color to Alpha</guimenuitem>
+</menuchoice></term>
+<listitem><para><action></action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Colors</guisubmenu>
+<guimenuitem>Color Transfer</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the <link
+linkend="commands-dialogs-filters-colortransfer">Color Transfer</link> dialog
+to give the image a new look.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Colors</guisubmenu>
+<guimenuitem>Maximize Channel</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Adjusts the colors of each pixel by removing color
+channels that are less abundant.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Colors</guisubmenu>
+<guimenuitem>Minimize Channel</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Adjusts the colors of each pixel by removing color
+channels that are abundant.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Edge Detection</guisubmenu>
+</menuchoice></term>
+<listitem><para>Contains edge detecting filters.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Edge Detection</guisubmenu>
+<guimenuitem>Bottom Edge Detection</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Performs edge detection with the bottom sides of image
+parts as references.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Edge Detection</guisubmenu>
+<guimenuitem>Left Edge Detection</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Performs edge detection with the left sides of image
+parts as references.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Edge Detection</guisubmenu>
+<guimenuitem>Right Edge Detection</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Performs edge detection with the right sides of image
+parts as references.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Edge Detection</guisubmenu>
+<guimenuitem>Sobel...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the <guilabel>Sobel</guilabel>
+dialog.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Edge Detection</guisubmenu>
+<guimenuitem>Top Edge Detection</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Performs edge detection with the top sides of image
+parts as references.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Enhance</guisubmenu>
+</menuchoice></term>
+<listitem><para>Contains image enhancing
+filters.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Enhance</guisubmenu>
+<guimenuitem>CImg Image Restoration...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the <link
+linkend="commands-dialogs-filters-imagerestoration"><guilabel>Image
+Restoration</guilabel> dialog</link>.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Enhance</guisubmenu>
+<guimenuitem>Custom Convolution...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the <link
+linkend="commands-dialogs-filters-customconvolution"><guilabel>Custom
+Convolution</guilabel> dialog</link>.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Enhance</guisubmenu>
+<guimenuitem>Gaussian Noise Reduction...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action></action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Enhance</guisubmenu>
+<guimenuitem>Mean Removal</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Sharpens the image or selection by aggravating color
+borders.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Enhance</guisubmenu>
+<guimenuitem>Sharpen</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Sharpens the image or selection.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Enhance</guisubmenu>
+<guimenuitem>Unsharp Mask</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Applies an unsharp mask to the image or
+selection.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Enhance</guisubmenu>
+<guimenuitem>Wavelet Noise Reducer</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Reduces noise in the image or
+selection.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Emboss</guisubmenu>
+</menuchoice></term>
+<listitem><para>Contains emboss filters.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Emboss</guisubmenu>
+<guimenuitem>Emboss Horizontal &amp; Vertical</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Embosses the image or selection on the two main
+directions.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Emboss</guisubmenu>
+<guimenuitem>Emboss with Variable Depth...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the <link
+linkend="commands-dialogs-filters-emboss"><guilabel>Emboss</guilabel>
+dialog</link>.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Emboss</guisubmenu>
+<guimenuitem>Emboss in All Directions</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Embosses the image or
+selection.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Emboss</guisubmenu>
+<guimenuitem>Emboss Horizontal Only</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Embosses the image or selection on the horizontal axis
+only.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Emboss</guisubmenu>
+<guimenuitem>Emboss Laplascian</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Embosses the image or selection using the Laplace
+technique.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Emboss</guisubmenu>
+<guimenuitem>Emboss Vertical Only</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Embosses the image or selection on the vertical axis
+only.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Map</guisubmenu>
+</menuchoice></term>
+<listitem><para>Contains map filters.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Map</guisubmenu>
+<guimenuitem>Bumpmap...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the <link
+linkend="commands-dialogs-filters-bumpmap"><guilabel>Bumpmap</guilabel>
+dialog</link>.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Map</guisubmenu>
+<guimenuitem>Round Corners...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the <link
+linkend="commands-dialogs-filters-roundcorners"><guilabel>Round
+Corners</guilabel> dialog</link> to round off the corners of the image or
+selection.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Map</guisubmenu>
+<guimenuitem>Small Tiles...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Shrinks the image or selection and then tiles
+it.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Other</guisubmenu>
+</menuchoice></term>
+<listitem><para>Contains miscellaneous filters.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Other</guisubmenu>
+<guimenuitem>Lens Correction...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the <link
+linkend="commands-dialogs-filters-lenscorrection">Lens Correction</link>
+dialog to correct for lens anomalies.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Other</guisubmenu>
+<guimenuitem>Random Noise...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the <link
+linkend="commands-dialogs-filters-randomnoise">Random Noise</link> dialog to add
+random noise to the image.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Other</guisubmenu>
+<guimenuitem>Random Pick...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the <link
+linkend="commands-dialogs-filters-randompick">Random Pick</link> dialog to
+distort the image.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guisubmenu>Other</guisubmenu>
+<guimenuitem>Wave...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the <link
+linkend="commands-dialogs-filters-wave">Wave</link> dialog to distort the
+image</action></para></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Filter</guimenu>
+<guimenuitem>Filters Gallery</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the
+<link linkend="commands-dialogs-filters-filtersgallery"><guilabel>Filters
+Gallery</guilabel> dialog</link>.</action> This
+shows previews of the various filters and allows for easy
+comparison.</para></listitem>
+</varlistentry>
+
+</variablelist>
+</para>
+
+</sect2>
+
+<!-- ====== Scripts ============================================= -->
+
+
+<sect2 id="commands-menus-scripts">
+<title>The <guimenu>Scripts</guimenu> Menu</title>
+<para>
+<variablelist>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Scripts</guimenu>
+<guimenuitem>Execute Script File</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Executes a script file.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Scripts</guimenu>
+<guimenuitem>Script Manager</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the <guilabel>Script Manager</guilabel> dialog.
+</action></para></listitem>
+</varlistentry>
+
+</variablelist>
+</para>
+
+</sect2>
+
+<!-- ====== Settings ============================================ -->
+
+<sect2 id="commands-menus-settings">
+<title>The <guimenu>Settings</guimenu> Menu</title>
+<para>
+<variablelist>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Settings</guimenu>
+<guisubmenu>Toolbars</guisubmenu>
+</menuchoice></term>
+<listitem><para>Contains options to display or hide the various
+toolbars.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Settings</guimenu>
+<guisubmenu>Toolbars</guisubmenu>
+<guimenuitem>File</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Displays or hides the <guilabel>File</guilabel>
+toolbar.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Settings</guimenu>
+<guisubmenu>Toolbars</guisubmenu>
+<guimenuitem>Edit</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Displays or hides the <guilabel>Edit</guilabel>
+toolbar.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Settings</guimenu>
+<guisubmenu>Toolbars</guisubmenu>
+<guimenuitem>Navigation</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Displays or hides the <guilabel>Navigation</guilabel>
+toolbar.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Settings</guimenu>
+<guisubmenu>Toolbars</guisubmenu>
+<guimenuitem>&chalk;</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Displays or hides the
+<guilabel>&chalk;</guilabel> toolbar.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Settings</guimenu>
+<guisubmenu>Toolbars</guisubmenu>
+<guimenuitem>Brushes and Stuff</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Displays or hides the
+<guilabel>Brushes and Stuff</guilabel> toolbar.</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Settings</guimenu>
+<guimenuitem>Configure Shortcuts...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the <guilabel>Configure Shortcuts
+</guilabel> dialog.</action> This dialog is common to most &kde; applications
+and allows you to configure shortcuts for all actions &chalk; has to
+offer.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Settings</guimenu>
+<guimenuitem>Configure Toolbars...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the <guilabel>Configure Toolbars</guilabel>
+dialog.</action> This dialog is common to most &kde; applications
+and allows you to configure &chalk;'s toolbars.</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>Settings</guimenu>
+<guimenuitem>Configure &chalk;...</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Opens the
+<link linkend="settings-preferences"><guilabel>Preferences</guilabel>
+dialog</link>.</action> You can configure &chalk; here to match your personal
+preferences.</para></listitem>
+</varlistentry>
+
+</variablelist>
+</para>
+
+</sect2>
+
+
+<!-- ====== Help ================================================ -->
+
+<sect2 id="commands-menus-help">
+<title>The <guimenu>Help</guimenu> Menu</title>
+&help.menu.documentation;
+</sect2>
+
+</sect1>
diff --git a/doc/chalk/commands-palettes.docbook b/doc/chalk/commands-palettes.docbook
new file mode 100644
index 00000000..f71be732
--- /dev/null
+++ b/doc/chalk/commands-palettes.docbook
@@ -0,0 +1,769 @@
+<sect1 id="commands-palettes">
+<title>Palettes</title>
+
+<para>
+This section describes &chalk;'s palettes. The palettes are usually found at
+the right hand side of &chalk;'s main window. There are three palettes which
+help you in customizing your images:
+</para>
+
+<sect2 id="commands-palettes-controlbox">
+<title>The <guilabel>Control box</guilabel> palette</title>
+<para>The <guilabel>Control box</guilabel> contains three tabs. You can get an
+overview of the image, view a color histogram, and modify options for the
+current tool.</para>
+
+<sect3 id="commands-palettes-controlbox-overview">
+<title><guilabel>Overview</guilabel></title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Overview</guilabel> tab</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="palettes-controlbox-overview.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Overview</guilabel> tab</phrase>
+</textobject>
+<caption><para>The <guilabel>Overview</guilabel> tab</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+<para>This tab offers you two settings. With the spinbox, slider, and
+<guibutton>1:1</guibutton> button at the bottom, you can set the zoom level
+for the document. The <guilabel>Exposure</guilabel> slider and textbox can be
+used to choose the exposure level for OpenEXR images. Furthermore, the
+<guilabel>X</guilabel> and <guilabel>Y</guilabel> labels indicate the current
+pointer position, with (0,0) being the top left corner of the canvas.</para>
+</sect3>
+
+<sect3 id="commands-palettes-controlbox-histogram">
+<title><guilabel>Histogram</guilabel></title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Histogram</guilabel> tab</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="palettes-controlbox-histogram.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Histogram</guilabel> tab</phrase>
+</textobject>
+<caption><para>The <guilabel>Histogram</guilabel> tab</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+<para>This tab displays a color histogram showing the distribution of
+colors over the image. The histogram is split up in red, green and blue
+levels.</para>
+</sect3>
+
+<sect3 id="commands-palettes-controlbox-tool">
+<title><guilabel>Tool</guilabel></title>
+
+<para>Actually, there is no tab named like this, since the tab name changes to
+reflect the name of the currently selected tool. This tab shows the
+customization options available for the tools that have them.</para>
+
+<sect4 id="commands-palettes-controlbox-tool-brush">
+<title><guilabel>Brush</guilabel></title>
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Tool</guilabel> tab for <guilabel>Brush</guilabel></screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="palettes-controlbox-brush.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Tool</guilabel> tab for <guilabel>Brush</guilabel></phrase>
+</textobject>
+<caption><para>The <guilabel>Tool</guilabel> tab for <guilabel>Brush</guilabel></para></caption>
+</mediaobject>
+</screenshot>
+</para>
+<para>There are three options available on this tab.
+</para><para>
+The <guilabel>Opacity</guilabel> slider and spin box are used to set the
+opacity when drawing (opacity is the opposite of transparency, i.e. 100%
+opaque is 0% transparent, and vice versa).
+</para><para>
+In the <guilabel>Mode</guilabel> drop down box, you can choose a drawing
+mode. This changes the actual effect that results from drawing on the image
+(for example, only changing the saturation or lightness).
+</para><para>
+With the <guilabel>Paint direct</guilabel> option, you can determine whether
+you want to paint directly on the current layer, or on a temporary layer which
+is then composited onto the actual layer. This makes a difference especially
+when using relative low opacity values.</para>
+</sect4>
+
+<sect4 id="commands-palettes-controlbox-tool-line">
+<title><guilabel>Line</guilabel></title>
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Tool</guilabel> tab for <guilabel>Line</guilabel></screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="palettes-controlbox-line.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Tool</guilabel> tab for <guilabel>Line</guilabel></phrase>
+</textobject>
+<caption><para>The <guilabel>Tool</guilabel> tab for <guilabel>Line</guilabel></para></caption>
+</mediaobject>
+</screenshot>
+</para>
+<para>See <link
+linkend="commands-palettes-controlbox-tool-brush">Brush</link>
+for the description of <guilabel>Opacity</guilabel> and
+<guilabel>Mode</guilabel>. The <guilabel>?</guilabel> button shows a tip about
+the usage of modifier keys.</para>
+</sect4>
+
+<sect4 id="commands-palettes-controlbox-tool-rectangle">
+<title><guilabel>Rectangle</guilabel></title>
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Tool</guilabel> tab for <guilabel>Rectangle</guilabel></screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="palettes-controlbox-rectangle.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The Tool tab for <guilabel>Rectangle</guilabel></phrase>
+</textobject>
+<caption><para>The Tool tab for <guilabel>Rectangle</guilabel></para></caption>
+</mediaobject>
+</screenshot>
+</para>
+<para>See <link
+linkend="commands-palettes-controlbox-tool-brush">Brush</link> for a description of <guilabel>Opacity</guilabel> and
+<guilabel>Mode</guilabel>.
+</para><para>
+The <guilabel>Fill</guilabel> drop down box is used to specify whether the
+inside of the rectangle should be filled. You can choose between three fill
+options: the current foreground color, background color or pattern is
+used.</para>
+</sect4>
+
+<sect4 id="commands-palettes-controlbox-tool-bezier">
+<title><guilabel>Bezier</guilabel></title>
+<para>See <link
+linkend="commands-palettes-controlbox-tool-brush">Brush</link> for the
+description of <guilabel>Mode</guilabel> and <guilabel>Opacity</guilabel>.</para>
+</sect4>
+
+
+<sect4 id="commands-palettes-controlbox-tool-ellipse">
+<title><guilabel>Ellipse</guilabel></title>
+<para>The same options as for <link
+linkend="commands-palettes-controlbox-tool-rectangle">Rectangle</link> are
+available here.</para>
+</sect4>
+
+<sect4 id="commands-palettes-controlbox-tool-polygon">
+<title><guilabel>Polygon</guilabel></title>
+<para>The same options as for <link
+linkend="commands-palettes-controlbox-tool-rectangle">Rectangle</link> are
+available here.</para>
+</sect4>
+
+<sect4 id="commands-palettes-controlbox-tool-polyline">
+<title><guilabel>Polyline</guilabel></title>
+<para>The same options as for <link
+linkend="commands-palettes-controlbox-tool-line">Line</link>
+are available here.</para>
+</sect4>
+
+<sect4 id="commands-palettes-controlbox-tool-star">
+<title><guilabel>Star</guilabel></title>
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Tool</guilabel> tab for <guilabel>Star</guilabel></screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="palettes-controlbox-star.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Tool</guilabel> tab for <guilabel>Star</guilabel></phrase>
+</textobject>
+<caption><para>The <guilabel>Tool</guilabel> tab for <guilabel>Star</guilabel></para></caption>
+</mediaobject>
+</screenshot>
+</para>
+<para>The options for <link
+linkend="commands-palettes-controlbox-tool-rectangle">Rectangle</link> are
+available here, as well as two options specific to this tool.
+</para><para>
+The <guilabel>Vertices</guilabel> drop down box is used to set the amount
+of vertices (points) in the star.
+</para><para>
+The <guilabel>Ratio</guilabel> setting defines the shape of the
+star. A ratio of 0% will create a star with no inner area (when drawing the
+star, the two lines that make up a star point, overlap). Increasing the ratio
+will slowly make the star more outlined (the two lines are <quote>pulled
+apart</quote>). A star with a ratio of 100% is a regular polygon.
+</para>
+</sect4>
+
+<sect4 id="commands-palettes-controlbox-tool-duplicate">
+<title><guilabel>Duplicate</guilabel></title>
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Tool</guilabel> tab for <guilabel>Duplicate</guilabel></screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="palettes-controlbox-duplicate.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Tool</guilabel> tab for <guilabel>Duplicate</guilabel></phrase>
+</textobject>
+<caption><para>The <guilabel>Tool</guilabel> tab for <guilabel>Duplicate</guilabel></para></caption>
+</mediaobject>
+</screenshot>
+</para>
+<para>The same options as for <link
+linkend="commands-palettes-controlbox-tool-line">Line</link>
+are available here. In addition, there are three other options.
+</para><para>
+With the <guilabel>Healing</guilabel> and
+<guilabel>Healing radius</guilabel> options, you can specify that the
+duplication should not copy the colors, but only the <quote>structure</quote>
+of the source area.
+</para><para>
+If you enable the <guilabel>Correct the perspective</guilabel> option, the
+duplicate tool will follow your perspective grid.
+</para>
+</sect4>
+
+<sect4 id="commands-palettes-controlbox-tool-paintwithfilters">
+<title><guilabel>Paint with Filters</guilabel></title>
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Tool</guilabel> tab for <guilabel>Paint with Filters</guilabel></screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="palettes-controlbox-paintwithfilters.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Tool</guilabel> tab for <guilabel>Paint with Filters</guilabel></phrase>
+</textobject>
+<caption><para>The <guilabel>Tool</guilabel> tab for <guilabel>Paint with Filters</guilabel></para></caption>
+</mediaobject>
+</screenshot>
+</para>
+<para>Depending on the filter, you can set different options here. The
+options you can set are the same as those available in the
+<quote>normal</quote> settings dialog for the chosen filter. See the
+<link linkend="commands-dialogs-filters">Filters section in the Dialogs
+chapter</link> for more information.</para> </sect4>
+
+<sect4 id="commands-palettes-controlbox-tool-transform">
+<title><guilabel>Transform</guilabel></title>
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Tool</guilabel> tab for <guilabel>Transform</guilabel></screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="palettes-controlbox-transform.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Tool</guilabel> tab for <guilabel>Transform</guilabel></phrase>
+</textobject>
+<caption><para>The <guilabel>Tool</guilabel> tab for <guilabel>Transform</guilabel></para></caption>
+</mediaobject>
+</screenshot>
+</para>
+<!-- >The <guilabel>Move X</guilabel> and <guilabel>Move Y</guilabel>
+spin boxes show, and can be used to set, the displacement of the layer or
+selection. The same applies to <guilabel>Scale X</guilabel> and <guilabel>Scale
+Y</guilabel> for the scaling of the current layer or selection. Finally, -->
+<para>You can choose which transformation algorithm to use in the
+<guilabel>Filter</guilabel> drop down box.</para>
+</sect4>
+
+<sect4 id="commands-palettes-controlbox-tool-crop">
+<title><guilabel>Crop</guilabel></title>
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Tool</guilabel> tab for <guilabel>Crop</guilabel></screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="palettes-controlbox-crop.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Tool</guilabel> tab for <guilabel>Crop</guilabel></phrase>
+</textobject>
+<caption><para>The <guilabel>Tool</guilabel> tab for <guilabel>Crop</guilabel></para></caption>
+</mediaobject>
+</screenshot>
+</para>
+<para>Set the corner coordinates of the area that should remain with the
+four spin boxes <guilabel>X</guilabel>, <guilabel>Y</guilabel>,
+<guilabel>Width</guilabel> and <guilabel>Height</guilabel>. You can also
+fill in <guilabel>Ratio</guilabel> to determine the Y/X ratio. Check one of
+the checkboxes to have the respective value remain constant while changing the
+size of the area. The drop down box can be used to select whether the entire
+image or only the current layer should be cropped. Clicking the
+<guibutton>Crop</guibutton> button has the same effect as double-clicking
+outside the area in the image.</para>
+</sect4>
+
+<sect4 id="commands-palettes-controlbox-tool-contiguousfill">
+<title><guilabel>Contiguous Fill</guilabel></title>
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Tool</guilabel> tab for <guilabel>Contiguous Fill</guilabel></screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="palettes-controlbox-contiguousfill.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Tool</guilabel> tab for <guilabel>Contiguous Fill</guilabel></phrase>
+</textobject>
+<caption><para>The <guilabel>Tool</guilabel> tab for <guilabel>Contiguous Fill</guilabel></para></caption>
+</mediaobject>
+</screenshot>
+</para>
+<para>The same options as for <link
+linkend="commands-palettes-controlbox-tool-brush">Brush</link>
+are available here, as are a couple of other options.
+</para><para>
+The setting in the <guilabel>Threshold</guilabel> slider and spin box
+determines how near the color of a point should be to the color of the
+starting point of the fill, in order for the fill to spread out over the
+former point. A higher threshold will therefore fill areas that have less
+similar colors, a lower threshold limits the spread.
+</para><para>
+If you check the <guilabel>Fill entire selection</guilabel> checkbox, the
+entire selection will be filled instead of only the neighboring area.
+</para><para>
+Checking the <guilabel>Limit to current layer</guilabel> checkbox changes the
+behavior of the fill: the extent to which the fill is done, is determined from
+the current layer only instead of the entire image.
+</para><para>
+By checking the <guilabel>Use pattern</guilabel> checkbox you can choose to
+fill with the currently selected pattern instead of with the foreground color.
+</para>
+</sect4>
+
+<sect4 id="commands-palettes-controlbox-tool-gradient">
+<title><guilabel>Gradient</guilabel></title>
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Tool</guilabel> tab for <guilabel>Gradient</guilabel></screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="palettes-controlbox-gradient.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Tool</guilabel> tab for <guilabel>Gradient</guilabel></phrase>
+</textobject>
+<caption><para>The <guilabel>Tool</guilabel> tab for <guilabel>Gradient</guilabel></para></caption>
+</mediaobject>
+</screenshot>
+</para>
+<para>The same options as for <link
+linkend="commands-palettes-controlbox-tool-brush">Brush</link>
+are available here, as are a couple of other options.
+</para><para>
+The <guilabel>Shape</guilabel> drop down box can be used to select the gradient
+type: <guilabel>Linear</guilabel>, <guilabel>Bi-Linear</guilabel>, <guilabel>Radial</guilabel>,
+<guilabel>Square</guilabel>, <guilabel>Conical</guilabel> and <guilabel>Conical Symmetric</guilabel>.
+</para><para>
+The <guilabel>Repeat</guilabel> option determines whether the gradient is
+repeated if it does not fill the entire image. With <guilabel>None</guilabel>, the colors on the
+ends of the gradient are used to fill the remaining space. With <guilabel>Forwards</guilabel>, the
+gradient is normally repeated (connecting the back end of one occurrence with
+the front end of the next). With <guilabel>Alternating</guilabel>, the gradient is repeated with
+every second occurrence being drawn from back to front (linking front to front
+and back to back).
+</para><para>
+Check the <guilabel>Reverse</guilabel> checkbox to have the gradient drawn
+reversed (from back to front).
+</para><para>
+The final setting is <guilabel>Anti-alias threshold</guilabel>, which
+determines how smooth the gradient will become.
+</para>
+</sect4>
+
+<sect4 id="commands-palettes-controlbox-tool-text">
+<title><guilabel>Text</guilabel></title>
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Tool</guilabel> tab for <guilabel>Text</guilabel></screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="palettes-controlbox-text.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Tool</guilabel> tab for <guilabel>Text</guilabel></phrase>
+</textobject>
+<caption><para>The <guilabel>Tool</guilabel> tab for <guilabel>Text</guilabel></para></caption>
+</mediaobject>
+</screenshot>
+</para>
+<para>The same options as for <link
+linkend="commands-palettes-controlbox-tool-brush">Brush</link>
+are available here. Furthermore there is an option <guilabel>Font</guilabel>,
+which shows the font that will be used for the text. Click the
+<guibutton>...</guibutton> button to change the font.
+</para>
+</sect4>
+
+<sect4 id="commands-palettes-controlbox-tool-colorpicker">
+<title><guilabel>Color Picker</guilabel></title>
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Tool</guilabel> tab for <guilabel>Color Picker</guilabel></screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="palettes-controlbox-colorpicker.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Tool</guilabel> tab for <guilabel>Color Picker</guilabel></phrase>
+</textobject>
+<caption><para>The <guilabel>Tool</guilabel> tab for <guilabel>Color Picker</guilabel></para></caption>
+</mediaobject>
+</screenshot>
+</para>
+<para>The first option is a dropdown box in which you can choose which
+layer to pick the color from. If you choose a specific layer,
+the color of the point in that layer will be retrieved. With <guilabel>Sample
+All Visible Layers</guilabel>, the topmost visible layer which is not
+transparent at that point is used.
+</para><para>
+If the <guilabel>Update current color</guilabel> checkbox is checked, then the
+current foreground color (when clicking with the &LMB;) or background color
+(when clicking with the &RMB;) is set to the picked color.
+</para><para>
+The checkbox <guilabel>Add to palette</guilabel> and the accompanying
+dropdown box determine whether the picked color should be added to an existing
+palette. Check the checkbox, and choose the desired palette from the list, if
+you want to do so.
+</para><para>
+The checkbox <guilabel>Show colors as percentages</guilabel> switches the
+range of color values displayed from the <quote>normal</quote> range (e.g. 0 to
+255) to a scaled value between 0% and 100%.
+</para><para>
+With the <guilabel>Sample radius</guilabel> option, you can choose the area
+size to use when picking the color. A radius of one just picks one pixel,
+larger radii will make the picker average over the colors of the circle-shaped
+area with the chosen radius that is centered around the chosen pixel.
+</para>
+</sect4>
+
+<sect4 id="commands-palettes-controlbox-tool-select">
+<title><guilabel>Select</guilabel> tools</title>
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Tool</guilabel> tab for <guilabel>Select</guilabel> tools</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="palettes-controlbox-select.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Tool</guilabel> tab for <guilabel>Select</guilabel> tools</phrase>
+</textobject>
+<caption><para>The <guilabel>Tool</guilabel> tab for <guilabel>Select</guilabel> tools</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+<para>The <guilabel>Paint Selection</guilabel>, <guilabel>Erase Selection</guilabel>,
+<guilabel>Select Rectangular</guilabel>, <guilabel>Select Elliptical</guilabel>, <guilabel>Select Polygonal</guilabel> and <guilabel>Select Outline</guilabel> tools have one option:
+the <guilabel>Action</guilabel> to perform. You can choose between <guilabel>Add</guilabel> to, or
+<guilabel>Subtract</guilabel> from the selection.</para>
+</sect4>
+
+<sect4 id="commands-palettes-controlbox-tool-selectcontiguous">
+<title><guilabel>Select Contiguous Area</guilabel></title>
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Tool</guilabel> tab for <guilabel>Select Contiguous</guilabel></screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="palettes-controlbox-selectcontiguous.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Tool</guilabel> tab for <guilabel>Select Contiguous</guilabel></phrase>
+</textobject>
+<caption><para>The <guilabel>Tool</guilabel> tab for <guilabel>Select Contiguous</guilabel></para></caption>
+</mediaobject>
+</screenshot>
+</para>
+<para>The <guilabel>Action</guilabel> is the same as discussed with the
+<link linkend="commands-palettes-controlbox-tool-select">Select
+operations</link>.
+</para><para>
+The slider and spin box at <guilabel>Fuzziness</guilabel> determine how near
+colors must be to the color at the clicked point to be added to the selection.
+</para><para>
+When the <guilabel>Sample merged</guilabel> checkbox is checked, the
+bounds of the selection are determined by looking at the entire image instead
+of at the current layer.
+</para>
+</sect4>
+
+<sect4 id="commands-palettes-controlbox-tool-selectsimilar">
+<title><guilabel>Similar Select</guilabel></title>
+<para>The <guilabel>Action</guilabel> and <guilabel>Fuzziness</guilabel>
+options are the same as with <link
+linkend="commands-palettes-controlbox-tool-selectcontiguous">Select
+contiguous</link>. </para>
+</sect4>
+
+<sect4 id="commands-palettes-controlbox-tool-selectmagnetic">
+<title><guilabel>Select Magnetic</guilabel></title>
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Tool</guilabel> tab for <guilabel>Select Magnetic</guilabel></screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="palettes-controlbox-selectmagnetic.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Tool</guilabel> tab for <guilabel>Select Magnetic</guilabel></phrase>
+</textobject>
+<caption><para>The <guilabel>Tool</guilabel> tab for <guilabel>Select Magnetic</guilabel></para></caption>
+</mediaobject>
+</screenshot>
+</para>
+<para>The <guilabel>Action</guilabel> option is the same as with the other
+<link linkend="commands-palettes-controlbox-tool-select">Select tools</link>.
+</para>
+<para>
+The <guilabel>Distance</guilabel> option determines the maximal distance at
+which boundaries to attach to, are searched for. The <guibutton>To
+Selection</guibutton> button has the same effect as double-clicking the &LMB;:
+the selection is finished.
+</para>
+</sect4>
+
+</sect3>
+
+</sect2>
+
+<sect2 id="commands-palettes-colors">
+<title>The <guilabel>Colors</guilabel> palette</title>
+<para>In this palette you can choose the foreground and background colors
+that should be used for painting. You can choose these in five different
+ways. Each of these has its own tab on this palette.
+</para><para>
+You can choose which color to set by clicking the corresponding
+buttons at the top left. The topmost color is the foreground color, the
+bottom one is the background color. You can click the double-headed arrow
+to swap the colors: foreground color becomes background color and vice
+versa. You can reset the colors to the default (foreground black, background
+white) by clicking the small black/white icon.
+</para>
+
+<sect3 id="commands-palettes-colors-hsv">
+<title><guilabel>HSV</guilabel></title>
+<para>
+<screenshot>
+<screeninfo>The <guilabel>HSV</guilabel> tab</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="palettes-colors-hsv.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>HSV</guilabel> tab</phrase>
+</textobject>
+<caption><para>The <guilabel>HSV</guilabel> tab</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+<para>On this tab, you can select a color via the Hue / Saturation / Value
+system.
+</para><para>
+The hue determines the major color and starts at red with 0, then increases
+along the color spectrum (that is, along the <quote>line</quote> yellow, green,
+blue, violet) to a maximum of 359. This is represented in the circle on the tab
+as the angle component (starting at the top, rotate along the circle
+in clockwise direction to increase the hue).
+</para><para>
+The saturation determines the pureness of the color. A saturation of 255
+yields the pure color, while a saturation of 0 yields a gray. This is the
+radius component of the color circle on the tab: the center corresponds to
+no saturation, the circle boundary corresponds to fully saturated.
+</para><para>
+The value determines the lightness of the color. This darkens or lightens the
+color, as can be set using the vertical slider on the tab. A value of 0 gives
+black, a value of 255 gives the pure color.
+</para>
+</sect3>
+
+<sect3 id="commands-palettes-colors-rgb">
+<title><guilabel>RGB</guilabel></title>
+<para>
+<screenshot>
+<screeninfo>The <guilabel>RGB</guilabel> tab</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="palettes-colors-rgb.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>RGB</guilabel> tab</phrase>
+</textobject>
+<caption><para>The <guilabel>RGB</guilabel> tab</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+<para>On this tab, colors can be selected using their Red / Green / Blue
+components.
+</para><para>
+You can set red, green and blue components on a scale of 0 to 255. At 0 that
+color component is absent, at 255 it is used at maximum intensity. The sliders
+will change color to give you a hint about which color you will produce by
+altering the corresponding value.
+</para>
+</sect3>
+
+<sect3 id="commands-palettes-colors-gray">
+<title><guilabel>Gray</guilabel></title>
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Gray</guilabel> tab</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="palettes-colors-gray.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Gray</guilabel> tab</phrase>
+</textobject>
+<caption><para>The <guilabel>Gray</guilabel> tab</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+<para>On this tab, you can choose a gray value (indicated with a K for Key,
+the usual designation for black).</para>
+<para>The gray value can be chosen on a scale from 0 (pure white) to 255
+(pure black).</para>
+</sect3>
+
+<sect3 id="commands-palettes-colors-palettes">
+<title><guilabel>Palettes</guilabel></title>
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Palettes</guilabel> tab</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="palettes-colors-palettes.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Palettes</guilabel> tab</phrase>
+</textobject>
+<caption><para>The <guilabel>Palettes</guilabel> tab</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+<para>On this tab, you can select a color from one of several predefined
+color palettes.</para>
+<para>You can choose which color palette to pick from in the drop down
+box at the top.</para>
+</sect3>
+
+<sect3 id="commands-palettes-colors-watercolors">
+<title><guilabel>Watercolors</guilabel></title>
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Watercolors</guilabel> tab</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="palettes-colors-watercolors.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Watercolors</guilabel> tab</phrase>
+</textobject>
+<caption><para>The <guilabel>Watercolors</guilabel> tab</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+<para>This tab offers you a selection of watercolors for painting with <quote>wet
+paint</quote>.
+</para><para>
+You can set two options to modify the painting behaviour: <guilabel>Paint
+strength</guilabel> influences how much paint you will apply to the canvas,
+and <guilabel>Wetness</guilabel> determines how wet the paint is when it is
+applied. You can dry the paint later.
+</para>
+</sect3>
+
+</sect2>
+
+<sect2 id="commands-palettes-layers">
+<title>The <guilabel>Layers</guilabel> palette</title>
+<para>This palette offers two tabs.</para>
+
+<sect3 id="commands-palettes-layers-layers">
+<title><guilabel>Layers</guilabel></title>
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Layers</guilabel> tab</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="palettes-layers-layers.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Layers</guilabel> tab</phrase>
+</textobject>
+<caption><para>The <guilabel>Layers</guilabel> tab</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+<para>This tab offers you access to various operations on layers.
+</para><para>
+On the top left, you can select what blending mode should be used for the
+selected layer. These are the same possibilities as you can choose from for
+drawing modes.
+</para><para>
+The slider/textbox at the top right determines the opacity of the selected
+layer. 0% opacity corresponds to 100% transparency, and vice versa.
+</para><para>
+The list shows all layers and their names, and offers various controls for each
+layer. The eye icon toggles whether the layer is visible or not. The link icon
+is used to link layers together. The lock icon determines if the layer is
+locked or not. Locked layers cannot be edited.
+</para><para>
+Below the layer list, there are some other controls. You can create a new
+layer, move the current layer up or down, show the layer's properties and
+delete it.
+</para>
+<para>
+There are some more handy tricks you can do with the mouse within the list.
+Right-click on the layer list and select <guilabel>New Folder</guilabel> to
+create a new layer folder, which you can use to group layers in. You can also
+drag and drop layers to change their order. To do so, click on the bottom part
+of the list item representing the layer, drag the mouse, and release the mouse
+button at the desired position. If you click at the top part of the list item
+instead, you will get a text field so that you can rename the layer.
+</para>
+</sect3>
+
+<sect3 id="commands-palettes-layers-scriptsmanager">
+<title><guilabel>Scripts Manager</guilabel></title>
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Script Manager</guilabel> tab</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="palettes-layers-scriptsmanager.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Script Manager</guilabel> tab</phrase>
+</textobject>
+<caption><para>The <guilabel>Script Manager</guilabel> tab</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+<para>This tab is a smaller version of the <guilabel>Script
+Manager</guilabel> dialog. See the description over there for more
+information.
+</para>
+</sect3>
+
+</sect2>
+
+</sect1>
diff --git a/doc/chalk/commands-toolbars.docbook b/doc/chalk/commands-toolbars.docbook
new file mode 100644
index 00000000..b99457f1
--- /dev/null
+++ b/doc/chalk/commands-toolbars.docbook
@@ -0,0 +1,752 @@
+<sect1 id="commands-toolbars">
+<title>Toolbars</title>
+
+<para>This section describes &chalk;'s toolbars. By default, the
+<guilabel>Chalk</guilabel> toolbar is located to the left of the drawing area,
+while the others can be found at the top, below the menu bar.</para>
+
+<para>You can customize your toolbars by choosing
+<menuchoice><guimenu>Settings</guimenu><guimenuitem>Configure
+Toolbars...</guimenuitem></menuchoice> or by clicking with the &RMB; on a
+toolbar and choosing <guimenuitem>Configure Toolbars...</guimenuitem>.</para>
+
+<sect2 id="commands-toolbars-file">
+<title>The <guilabel>File</guilabel> Toolbar</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>File</guilabel> toolbar</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="toolbar-file.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>File</guilabel> toolbar</phrase>
+</textobject>
+<caption><para>The <guilabel>File</guilabel> toolbar</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>This toolbar contains actions for working with files. In &chalk;'s
+default, there are five buttons on this toolbar: <guilabel>New</guilabel>,
+<guilabel>Open</guilabel>, <guilabel>Save</guilabel>, <guilabel>Print
+Preview</guilabel>, and <guilabel>Print</guilabel>.</para>
+
+<para>These actions all correspond to entries in the <link
+linkend="commands-menus-file"><guimenu>File</guimenu> menu</link>.</para>
+
+</sect2>
+
+<sect2 id="commands-toolbars-edit">
+<title>The <guilabel>Edit</guilabel> Toolbar</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Edit</guilabel> toolbar</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="toolbar-edit.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Edit</guilabel> toolbar</phrase>
+</textobject>
+<caption><para>The <guilabel>Edit</guilabel> toolbar</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>This toolbar contains editing actions. With default settings this
+toolbar offers four buttons: <guilabel>Undo</guilabel>,
+<guilabel>Redo</guilabel>, <guilabel>Cut</guilabel>, and
+<guilabel>Copy</guilabel>.</para>
+
+<para>These actions all correspond to entries in the <link
+linkend="commands-menus-edit"><guimenu>Edit</guimenu> menu</link>.</para>
+</sect2>
+
+<sect2 id="commands-toolbars-navigation">
+<title>The <guilabel>Navigation</guilabel> Toolbar</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Navigation</guilabel> toolbar</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="toolbar-navigation.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Navigation</guilabel> toolbar</phrase>
+</textobject>
+<caption><para>The <guilabel>Navigation</guilabel> toolbar</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>This toolbar offers easy access to navigation actions. The two
+default actions available are <guilabel>Zoom In</guilabel> and
+<guilabel>Zoom Out</guilabel>. With <guilabel>Zoom In</guilabel>, the zoom
+level is increased. You will see less, but in higher detail. With
+<guilabel>Zoom Out</guilabel>, the zoom level is decreased, so that you see
+more at less detail. </para>
+
+</sect2>
+
+<sect2 id="commands-toolbars-chalk">
+<title>The <guilabel>Chalk</guilabel> Toolbar</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Chalk</guilabel> toolbar</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="toolbar-chalk.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Chalk</guilabel> toolbar</phrase>
+</textobject>
+<caption><para>The <guilabel>Chalk</guilabel> toolbar</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+This toolbar contains painting operations and tools, as well as editing and
+selecting tools. The available actions and some controls are listed below. You
+can change the behaviour of most tools (and with that, usually the resulting
+effect) by setting their <link
+linkend="commands-palettes-controlbox-tool">options</link>.
+</para>
+
+<variablelist>
+
+<varlistentry><term><inlinemediaobject><imageobject><imagedata
+fileref="tool-brush.png" format="PNG"></imagedata>
+</imageobject></inlinemediaobject> <guilabel>Brush</guilabel></term>
+<listitem><para>
+With this tool you can paint freely. Click the &LMB; to paint a
+single instance of the currently selected brush, or hold the &LMB; and drag
+your mouse around to paint. The mouse movements you make are directly used for
+painting.
+</para></listitem></varlistentry>
+
+<varlistentry><term><inlinemediaobject><imageobject><imagedata
+fileref="tool-line.png" format="PNG"></imagedata>
+</imageobject></inlinemediaobject> <guilabel>Line</guilabel></term>
+<listitem><para>
+This tool is used to draw lines. Click the &LMB; to indicate the first
+endpoint, keep the button pressed, drag to the second endpoint and release the
+button.
+</para><para>
+Use &Shift; while holding the mouse button to restrict drawing to only
+horizontal or vertical lines. You can press &Alt; while still keeping the &LMB;
+down to move the line to a different location.
+</para></listitem></varlistentry>
+
+<varlistentry><term><inlinemediaobject><imageobject><imagedata
+fileref="tool-rectangle.png" format="PNG"></imagedata>
+</imageobject></inlinemediaobject> <guilabel>Rectangle</guilabel></term>
+<listitem><para>
+This tool can be used to paint rectangles. Click and hold the &LMB; to indicate
+one corner of the rectangle, drag to the opposite corner, and release the
+button.
+</para><para>
+If you hold &Shift; while drawing, a square will be drawn instead of a
+rectangle. Holding &Ctrl; will change the way the rectangle is constructed.
+Normally, the first mouse click indicates one corner and the second click the
+opposite. With &Ctrl;, the initial mouse position indicates the center of the
+rectangle, and the final mouse position indicates a corner.
+You can press &Alt; while still keeping the &LMB; down to move the rectangle to
+a different location.
+</para><para>
+You can change between the corner/corner and center/corner drawing
+methods as often as you want by pressing or releasing &Ctrl;, provided that you
+keep the &LMB; pressed. With &Ctrl; pressed, mouse movements will affect all
+four corners of the rectangle (relative to the center), without &Ctrl;, one
+of the corners is unaffected.
+</para></listitem></varlistentry>
+
+<varlistentry><term><inlinemediaobject><imageobject><imagedata
+fileref="tool-ellipse.png" format="PNG"></imagedata>
+</imageobject></inlinemediaobject> <guilabel>Ellipse</guilabel></term>
+<listitem><para>
+Use this tool to paint an ellipse. The currently selected brush is used for
+drawing the ellipse outline. Click and hold the &LMB; to indicate one corner of
+the <quote>bounding rectangle</quote> of the ellipse, then move your mouse to
+the opposite corner. &chalk; will show a preview of the ellipse using a thin
+line. Release the button to draw the ellipse.
+</para><para>
+If you hold &Shift; while drawing, a circle will be drawn instead of an
+ellipse. Holding &Ctrl; will change the way the ellipse is constructed: instead
+of two corners, the initial mouse position indicates the ellipse center, and the
+final mouse position indicates one of the corners of the bounding rectangle.
+You can press &Alt; while still keeping the &LMB; down to move the ellipse to a
+different location.
+</para><para>
+You can change between the corner/corner and center/corner drawing
+methods as often as you want by pressing or releasing &Ctrl;, provided that you
+keep the &LMB; pressed. With &Ctrl; pressed, mouse movements will
+affect all four corners of the bounding rectangle (relative to the center),
+without &Ctrl;, the corner opposite to the one you are moving remains still.
+</para></listitem></varlistentry>
+
+<varlistentry><term><inlinemediaobject><imageobject><imagedata
+fileref="tool-polygon.png" format="PNG"></imagedata>
+</imageobject></inlinemediaobject> <guilabel>Polygon</guilabel></term>
+<listitem><para>
+With this tool you can draw polygons. Click the &LMB; to indicate the
+starting point and successive vertices, then double-click or press &Enter; to
+connect the last vertex to the starting point.
+</para></listitem></varlistentry>
+
+<varlistentry> <term><inlinemediaobject><imageobject><imagedata
+fileref="tool-polyline.png" format="PNG"></imagedata>
+</imageobject></inlinemediaobject> <guilabel>Polyline</guilabel></term>
+<listitem><para>
+Polylines are drawn like polygons, with the difference that the double-click
+indicating the end of the polyline does not connect the last vertex to the
+first one.
+</para></listitem></varlistentry>
+
+<varlistentry><term><inlinemediaobject><imageobject><imagedata
+fileref="tool-star.png" format="PNG"></imagedata>
+</imageobject></inlinemediaobject> <guilabel>Star</guilabel></term>
+<listitem><para>
+This tool creates star-shaped objects. Press the &LMB; to indicate the center,
+and drag the mouse to change the size and rotation of the star.
+</para><para>
+You can press &Alt; while still keeping the &LMB; down to move the star to a
+different location.
+</para></listitem></varlistentry>
+
+<varlistentry><term><inlinemediaobject><imageobject><imagedata
+fileref="tool-bezier.png" format="PNG"></imagedata>
+</imageobject></inlinemediaobject> <guilabel>Bezier</guilabel></term>
+<listitem><para>
+You can draw Bezier curves by using this tool. Click the &LMB; to indicate the
+starting point of the curve, then click again for consecutive control points
+of the curve.
+</para>
+<para>
+<screenshot>
+<screeninfo>Drawing a Bezier curve</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="tool-bezier-example.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>Drawing a Bezier curve</phrase>
+</textobject>
+<caption><para>Drawing a Bezier curve</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+<para>
+&chalk; will show a blue line with two handles when you add a control point.
+You can drag these handles to change the direction of the curve in that point.
+</para>
+<para>
+<screenshot>
+<screeninfo>Modifying a Bezier curve</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="tool-bezier-example2.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>Modifying a Bezier curve</phrase>
+</textobject>
+<caption><para>Modifying a Bezier curve</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+<para>
+You can click on a previously inserted control point to modify it. With an intermediate
+control point (&ie; a point that is not the starting point and not the ending
+point), you can move the direction handles seperately to have the curve enter
+and leave the point in different directions. After editing a point, you can
+just click on the canvas to continue adding points to the curve.
+</para>
+<para>
+Pressing <keycap>Delete</keycap> will remove the currently selected control
+point from the curve. Double-click the &LMB; on any point of the curve or
+press &Enter; to finish drawing, or press &Esc; to cancel the entire curve.
+You can use &Ctrl; while keeping the &LMB; pressed to move the entire curve to
+a different position.
+</para>
+<para>
+<screenshot>
+<screeninfo>A finished Bezier curve</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="tool-bezier-example3.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>A finished Bezier curve</phrase>
+</textobject>
+<caption><para>A finished Bezier curve</para></caption>
+</mediaobject>
+</screenshot>
+</para></listitem></varlistentry>
+
+<varlistentry><term><inlinemediaobject><imageobject><imagedata
+fileref="tool-duplicate.png" format="PNG"></imagedata>
+</imageobject></inlinemediaobject> <guilabel>Duplicate</guilabel></term>
+<listitem><para>
+You can use this tool to duplicate parts of an image. Press &Shift; and click
+with the &LMB; on the location you want to duplicate from. &chalk; will
+indicate this location by an outline of your current brush. Then click with
+the &LMB; to designate the location where you want to duplicate to, and drag
+with the mouse. You will then duplicate whatever is at the source location to
+the current (destination) location.
+</para><para>
+While you are painting the duplicate, both your cursor in the destination
+location and the brush outline in the source location will move, in order to
+give you visual feedback.
+</para><para>
+You can also use this tool to correct colors in a part of the image: use the
+<guilabel>Healing</guilabel> option for that.
+</para></listitem></varlistentry>
+
+<varlistentry><term><inlinemediaobject><imageobject><imagedata
+fileref="tool-paintwithfilters.png" format="PNG"></imagedata>
+</imageobject></inlinemediaobject> <guilabel>Paint with
+filters</guilabel></term>
+<listitem><para>
+This tool allows you to pick a filter and draw with it. The image below shows
+the effect of using a large circular brush and painting with, from left to
+right, the Maximize Channel, Minimize Channel, Invert, and Desaturate filters.
+</para>
+<para>
+<screenshot>
+<screeninfo>Painting with filters</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="tool-paintwithfilters-example.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>Painting with filters</phrase>
+</textobject>
+<caption><para>Painting with filters</para></caption>
+</mediaobject>
+</screenshot>
+</para></listitem></varlistentry>
+
+<varlistentry><term><inlinemediaobject><imageobject><imagedata
+fileref="tool-crop.png" format="PNG"></imagedata>
+</imageobject></inlinemediaobject> <guilabel>Crop</guilabel></term>
+<listitem><para>
+With this tool you can crop a layer or an image to a certain rectangular area.
+Click and drag with the &LMB; to define an area. This area is designated by an
+outline with 8 handles. You can then use the handles to change the size of the
+area which the image or layer is to be cropped to. You can also click and drag
+inside the area to move the outline in its entirety.
+</para><para>
+Double-click outside the area (i.e. on a part of the image that is to be removed)
+to confirm the cropping operation.
+</para></listitem></varlistentry>
+
+<varlistentry><term><inlinemediaobject><imageobject><imagedata
+fileref="tool-move.png" format="PNG"></imagedata>
+</imageobject></inlinemediaobject> <guilabel>Move</guilabel></term>
+<listitem><para>
+With this tool, you can move the current layer or selection by dragging the
+mouse.
+</para></listitem></varlistentry>
+
+<varlistentry>
+<term><inlinemediaobject><imageobject><imagedata fileref="tool-transform.png"
+format="PNG"></imagedata> </imageobject></inlinemediaobject> Transform</term>
+<listitem><para>
+With this tool you can quickly transform the current selection or layer.
+Handles will appear at the corners and sides, with which you can resize the
+selection or layer. You can perform rotations by moving the mouse above or to
+the left of the handles and dragging it. You can also click anywhere inside
+the selection or layer and move it by dragging the mouse.
+</para></listitem></varlistentry>
+
+<varlistentry><term><inlinemediaobject><imageobject><imagedata
+fileref="tool-perspectivetransform.png" format="PNG"></imagedata>
+</imageobject></inlinemediaobject> <guilabel>Perspective Transform</guilabel></term>
+<listitem><para>
+This tool allows you to change the perspective of an image. Designate the area
+which should become the new image by clicking at its top-left, top-right,
+bottom-right and bottom-left corners. The area given by these four corners
+will then be transformed so that the given corners become the corners of the
+actual image.
+</para></listitem></varlistentry>
+
+<varlistentry><term><inlinemediaobject><imageobject><imagedata
+fileref="tool-contiguousfill.png" format="PNG"></imagedata>
+</imageobject></inlinemediaobject> <guilabel>Contiguous Fill</guilabel></term>
+<listitem><para>
+Use this tool to fill a contiguous area of one color with the current
+foreground color or a pattern. Simply click to fill up the area.
+</para></listitem></varlistentry>
+
+<varlistentry><term><inlinemediaobject><imageobject><imagedata
+fileref="tool-gradient.png" format="PNG"></imagedata>
+</imageobject></inlinemediaobject> <guilabel>Gradient</guilabel></term>
+<listitem><para>
+This tool fills the current layer or selection with the currently selected
+gradient. Click the &LMB;, hold it, and drag the mouse to define two endpoints.
+The gradient will be drawn along this line. If the line does not extend to the
+border of the selection or layer, the color at the corresponding endpoint of
+the gradient will be used to fill up the rest of the area at that side.
+</para></listitem></varlistentry>
+
+<varlistentry><term><inlinemediaobject><imageobject><imagedata
+fileref="tool-text.png" format="PNG"></imagedata>
+</imageobject></inlinemediaobject> <guilabel>Text</guilabel></term>
+<listitem><para>
+With this tool you can add simple text to your image. Click the &LMB; on the
+location at which you want have the text. Then enter the desired text in the
+dialog window that appears. The text will be horizontally centered on, and
+the top of the text will be at the same height as, the chosen location.
+</para></listitem></varlistentry>
+
+<varlistentry><term><inlinemediaobject><imageobject><imagedata
+fileref="tool-colorpicker.png" format="PNG"></imagedata>
+</imageobject></inlinemediaobject> <guilabel>Color Picker</guilabel></term>
+<listitem><para>
+With this tool you can find the color values of a point. Click the &LMB;
+somewhere in the image to see color information about that point in the
+<guilabel>Control box</guilabel>.
+</para></listitem></varlistentry>
+
+<varlistentry><term><inlinemediaobject><imageobject><imagedata
+fileref="tool-pan.png" format="PNG"></imagedata>
+</imageobject></inlinemediaobject> <guilabel>Pan</guilabel></term>
+<listitem><para>
+This tool can be used to navigate through your image. Click and hold the &LMB;
+and move the mouse to scroll in a certain direction.
+</para></listitem></varlistentry>
+
+<varlistentry><term><inlinemediaobject><imageobject><imagedata
+fileref="tool-zoom.png" format="PNG"></imagedata>
+</imageobject></inlinemediaobject> <guilabel>Zoom</guilabel></term>
+<listitem><para>
+Use this tool to zoom in and out. Click the &LMB; to increase the zoom by
+a factor 2 (e.g. 1:1 to 2:1), click the &RMB; to decrease the zoom by a factor
+2 (e.g. 1:1 to 1:2).
+</para></listitem></varlistentry>
+
+<varlistentry><term><inlinemediaobject><imageobject><imagedata
+fileref="tool-perspectivegrid.png" format="PNG"></imagedata>
+</imageobject></inlinemediaobject> <guilabel>Perspective Grid</guilabel></term>
+<listitem><para>
+You can create and edit a perspective grid with this tool. Click the &LMB; and
+drag the mouse to indicate the first two corners of the grid, then click for
+the third and fourth corners. The outline of the grid is now shown and you can
+edit it if you are not completely happy. When you switch to a different tool,
+the perspective grid will be subdivided and shown as thin gray lines.
+</para>
+<note><para>If you only see three corners instead of four, you probably
+clicked instead of dragging initially. In this case you can still click the
+handle of your now combined first and second corners and drag it to get four
+separate corners.</para></note>
+<para>
+Clicking the <guilabel>Perspective Grid</guilabel> tool again later will allow
+you to modify the grid. You can hide or remove the grid by choosing the
+<guimenuitem>Hide Perspective Grid</guimenuitem> or <guimenuitem>Clear
+Perspective Grid</guimenuitem> options from the <guimenu>View</guimenu> menu.
+</para></listitem></varlistentry>
+
+<varlistentry><term><inlinemediaobject><imageobject><imagedata
+fileref="tool-paintselection.png" format="PNG"></imagedata>
+</imageobject></inlinemediaobject> <guilabel>Paint Selection</guilabel></term>
+<listitem><para>
+This tool can be used to select custom areas. The currently selected brush is
+used to select areas: instead of painting on the image, the area is selected.
+For more information on selections, see <link
+linkend="selections">the Selections chapter</link>.
+</para></listitem></varlistentry>
+
+<varlistentry>
+<term><inlinemediaobject><imageobject><imagedata
+fileref="tool-eraseselection.png" format="PNG"></imagedata>
+</imageobject></inlinemediaobject> <guilabel>Erase Selection</guilabel></term>
+<listitem><para>
+This tool works almost the same as the <guilabel>Paint Selection</guilabel>
+tool, but a selection, if it exists at the mouse location, is removed instead
+of created.
+</para></listitem></varlistentry>
+
+<varlistentry>
+<term><inlinemediaobject><imageobject><imagedata
+fileref="tool-selectrectangular.png" format="PNG"></imagedata>
+</imageobject></inlinemediaobject> <guilabel>Select Rectangular</guilabel></term>
+<listitem><para>
+You can use this tool to select rectangular areas. Operation is similar to the
+<guilabel>Rectangle</guilabel> tool, and &Shift;, &Ctrl; and &Alt; can be used
+like when painting rectangles.
+</para></listitem></varlistentry>
+
+<varlistentry>
+<term><inlinemediaobject><imageobject><imagedata
+fileref="tool-selectelliptical.png" format="PNG"></imagedata>
+</imageobject></inlinemediaobject> <guilabel>Select Elliptical</guilabel></term>
+<listitem><para>
+You can use this tool to select elliptical areas. Operation is similar to the
+<guilabel>Ellipse</guilabel> tool, and &Shift;, &Ctrl; and &Alt; can be used
+like when painting ellipses.
+</para></listitem></varlistentry>
+
+<varlistentry>
+<term><inlinemediaobject><imageobject><imagedata
+fileref="tool-selectpolygonal.png"
+format="PNG"></imagedata> </imageobject></inlinemediaobject> <guilabel>Select
+Polygonal</guilabel></term>
+<listitem><para>
+You can use this tool to select polygonal areas. Operation is similar to the
+<guilabel>Polygon</guilabel> tool, and &Shift;, &Ctrl; and &Alt; can be used
+like when painting polygons.
+</para></listitem></varlistentry>
+
+<varlistentry>
+<term><inlinemediaobject><imageobject><imagedata
+fileref="tool-selectoutline.png"
+format="PNG"></imagedata> </imageobject></inlinemediaobject> <guilabel>Select
+Outline</guilabel></term>
+<listitem><para>
+You can use this tool to select custom outlined areas. Click the &LMB; and drag
+with your mouse, like when painting with the <guilabel>Brush</guilabel> tool,
+to define the outline. When you release the mouse button, the outline will be
+finished with a straight line between the current position and the start
+position.
+</para></listitem></varlistentry>
+
+<varlistentry>
+<term><inlinemediaobject><imageobject><imagedata
+fileref="tool-selectcontiguous.png" format="PNG"></imagedata>
+</imageobject></inlinemediaobject> <guilabel>Select Contiguous</guilabel></term>
+<listitem><para>
+With this tool you can select contiguous areas of a color. Click with the
+&LMB; to select an area.
+</para></listitem></varlistentry>
+
+<varlistentry>
+<term><inlinemediaobject><imageobject><imagedata
+fileref="tool-selectsimilar.png" format="PNG"></imagedata>
+</imageobject></inlinemediaobject> <guilabel>Select Similar</guilabel></term>
+<listitem><para>
+With this tool you can select multiple areas with the same color. Detection is
+done the same as with the contiguous fill, but the areas do not need to be
+adjacent.
+</para></listitem></varlistentry>
+
+<varlistentry><term><inlinemediaobject><imageobject><imagedata
+fileref="tool-selectmagnetic.png" format="PNG"></imagedata>
+</imageobject></inlinemediaobject> <guilabel>Magnetic Selection</guilabel></term>
+<listitem><para>
+With this tool you can easily select a visually distinct area. Click with the
+&LMB; and move the mouse around the area that you want to select. If the area
+has a well enough defined boundary, the selection will be drawn nicely around
+it. You will see a number of control points appear, which connect the various
+parts of the selection boundary.
+</para><para>
+If you want more control over the area that is selected, press &Ctrl; to
+switch to manual mode. You will now have to click for each control point.
+In manual mode, you can also move control points by clicking on them with the
+&LMB; and dragging with the mouse.
+</para><para>
+When you want to return to automatic mode, simply press &Ctrl; again. You can
+switch between these two modes as often as you like.
+</para></listitem></varlistentry>
+
+<varlistentry><term><inlinemediaobject><imageobject><imagedata
+fileref="tool-selectbezier.png" format="PNG"></imagedata>
+</imageobject></inlinemediaobject> <guilabel>Select Bezier</guilabel></term>
+<listitem><para>
+With this tool you can select an area by drawing a Bezier outline. See the
+description of the Bezier tool for details.
+</para></listitem></varlistentry>
+
+</variablelist>
+
+</sect2>
+
+<sect2 id="commands-toolbars-brushesandstuff">
+<title>The <guilabel>Brushes and Stuff</guilabel> Toolbar</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Brushes and Stuff</guilabel> toolbar</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="toolbar-brushesandstuff.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Brushes and Stuff</guilabel> toolbar</phrase>
+</textobject>
+<caption><para>The <guilabel>Brushes and Stuff</guilabel> toolbar</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>This toolbar contains dropdown <quote>palettes</quote> in which you
+can choose brush shapes, gradients, and fill patterns. It also contains a
+dropdown box for painter's tools, and a tablet pressure setting.</para>
+
+<sect3 id="commands-toolbars-brushesandstuff-brushshapes">
+<title><guilabel>Brush Shapes</guilabel></title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Brush Shapes</guilabel> palette</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="toolbar-brushes-brushshapes-predefined.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Brush Shapes</guilabel> palette</phrase>
+</textobject>
+<caption><para>The <guilabel>Brush Shapes</guilabel> palette</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>In the <guilabel>Brush Shapes</guilabel> palette, you can choose
+which brush to paint with. This brush is used for painting operations
+like <guilabel>Freehand</guilabel>, <guilabel>Rectangle</guilabel>,
+<guilabel>Ellipse</guilabel>, etcetera. You can choose a predefined
+brush (in the <guilabel>Predefined Brushes</guilabel> tab, shown above), or
+customize or create one.</para>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Brush Shapes</guilabel> palette with the <guilabel>Autobrush</guilabel> tab</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="toolbar-brushes-brushshapes-autobrush.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Brush Shapes</guilabel> palette with the <guilabel>Autobrush</guilabel> tab</phrase>
+</textobject>
+<caption><para>The <guilabel>Brush Shapes</guilabel> palette with the <guilabel>Autobrush</guilabel>
+tab</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>The <guilabel>Autobrush</guilabel> tab allows you to create a customized
+rectangular or ellipsoid brush. You can set its height and width using
+the <guilabel>Size</guilabel> spin boxes. The link icon controls whether
+the height and width are forced to be the same or not. If a connected link
+picture is shown, changing one value will automatically change the other one
+as well. A disconnected link indicates that both values can be set
+independently. The fuzziness of the brush can be set with the
+<guilabel>Fade</guilabel> spin boxes. Again, horizontal and vertical values can
+be allowed to differ or not, depending on the state of the link button.</para>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Brush Shapes</guilabel> palette with the <guilabel>Custom Brush</guilabel> tab</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="toolbar-brushes-brushshapes-custombrush.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Brush Shapes</guilabel> palette with the <guilabel>Custom Brush</guilabel> tab</phrase>
+</textobject>
+<caption><para>The <guilabel>Brush Shapes</guilabel> palette with the <guilabel>Custom Brush</guilabel>
+tab</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>The <guilabel>Custom Brush</guilabel> tab of this palette lets you
+use the current image as a brush. With the <guibutton>Add to
+Predefined Brushes</guibutton> button, you can save it for later use.</para>
+
+</sect3>
+
+<sect3 id="commands-toolbars-brushesandstuff-gradients">
+<title>Gradients</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Gradients</guilabel> palette</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="toolbar-brushes-gradients.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Gradients</guilabel> palette</phrase>
+</textobject>
+<caption><para>The <guilabel>Gradients</guilabel> palette</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>In the <guilabel>Gradients</guilabel> palette, you can choose a gradient
+to paint with using the <guilabel>Gradient</guilabel> tool. Clicking once on a gradient in the
+palette will show a larger preview. Click it again to make it the current
+gradient.</para>
+<para>You can create your own gradients with the <guibutton>Custom
+Gradient</guibutton> button.</para>
+
+</sect3>
+
+<sect3 id="commands-toolbars-brushesandstuff-patterns">
+<title>Patterns</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Patterns</guilabel> palette</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="toolbar-brushes-patterns.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Patterns</guilabel> palette</phrase>
+</textobject>
+<caption><para>The <guilabel>Patterns</guilabel> palette</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>The <guilabel>Patterns</guilabel> palette allows you to choose a pattern
+for operations like Pattern fill. Click a pattern to see a preview at
+actual size, then click it again to select it.</para>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Patterns</guilabel> palette with the <guilabel>Custom Pattern</guilabel> tab selected</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="toolbar-brushes-patterns-custompattern.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Patterns</guilabel> palette with the <guilabel>Custom Pattern</guilabel> tab selected</phrase>
+</textobject>
+<caption><para>The <guilabel>Patterns</guilabel> palette with the <guilabel>Custom Pattern</guilabel> tab selected</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>You can also create a custom pattern, as is shown above.</para>
+
+</sect3>
+
+<sect3 id="commands-toolbars-brushesandstuff-painterstools">
+<title>Painter's tools</title>
+
+<para>With the <guilabel>Painter's tools</guilabel> dropdown box, you can
+select the tool your painting operation should simulate. For example, you can
+paint with a normal brush, an airbrush, or a filter.</para>
+
+</sect3>
+
+<sect3 id="commands-toolbars-brushesandstuff-pressurevariation">
+<title>Pressure variation</title>
+
+<para>This setting allows you to change &chalk;'s behaviour when you use a
+tablet to paint with. When you change the pressure on the tablet, you can
+choose between changing the line width (<guilabel>size</guilabel>), the
+opacity, and the darkness.</para>
+
+</sect3>
+
+</sect2>
+
+</sect1>
diff --git a/doc/chalk/commands.docbook b/doc/chalk/commands.docbook
new file mode 100644
index 00000000..cc50aa29
--- /dev/null
+++ b/doc/chalk/commands.docbook
@@ -0,0 +1,14 @@
+<chapter id="commands">
+<title>Command Reference</title>
+
+<para>
+This chapter explains &chalk;'s user interface in detail. Each of the menus,
+toolbars, palettes, and dialogs will be discussed.
+</para>
+
+&commands-menus;
+&commands-toolbars;
+&commands-palettes;
+&commands-dialogs;
+
+</chapter>
diff --git a/doc/chalk/createdocument.png b/doc/chalk/createdocument.png
new file mode 100644
index 00000000..79047af8
--- /dev/null
+++ b/doc/chalk/createdocument.png
Binary files differ
diff --git a/doc/chalk/credits.docbook b/doc/chalk/credits.docbook
new file mode 100644
index 00000000..d6c3defc
--- /dev/null
+++ b/doc/chalk/credits.docbook
@@ -0,0 +1,63 @@
+<chapter id="credits">
+
+<title>Credits and License</title>
+
+<para>
+&chalk;
+</para>
+<para>
+Program copyright &copy; 1999-2006 The &chalk; Team
+</para>
+
+<para>
+Contributors:
+
+<itemizedlist>
+<listitem><para>Adrian Page
+<email>[email protected]</email></para></listitem>
+<listitem><para>Andrew Richards
+<email>[email protected]</email></para></listitem>
+<listitem><para>Bart Coppens <email>[email protected]</email></para></listitem>
+<listitem><para>Boudewijn Rempt
+<email>[email protected]</email> (current maintainer)</para></listitem>
+<listitem><para>Carsten Pfeiffer
+<email>[email protected]</email></para></listitem>
+<listitem><para>Casper Boemann <email>[email protected]</email></para></listitem>
+<listitem><para>Cyrille Berger <email>[email protected]</email></para></listitem>
+<listitem><para>Danny Allen
+<email>[email protected]</email></para></listitem>
+<listitem><para>Dirk Schoenberger
+<email>[email protected]</email></para></listitem>
+<listitem><para>G&aacute;bor Lehel
+<email>[email protected]</email></para></listitem>
+<listitem><para>John Califf
+<email>[email protected]</email></para></listitem>
+<listitem><para>Matthias Elter <email>[email protected]</email></para></listitem>
+<listitem><para>Melchior Franz <email>[email protected]</email></para></listitem>
+<listitem><para>Michael Koch <email>[email protected]</email></para></listitem>
+<listitem><para>Michael Thaler
+<email>[email protected]</email></para></listitem>
+<listitem><para>Patrick Julien
+<email>[email protected]</email></para></listitem>
+<listitem><para>Roger Larsson
+<email>[email protected]</email></para></listitem>
+<listitem><para>Sven Langkamp
+<email>[email protected]</email></para></listitem>
+</itemizedlist>
+</para>
+
+<para>
+Documentation copyright &copy; 2005-2006 Boudewijn Rempt
+<email>[email protected]</email>, Sander Koning
+<email>[email protected]</email>
+with contributions from Casper Boemann, Bart Coppens, Cyrille Berger, Burkhard
+Lueck, and Anne-Marie Mahfouf.
+</para>
+
+<!-- TRANS:CREDIT_FOR_TRANSLATORS -->
+&underFDL; <!-- FDL: do not remove -->
+&underGPL; <!-- GPL License -->
+
+</chapter>
+
+
diff --git a/doc/chalk/crocusses-autocontrast.png b/doc/chalk/crocusses-autocontrast.png
new file mode 100644
index 00000000..3e73db57
--- /dev/null
+++ b/doc/chalk/crocusses-autocontrast.png
Binary files differ
diff --git a/doc/chalk/crocusses-blur.png b/doc/chalk/crocusses-blur.png
new file mode 100644
index 00000000..3b31dbe1
--- /dev/null
+++ b/doc/chalk/crocusses-blur.png
Binary files differ
diff --git a/doc/chalk/crocusses-brightnesscontrast.png b/doc/chalk/crocusses-brightnesscontrast.png
new file mode 100644
index 00000000..b60ad77d
--- /dev/null
+++ b/doc/chalk/crocusses-brightnesscontrast.png
Binary files differ
diff --git a/doc/chalk/crocusses-bumpmap.png b/doc/chalk/crocusses-bumpmap.png
new file mode 100644
index 00000000..cd1037c1
--- /dev/null
+++ b/doc/chalk/crocusses-bumpmap.png
Binary files differ
diff --git a/doc/chalk/crocusses-coloradjustment.png b/doc/chalk/crocusses-coloradjustment.png
new file mode 100644
index 00000000..8efbc9db
--- /dev/null
+++ b/doc/chalk/crocusses-coloradjustment.png
Binary files differ
diff --git a/doc/chalk/crocusses-colortoalpha.png b/doc/chalk/crocusses-colortoalpha.png
new file mode 100644
index 00000000..232aab29
--- /dev/null
+++ b/doc/chalk/crocusses-colortoalpha.png
Binary files differ
diff --git a/doc/chalk/crocusses-colortransfer.png b/doc/chalk/crocusses-colortransfer.png
new file mode 100644
index 00000000..a6abfb6a
--- /dev/null
+++ b/doc/chalk/crocusses-colortransfer.png
Binary files differ
diff --git a/doc/chalk/crocusses-customconvolution.png b/doc/chalk/crocusses-customconvolution.png
new file mode 100644
index 00000000..6a1da4fc
--- /dev/null
+++ b/doc/chalk/crocusses-customconvolution.png
Binary files differ
diff --git a/doc/chalk/crocusses-desaturate.png b/doc/chalk/crocusses-desaturate.png
new file mode 100644
index 00000000..e2add125
--- /dev/null
+++ b/doc/chalk/crocusses-desaturate.png
Binary files differ
diff --git a/doc/chalk/crocusses-edgebottom.png b/doc/chalk/crocusses-edgebottom.png
new file mode 100644
index 00000000..4c42077f
--- /dev/null
+++ b/doc/chalk/crocusses-edgebottom.png
Binary files differ
diff --git a/doc/chalk/crocusses-edgeleft.png b/doc/chalk/crocusses-edgeleft.png
new file mode 100644
index 00000000..4b384320
--- /dev/null
+++ b/doc/chalk/crocusses-edgeleft.png
Binary files differ
diff --git a/doc/chalk/crocusses-edgeright.png b/doc/chalk/crocusses-edgeright.png
new file mode 100644
index 00000000..e2071f65
--- /dev/null
+++ b/doc/chalk/crocusses-edgeright.png
Binary files differ
diff --git a/doc/chalk/crocusses-embossall.png b/doc/chalk/crocusses-embossall.png
new file mode 100644
index 00000000..eb937422
--- /dev/null
+++ b/doc/chalk/crocusses-embossall.png
Binary files differ
diff --git a/doc/chalk/crocusses-embosshorvert.png b/doc/chalk/crocusses-embosshorvert.png
new file mode 100644
index 00000000..685e34b1
--- /dev/null
+++ b/doc/chalk/crocusses-embosshorvert.png
Binary files differ
diff --git a/doc/chalk/crocusses-embossvariable.png b/doc/chalk/crocusses-embossvariable.png
new file mode 100644
index 00000000..cfeabd1a
--- /dev/null
+++ b/doc/chalk/crocusses-embossvariable.png
Binary files differ
diff --git a/doc/chalk/crocusses-gaussianblur.png b/doc/chalk/crocusses-gaussianblur.png
new file mode 100644
index 00000000..bf1633eb
--- /dev/null
+++ b/doc/chalk/crocusses-gaussianblur.png
Binary files differ
diff --git a/doc/chalk/crocusses-gaussiannoise.png b/doc/chalk/crocusses-gaussiannoise.png
new file mode 100644
index 00000000..cc0605c5
--- /dev/null
+++ b/doc/chalk/crocusses-gaussiannoise.png
Binary files differ
diff --git a/doc/chalk/crocusses-invert.png b/doc/chalk/crocusses-invert.png
new file mode 100644
index 00000000..9f1d9eb5
--- /dev/null
+++ b/doc/chalk/crocusses-invert.png
Binary files differ
diff --git a/doc/chalk/crocusses-lenscorrection.png b/doc/chalk/crocusses-lenscorrection.png
new file mode 100644
index 00000000..7bc8087f
--- /dev/null
+++ b/doc/chalk/crocusses-lenscorrection.png
Binary files differ
diff --git a/doc/chalk/crocusses-maximizechannel.png b/doc/chalk/crocusses-maximizechannel.png
new file mode 100644
index 00000000..9e6dc3f9
--- /dev/null
+++ b/doc/chalk/crocusses-maximizechannel.png
Binary files differ
diff --git a/doc/chalk/crocusses-meanremoval.png b/doc/chalk/crocusses-meanremoval.png
new file mode 100644
index 00000000..a1df0ac0
--- /dev/null
+++ b/doc/chalk/crocusses-meanremoval.png
Binary files differ
diff --git a/doc/chalk/crocusses-minimizechannel.png b/doc/chalk/crocusses-minimizechannel.png
new file mode 100644
index 00000000..14e9fe07
--- /dev/null
+++ b/doc/chalk/crocusses-minimizechannel.png
Binary files differ
diff --git a/doc/chalk/crocusses-oilpaint.png b/doc/chalk/crocusses-oilpaint.png
new file mode 100644
index 00000000..d005ef3e
--- /dev/null
+++ b/doc/chalk/crocusses-oilpaint.png
Binary files differ
diff --git a/doc/chalk/crocusses-pixelize.png b/doc/chalk/crocusses-pixelize.png
new file mode 100644
index 00000000..3fb5ba60
--- /dev/null
+++ b/doc/chalk/crocusses-pixelize.png
Binary files differ
diff --git a/doc/chalk/crocusses-raindrops.png b/doc/chalk/crocusses-raindrops.png
new file mode 100644
index 00000000..bdee271c
--- /dev/null
+++ b/doc/chalk/crocusses-raindrops.png
Binary files differ
diff --git a/doc/chalk/crocusses-randomnoise.png b/doc/chalk/crocusses-randomnoise.png
new file mode 100644
index 00000000..d7525a3f
--- /dev/null
+++ b/doc/chalk/crocusses-randomnoise.png
Binary files differ
diff --git a/doc/chalk/crocusses-randompick.png b/doc/chalk/crocusses-randompick.png
new file mode 100644
index 00000000..d3fb496d
--- /dev/null
+++ b/doc/chalk/crocusses-randompick.png
Binary files differ
diff --git a/doc/chalk/crocusses-roundcorners.png b/doc/chalk/crocusses-roundcorners.png
new file mode 100644
index 00000000..d997aca7
--- /dev/null
+++ b/doc/chalk/crocusses-roundcorners.png
Binary files differ
diff --git a/doc/chalk/crocusses-sharpen.png b/doc/chalk/crocusses-sharpen.png
new file mode 100644
index 00000000..18998da9
--- /dev/null
+++ b/doc/chalk/crocusses-sharpen.png
Binary files differ
diff --git a/doc/chalk/crocusses-smalltiles.png b/doc/chalk/crocusses-smalltiles.png
new file mode 100644
index 00000000..0dcd880d
--- /dev/null
+++ b/doc/chalk/crocusses-smalltiles.png
Binary files differ
diff --git a/doc/chalk/crocusses-sobel.png b/doc/chalk/crocusses-sobel.png
new file mode 100644
index 00000000..90506e6a
--- /dev/null
+++ b/doc/chalk/crocusses-sobel.png
Binary files differ
diff --git a/doc/chalk/crocusses-topedge.png b/doc/chalk/crocusses-topedge.png
new file mode 100644
index 00000000..e52c0878
--- /dev/null
+++ b/doc/chalk/crocusses-topedge.png
Binary files differ
diff --git a/doc/chalk/crocusses-unsharpmask.png b/doc/chalk/crocusses-unsharpmask.png
new file mode 100644
index 00000000..7760cb74
--- /dev/null
+++ b/doc/chalk/crocusses-unsharpmask.png
Binary files differ
diff --git a/doc/chalk/crocusses-wave.png b/doc/chalk/crocusses-wave.png
new file mode 100644
index 00000000..053cd4e6
--- /dev/null
+++ b/doc/chalk/crocusses-wave.png
Binary files differ
diff --git a/doc/chalk/crocusses-waveletnoise.png b/doc/chalk/crocusses-waveletnoise.png
new file mode 100644
index 00000000..4088373d
--- /dev/null
+++ b/doc/chalk/crocusses-waveletnoise.png
Binary files differ
diff --git a/doc/chalk/crocusses.png b/doc/chalk/crocusses.png
new file mode 100644
index 00000000..9b8913c3
--- /dev/null
+++ b/doc/chalk/crocusses.png
Binary files differ
diff --git a/doc/chalk/developers-plugins.docbook b/doc/chalk/developers-plugins.docbook
new file mode 100644
index 00000000..81a4ef49
--- /dev/null
+++ b/doc/chalk/developers-plugins.docbook
@@ -0,0 +1,1553 @@
+<sect1 id="developers-plugins">
+<title>Developing &chalk; Plugins</title>
+
+<sect2 id="developers-plugins-introduction">
+<title>Introduction</title>
+
+<para>
+&chalk; is infinitely extensible with plugins. Tools, filters, large
+chunks of the user interface and even colorspaces are plugins. In fact,
+&chalk; recognizes these six types of plugins:
+</para>
+
+<itemizedlist>
+<listitem><para>colorspaces &mdash; these define the channels that constitute
+a single pixel</para></listitem>
+<listitem><para>tools &mdash; anything that is done with a mouse or tablet
+input device</para></listitem>
+<listitem><para>paint operations &mdash; pluggable painting effects for
+tools</para></listitem>
+<listitem><para>image filters &mdash; change all pixels, or just the selected
+pixels in a layer</para></listitem>
+<listitem><para>viewplugins &mdash; extend Chalk’s user interface with new
+dialog boxes, palettes and operations</para></listitem>
+<listitem><para>import/export filters &mdash; read and write all kinds of
+image formats</para></listitem>
+</itemizedlist>
+
+<para>
+&chalk; itself consists of three layered libraries and a directory with some
+common support classes: chalkcolor, chalkimage and chalkui. Within
+&chalk;, objects can by identified by a <classname>KisID</classname>, that is
+the combination of a unique untranslated string (used when saving, for
+instance) and a translated string for GUI purposes.
+</para><para>
+A word on compatibility: &chalk; is still in development. From &chalk; 1.5 to
+1.6 not many API changes are expected, but there may be some. From &chalk; 1.6
+to 2.0 we will move from &Qt;3 to &Qt;4, from &kde;3 to &kde;4, from
+<command>automake</command> to <command>cmake</command>: many changes are to
+be expected. If you develop a plugin for &chalk; and choose to do so in
+&chalk;’s subversion repository, chances are excellent that we’ll help you
+porting. These changes may also render parts of this document out of date.
+Always check with the latest API documentation or the header files installed
+on your system.
+</para>
+
+<sect3 id="developers-plugins-introduction-chalkcolor">
+<title>ChalkColor</title>
+
+<para>
+The first library is chalkcolor. This library loads the colorspace plugins.
+</para><para>
+A colorspace plugin should implement the <classname>KisColorSpace</classname>
+abstract class or, if the basic capabilities of the new colorspace will be
+implemented by <command>lcms</command> (<ulink url="http://www.littlecms.com/"
+/>), extend <classname>KisAbstractColorSpace</classname>. The chalkcolor
+library could be used from other applications and does not depend on
+&koffice;.
+</para>
+</sect3>
+
+<sect3 id="developers-plugins-introduction-chalkimage">
+<title>ChalkImage</title>
+
+<para>
+The libchalkimage library loads the filter and paintop plugins and is
+responsible for working with image data: changing pixels, compositing and
+painting. Brushes, palettes, gradients and patterns are also loaded by
+libchalkimage. It is our stated goal to make libchalkimage independent of
+&koffice;, but we currently share the gradient loading code with &koffice;.
+</para><para>
+It is not easy at the moment to add new types of resources such as brushes,
+palettes, gradients or patterns to &chalk;. (Adding new brushes, palettes,
+gradients and patterns is easy, of course.) &chalk; follows the guidelines of
+the Create project (<ulink url="http://create.freedesktop.org/" />) for these.
+Adding support for Photoshop's brush file format needs libchalkimage hacking;
+adding more gimp brush data files not.
+</para><para>
+<classname>ChalkImage</classname> loads the following types of plugins:
+</para>
+
+<itemizedlist>
+<listitem><para>&chalk; filters must extend and implement the abstract class
+<classname>KisFilter</classname>,
+<classname>KisFilterConfiguration</classname> and possibly
+<classname>KisFilterConfigurationWidget</classname>.
+An example of a filter is Unsharp Mask.</para></listitem>
+<listitem><para>Paint operations or paintops are the set of operations
+painting tools suchs as freehand or circle have access to. Examples of
+paintops are pen, airbrush or eraser. Paintops should extend the
+<classname>KisPaintop</classname> base class. Examples of new paintops could
+be a chalk brush, an oilpaint brush or a complex programmable
+brush.</para></listitem>
+</itemizedlist>
+
+</sect3>
+
+<sect3 id="developers-plugins-introduction-chalkui">
+<title>ChalkUI</title>
+
+<para>
+The libchalkui library loads the tool and viewplugins. This library is a
+&koffice; Part, but also contains a number of widgets that are useful for
+graphics applications. Maybe we will have to split this library in chalkpart
+and chalkui in the 2.0 release. For now, script writers are not given access
+to this library and plugin writers are only allowed to use this library when
+writing tools or viewplugins. <classname>ChalkUI</classname> loads the
+following types of plugins:
+</para>
+
+<itemizedlist>
+<listitem><para>Tools are derived from <classname>KisTool</classname> or one
+of the specialized tool base classes such as
+<classname>KisToolPaint</classname>, <classname>KisToolNonPaint</classname> or
+<classname>KisToolFreehand</classname>. A new tool could be a foreground
+object selection tool. Painting tools (and that includes tools that paint on
+the selection) can use any paintop to determine the way pixels are
+changed.</para></listitem>
+<listitem><para>Viewplugins are ordinary KParts that use
+<command>kxmlgui</command> to insinuate themselves into &chalk;'s user
+interface. Menu options, dialogs, toolbars &mdash; any kind of user interface
+extension can be a viewplugin. In fact, important functionality like &chalk;'s
+scripting support is written as a viewplugin.</para></listitem>
+</itemizedlist>
+
+</sect3>
+
+<sect3 id="developers-plugins-introduction-importexport">
+<title>Import/Export filters</title>
+
+<para>
+Import/Export filters are &koffice; filters, subclasses of
+<classname>KoFilter</classname>. Filters read and write image data in any of
+the myriad image formats in existence. And example of a new &chalk;
+import/export filter could be a PDF filter. Filters are loaded by the
+&koffice; libraries.
+</para>
+
+</sect3>
+
+</sect2>
+
+<sect2 id="developers-plugins-creating">
+<title>Creating plugins</title>
+
+<para>
+Plugins are written in C++ and can use all of &kde; and &Qt; and the &chalk;
+developer API. Only viewplugins should use the &koffice; API. Don’t worry:
+&chalk;’s API’s are quite clear and rather extensively documented (for free
+software) and coding your first filter is really easy.
+</para><para>
+If you do not want to use C++, you can write scripts in Python or Ruby; that
+is a different thing altogether, though, and you cannot currently write tools,
+colorspaces, paintops or import/export filters as scripts.
+</para><para>
+&chalk; plugins use &kde;'s parts mechanism for loading, so the parts
+documentation at <ulink url="http://developer.kde.org" /> is relevant here, too.
+</para><para>
+Your distribution should have either installed the relevant header files with
+&chalk; itself, or might have split the header files into either a &koffice;
+dev or a &chalk; dev package. You can find the API documentation for &chalk;'s
+public API at <ulink url="http://koffice.org/developer/apidocs/chalk/html/" />.
+</para>
+
+<sect3 id="developers-plugins-creating-automake">
+<title>Automake (and CMake)</title>
+
+<para>
+&kde; 3.x and thus &koffice; 1.5 and 1.6 use <command>automake</command>;
+&kde; 4.0 and &koffice; 2.0 use <command>cmake</command>. This tutorial
+describes the <command>automake</command> way of creating plugins.
+<!-- If I have not updated this manual when we release KOffice 2.0, please
+remind me to do so. -->
+</para><para>
+Plugins are &kde; modules and should be tagged as such in their
+<filename>Makefile.am</filename>. Filters, tools, paintops, colorspaces and
+import/export filters need <literal role="extension">.desktop</literal> files;
+viewplugins need a <application>KXMLGui</application>
+<filename>pluginname.rc</filename> file in addition. The easiest way to get
+started is to checkout the chalk-plugins project from the &koffice; Subversion
+repository and use it as the basis for your own project. We intend to prepare
+a skeleton &chalk; plugin pack for KDevelop, but haven’t had the time to do
+so yet.
+</para>
+
+<sect4 id="d-p-c-a-makefile">
+<title><filename>Makefile.am</filename></title>
+
+<para>
+Let's look at the skeleton for a plugin module. First, the
+<filename>Makefile.am</filename>. This is what &kde; uses to generate the
+makefile that builds your plugin:
+
+<programlisting>
+kde_services_DATA = chalkLIBRARYNAME.desktop
+
+INCLUDES = $(all_includes)
+
+chalkLIBRARYNAME_la_SOURCES = sourcefile1.cc sourcefile2.cc
+
+kde_module_LTLIBRARIES = chalkLIBRARYNAME.la
+noinst_HEADERS = header1.h header2.h
+
+chalkLIBRARYNAME_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN)
+chalkLIBRARY_la_LIBADD = -lchalkcommon
+
+chalkextensioncolorsfilters_la_METASOURCES = AUTO
+</programlisting>
+
+This is the makefile for a filter plugin. Replace
+<replaceable>LIBRARYNAME</replaceable> with the name of your work, and you are
+set.
+</para><para>
+If your plugin is a viewplugin, you will likely also install a <literal
+role="extension">.rc</literal> file with entries for menubars and toolbars.
+Likewise, you may need to install cursors and icons. That is all done through
+the ordinary &kde; <filename>Makefile.am</filename> magic incantantions:
+
+<programlisting>
+chalkrcdir = $(kde_datadir)/chalk/chalkplugins
+chalkrc_DATA = LIBRARYNAME.rc
+EXTRA_DIST = $(chalkrc_DATA)
+
+chalkpics_DATA = \
+ bla.png \
+ bla_cursor.png
+chalkpicsdir = $(kde_datadir)/chalk/pics
+</programlisting>
+
+</para>
+</sect4>
+
+<sect4 id="d-p-c-a-desktop">
+<title>Desktop files</title>
+
+<para>
+The <literal role="extension">.desktop</literal> file announces the type of plugin:
+
+<programlisting>
+[Desktop Entry]
+Encoding=UTF-8
+Icon=
+Name=User-visible Name
+ServiceTypes=Chalk/Filter
+Type=Service
+X-KDE-Library=chalkLIBRARYNAME
+X-KDE-Version=2
+</programlisting>
+</para><para>
+Possible ServiceTypes are:
+</para>
+
+<itemizedlist>
+<listitem><para>Chalk/Filter</para></listitem>
+<listitem><para>Chalk/Paintop</para></listitem>
+<listitem><para>Chalk/ViewPlugin</para></listitem>
+<listitem><para>Chalk/Tool</para></listitem>
+<listitem><para>Chalk/ColorSpace</para></listitem>
+</itemizedlist>
+
+<para>
+File import and export filters use the generic &koffice; filter framework and
+need to be discussed separately.
+</para>
+</sect4>
+
+<sect4 id="d-p-c-a-boilerplate">
+<title>Boilerplate</title>
+
+<para>
+You also need a bit of boilerplate code that is called by the &kde; part
+framework to instantiate the plugin &mdash; a header file and an implementation file.
+</para><para>
+A header file:
+<programlisting>
+#ifndef TOOL_STAR_H_
+#define TOOL_STAR_H_
+
+#include &lt;kparts/plugin.h&gt;
+
+/**
+* A module that provides a star tool.
+*/
+class ToolStar : public KParts::Plugin
+{
+ Q_OBJECT
+public:
+ ToolStar(QObject *parent, const char *name, const QStringList &amp;);
+ virtual ~ToolStar();
+
+};
+
+#endif // TOOL_STAR_H_
+</programlisting>
+</para>
+
+<para>
+And an implementation file:
+<programlisting>
+#include &lt;kinstance.h&gt;
+#include &lt;kgenericfactory.h&gt;
+
+#include &lt;kis_tool_registry.h&gt;
+
+#include "tool_star.h"
+#include "kis_tool_star.h"
+
+
+typedef KGenericFactory&lt;ToolStar&gt; ToolStarFactory;
+K_EXPORT_COMPONENT_FACTORY( chalktoolstar, ToolStarFactory( "chalk" ) )
+
+
+ToolStar::ToolStar(QObject *parent, const char *name, const QStringList &amp;)
+ : KParts::Plugin(parent, name)
+{
+ setInstance(ToolStarFactory::instance());
+ if ( parent->inherits("KisToolRegistry") )
+ {
+ KisToolRegistry * r = dynamic_cast&lt;KisToolRegistry*&gt;( parent );
+ r -> add(new KisToolStarFactory());
+ }
+
+}
+
+ToolStar::~ToolStar()
+{
+}
+
+#include "tool_star.moc"
+</programlisting>
+</para>
+</sect4>
+
+<sect4 id="d-p-c-a-registries">
+<title>Registries</title>
+
+<para>
+Tools are loaded by the tool registry and register themselves with the tool
+registry. Plugins like tools, filters and paintops are loaded only once: view
+plugins are loaded for every view that is created. Note that we register
+factories, generally speaking. For instance, with tools a new instance of a
+tool is created for every pointer (mouse, stylus, eraser) for every few. And a
+new paintop is created whenever a tool gets a mouse-down event.
+</para>
+
+<para>
+Filters call the filter registry:
+<programlisting>
+ if (parent->inherits("KisFilterRegistry")) {
+ KisFilterRegistry * manager = dynamic_cast&lt;KisFilterRegistry *&gt;(parent);
+ manager->add(new KisFilterInvert());
+ }
+</programlisting>
+</para><para>
+Paintops the paintop registry:
+<programlisting>
+ if ( parent->inherits("KisPaintOpRegistry") ) {
+ KisPaintOpRegistry * r = dynamic_cast&lt;KisPaintOpRegistry*&gt;(parent);
+ r -> add ( new KisSmearyOpFactory );
+ }
+</programlisting>
+</para><para>
+Colorspaces the colorspace registry (with some complications):
+<programlisting>
+ if ( parent->inherits("KisColorSpaceFactoryRegistry") ) {
+ KisColorSpaceFactoryRegistry * f = dynamic_cast&lt;isColorSpaceFactoryRegistry*&gt;(parent);
+
+ KisProfile *defProfile = new KisProfile(cmsCreate_sRGBProfile());
+ f->addProfile(defProfile);
+
+ KisColorSpaceFactory * csFactory = new KisRgbColorSpaceFactory();
+ f->add(csFactory);
+
+ KisColorSpace * colorSpaceRGBA = new KisRgbColorSpace(f, 0);
+ KisHistogramProducerFactoryRegistry::instance() -> add(
+ new KisBasicHistogramProducerFactory&lt;KisBasicU8HistogramProducer&gt;
+ (KisID("RGB8HISTO", i18n("RGB8 Histogram")), colorSpaceRGBA) );
+ }
+</programlisting>
+</para><para>
+View plugins do not have to register themselves, and they get access to a
+<classname>KisView</classname> object:
+<programlisting>
+ if ( parent->inherits("KisView") )
+ {
+ setInstance(ShearImageFactory::instance());
+ setXMLFile(locate("data","chalkplugins/shearimage.rc"), true);
+
+ (void) new KAction(i18n("&amp;Shear Image..."), 0, 0, this, SLOT(slotShearImage()), actionCollection(), "shearimage");
+ (void) new KAction(i18n("&amp;Shear Layer..."), 0, 0, this, SLOT(slotShearLayer()), actionCollection(), "shearlayer");
+
+ m_view = (KisView*) parent;
+ }
+</programlisting>
+</para><para>
+Remember that this means that a view plugin will be created for every view the
+user creates: splitting a view means loading all view plugins again.
+</para>
+</sect4>
+
+<sect4 id="d-p-c-a-versioning">
+<title>Plugin versioning</title>
+
+<para>
+&chalk; 1.5 loads plugins with <literal>X-KDE-Version=2</literal> set in the
+<literal role="extension">.desktop</literal> file. &chalk; 1.6 plugins will
+probably be binary incompatible with 1.5 plugins and will need the version
+number 3. &chalk; 2.0 plugins will need the version number 3. Yes, this is not
+entirely logical.
+</para>
+
+</sect4>
+</sect3>
+</sect2>
+
+<sect2 id="developers-plugins-colorspaces">
+<title>Colorspaces</title>
+
+<para>
+Colorspaces implement the <classname>KisColorSpace</classname> pure virtual
+class. There are two types of colorspaces: those that can use
+<command>lcms</command> for transformations between colorspaces, and those
+that are too weird for <command>lcms</command> to handle. Examples of the
+first are cmyk, rgb, yuv. An example of the latter is watercolor or wet &amp;
+sticky. Colorspaces that use <command>lcms</command> can be derived from
+<classname>KisAbstractColorSpace</classname>, or of one of the base classes
+that are specialized for a certain number of bits per channel.
+</para><para>
+Implementing a colorspace is pretty easy. The general principle is that
+colorspaces work on a simple array of bytes. The interpretation of these bytes
+is up to the colorspace. For instance, a pixel in 16-bit GrayA consists of
+four bytes: two bytes for the gray value and two bytes for the alpha value.
+You are free to use a struct to work with the memory layout of a pixel in your
+colorspace implementation, but that representation is not exported. The only
+way the rest of &chalk; can know what channels and types of channels your
+colorspace pixels consist of is through the
+<classname>KisChannelInfo</classname> class.
+</para><para>
+Filters and paintops make use of the rich set of methods offered by
+<classname>KisColorSpace</classname> to do their work. In many cases, the
+default implementation in <classname>KisAbstractColorSpace</classname> will
+work, but more slowly than a custom implementation in your own colorspace
+because <classname>KisAbstractColorSpace</classname> will convert all pixels
+to 16-bit L*a*b and back.
+</para>
+
+<sect3 id="developers-plugins-colorspaces-kischannelinfo">
+<title><classname>KisChannelInfo</classname></title>
+
+<programlisting>
+(http://websvn.kde.org/trunk/koffice/chalk/chalkcolor/kis_channelinfo.h)
+</programlisting>
+<para>
+This class defines the channels that make up a single pixel in a particular
+colorspace. A channel has the following important characteristics:
+</para>
+<itemizedlist>
+<listitem><para>a name for display in the user interface</para></listitem>
+<listitem><para>a position: the byte where the bytes representing this channel
+start in the pixel.</para></listitem>
+<listitem><para>a type: color, alpha, substance or substrate. Color is plain
+color, alpha is see-throughishness, substance is a representation of amount of
+pigment or things like that, substrate is the representation of the canvas.
+(Note that this may be refactored at the drop of a hat.)</para></listitem>
+<listitem><para>a valuetype: byte, short, integer, float — or
+other.</para></listitem>
+<listitem><para>size: the number of bytes this channel takes</para></listitem>
+<listitem><para>color: a <classname>QColor</classname> representation of this
+channel for user interface visualization, for instance in
+histograms.</para></listitem>
+<listitem><para>an abbreviaton for use in the GUI when there’s not much
+space</para></listitem>
+</itemizedlist>
+</sect3>
+
+<sect3 id="developers-plugins-colorspaces-kiscompositeop">
+<title><classname>KisCompositeOp</classname></title>
+
+<para>
+As per original Porter-Duff, there are many ways of combining pixels to get a
+new color. The <classname>KisCompositeOp</classname> class defines most of
+them: this set is not easily extensible except by hacking the chalkcolor
+library.
+</para><para>
+A colorspace plugin can support any subset of these possible composition
+operations, but the set must always include "OVER" (same as "NORMAL") and
+"COPY". The rest are more or less optional, although more is better, of
+course.
+</para>
+</sect3>
+
+<sect3 id="developers-plugins-colorspaces-kiscolorspace">
+<title><classname>KisColorSpace</classname></title>
+
+<para>
+The methods in the <classname>KisColorSpace</classname> pure virtual classs
+can be divided into a number of groups: conversion, identification and
+manipulation.
+</para><para>
+All classes must be able to convert a pixel from and to 8 bit RGB (i.e., a
+<classname>QColor</classname>), and preferably also to and from 16 bit L*a*b.
+Additionally, there is a method to convert to any colorspace from the current
+colorspace.
+</para><para>
+Colorspaces are described by the <classname>KisChannelInfo</classname> vector,
+number of channels, number of bytes in a single pixel, whether it supports
+High Dynamic Range images and more.
+</para><para>
+Manipulation is for instance the combining of two pixels in a new
+pixel: bitBlt, darkening or convolving of pixels.
+</para><para>
+Please consult the API documentation for a full description of all methods you
+need to implement in a colorspace.
+</para><para>
+<classname>KisAbstractColorSpace</classname> implements many of the virtual
+methods of <classname>KisColorSpace</classname> using functions from the
+<command>lcms</command> library. On top of
+<classname>KisAbstractColorSpace</classname> there are base colorspace classes
+for 8 and 16 bit integer and 16 and 32 bit float colorspaces that define
+common operations to move between bit depths.
+</para>
+
+</sect3>
+</sect2>
+
+<sect2 id="developers-plugins-filters">
+<title>Filters</title>
+
+<para>
+Filters are plugins that examine the pixels in a layer and them make changes
+to them. Although &chalk; uses an efficient tiled memory backend to store
+pixels, filter writers do not have to bother with that. When writing a filter
+plugin for the &Java; imaging API, Photoshop or The Gimp, you need to take care
+of tile edges and <quote>cobble</quote> tiles together: &chalk; hides that
+implementation detail.
+</para>
+<note><para>Note that it is theoretically easy to replace the current tile
+image data storage backend with another backend, but that backens are not true
+plugins at the moment, for performance reasons.</para></note>
+<para>
+&chalk; uses iterators to read and write pixel values. Alternatively, you can
+read a block of pixels into a memory buffer, mess with it and then write it
+back as a block. But that is not necessarily more efficient, it may even be
+slower than using the iterators; it may just be more convenient. See the API
+documentation.
+</para><para>
+&chalk; images are composed of layers, of which there are currently four
+kinds: paint layers, group layers, adjustment layers (that contain a filter
+that is applied dynamically to layers below the adjustment layer) and part
+layers. Filters always operate on paint layers. Paint layers contain paint
+devices, of the class <classname>KisPaintDevice</classname>. A paint device in
+its turn gives access to the actual pixels.
+</para><para>
+<classname>PaintDevice</classname>s are generally passed around wrapped in
+shared pointers. A shared pointer keeps track of in how many places the paint
+device is currently used and deletes the paint device when it is no longer
+used anywhere. You recognize the shared pointer version of a paint device
+through its <literal>SP</literal> suffix. Just remember that you never have to
+explicitly delete a <classname>KisPaintDeviceSP</classname>.
+</para><para>
+Let's examine a very simple filter, one that inverts every pixel. The code for
+this filter is in the <filename
+class="directory">koffice/chalk/plugins/filters/example</filename> directory.
+The main method is
+<programlisting>
+KisFilterInvert::process(KisPaintDeviceSP src, KisPaintDeviceSP dst,
+ KisFilterConfiguration* /*config*/, const QRect&amp; rect).
+</programlisting>
+The function gets passed two paint devices, a configuration object (which is
+not used in this simple filter) and a <varname>rect</varname>. The
+<varname>rect</varname> describes the area of the
+paint device which the filter should act on. This area is described by
+integers, which means no sub-pixel accuracy.
+</para><para>
+The <varname>src</varname> paint device is for reading from, the
+<varname>dst</varname> paint device for writing to. These parameters may point
+to the same actual paint device, or be two different paint devices. (Note:
+this may change to only one paint device in the future.)
+</para><para>
+Now, let's look at the code line by line:
+</para>
+<programlisting>
+void KisFilterInvert::process(KisPaintDeviceSP src, KisPaintDeviceSP dst,
+ KisFilterConfiguration* /*config*/, const QRect&amp; rect)
+{
+ Q_ASSERT(src != 0);
+ Q_ASSERT(dst != 0);
+
+ KisRectIteratorPixel srcIt = src->createRectIterator(rect.x(), rect.y(), rect.width(), rect.height(), false); <co id="invert1" />
+ KisRectIteratorPixel dstIt = dst->createRectIterator(rect.x(), rect.y(), rect.width(), rect.height(), true ); <co id="invert2" />
+
+ int pixelsProcessed = 0;
+ setProgressTotalSteps(rect.width() * rect.height());
+
+ KisColorSpace * cs = src->colorSpace();
+ Q_INT32 psize = cs->pixelSize();
+
+ while( ! srcIt.isDone() )
+ {
+ if(srcIt.isSelected()) <co id="invert3" />
+ {
+ memcpy(dstIt.rawData(), srcIt.oldRawData(), psize); <co id="invert4" />
+
+ cs->invertColor( dstIt.rawData(), 1); <co id="invert5" />
+ }
+ setProgress(++pixelsProcessed);
+ ++srcIt;
+ ++dstIt;
+ }
+ setProgressDone(); // Must be called even if you don't really support progression
+}
+</programlisting>
+
+<calloutlist>
+<callout arearefs="invert1">
+<para>This creates an iterator to read the existing pixels. Chalk has three
+types of iterators: horizontal, vertical and rectangular. The rect iterator
+takes the most efficient path through the image data, but does not guarantee
+anything about the location of the next pixel it returns. That means that you
+cannot be sure that the pixel you will retrieve next will be adjacent to the
+pixel you just got. The horizontal and vertical line iterators do guarantee
+the location of the pixels they return.
+</para></callout>
+<callout arearefs="invert2"><para>
+(2) We create the destination iterator with the <literal>write</literal>
+setting to <literal>true</literal>. This means that if the destination paint
+device is smaller than the rect we write, it will automatically be enlarged to
+fit every pixel we iterate over. Note that we have got a potential bug here:
+if <varname>dst</varname> and <varname>src</varname> are not the same device,
+then it is quite possible that the pixels returned by the iterators do not
+correspond. For every position in the iterator, <varname>src</varname> may be,
+for example, at 165,200, while <varname>dst</varname> could be at 20,8 &mdash;
+and therefore the copy we perform below may distort the image...
+</para></callout>
+<callout arearefs="invert3"><para>
+Want to know if a pixel is selected? That is easy &mdash; use the
+<methodname>isSelected</methodname> method. But selectedness is not a binary
+property of a pixel, a pixel can be half selected, barely selected or almost
+completely selected. That value you can also got from the iterator. Selections
+are actually a mask paint device with a range between 0 and 255, where 0 is
+completely unselected and 255 completely selected. The iterator has two
+methods: <methodname>isSelected()</methodname> and
+<methodname>selectedNess()</methodname>. The first returns true if a pixel is
+selected to any extent (i.e., the mask value is greater than 1), the other
+returns the maskvalue.
+</para></callout>
+<callout arearefs="invert4"><para>
+As noted above, this <literal>memcpy</literal> is a big bad bug...
+<methodname>rawData()</methodname> returns the array of bytes which is the
+current state of the pixel; <methodname>oldRawData()</methodname> returns the
+array of bytes as it was before we created the iterator. However, we may be
+copying the wrong pixel here. In actual practice, that will not happen too
+often, unless <varname>dst</varname> already exists and is not aligned with
+<varname>src</varname>.
+</para></callout>
+<callout arearefs="invert5"><para>
+But this is correct: instead of figuring out which byte represents which
+channel, we use a function supplied by all colorspaces to invert the current
+pixel. The colorspaces have a lot of pixel operations you can make use of.
+</para></callout>
+</calloutlist>
+
+<para>
+This is not all there is to creating a filter. Filters have two other
+important components: a configuration object and a configuration widget. The
+two interact closely. The configuration widget creates a configuration object,
+but can also be filled from a pre-existing configuration object. Configuration
+objects can represtent themselves as XML and can be created from XML. That is
+what makes adjustment layers possible.
+</para>
+
+<sect3 id="developers-plugins-filters-iterators">
+<title>Iterators</title>
+
+<para>
+There are three types of iterators:
+</para>
+
+<itemizedlist>
+<listitem><para>Horizontal lines</para></listitem>
+<listitem><para>Vertical lines</para></listitem>
+<listitem><para>Rectangular iterors</para></listitem>
+</itemizedlist>
+
+<para>
+The horizontal and vertical line iterators have a method to move the iterator
+to the next row or column: <methodname>nextRow()</methodname> and
+<methodname>nextCol()</methodname>. Using these is much faster than creating a
+new iterator for every line or column.
+</para><para>
+Iterators are thread-safe in &chalk;, so it is possible to divide the work
+over multiple threads. However, future versions of &chalk; will use the
+<methodname>supportsThreading()</methodname> method to determine whether your
+filter can be applied to chunks of the image (&ie;, all pixels modified
+independently, instead of changed by some value determined from an examination
+of all pixels in the image) and automatically thread the execution your
+filter.
+</para>
+</sect3>
+
+<sect3 id="developers-plugins-filters-kisfilterconfiguration">
+<title><classname>KisFilterConfiguration</classname></title>
+
+<para>
+<classname>KisFilterConfiguration</classname> is a structure that is used to
+save filter settings to disk, for instance for adjustment layers. The
+scripting plugin uses the property map that’s at the back of
+<classname>KisFilterConfigaration</classname> to make it possible to script
+filters. Filters can provide a custom widget that &chalk; will show in the
+filters gallery, the filter preview dialog or the tool option tab of the
+paint-with-filters tool.
+</para>
+<para>
+An example, taken from the oilpaint effect filter:
+</para>
+<programlisting>
+class KisOilPaintFilterConfiguration : public KisFilterConfiguration
+{
+
+public:
+
+ KisOilPaintFilterConfiguration(Q_UINT32 brushSize, Q_UINT32 smooth)
+ : KisFilterConfiguration( "oilpaint", 1 )
+ {
+ setProperty("brushSize", brushSize);
+ setProperty("smooth", smooth);
+ };
+public:
+
+ inline Q_UINT32 brushSize() { return getInt("brushSize"); };
+ inline Q_UINT32 smooth() {return getInt("smooth"); };
+
+};
+</programlisting>
+</sect3>
+
+<sect3 id="developers-plugins-filters-kisfilterconfigurationwidget">
+<title><classname>KisFilterConfigurationWidget</classname></title>
+
+<para>
+Most filters can be tweaked by the user. You can create a configuration widget
+that Chalk will use where-ever your filter is used. An example:
+</para>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Oilpaint</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="dialogs-oilpaint.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Oilpaint</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Oilpaint</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+Note that only the left-hand side of this dialog is your responsibility:
+&chalk; takes care of the rest. There are three ways of going about creating
+an option widget:
+</para>
+
+<itemizedlist>
+<listitem><para>Use &Qt; Designer to create a widget base, and subclass it for
+your filter</para></listitem>
+<listitem><para>Use one of the simple widgets that show a number of sliders
+for lists of integers, doubles or bools. These are useful if, like the above
+screenshot, your filter can be configured by a number of integers, doubles or
+bools. See the API dox for <classname>KisMultiIntegerFilterWidget</classname>,
+<classname>KisMultiDoubleFilterWidget</classname> and
+<classname>KisMultiBoolFilterWidget</classname>.</para></listitem>
+<listitem><para>Hand-code a widget. This is not recommended, and if you do so
+and want your filter to become part of &chalk;’s official release, then I’ll ask
+you to replate your hand-coded widget with a &Qt; Designer
+widget.</para></listitem>
+</itemizedlist>
+
+<para>
+The oilpaint filter uses the multi integer widget:
+</para>
+
+<programlisting>
+KisFilterConfigWidget * KisOilPaintFilter::createConfigurationWidget(QWidget* parent, KisPaintDeviceSP /*dev*/)
+{
+ vKisIntegerWidgetParam param;
+ param.push_back( KisIntegerWidgetParam( 1, 5, 1, i18n("Brush size"), "brushSize" ) );
+ param.push_back( KisIntegerWidgetParam( 10, 255, 30, i18n("Smooth"), "smooth" ) );
+ return new KisMultiIntegerFilterWidget(parent, id().id().ascii(), id().id().ascii(), param );
+}
+
+KisFilterConfiguration* KisOilPaintFilter::configuration(QWidget* nwidget)
+{
+ KisMultiIntegerFilterWidget* widget = (KisMultiIntegerFilterWidget*) nwidget;
+ if( widget == 0 )
+ {
+ return new KisOilPaintFilterConfiguration( 1, 30);
+ } else {
+ return new KisOilPaintFilterConfiguration( widget->valueAt( 0 ), widget->valueAt( 1 ) );
+ }
+}
+
+std::list&lt;KisFilterConfiguration*&gt; KisOilPaintFilter::listOfExamplesConfiguration(KisPaintDeviceSP )
+{
+ std::list&lt;KisFilterConfiguration*&gt; list;
+ list.insert(list.begin(), new KisOilPaintFilterConfiguration( 1, 30));
+ return list;
+}
+</programlisting>
+
+<para>
+You can see how it works: fill a vector with your integer parameters and
+create the widget. The <methodname>configuration()</methodname> method
+inspects the widget and creates the right filter configuration object, in this
+case, of course, <classname>KisOilPaintFilterConfiguration</classname>. The
+<methodname>listOfExamplesConfiguration</methodname> method (which should be
+renamed to correct English...) returns a list with example configuration
+objects for the filters gallery dialog.
+</para>
+</sect3>
+
+<sect3 id="developers-plugins-filters-conclusion">
+<title>Filters conclusion</title>
+
+<para>
+There’s more to coding interesting filters, of course, but with this
+explanation, the API documentation and access to our source code, you should
+be able to get started. Don’t hesitate to contact the &chalk; developers on
+IRC or on the mailing list.
+</para>
+</sect3>
+
+</sect2>
+
+<sect2 id="developers-plugins-tools">
+<title>Tools</title>
+
+<para>
+Tools appear in &chalk;’s toolbox. This means that there is limited space for
+new tools &mdash; think carefully whether a paint operation isn’t enough for
+your purposes. Tools can use the mouse/tablet and keyboard in complex ways,
+which paint operations cannot. This is the reason that Duplicate is a tool,
+but airbrush a paint operation.
+</para><para>
+Be careful with static data in your tool: a new instance of your tool is
+created for every input device: mouse, stylus, eraser, airbrush &mdash; whatever.
+Tools come divided into logical groups:
+</para>
+<itemizedlist>
+<listitem><para>shape drawing tools (circle, rect)</para></listitem>
+<listitem><para>freehand drawing tools (brush)</para></listitem>
+<listitem><para>transform tools that mess up the geometry of a
+layer</para></listitem>
+<listitem><para>fill tools (like bucket fill or gradient)</para></listitem>
+<listitem><para>view tools (that don’t change pixels, but alter the way you
+view the canvas, such as zoom)</para></listitem>
+<listitem><para>select tools (that change the selection
+mask)</para></listitem>
+</itemizedlist>
+
+<para>
+The tool interface is described in the API documentation for
+<classname>KisTool</classname>. There are three subclasses:
+<classname>KisToolPaint</classname>, <classname>KisToolNonPaint</classname>
+and <classname>KisToolShape</classname> (which is actually a subclass of
+<classname>KisToolPaint</classname>) that specialize
+<classname>KisTool</classname> for painting tasks (i.e., changing pixels) ,
+non-painting tasks and shape painting tasks.
+</para><para>
+A tool has an option widget, just like filters. Currently, the option widgets
+are shown in a tab in a dock window. We may change that to a strip under the
+main menu (which then replaces the toolbar) for &chalk; 2.0, but for now,
+design your option widget to fit in a tab. As always, it’s best to use &Qt;
+Designer for the design of the option widget.
+</para><para>
+A good example of a tool is the star tool:
+</para>
+
+<screen>
+kis_tool_star.cc Makefile.am tool_star_cursor.png wdg_tool_star.ui
+kis_tool_star.h Makefile.in tool_star.h
+chalktoolstar.desktop tool_star.cc tool_star.png
+</screen>
+
+<para>
+As you see, you need two images: one for the cursor and one for the toolbox.
+<filename>tool_star.cc</filename> is just the plugin loader, similar to what
+we have seen above. The real meat is in the implementation:
+</para>
+
+<programlisting>
+KisToolStar::KisToolStar()
+ : KisToolShape(i18n("Star")),
+ m_dragging (false),
+ m_currentImage (0)
+{
+ setName("tool_star");
+ setCursor(KisCursor::load("tool_star_cursor.png", 6, 6));
+ m_innerOuterRatio=40;
+ m_vertices=5;
+}
+</programlisting>
+
+<para>
+The constructor sets the internal name &mdash; which is not translated
+&mdash; and the call to the superclass sets the visible name. We also load the
+cursor image and set a number of variables.
+</para>
+
+<programlisting>
+void KisToolStar::update (KisCanvasSubject *subject)
+{
+ KisToolShape::update (subject);
+ if (m_subject)
+ m_currentImage = m_subject->currentImg();
+}
+</programlisting>
+
+<para>
+The <methodname>update()</methodname> method is called when the tool is
+selected. This is not a <classname>KisTool</classname> method, but a
+<classname>KisCanvasObserver</classname> method. Canvas observers are notified
+whenever something changes in the view, which can be useful for tools.
+</para><para>
+The following methods (<methodname>buttonPress</methodname>,
+<methodname>move</methodname> and <methodname>buttonRelease</methodname>) are
+called by &chalk; when the input device (mouse, stylus, eraser etc.) is
+pressed down, moved or released. Note that you also get move events if the
+mouse button isn’t pressed. The events are not the regular &Qt; events, but
+synthetic &chalk; events because we make use of low-level trickery to get
+enough events to draw a smooth line. By default, toolkits like &Qt; (and GTK)
+drop events if they are too busy to handle them, and we want them all.
+</para>
+
+<programlisting>
+void KisToolStar::buttonPress(KisButtonPressEvent *event)
+{
+ if (m_currentImage &amp;&amp; event->button() == LeftButton) {
+ m_dragging = true;
+ m_dragStart = event->pos();
+ m_dragEnd = event->pos();
+ m_vertices = m_optWidget->verticesSpinBox->value();
+ m_innerOuterRatio = m_optWidget->ratioSpinBox->value();
+ }
+}
+
+void KisToolStar::move(KisMoveEvent *event)
+{
+ if (m_dragging) {
+ // erase old lines on canvas
+ draw(m_dragStart, m_dragEnd);
+ // move (alt) or resize star
+ if (event->state() &amp; Qt::AltButton) {
+ KisPoint trans = event->pos() - m_dragEnd;
+ m_dragStart += trans;
+ m_dragEnd += trans;
+ } else {
+ m_dragEnd = event->pos();
+ }
+ // draw new lines on canvas
+ draw(m_dragStart, m_dragEnd);
+ }
+}
+
+void KisToolStar::buttonRelease(KisButtonReleaseEvent *event)
+{
+ if (!m_subject || !m_currentImage)
+ return;
+
+ if (m_dragging &amp;&amp; event->button() == LeftButton) {
+ // erase old lines on canvas
+ draw(m_dragStart, m_dragEnd);
+ m_dragging = false;
+
+ if (m_dragStart == m_dragEnd)
+ return;
+
+ if (!m_currentImage)
+ return;
+
+ if (!m_currentImage->activeDevice())
+ return;
+
+ KisPaintDeviceSP device = m_currentImage->activeDevice ();;
+ KisPainter painter (device);
+ if (m_currentImage->undo()) painter.beginTransaction (i18n("Star"));
+
+ painter.setPaintColor(m_subject->fgColor());
+ painter.setBackgroundColor(m_subject->bgColor());
+ painter.setFillStyle(fillStyle());
+ painter.setBrush(m_subject->currentBrush());
+ painter.setPattern(m_subject->currentPattern());
+ painter.setOpacity(m_opacity);
+ painter.setCompositeOp(m_compositeOp);
+ KisPaintOp * op =
+ KisPaintOpRegistry::instance()->paintOp(m_subject->currentPaintop(), m_subject->currentPaintopSettings(), &amp;painter);
+ painter.setPaintOp(op); // Painter takes ownership
+
+ vKisPoint coord = starCoordinates(m_vertices, m_dragStart.x(), m_dragStart.y(), m_dragEnd.x(), m_dragEnd.y());
+
+ painter.paintPolygon(coord);
+
+ device->setDirty( painter.dirtyRect() );
+ notifyModified();
+
+ if (m_currentImage->undo()) {
+ m_currentImage->undoAdapter()->addCommand(painter.endTransaction());
+ }
+ }
+}
+</programlisting>
+
+<para>
+The <methodname>draw()</methodname> method is an internal method of
+<classname>KisToolStar</classname> and draws the outline of the star. We call
+this from the <methodname>move()</methodname> method to give the user feedback
+of the size and shape of their star. Note that we use the
+<varname>Qt::NotROP</varname> raster operation, which means that calling
+<methodname>draw()</methodname> a second time with the same start and end
+point the previously drawn star will be deleted.
+</para>
+
+<programlisting>
+void KisToolStar::draw(const KisPoint&amp; start, const KisPoint&amp; end )
+{
+ if (!m_subject || !m_currentImage)
+ return;
+
+ KisCanvasController *controller = m_subject->canvasController();
+ KisCanvas *canvas = controller->kiscanvas();
+ KisCanvasPainter p (canvas);
+ QPen pen(Qt::SolidLine);
+
+ KisPoint startPos;
+ KisPoint endPos;
+ startPos = controller->windowToView(start);
+ endPos = controller->windowToView(end);
+
+ p.setRasterOp(Qt::NotROP);
+
+ vKisPoint points = starCoordinates(m_vertices, startPos.x(), startPos.y(), endPos.x(), endPos.y());
+
+ for (uint i = 0; i &lt; points.count() - 1; i++) {
+ p.drawLine(points[i].floorQPoint(), points[i + 1].floorQPoint());
+ }
+ p.drawLine(points[points.count() - 1].floorQPoint(), points[0].floorQPoint());
+
+ p.end ();
+}
+</programlisting>
+
+<para>
+The <methodname>setup()</methodname> method is essential: here we create the
+action that will be plugged into the toolbox so users can actually select the
+tool. We also assign a shortcut key. Note that there’s some hackery going on:
+remember that we create an instance of the tool for every input device. This
+also means that we call <methodname>setup()</methodname> for every input
+device and that means that an action with the same name is added several times
+to the action collection. However, everything seems to work, so why worry?
+</para>
+
+<programlisting>
+void KisToolStar::setup(KActionCollection *collection)
+{
+ m_action = static_cast&lt;KRadioAction *&gt;(collection->action(name()));
+
+ if (m_action == 0) {
+ KShortcut shortcut(Qt::Key_Plus);
+ shortcut.append(KShortcut(Qt::Key_F9));
+ m_action = new KRadioAction(i18n("&amp;Star"),
+ "tool_star",
+ shortcut,
+ this,
+ SLOT(activate()),
+ collection,
+ name());
+ Q_CHECK_PTR(m_action);
+
+ m_action->setToolTip(i18n("Draw a star"));
+ m_action->setExclusiveGroup("tools");
+ m_ownAction = true;
+ }
+}
+</programlisting>
+
+<para>
+The <methodname>starCoordinates()</methodname> method contains some funky math
+&mdash; but is not too interesting for the discussion of how to create a tool
+plugins.
+</para>
+
+<programlisting>
+KisPoint KisToolStar::starCoordinates(int N, double mx, double my, double x, double y)
+{
+ double R=0, r=0;
+ Q_INT32 n=0;
+ double angle;
+
+ vKisPoint starCoordinatesArray(2*N);
+
+ // the radius of the outer edges
+ R=sqrt((x-mx)*(x-mx)+(y-my)*(y-my));
+
+ // the radius of the inner edges
+ r=R*m_innerOuterRatio/100.0;
+
+ // the angle
+ angle=-atan2((x-mx),(y-my));
+
+ //set outer edges
+ for(n=0;n&lt;N;n++){
+ starCoordinatesArray[2*n] = KisPoint(mx+R*cos(n * 2.0 * M_PI / N + angle),my+R*sin(n *2.0 * M_PI / N+angle));
+ }
+
+ //set inner edges
+ for(n=0;n&lt;N;n++){
+ starCoordinatesArray[2*n+1] = KisPoint(mx+r*cos((n + 0.5) * 2.0 * M_PI / N + angle),my+r*sin((n +0.5) * 2.0 * M_PI / N + angle));
+ }
+
+ return starCoordinatesArray;
+}
+</programlisting>
+
+<para>
+The <methodname>createOptionWidget()</methodname> method is called to create
+the option widget that &chalk; will show in the tab. Since there is a tool per
+input device per view, the state of a tool can be kept in the tool. This
+method is only called once: the option widget is stored and retrieved the next
+time the tool is activated.
+</para>
+
+<programlisting>
+QWidget* KisToolStar::createOptionWidget(QWidget* parent)
+{
+ QWidget *widget = KisToolShape::createOptionWidget(parent);
+
+ m_optWidget = new WdgToolStar(widget);
+ Q_CHECK_PTR(m_optWidget);
+
+ m_optWidget->ratioSpinBox->setValue(m_innerOuterRatio);
+
+ QGridLayout *optionLayout = new QGridLayout(widget, 1, 1);
+ super::addOptionWidgetLayout(optionLayout);
+
+ optionLayout->addWidget(m_optWidget, 0, 0);
+
+ return widget;
+}
+</programlisting>
+
+<sect3 id="developers-plugins-tools-conclusions">
+<title>Tool Conclusions</title>
+
+<para>
+Tools are relatively simple plugins to create. You need to combine the
+<classname>KisTool</classname> and <classname>KisCanvasObserver</classname>
+interfaces in order to effectively create a tool.
+</para>
+
+</sect3>
+
+</sect2>
+
+<sect2 id="developers-plugins-paintoperations">
+<title>Paint operations</title>
+
+<para>
+PaintOps are one of the more innovative types of plugins in Chalk (together
+with pluggable colorspaces). A paint operation defines how tools change the
+pixels they touch. Airbrush, aliased pencil or antialiased pixel brush: these
+are all paint operations. But you could &mdash; with a lot of work &mdash;
+create a paintop that reads Corel Painter XML brush definitions and uses those
+to determine how painting is done.
+</para><para>
+Paint operations are instantiated when a paint tool receives a
+<literal>mouseDown</literal> event and are deleted when the mouseUp event is
+received by a paint tool. In between, the paintop can keep track of previous
+positions and other data, such as pressure levels if the user uses a tablet.
+</para><para>
+The basic operation of a paint operation is to change pixels at the cursor
+position of a paint tool. That can be done only once, or the paint op can
+demand to be run at regular intervals, using a timer. The first would be
+useful for a pencil-type paint op, the second, of course, for an
+airbrush-type paintop.
+</para><para>
+Paintops can have a small configuration widget which is placed in a toolbar.
+Thus, paintop configuration widgets need to have a horizontal layout of
+widgets that are not higher than a toolbar button. Otherwise, &chalk; will
+look very funny.
+</para><para>
+Let’s look at a simple paintop plugin, one that shows a little bit of
+programmatic intelligence. First, in the header file, there’s a factory
+defined. This factory creates a paintop when the active tool needs one:
+</para>
+
+<programlisting>
+public:
+ KisSmearyOpFactory() {}
+ virtual ~KisSmearyOpFactory() {}
+
+ virtual KisPaintOp * createOp(const KisPaintOpSettings *settings, KisPainter * painter);
+ virtual KisID id() { return KisID("paintSmeary", i18n("Smeary Brush")); }
+ virtual bool userVisible(KisColorSpace * ) { return false; }
+ virtual QString pixmap() { return ""; }
+
+};
+</programlisting>
+
+<para>
+The factory also contains the <classname>KisID</classname> with the public and
+private name for the paintop &mdash; make sure your paintop’s private name
+does not clash with another paintop! &mdash; and may optionally return a
+pixmap. &chalk; can then show the pixmap together with the name for visual
+identifcation of your paintop. For instance, a painter’s knife paintop would
+have the image of such an implement.
+</para><para>
+The implementation of a paintop is very straightforward:
+</para>
+
+<programlisting>
+KisSmearyOp::KisSmearyOp(KisPainter * painter)
+ : KisPaintOp(painter)
+{
+}
+
+KisSmearyOp::~KisSmearyOp()
+{
+}
+void KisSmearyOp::paintAt(const KisPoint &amp;pos, const KisPaintInformation&amp; info)
+{
+</programlisting>
+
+<para>
+The <methodname>paintAt()</methodname> method really is where it’s at, with
+paintops. This method receives two parameters: the current position (which is
+in floats, not in whole pixels) and a
+<classname>KisPaintInformation</classname> object. which contains the
+pressure, x and y tilt, and movement vector, and may in the future be extended
+with other information.
+</para>
+
+<programlisting>
+ if (!m_painter->device()) return;
+
+ KisBrush *brush = m_painter->brush();
+</programlisting>
+
+<para>
+A <classname>KisBrush</classname> is the representation of a Gimp brush file:
+that is a mask, either a single mask or a series of masks. Actually, we don’t
+use the brush here, except to determine the <quote>hotspot</quote> under the
+cursor.
+</para>
+
+<programlisting>
+ Q_ASSERT(brush);
+
+ if (!brush) return;
+
+ if (! brush->canPaintFor(info) )
+ return;
+
+ KisPaintDeviceSP device = m_painter->device();
+ KisColorSpace * colorSpace = device->colorSpace();
+ KisColor kc = m_painter->paintColor();
+ kc.convertTo(colorSpace);
+
+ KisPoint hotSpot = brush->hotSpot(info);
+ KisPoint pt = pos - hotSpot;
+
+ // Split the coordinates into integer plus fractional parts. The integer
+ // is where the dab will be positioned and the fractional part determines
+ // the sub-pixel positioning.
+ Q_INT32 x, y;
+ double xFraction, yFraction;
+
+ splitCoordinate(pt.x(), &amp;x, &amp;xFraction);
+ splitCoordinate(pt.y(), &amp;y, &amp;yFraction);
+
+ KisPaintDeviceSP dab = new KisPaintDevice(colorSpace, "smeary dab");
+ Q_CHECK_PTR(dab);
+</programlisting>
+
+<para>
+We don’t change the pixels of a paint device directly: instead we create a
+small paint device, a dab, and composite that onto the current paint device.
+</para>
+
+<programlisting>
+ m_painter->setPressure(info.pressure);
+</programlisting>
+
+<para>
+As the comments say, the next bit code does some programmatic work to create
+the actual dab. In this case, we draw a number of lines. When I am done with
+this paintop, the length, position and thickness of the lines will be
+dependent on pressure and paint load, and we’ll have create a stiff, smeary
+oilpaint brush. But I haven’t had time to finish this yet.
+</para>
+
+<programlisting>
+ // Compute the position of the tufts. The tufts are arranged in a line
+ // perpendicular to the motion of the brush, i.e, the straight line between
+ // the current position and the previous position.
+ // The tufts are spread out through the pressure
+
+ KisPoint previousPoint = info.movement.toKisPoint();
+ KisVector2D brushVector(-previousPoint.y(), previousPoint.x());
+ KisVector2D currentPointVector = KisVector2D(pos);
+ brushVector.normalize();
+
+ KisVector2D vl, vr;
+
+ for (int i = 0; i &lt; (NUMBER_OF_TUFTS / 2); ++i) {
+ // Compute the positions on the new vector.
+ vl = currentPointVector + i * brushVector;
+ KisPoint pl = vl.toKisPoint();
+ dab->setPixel(pl.roundX(), pl.roundY(), kc);
+
+ vr = currentPointVector - i * brushVector;
+ KisPoint pr = vr.toKisPoint();
+ dab->setPixel(pr.roundX(), pr.roundY(), kc);
+ }
+
+ vr = vr - vl;
+ vr.normalize();
+</programlisting>
+
+<para>
+Finally we blt the dab onto the original paint device and tell the painter
+that we’ve dirtied a small rectangle of the paint device.
+</para>
+
+<programlisting>
+ if (m_source->hasSelection()) {
+ m_painter->bltSelection(x - 32, y - 32, m_painter->compositeOp(), dab.data(),
+ m_source->selection(), m_painter->opacity(), x - 32, y -32, 64, 64);
+ }
+ else {
+ m_painter->bitBlt(x - 32, y - 32, m_painter->compositeOp(), dab.data(), m_painter->opacity(), x - 32, y -32, 64, 64);
+ }
+
+ m_painter->addDirtyRect(QRect(x -32, y -32, 64, 64));
+}
+
+
+KisPaintOp * KisSmearyOpFactory::createOp(const KisPaintOpSettings */*settings*/, KisPainter * painter)
+{
+ KisPaintOp * op = new KisSmearyOp(painter);
+ Q_CHECK_PTR(op);
+ return op;
+}
+</programlisting>
+
+<para>
+That’s all: paintops are easy and fun!
+</para>
+
+</sect2>
+
+<sect2 id="developers-plugins-viewplugins">
+<title>View plugins</title>
+
+<para>
+View plugins are the weirdest of the bunch: a view plugin is an ordinary KPart
+that can provide a bit of user interface and some functionality. For instance,
+the histogram tab is a view plugin, as is the rotate dialog.
+</para>
+
+</sect2>
+
+<sect2 id="developers-plugins-importexport">
+<title>Import/Export filters</title>
+
+<para>
+&chalk; works with the ordinary &koffice; file filter architecture. There is a
+tutorial, a bit old, but still useful, at: <ulink
+url="http://koffice.org/developer/filters/oldfaq.php" />. It is probably best
+to cooperate with the &chalk; team when developing file filters and do the
+development in the &koffice; filter tree. Note that you can test your filters
+without running &chalk; using the <command>koconverter</command> utility.
+</para><para>
+Filters have two sides: importing and exporting. These are usually two
+different plugins that may share some code.
+</para><para>
+The important <filename>Makefile.am</filename> entries are:
+</para>
+
+<programlisting>
+service_DATA = chalk_XXX_import.desktop chalk_XXX_export.desktop
+servicedir = $(kde_servicesdir)
+kdelnk_DATA = chalk_XXX.desktop
+kdelnkdir = $(kde_appsdir)/Office
+libchalkXXXimport_la_SOURCES = XXXimport.cpp
+libchalkXXXexport_la_SOURCES = XXXexport.cpp
+METASOURCES = AUTO
+</programlisting>
+
+<para>
+Whether you are building an import filter or an export filter, your work always
+boils down to implementing the following function:
+</para>
+
+<programlisting>
+virtual KoFilter::ConversionStatus convert(const QCString&amp; from, const QCString&amp; to);
+</programlisting>
+
+<para>
+It is the settings in the <literal role="extension">.desktop</literal> files
+that determine which way a filter converts:
+</para><para>
+Import:
+</para>
+
+<programlisting>
+X-KDE-Export=application/x-chalk
+X-KDE-Import=image/x-xcf-gimp
+X-KDE-Weight=1
+X-KDE-Library=libchalkXXXimport
+ServiceTypes=KOfficeFilter
+</programlisting>
+
+<para>
+Export:
+</para>
+
+<programlisting>
+X-KDE-Export=image/x-xcf-gimp
+X-KDE-Import=application/x-chalk
+ServiceTypes=KOfficeFilter
+Type=Service
+X-KDE-Weight=1
+X-KDE-Library=libchalkXXXexport
+</programlisting>
+
+<para>
+And yes, the mimetype chosen for the example is a hint. Please, pretty please,
+implement an xcf filter?
+</para>
+
+<sect3 id="plugins-developers-importexport-import">
+<title>Import</title>
+
+<para>
+The big problem with import filters is of course your code to read the data on
+disk. The boilerplate for calling that code is fairly simple:
+</para>
+
+<note><para>Note: we really, really should find a way to enable &chalk; to keep
+a file open and only read data on a as-needed basis, instead of copying the
+entire contents to the internal paint device representation. But that would
+mean datamanager backends that know about tiff files and so on, and is not
+currently implemented. It would be ideal if some file filters could implement
+a class provisionally named <classname>KisFileDataManager</classname>, create
+an object of that instance with the current file and pass that to KisDoc. But
+&chalk; handles storage per layer, not per document, so this would be a hard
+refactor to do.</para></note>
+
+<programlisting>
+KoFilter::ConversionStatus XXXImport::convert(const QCString&amp;, const QCString&amp; to)
+{
+ if (to != "application/x-chalk") <co id="import1" />
+ return KoFilter::BadMimeType;
+
+ KisDoc * doc = dynamic_cast&lt;KisDoc*&gt;(m_chain -> outputDocument()); <co id="import2" />
+ KisView * view = static_cast&lt;KisView*&gt;(doc -> views().getFirst()); <co id="import3" />
+
+ QString filename = m_chain -> inputFile(); <co id="import4" />
+
+ if (!doc)
+ return KoFilter::CreationError;
+
+ doc -> prepareForImport(); <co id="import5" />
+
+ if (!filename.isEmpty()) {
+
+ KURL url(filename);
+
+ if (url.isEmpty())
+ return KoFilter::FileNotFound;
+
+ KisImageXXXConverter ib(doc, doc -> undoAdapter()); <co id="import6" />
+
+ if (view != 0)
+ view -> canvasSubject() -> progressDisplay() -> setSubject(&amp;ib, false, true);
+
+ switch (ib.buildImage(url)) <co id="import7" /> {
+ case KisImageBuilder_RESULT_UNSUPPORTED:
+ return KoFilter::NotImplemented;
+ break;
+ case KisImageBuilder_RESULT_INVALID_ARG:
+ return KoFilter::BadMimeType;
+ break;
+ case KisImageBuilder_RESULT_NO_URI:
+ case KisImageBuilder_RESULT_NOT_LOCAL:
+ return KoFilter::FileNotFound;
+ break;
+ case KisImageBuilder_RESULT_BAD_FETCH:
+ case KisImageBuilder_RESULT_EMPTY:
+ return KoFilter::ParsingError;
+ break;
+ case KisImageBuilder_RESULT_FAILURE:
+ return KoFilter::InternalError;
+ break;
+ case KisImageBuilder_RESULT_OK:
+ doc -> setCurrentImage( ib.image()); <co id="import8" />
+ return KoFilter::OK;
+ default:
+ break;
+ }
+
+ }
+ return KoFilter::StorageCreationError;
+}
+</programlisting>
+
+<calloutlist>
+<callout arearefs="import1"><para>This is supposed to be an importfilter, so
+if it is not called to convert to a &chalk; image, then something is
+wrong.</para></callout>
+<callout arearefs="import2"><para>The filter chain already has created an
+output document for us. We need to cast it to <classname>KisDocM</classname>,
+because &chalk; documents need special treatment. It would not, actually, be
+all that bad an idea to check whether the result of the cast is not 0, because
+if it is, importing will fail.</para></callout>
+<callout arearefs="import3"><para>If we call this filter from the GUI, we try
+to get the view. If there is a view, the conversion code can try to update the
+progressbar.</para></callout>
+<callout arearefs="import4"><para>The filter has the filename for our input
+file for us.</para></callout>
+<callout arearefs="import5"><para><classname>KisDoc</classname> needs to be
+prepared for import. Certain settings are initialized and undo is disabled.
+Otherwise you could undo the adding of layers performed by the import filter
+and that is weird behaviour.</para></callout>
+<callout arearefs="import6"><para>I have chosed to implement the actual
+importing code in a separate class that I instantiate here. You can also put
+all your code right in this method, but that would be a bit
+messy.</para></callout>
+<callout arearefs="import7"><para>My importer returns a statuscode that I
+can then use to set the status of the import filter. &koffice; takes care of
+showing error messages.</para></callout>
+<callout arearefs="import8"><para>If creating the
+<classname>KisImage</classname> has succeeded we set the document's current
+image to our newly created image. Then we are done: <literal>return
+KoFilter::OK;</literal>.</para></callout>
+</calloutlist>
+
+</sect3>
+
+</sect2>
+
+</sect1>
diff --git a/doc/chalk/developers-scripting.docbook b/doc/chalk/developers-scripting.docbook
new file mode 100644
index 00000000..fec163db
--- /dev/null
+++ b/doc/chalk/developers-scripting.docbook
@@ -0,0 +1,534 @@
+<sect1 id="developers-scripting">
+<title>Scripting</title>
+
+<para>
+In &chalk;, you can write scripts in Ruby or Python (the availability of the
+interpreters might depend on what your distributions or the administrator of
+your machine did install). Here you will find a description of the scripting
+API.
+</para><para>
+Some examples are distributed with &chalk;, and you might find them in
+<filename>/usr/share/apps/chalk/scripts</filename> (or
+<filename>/opt/kde/share/apps/chalk/scripts</filename>).
+</para>
+
+<sect2 id="developers-scripting-variables">
+<title>Variables in the <classname>Krosschalkcore</classname> module</title>
+
+<itemizedlist>
+<listitem><para><varname>ChalkDocument</varname> returns a
+<classname>Document</classname> object</para></listitem>
+<listitem><para><varname>ChalkScript</varname> returns a
+<classname>ScriptProgress</classname> object</para></listitem>
+</itemizedlist>
+
+<para>
+You can retrieve an object using the <function>get</function> function of the
+<classname>Krosschalkcore</classname> module, in Ruby you will have to write something like that:
+<programlisting>
+doc = Krosschalkcore::get("ChalkDocument")
+script = Krosschalkcore::get("ChalkScript")
+</programlisting>
+</para>
+
+</sect2>
+
+<sect2 id="developers-scripting-functions">
+<title>Functions in the <classname>Krosschalkcore</classname> module</title>
+
+<itemizedlist>
+<listitem><para>Function: <function>getBrush</function></para><para>
+This function returns a <classname>Brush</classname> taken from the list of
+&chalk; resources. It takes one argument: the name of the brush.
+For example (in Ruby):
+<programlisting>
+Krosschalkcore::getBrush("Circle (05)")
+</programlisting></para></listitem>
+
+<listitem><para>Function: <function>getFilter</function></para><para>
+This function returns a <classname>Filter</classname> taken from the list of
+&chalk; resources. It takes one argument: the name of the filter.
+For example (in Ruby):
+<programlisting>
+Krosschalkcore::getFilter("invert")
+</programlisting></para></listitem>
+
+<listitem><para>Function: <function>getPattern</function></para><para>
+This function returns a <classname>Pattern</classname> taken from the list of
+&chalk; resources. It takes one argument: the name of the pattern.
+For example (in Ruby):
+<programlisting>
+Krosschalkcore::getPattern("Bricks")
+</programlisting></para></listitem>
+
+<listitem><para>Function: <function>loadBrush</function></para><para>
+This function loads a <classname>Brush</classname> and then returns it.
+It takes one argument: the filename of the brush.</para></listitem>
+
+<listitem><para>Function: <function>loadPattern</function></para><para>
+This function loads a <classname>Pattern</classname> and then returns it.
+It takes one argument: the filename of the pattern.</para></listitem>
+
+<listitem><para>Function: <function>newCircleBrush</function></para><para>
+This function returns a <classname>Brush</classname> with a circular shape. It
+takes at least two arguments: width and height. It can take two other
+arguments: width of the shading, and height of the shading. If the shading
+is not specified, no shading will be used.
+For example (in Ruby):
+<programlisting>
+Krosschalkcore::newCircleBrush(10,20) # create a plain circle
+Krosschalkcore::newCircleBrush(10,20,5,10) # create a gradient
+</programlisting></para></listitem>
+
+<listitem><para>Function: <function>newHSVColor</function></para><para>
+This function returns a new <classname>Color</classname> with the given HSV
+triplet. It takes three arguments: hue component (0 to 255), saturation
+component (0 to 255), value component (0 to 255).
+
+For example (in Ruby):
+<programlisting>
+Krosschalkcore::newHSVColor(255,125,0)
+</programlisting></para></listitem>
+
+<listitem><para>Function: <function>newImage</function></para><para>
+This function returns a new <classname>Image</classname>. It takes four arguments:
+width, height, colorspace id, name of the image. And in return you get an
+<classname>Image</classname> object.
+For example (in Ruby):
+<programlisting>
+Krosschalkcore::newImage(10,20, "RGBA", "kikoo")
+</programlisting></para></listitem>
+
+<listitem><para>Function: <function>newRectBrush</function></para><para>
+This function returns a <classname>Brush</classname> with a rectangular shape.
+It takes at least two arguments: width and height. It can take two other
+arguments: width of the shading and height of the shading. If the shading is
+not specified, no shading will be used.
+For example (in Ruby):
+<programlisting>
+ Krosschalkcore::newRectBrush(10,20) # create a plain rectangle
+ Krosschalkcore::newRectBrush(10,20,5,10) # create a gradient
+</programlisting></para></listitem>
+
+<listitem><para>Function: <function>newRGBColor</function></para><para>
+This function returns a new <classname>Color</classname> with the given RGB
+triplet. It takes three arguments: red component (0 to 255), blue component (0 to
+255), green component (0 to 255).
+For example (in Ruby):
+<programlisting>
+Krosschalkcore::newRGBColor(255,0,0) # create a red color
+Krosschalkcore::newRGBColor(255,255,255) # create a white color
+</programlisting></para></listitem>
+</itemizedlist>
+</sect2>
+
+<sect2 id="developers-scripting-objects">
+<title>Descriptions and function lists for various objects in
+<classname>Krosschalkcore</classname></title>
+
+<itemizedlist>
+<listitem><para>Object: PaintLayer</para>
+
+<itemizedlist>
+<listitem><para>Function: <function>beginPainting</function></para></listitem>
+
+<listitem><para>Function: <function>convertToColorspace</function></para><para>
+Convert the image to a colorspace. This function takes one argument: the name
+of the destination colorspace.
+For example (in Ruby):
+<programlisting>
+image.convertToColorspace("CMYK")
+</programlisting></para></listitem>
+
+<listitem><para>Function: <function>createHistogram</function></para><para>
+This function creates a Histogram for this layer. It takes two arguments:
+the type of the histogram ("RGB8HISTO"), and 0 if the histogram is linear, or
+1 if it is logarithmic.</para></listitem>
+
+<listitem><para>Function: <function>createHLineIterator</function></para><para>
+Create an iterator over a layer, it will iterate on a row. This function takes three arguments:
+<varname>x</varname> (start in the row), <varname>y</varname> (vertical
+position of the row), width of the row.</para></listitem>
+
+<listitem><para>Function: <function>createPainter</function></para><para>
+This function creates a <classname>Painter</classname> which will allow you to
+paint on the layer. </para></listitem>
+
+<listitem><para>Function: <function>createRectIterator</function></para><para>
+Create an iterator over a layer, it will iterate on a rectangular area. This
+function takes four arguments: <varname>x</varname>, <varname>y</varname>,
+width of the rectangle, height of the rectangle.</para></listitem>
+
+<listitem><para>Function: <function>createVLineIterator</function></para><para>
+Create an iterator over a layer, it will iterate on a column. This function
+takes three arguments: <varname>x</varname> (horizontal position of the
+column), <varname>y</varname> (start in the column), height of the column.</para></listitem>
+
+<listitem><para>Function: <function>endPainting</function></para><para>
+This function closes the current undo entry and adds it to the history.</para></listitem>
+
+<listitem><para>Function: <function>fastWaveletTransformation</function></para><para>
+Returns the fast wavelet transformation of the layer.</para></listitem>
+
+<listitem><para>Function: <function>fastWaveletUntransformation</function></para><para>
+Untransforms a fast wavelet into this layer. It takes one argument: a wavelet
+object.
+For example (in Ruby):
+<programlisting>
+wavelet = layer.fastWaveletTransformation()
+layer.fastWaveletUntransformation(wavelet)
+</programlisting></para></listitem>
+
+<listitem><para>Function: <function>getHeight</function></para><para>
+Return the height of the layer.</para></listitem>
+
+<listitem><para>Function: <function>getWidth</function></para><para>
+Return the width of the layer.</para></listitem>
+</itemizedlist>
+</listitem>
+
+<listitem><para>Object: <classname>Filter</classname></para>
+<itemizedlist>
+
+<listitem><para>Function: <function>getFilterConfiguration</function></para><para>
+This function returns the <classname>FilterConfiguration</classname>
+associated with this filter.</para></listitem>
+
+<listitem><para>Function: <function>process</function></para><para>
+This function will apply the filter. It takes at least one argument: the
+source layer. You can also use these four aguments: <varname>x</varname>,
+<varname>y</varname>, <varname>width</varname>, <varname>height</varname>.
+(<varname>x</varname>,<varname>y</varname>,<varname>width</varname>,<varname>height</varname>)
+defines the rectangular area on which the filter
+will be computed. If the rectangle is not defined, then the filter will be
+applied on the entire source layer.
+For example (in Ruby)
+<programlisting>
+doc = Krosschalkcore::get("ChalkDocument")
+image = doc.getImage()
+layer = image.getActivePaintLayer()
+width = layer.getWidth()
+height = layer.getHeight()
+filter = Krosschalkcore::getFilter("invert")
+filter.process(layer, layer)
+filter.process(layer, layer, 10, 10, 20, 20 )
+</programlisting></para></listitem>
+</itemizedlist></listitem>
+
+<listitem><para>Object: <classname>FilterConfiguration</classname></para>
+<itemizedlist>
+
+<listitem><para>Function: <function>getProperty</function></para><para>
+This function returns the value of a parameter of the associated
+<classname>Filter</classname>. It takes one argument: the name of the
+parameter.</para></listitem>
+
+<listitem><para>Function: <function>setProperty</function></para><para>
+This function defines a parameter of the associated
+<classname>Filter</classname>. It takes two arguments: the name of the
+parameter and the value, whose type depends on the
+<classname>Filter</classname>.</para></listitem>
+</itemizedlist>
+</listitem>
+
+<listitem><para>Object: <classname>Histogram</classname></para>
+
+<para>This class allows you to access the histogram of a
+<classname>PaintLayer</classname>.
+Example (in Ruby):
+<programlisting>
+ doc = krosschalkcore::get("ChalkDocument")
+ image = doc.getImage()
+ layer = image.getActiveLayer()
+ histo = layer.createHistogram("RGB8HISTO",0)
+ min = layer.getMin() * 255
+ max = layer.getMax() * 255
+ for i in min..max
+ print layer.getValue(i)
+ print "\n"
+ end
+</programlisting>
+</para>
+
+<itemizedlist>
+<listitem><para>Function: <function>getChannel</function></para><para>
+Return the selected channel.</para></listitem>
+
+<listitem><para>Function: <function>getCount</function></para><para>
+This function returns the number of pixels used by the histogram.</para></listitem>
+
+<listitem><para>Function: <function>getHighest</function></para><para>
+This function returns the highest value of the histogram.</para></listitem>
+
+<listitem><para>Function: <function>getLowest</function></para><para>
+This function returns the lowest value of the histogram.</para></listitem>
+
+<listitem><para>Function: <function>getMax</function></para><para>
+This function returns the maximum bound of the histogram (values at greater
+position than the maximum are null). The value is in the range 0.0 &ndash; 1.0.</para></listitem>
+
+<listitem><para>Function: <function>getMean</function></para><para>
+This function returns the mean of the histogram.</para></listitem>
+
+<listitem><para>Function: <function>getMin</function></para><para>
+This function returns the minimum bound of the histogram (values at smaller
+position than the minimum are null). The value is in the range 0.0 &ndash; 1.0.</para></listitem>
+
+<listitem><para>Function: <function>getNumberOfBins</function></para><para>
+Return the number of bins of this histogram. </para></listitem>
+
+<listitem><para>Function: <function>getTotal</function></para><para>
+This function returns the sum of all values of the histogram.</para></listitem>
+
+<listitem><para>Function: <function>getValue</function></para><para>
+Return the value of a bin of the histogram. This function takes one argument:
+index, in the range [0..255].</para></listitem>
+
+<listitem><para>Function: <function>setChannel</function></para><para>
+Select the channel of the layer on which to get the result of the histogram.
+This function takes one argument: the channel number.</para></listitem>
+</itemizedlist>
+</listitem>
+
+<listitem><para>Object: <classname>ScriptProgress</classname></para>
+<para><classname>ScriptProgress</classname> is used to manage the progress bar
+of the status bar in &chalk;.
+For example (in Ruby):
+<programlisting>
+script = Krosschalkcore::get("ChalkScript")
+script.setProgressTotalSteps(1000)
+script.setProgressStage("progressive", 0)
+for i in 1..900
+ script.incProgress()
+end
+script.setProgressStage("brutal", 1000)
+</programlisting></para>
+
+<itemizedlist>
+<listitem><para>Function: <function>incProgress</function></para><para>
+This function increments the progress by one step.</para></listitem>
+
+<listitem><para>Function: <function>setProgress</function></para><para>
+This function sets the value of the progress. It takes one argument:
+the value of the progress.</para></listitem>
+
+<listitem><para>Function: <function>setProgressStage</function></para><para>
+This function sets the value of the progress and displays the text.</para></listitem>
+
+<listitem><para>Function: <function>setProgressTotalSteps</function></para><para>
+This function set the number of steps that the script will require. It takes
+one argument: the maximum value of the progress</para></listitem>
+</itemizedlist>
+</listitem>
+
+<listitem><para>Object: <classname>Wavelet</classname></para><para>
+This object holds the coefficients of a wavelet transformation of a
+<classname>PaintLayer</classname>.</para>
+<itemizedlist>
+
+<listitem><para>Function: <function>getDepth</function></para><para>
+Returns the depth of the layer.</para></listitem>
+
+<listitem><para>Function: <function>getNCoeff</function></para><para>
+Returns the value of the Nth coefficient. The function takes one argument: the
+index of the coefficient.</para></listitem>
+
+<listitem><para>Function: <function>getNumCoeffs</function></para><para>
+Returns the number of coefficients in this wavelet (= size * size * depth).</para></listitem>
+
+<listitem><para>Function: <function>getSize</function></para><para>
+Returns the size of the wavelet (size = width = height).</para></listitem>
+
+<listitem><para>Function: <function>getXYCoeff</function></para><para>
+Returns the value of a coefficient. The function takes two arguments:
+<varname>x</varname> and <varname>y</varname>.</para></listitem>
+
+<listitem><para>Function: <function>setNCoeff</function></para><para>
+Set the value of the Nth coefficient. The function takes two arguments: the
+index of the coefficient and the new value of the coefficient.</para></listitem>
+
+<listitem><para>Function: <function>setXYCoeff</function></para><para>
+Set the value of a coefficient. The function takes three arguments:
+<varname>x</varname>, <varname>y</varname>, and the new value of the
+coefficient.</para></listitem>
+</itemizedlist>
+</listitem>
+
+<listitem><para>Object: <classname>Painter</classname></para>
+<itemizedlist>
+
+<listitem><para>Function: <function>convolve</function></para><para>
+This function applies a convolution kernel to an image. It takes at least three arguments:
+a list of kernels (all lists need to have the same size),
+factor, and offset.
+</para><para>
+The value of a pixel will be given by the following function: K * P / factor + offset,
+where K is the kernel and P is the neighbourhood.
+</para><para>
+It can take the following optional arguments: <varname>borderOp</varname>
+(control how to convolve the pixels on the border of an image: 0 = use the
+default color, 1 = use the pixel on the opposite side of the image, 2 = use
+the border pixel, 3 = avoid border pixels), <varname>channel</varname> (1 for
+color, 2 for alpha, 3 for both), <varname>x</varname>, <varname>y</varname>,
+<varname>width</varname>, <varname>height</varname>.</para></listitem>
+
+<listitem><para>Function: <function>setFillThreshold</function></para><para>
+Sets the fill threshold. It takes one argument: the threshold.</para></listitem>
+
+<listitem><para>Function: <function>fillColor</function></para><para>
+Starts filling with a color. It takes two arguments: <varname>x</varname> and
+<varname>y</varname>.</para></listitem>
+
+<listitem><para>Function: <function>fillPattern</function></para><para>
+Starts filling with a pattern. It takes two arguments: <varname>x</varname>
+and <varname>y</varname>.</para></listitem>
+
+<listitem><para>Function: <function>paintPolyline</function></para><para>
+This function will paint a polyline. It takes two arguments: a list of x
+positions, and a list of y positions.</para></listitem>
+
+<listitem><para>Function: <function>paintLine</function></para><para>
+This function will paint a line. It takes five arguments:
+<varname>x1</varname>, <varname>y1</varname>, <varname>x2</varname>,
+<varname>y2</varname>, and <varname>pressure</varname>.
+</para></listitem>
+
+<listitem><para>Function: <function>paintBezierCurve</function></para><para>
+This function will paint a Bezier curve. It takes ten arguments:
+<varname>x1</varname>, <varname>y1</varname>, <varname>p1</varname>,
+<varname>cx1</varname>, <varname>cy1</varname>, <varname>cx2</varname>,
+<varname>cx2</varname>, <varname>x2</varname>, <varname>y2</varname>,
+<varname>p2</varname>, where (<varname>x1</varname>,<varname>y1</varname>) is
+the start position, <varname>p1</varname> is the pressure at the start,
+(<varname>x2</varname>,<varname>y2</varname>) is the end position,
+<varname>p2</varname> is the pressure at the end.
+(<varname>cx1</varname>,<varname>cy1</varname>) and
+(<varname>cx2</varname>,<varname>cy2</varname>) are the positions of the
+control points.</para></listitem>
+
+<listitem><para>Function: <function>paintEllipse</function></para><para>
+This function will paint an ellipse. It takes five arguments:
+<varname>x1</varname>, <varname>y1</varname>, <varname>x2</varname>,
+<varname>y2</varname>, <varname>pressure</varname>, where
+(<varname>x1</varname>,<varname>y1</varname>) and
+(<varname>x2</varname>,<varname>y2</varname>) are the positions of the two
+centers.</para></listitem>
+
+<listitem><para>Function: <function>paintPolygon</function></para><para>
+This function will paint a polygon. It takes two arguments: a list of x
+positions and a list of y positions.</para></listitem>
+
+<listitem><para>Function: <function>paintRect</function></para><para>
+This function will paint a rectangle. It takes five arguments:
+<varname>x</varname>, <varname>y</varname>, <varname>width</varname>
+<varname>height</varname>, <varname>pressure</varname>.</para></listitem>
+
+<listitem><para>Function: <function>paintAt</function></para><para>
+This function will paint at a given position.
+It takes three arguments: <varname>x</varname>, <varname>y</varname>,
+<varname>pressure</varname>.</para></listitem>
+
+<listitem><para>Function: <function>setPaintColor</function></para><para>
+This function sets the paint color (also called foreground color). It takes
+one argument: a <classname>Color</classname>.</para></listitem>
+
+<listitem><para>Function: <function>setBackgroundColor</function></para><para>
+This function sets the background color. It takes one argument: a
+<classname>Color</classname>.</para></listitem>
+
+<listitem><para>Function: <function>setPattern</function></para><para>
+This function sets the pattern used for filling. It takes one argument: a
+<classname>Pattern</classname> object.</para></listitem>
+
+<listitem><para>Function: <function>setBrush</function></para><para>
+This function sets the brush used for painting. It takes one argument: a
+<classname>Brush</classname> object.</para></listitem>
+
+<listitem><para>Function: <function>setPaintOp</function></para><para>
+This function defines the paint operation. It takes one argument: the name of
+the paint operation.</para></listitem>
+
+<listitem><para>Function: <function>setDuplicateOffset</function></para><para>
+This function defines the duplicate offset. It takes two arguments: the
+horizontal offset and the vertical offset.</para></listitem>
+
+<listitem><para>Function: <function>setOpacity</function></para><para>
+This function set the opacity of the painting. It takes one argument: the
+opacity, in the range 0 to 255.</para></listitem>
+
+<listitem><para>Function: <function>setStrokeStyle</function></para><para>
+This function sets the style of the stroke. It takes one argument: 0 for none,
+or 1 for brush.</para></listitem>
+
+<listitem><para>Function: <function>setFillStyle</function></para><para>
+This function sets the fill style of the <classname>Painter</classname>.
+It takes one argument: 0 for none, 1 for fill with foreground color, 2 for
+fill with background color, 3 for fill with pattern.</para></listitem>
+</itemizedlist>
+</listitem>
+
+<listitem><para>Object: <classname>Iterator</classname></para><para>
+This object allows you to change pixel values one by one.
+The name of some functions depends on the colorspace, for instance, if the
+colorspace of the layer is RGB, you will have <function>setR</function>,
+<function>setG</function> and <function>setB</function>, and for
+CMYK: <function>setC</function>, <function>setM</function>,
+<function>setY</function> and <function>setK</function>. In the documentation
+below we will assume that the colorspace is called ABC, with three channels:
+A, B and C.</para>
+
+<itemizedlist>
+<listitem><para>Functions: <function>setA</function>,
+<function>setB</function>, <function>setC</function></para><para>
+Those functions take one argument: the new value of one of the channels of
+this pixel.</para></listitem>
+
+<listitem><para>Function: <function>setABC</function></para><para>
+Set the value of all channels. This function takes one argument: an array with
+the new values for all channels.</para></listitem>
+
+<listitem><para>Functions: <function>getA</function>,
+<function>getB</function>, <function>getC</function></para><para>
+Return the value of one of the channels of this pixel.</para></listitem>
+
+<listitem><para>Function: <function>getABC</function></para><para>
+Return an array with the values of all channels.</para></listitem>
+
+<listitem><para>Function: <function>darken</function></para><para>
+Darken a pixel. This function takes at least one argument:
+<varname>shade</varname> (amount used to darken all color channels). This
+function can take the following optional argument:
+<varname>compensation</varname> (to limit the darkening).</para></listitem>
+
+<listitem><para>Function: <function>invertColor</function></para><para>
+Invert the color of a pixel.</para></listitem>
+
+<listitem><para>Function: <function>next</function></para><para>
+Increment the position, go to the next pixel.</para></listitem>
+
+<listitem><para>Function: <function>isDone</function></para><para>
+Return true if the iterator is at the end (no more pixels are
+available).</para></listitem>
+</itemizedlist>
+</listitem>
+</itemizedlist>
+
+</sect2>
+
+<sect2 id="developers-scripting-resources">
+<title>Resources</title>
+
+<para>
+Here are hints or partial lists of resources for &chalk;.
+</para><para>
+For <classname>Brush</classname> and <classname>Pattern</classname>: You can get
+the name and the associated brush or pattern from the selector in &chalk;'s
+toolbar.
+</para><para>
+A list of ids for colorspaces in &chalk;: LABA, RGBA, RGBA16, RGBAF32,
+RGBAF16HALF, LMSAF32, GRAYA, GRAYA16, CMYK, CMYKA16.
+</para>
+</sect2>
+
+</sect1>
+
diff --git a/doc/chalk/developers.docbook b/doc/chalk/developers.docbook
new file mode 100644
index 00000000..212bb9fa
--- /dev/null
+++ b/doc/chalk/developers.docbook
@@ -0,0 +1,13 @@
+<chapter id="developers">
+<title>Developer's information</title>
+
+<para>
+This chapter contains information for developers or other enthousiasts who
+want to get more out of &chalk;.
+</para>
+
+&developers-scripting;
+&developers-plugins;
+
+</chapter>
+
diff --git a/doc/chalk/dialogs-addpalette.png b/doc/chalk/dialogs-addpalette.png
new file mode 100644
index 00000000..6f249d96
--- /dev/null
+++ b/doc/chalk/dialogs-addpalette.png
Binary files differ
diff --git a/doc/chalk/dialogs-blur.png b/doc/chalk/dialogs-blur.png
new file mode 100644
index 00000000..3318d844
--- /dev/null
+++ b/doc/chalk/dialogs-blur.png
Binary files differ
diff --git a/doc/chalk/dialogs-brightnesscontrast.png b/doc/chalk/dialogs-brightnesscontrast.png
new file mode 100644
index 00000000..39d8c652
--- /dev/null
+++ b/doc/chalk/dialogs-brightnesscontrast.png
Binary files differ
diff --git a/doc/chalk/dialogs-bumpmap.png b/doc/chalk/dialogs-bumpmap.png
new file mode 100644
index 00000000..5c20347f
--- /dev/null
+++ b/doc/chalk/dialogs-bumpmap.png
Binary files differ
diff --git a/doc/chalk/dialogs-coloradjustment.png b/doc/chalk/dialogs-coloradjustment.png
new file mode 100644
index 00000000..b18a8023
--- /dev/null
+++ b/doc/chalk/dialogs-coloradjustment.png
Binary files differ
diff --git a/doc/chalk/dialogs-colorrange.png b/doc/chalk/dialogs-colorrange.png
new file mode 100644
index 00000000..6f11b374
--- /dev/null
+++ b/doc/chalk/dialogs-colorrange.png
Binary files differ
diff --git a/doc/chalk/dialogs-colortoalpha.png b/doc/chalk/dialogs-colortoalpha.png
new file mode 100644
index 00000000..bc99c3e8
--- /dev/null
+++ b/doc/chalk/dialogs-colortoalpha.png
Binary files differ
diff --git a/doc/chalk/dialogs-colortransfer.png b/doc/chalk/dialogs-colortransfer.png
new file mode 100644
index 00000000..00d86095
--- /dev/null
+++ b/doc/chalk/dialogs-colortransfer.png
Binary files differ
diff --git a/doc/chalk/dialogs-convertimagetype.png b/doc/chalk/dialogs-convertimagetype.png
new file mode 100644
index 00000000..3df33c65
--- /dev/null
+++ b/doc/chalk/dialogs-convertimagetype.png
Binary files differ
diff --git a/doc/chalk/dialogs-convertlayertype.png b/doc/chalk/dialogs-convertlayertype.png
new file mode 100644
index 00000000..85f6977c
--- /dev/null
+++ b/doc/chalk/dialogs-convertlayertype.png
Binary files differ
diff --git a/doc/chalk/dialogs-cubism.png b/doc/chalk/dialogs-cubism.png
new file mode 100644
index 00000000..b2e3b741
--- /dev/null
+++ b/doc/chalk/dialogs-cubism.png
Binary files differ
diff --git a/doc/chalk/dialogs-customconvolution.png b/doc/chalk/dialogs-customconvolution.png
new file mode 100644
index 00000000..ee15631b
--- /dev/null
+++ b/doc/chalk/dialogs-customconvolution.png
Binary files differ
diff --git a/doc/chalk/dialogs-documentinformation.png b/doc/chalk/dialogs-documentinformation.png
new file mode 100644
index 00000000..2462853f
--- /dev/null
+++ b/doc/chalk/dialogs-documentinformation.png
Binary files differ
diff --git a/doc/chalk/dialogs-dropshadow.png b/doc/chalk/dialogs-dropshadow.png
new file mode 100644
index 00000000..c2e0b15f
--- /dev/null
+++ b/doc/chalk/dialogs-dropshadow.png
Binary files differ
diff --git a/doc/chalk/dialogs-emboss.png b/doc/chalk/dialogs-emboss.png
new file mode 100644
index 00000000..552d4676
--- /dev/null
+++ b/doc/chalk/dialogs-emboss.png
Binary files differ
diff --git a/doc/chalk/dialogs-filtersgallery.png b/doc/chalk/dialogs-filtersgallery.png
new file mode 100644
index 00000000..492a506b
--- /dev/null
+++ b/doc/chalk/dialogs-filtersgallery.png
Binary files differ
diff --git a/doc/chalk/dialogs-gaussiannoise.png b/doc/chalk/dialogs-gaussiannoise.png
new file mode 100644
index 00000000..3de3ace9
--- /dev/null
+++ b/doc/chalk/dialogs-gaussiannoise.png
Binary files differ
diff --git a/doc/chalk/dialogs-histogram.png b/doc/chalk/dialogs-histogram.png
new file mode 100644
index 00000000..252e3a31
--- /dev/null
+++ b/doc/chalk/dialogs-histogram.png
Binary files differ
diff --git a/doc/chalk/dialogs-imageproperties.png b/doc/chalk/dialogs-imageproperties.png
new file mode 100644
index 00000000..893cf95d
--- /dev/null
+++ b/doc/chalk/dialogs-imageproperties.png
Binary files differ
diff --git a/doc/chalk/dialogs-imagerestoration.png b/doc/chalk/dialogs-imagerestoration.png
new file mode 100644
index 00000000..16b1ae2c
--- /dev/null
+++ b/doc/chalk/dialogs-imagerestoration.png
Binary files differ
diff --git a/doc/chalk/dialogs-imagesize.png b/doc/chalk/dialogs-imagesize.png
new file mode 100644
index 00000000..5028a38e
--- /dev/null
+++ b/doc/chalk/dialogs-imagesize.png
Binary files differ
diff --git a/doc/chalk/dialogs-layerproperties.png b/doc/chalk/dialogs-layerproperties.png
new file mode 100644
index 00000000..83c6738d
--- /dev/null
+++ b/doc/chalk/dialogs-layerproperties.png
Binary files differ
diff --git a/doc/chalk/dialogs-layersize.png b/doc/chalk/dialogs-layersize.png
new file mode 100644
index 00000000..afab719f
--- /dev/null
+++ b/doc/chalk/dialogs-layersize.png
Binary files differ
diff --git a/doc/chalk/dialogs-lenscorrection.png b/doc/chalk/dialogs-lenscorrection.png
new file mode 100644
index 00000000..c550758c
--- /dev/null
+++ b/doc/chalk/dialogs-lenscorrection.png
Binary files differ
diff --git a/doc/chalk/dialogs-newadjustmentlayer.png b/doc/chalk/dialogs-newadjustmentlayer.png
new file mode 100644
index 00000000..67ff729b
--- /dev/null
+++ b/doc/chalk/dialogs-newadjustmentlayer.png
Binary files differ
diff --git a/doc/chalk/dialogs-newlayer.png b/doc/chalk/dialogs-newlayer.png
new file mode 100644
index 00000000..acb22f10
--- /dev/null
+++ b/doc/chalk/dialogs-newlayer.png
Binary files differ
diff --git a/doc/chalk/dialogs-oilpaint.png b/doc/chalk/dialogs-oilpaint.png
new file mode 100644
index 00000000..71d277cd
--- /dev/null
+++ b/doc/chalk/dialogs-oilpaint.png
Binary files differ
diff --git a/doc/chalk/dialogs-pixelize.png b/doc/chalk/dialogs-pixelize.png
new file mode 100644
index 00000000..6ae16526
--- /dev/null
+++ b/doc/chalk/dialogs-pixelize.png
Binary files differ
diff --git a/doc/chalk/dialogs-raindrops.png b/doc/chalk/dialogs-raindrops.png
new file mode 100644
index 00000000..65e462aa
--- /dev/null
+++ b/doc/chalk/dialogs-raindrops.png
Binary files differ
diff --git a/doc/chalk/dialogs-randomnoise.png b/doc/chalk/dialogs-randomnoise.png
new file mode 100644
index 00000000..405d4313
--- /dev/null
+++ b/doc/chalk/dialogs-randomnoise.png
Binary files differ
diff --git a/doc/chalk/dialogs-randompick.png b/doc/chalk/dialogs-randompick.png
new file mode 100644
index 00000000..8eb4f47d
--- /dev/null
+++ b/doc/chalk/dialogs-randompick.png
Binary files differ
diff --git a/doc/chalk/dialogs-rotateimage.png b/doc/chalk/dialogs-rotateimage.png
new file mode 100644
index 00000000..2f18b18e
--- /dev/null
+++ b/doc/chalk/dialogs-rotateimage.png
Binary files differ
diff --git a/doc/chalk/dialogs-rotatelayer.png b/doc/chalk/dialogs-rotatelayer.png
new file mode 100644
index 00000000..ebbdfc0b
--- /dev/null
+++ b/doc/chalk/dialogs-rotatelayer.png
Binary files differ
diff --git a/doc/chalk/dialogs-roundcorners.png b/doc/chalk/dialogs-roundcorners.png
new file mode 100644
index 00000000..141ed039
--- /dev/null
+++ b/doc/chalk/dialogs-roundcorners.png
Binary files differ
diff --git a/doc/chalk/dialogs-separateimage.png b/doc/chalk/dialogs-separateimage.png
new file mode 100644
index 00000000..9e807a44
--- /dev/null
+++ b/doc/chalk/dialogs-separateimage.png
Binary files differ
diff --git a/doc/chalk/dialogs-shearimage.png b/doc/chalk/dialogs-shearimage.png
new file mode 100644
index 00000000..384486b7
--- /dev/null
+++ b/doc/chalk/dialogs-shearimage.png
Binary files differ
diff --git a/doc/chalk/dialogs-shearlayer.png b/doc/chalk/dialogs-shearlayer.png
new file mode 100644
index 00000000..bf6903c8
--- /dev/null
+++ b/doc/chalk/dialogs-shearlayer.png
Binary files differ
diff --git a/doc/chalk/dialogs-smalltiles.png b/doc/chalk/dialogs-smalltiles.png
new file mode 100644
index 00000000..5581d6a3
--- /dev/null
+++ b/doc/chalk/dialogs-smalltiles.png
Binary files differ
diff --git a/doc/chalk/dialogs-sobel.png b/doc/chalk/dialogs-sobel.png
new file mode 100644
index 00000000..b2a8e0e4
--- /dev/null
+++ b/doc/chalk/dialogs-sobel.png
Binary files differ
diff --git a/doc/chalk/dialogs-substrate.png b/doc/chalk/dialogs-substrate.png
new file mode 100644
index 00000000..e9fbf0fa
--- /dev/null
+++ b/doc/chalk/dialogs-substrate.png
Binary files differ
diff --git a/doc/chalk/dialogs-unsharpmask.png b/doc/chalk/dialogs-unsharpmask.png
new file mode 100644
index 00000000..882faf39
--- /dev/null
+++ b/doc/chalk/dialogs-unsharpmask.png
Binary files differ
diff --git a/doc/chalk/dialogs-wave.png b/doc/chalk/dialogs-wave.png
new file mode 100644
index 00000000..ab1559be
--- /dev/null
+++ b/doc/chalk/dialogs-wave.png
Binary files differ
diff --git a/doc/chalk/dialogs-waveletnoise.png b/doc/chalk/dialogs-waveletnoise.png
new file mode 100644
index 00000000..d126eff5
--- /dev/null
+++ b/doc/chalk/dialogs-waveletnoise.png
Binary files differ
diff --git a/doc/chalk/faq.docbook b/doc/chalk/faq.docbook
new file mode 100644
index 00000000..1e4f4fe4
--- /dev/null
+++ b/doc/chalk/faq.docbook
@@ -0,0 +1,51 @@
+<chapter id="faq">
+<title>Questions and Answers</title>
+
+<para>
+Sometimes, stuff does not work as one would like. &chalk; can crash — not all
+that often, these days, but still. So you might need some help. The first thing
+to do is trying to determine what was going on, exactly. Try to reproduce the
+problem and write down what you did before the problem occurred.
+</para><para>
+Then you can create a bug report: go to the <guimenu>Help</guimenu> menu and select
+<guimenuitem>Report Bug</guimenuitem>. That way, we know exactly which version of
+&chalk; you are using. Please try to make reasonably sure that your problem has
+not been reported already! Also, please try to be as complete as possible in
+describing your problem.
+</para><para>
+You can also, if it is just that you cannot figure out how to do something
+that you can do using Photoshop (or any other drawing program) using &chalk;,
+or if you have some other question, e-mail the &chalk; developers at our
+mailing list <email>[email protected]</email>, or e-mail the program or
+documentation maintainer directly at <email>[email protected]</email> or
+<email>[email protected]</email>, respectively.
+</para>
+
+<!-- TODO Add a set of Q&As? -->
+
+&reporting.bugs;
+&updating.documentation;
+
+<!-- <qandaset id="faqlist">
+<qandaentry>
+<question>
+<para>My Mouse doesn't work. How do I quit &kmyapplication;?</para>
+</question>
+<answer>
+<para>You silly goose! Check out the <link linkend="commands">Commands
+Section</link> for the answer.</para>
+</answer>
+</qandaentry>
+<qandaentry>
+<question>
+<para>Why can't I twiddle my documents?</para>
+</question>
+<answer>
+<para>You can only twiddle your documents if you have the foobar.lib
+installed.</para>
+</answer>
+</qandaentry>
+</qandaset> -->
+
+</chapter>
+
diff --git a/doc/chalk/index.docbook b/doc/chalk/index.docbook
new file mode 100644
index 00000000..faa92a1a
--- /dev/null
+++ b/doc/chalk/index.docbook
@@ -0,0 +1,138 @@
+<?xml version="1.0" ?>
+<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
+ <!ENTITY kappname "&chalk;">
+ <!ENTITY chalk '<application>chalk</application>'>
+ <!ENTITY package "koffice">
+ <!ENTITY % addindex "IGNORE">
+ <!ENTITY % English "INCLUDE">
+ <!ENTITY introduction SYSTEM "introduction.docbook">
+ <!ENTITY tutorial SYSTEM "tutorial.docbook">
+ <!ENTITY tutorial-starting SYSTEM "tutorial-starting.docbook">
+ <!ENTITY tutorial-select-layer SYSTEM "tutorial-select-layer.docbook">
+ <!ENTITY tutorial-quick-starts SYSTEM "tutorial-quick-starts.docbook">
+ <!ENTITY tutorial-tablet SYSTEM "tutorial-tablet.docbook">
+ <!ENTITY images SYSTEM "using-images.docbook">
+ <!ENTITY views SYSTEM "using-views.docbook">
+ <!ENTITY layers SYSTEM "using-layers.docbook">
+ <!ENTITY selections SYSTEM "using-selections.docbook">
+ <!ENTITY filters SYSTEM "using-filters.docbook">
+ <!ENTITY colorspaces SYSTEM "using-colorspaces.docbook">
+ <!ENTITY commands SYSTEM "commands.docbook">
+ <!ENTITY commands-toolbars SYSTEM "commands-toolbars.docbook">
+ <!ENTITY commands-palettes SYSTEM "commands-palettes.docbook">
+ <!ENTITY commands-menus SYSTEM "commands-menus.docbook">
+ <!ENTITY commands-dialogs SYSTEM "commands-dialogs.docbook">
+ <!ENTITY settings SYSTEM "settings.docbook">
+ <!ENTITY developers SYSTEM "developers.docbook">
+ <!ENTITY developers-scripting SYSTEM "developers-scripting.docbook">
+ <!ENTITY developers-plugins SYSTEM "developers-plugins.docbook">
+ <!ENTITY faq SYSTEM "faq.docbook">
+ <!ENTITY credits SYSTEM "credits.docbook">
+ <!ENTITY installation SYSTEM "installation.docbook">
+]>
+
+<book lang="&language;">
+
+<bookinfo>
+<title>The &chalk; Handbook</title>
+
+<authorgroup>
+<author>
+<personname>
+<firstname>Boudewijn</firstname>
+<surname>Rempt</surname>
+</personname>
+<email>[email protected]</email>
+</author>
+<author>
+<personname>
+<firstname>Casper</firstname>
+<surname>Boemann</surname>
+</personname>
+<email>[email protected]</email>
+</author>
+<author>
+<personname>
+<firstname>Cyrille</firstname>
+<surname>Berger</surname>
+</personname>
+<email>[email protected]</email>
+</author>
+<author>
+<personname>
+<firstname>Sander</firstname>
+<surname>Koning</surname>
+</personname>
+<email>[email protected]</email>
+</author>
+<!-- TRANS:ROLES_OF_TRANSLATORS -->
+</authorgroup>
+
+<copyright>
+<year>2005-2006</year>
+<holder>Boudewijn Rempt</holder>
+<holder>Casper Boemann</holder>
+<holder>Cyrille Berger</holder>
+<holder>Sander Koning</holder>
+</copyright>
+
+<legalnotice>&FDLNotice;</legalnotice>
+
+<!-- Date and version information of the documentation -->
+
+<date>2006-09-13</date>
+<releaseinfo>1.6</releaseinfo>
+
+<!-- Abstract about this handbook -->
+
+<abstract>
+<para>
+&chalk; is part of the &koffice; package. &chalk; is a photo retouching, image
+editing application, but above all, a paint application that will allow you to
+create original art on your computer as if you were working with paint and
+brushes, pencils, pen and ink &mdash; or, at least, it will one day. We are
+continually working on extending &chalk; and making it better in every respect.
+</para>
+</abstract>
+
+<keywordset>
+<keyword>KDE</keyword>
+<keyword>koffice</keyword>
+<keyword>Chalk</keyword>
+<keyword>image manipulation</keyword>
+<keyword>graphics</keyword>
+<keyword>painting</keyword>
+</keywordset>
+
+</bookinfo>
+
+&introduction;
+&tutorial;
+&images;
+&views;
+&layers;
+&selections;
+&filters;
+&colorspaces;
+&commands;
+&settings;
+&developers;
+&faq;
+&credits;
+&installation;
+
+&documentation.index;
+</book>
+
+<!--
+Local Variables:
+mode: xml
+sgml-minimize-attributes:nil
+sgml-general-insert-case:lower
+sgml-indent-step:0
+sgml-indent-data:nil
+End:
+
+vim:tabstop=2:shiftwidth=2:expandtab
+kate: space-indent on; indent-width 2; tab-width 2; indent-mode none;
+-->
diff --git a/doc/chalk/installation.docbook b/doc/chalk/installation.docbook
new file mode 100644
index 00000000..88b94e47
--- /dev/null
+++ b/doc/chalk/installation.docbook
@@ -0,0 +1,73 @@
+<appendix id="installation">
+<title>Installation</title>
+
+<sect1 id="getting-kapp">
+<title>How to obtain &chalk;</title>
+
+<!-- This first entity contains boiler plate for applications that are
+part of KDE CVS. You should remove it if you are releasing your
+application -->
+
+&install.intro.documentation;
+
+</sect1>
+
+<sect1 id="requirements">
+<title>Requirements</title>
+
+<!--
+List any special requirements for your application here. This should include:
+.Libraries or other software that is not included in kdesupport,
+kdelibs, or kdebase.
+.Hardware requirements like amount of RAM, disk space, graphics card
+capabilities, screen resolution, special expansion cards, etc.
+.Operating systems the app will run on. If your app is designed only for a
+specific OS, (you wrote a graphical LILO configurator for example) put this
+information here.
+-->
+
+<para>
+&chalk; depends on the following libraries, apart from what &koffice; needs
+itself:
+</para>
+<itemizedlist>
+<listitem><para><ulink url="http://www.imagemagick.org/">Image
+Magick</ulink> &mdash; X11 Image Processing and Display
+Package</para></listitem>
+<listitem><para><ulink url="http://www.littlecms.com/">Little CMS</ulink>
+&mdash; A free color management system in 100K</para></listitem>
+<listitem><para><ulink
+url="http://www.openexr.com/">OpenEXR</ulink></para></listitem>
+</itemizedlist>
+
+<!-- For a list of updates, you may refer to the application web site
+or the ChangeLog file, or ... -->
+<para>
+You can find a list of changes in the <filename>ChangeLog</filename> file or on
+<ulink url="http://koffice.org/chalk/">&chalk;'s website</ulink>.
+</para>
+</sect1>
+
+<sect1 id="compilation">
+<title>Compilation and Installation</title>
+
+<!-- This entity contains the boilerplate text for standard -->
+<!-- compilation instructions. If your application requires any -->
+<!-- special handling, remove it, and replace with your own text. -->
+
+&install.compile.documentation;
+
+</sect1>
+
+<!--
+<sect1 id="configuration">
+<title>Configuration</title>
+
+<para>Don't forget to tell your system to start the <filename>dtd</filename>
+dicer-toaster daemon first, or &kmyapplication; won't work !</para>
+
+</sect1>
+-->
+
+</appendix>
+
diff --git a/doc/chalk/introduction.docbook b/doc/chalk/introduction.docbook
new file mode 100644
index 00000000..9384bcbc
--- /dev/null
+++ b/doc/chalk/introduction.docbook
@@ -0,0 +1,153 @@
+<chapter id="introduction">
+<title>Introduction</title>
+
+<sect1 id="introduction-chalk">
+<title>What is &chalk;?</title>
+<para>
+&chalk;, part of &koffice;, can do everything you want with images &mdash; or
+it will be able to one day. Everything from photo retouching, image editing,
+and last but not least creating original art on your computer as if you were
+working with real paint and brushes, pencils, pen and ink. Every day
+&chalk; becomes a little better, a little more useful. We are working on it,
+anyway. We, that is, Adrian, Bart, Boudewijn, Casper, Cyrille, Michael and Sven.
+It could be you, too &mdash; whether you would like to help with some artwork
+for the user interface, cool ideas for the todo, helpful bug reports, usability
+reviews or even actual code, you will not be snubbed by us.
+</para>
+<para>
+&chalk; is as much yours as it is ours. It should be fun, innovative, and
+experimental &mdash; first and foremost a pleasure to use and to hack on.
+</para>
+</sect1>
+
+<sect1 id="introduction-keyfeatures">
+<title>Key features</title>
+
+<para>The most important features &chalk; currently has to offer, are:</para>
+<itemizedlist>
+
+<listitem><para>Plugins: Chalk is extensible through plugins. There are tools,
+colorspaces, paint operations, filters and kpart-based user interface plugins.
+</para></listitem>
+
+<listitem><para>Scriptable: &chalk; is scriptable in Python and Ruby using
+Kross, the cross language scripting engine that originated in Kexi. The
+scripting is compatible with PyQt/KDE and Korundum for adding GUI
+items, such as dialog boxes.</para></listitem>
+
+<listitem><para>Color models: &chalk; uses lcms for a dependable color
+workflow using icc profiles for importing, exporting, selecting paint colors,
+printing, cutting and pasting. 8, 16, and 32 bit colorspaces are available
+(RGB, CMYK, L*a*b*, ...) and colors can be selected from a color wheel, rgb or
+grayscale sliders or with a palette.</para></listitem>
+
+<listitem><para>Editing and viewing: Unlimited undo and redo are available.
+You can cut, copy and paste between lagers and images, with conversion through
+icc profiles if this is necessary. OpenGL is supported for display. The view
+can be made fullscreen and can be split. Rulers are available, the
+image can be zoomed, and for maximizing the workspace all palette windows can
+be hidden in one go. Also a histogram palette is available.</para></listitem>
+
+<listitem><para>Images and layers: Layers and entire images can be mirrored,
+sheared, rotated and scaled, converted between colorspaces, and layers in
+different colorspaces can be merged. An image can be separated into colorspace
+channels.</para></listitem>
+
+<listitem><para>Layers: Layers can be added, removed, grouped, locked, made
+(in)visible, and re-ordered. Adjustment layers (layers which perform a filter
+function) can be added as well. A layer can be saved as a separate image and
+its colorspace can be changed.</para></listitem>
+
+<listitem><para>Tools: Through the innovative paintOp plugin system, all
+painting tools (brush, ellipse, line, etc.) can paint aliased, anti-aliased,
+erase, airbrush and more.</para></listitem>
+
+<listitem><para>Filters: &chalk; can multithread the operation of some
+filters. Filters can be previewed in the filter gallery. Available filters
+include color adjustment, sharpen or blur, emboss, raindrops, and
+more.</para></listitem>
+
+<listitem><para>Brushes: The GIMP brush shapes can be used, both colored and
+grayscale brushes and pipe brushes. Custom brushes can be created, even from
+entire layers or images. Colored brushes can also be used as
+masks.</para></listitem>
+
+</itemizedlist>
+
+<sect2 id="introduction-keyfeatures-colormanagement">
+<title>Color management</title>
+<para>
+One of the most distinguishing features in &chalk; is its color management.
+If you put two screens side to side, you will notice that there is often a lot
+of difference in the way they display colors. Even white, especially white, is
+often not the same thing at all. On one screen it can be a dirty yellow, on
+another screen a sickly bluish. Very seldom is it a creamy milk-white. The same
+holds, unfortunately, for scanners, printers and digital cameras. So, if you
+want to see the right colors on screen and on paper, being the colors that you
+saw when taking your snapshot, you will have to compensate.
+</para><para>
+&chalk; can do this for you: in &chalk;, a color is (almost) never just a set of
+numbers, one for each color channel; it is a set of numbers with information
+attached. And that extra information is contained in a profile: your image has a
+profile, your scanner has a profile, your camera should have a profile and your
+screen has a profile. When passing information from your image to your screen,
+the profiles are checked and the correct color is computed. This may cause a
+little slowness, now and then, but the result is that you can work with colors,
+instead of almost meaningless RGB triplets.
+</para><para>
+Available colorspaces are: 8 bit/channel RGB, CMYK, grayscale and wet
+watercolors, 16 bit/channel RGB, CMYK, grayscale and L*a*b*, <quote>half</quote>
+RGB, and 32 bit float RGB (HDR) and LMS.
+</para>
+</sect2>
+
+<sect2 id="introduction-keyfeatures-imageformats">
+<title>Image formats</title>
+<para>
+&chalk; currently supports the following image formats, both for importing and
+exporting, apart from its own: PNG, TIFF, JPEG, Dicom, XCF, PSD, GIF, BMP,
+XPM, Targa, RGB, and OpenEXR. Additionally, &chalk; can import
+ICO files. PSD (the Photoshop file format) is only supported up to version 6,
+from version 7 on, the Photoshop file format is closed.
+</para><para>
+Embedded icc profiles and exif information are preserved on export to
+supporting file formats. &chalk;'s native file format stores icc and exif
+information.
+</para>
+</sect2>
+
+</sect1>
+
+<sect1 id="introduction-manual">
+<title>About this manual</title>
+<para>
+We are assuming you have got a good working knowledge of &kde; and of your
+operating system. The first chapter will give you a quick tour of &chalk;'s
+cool features; the other chapters will expand on that information.
+</para>
+<note><para>
+This manual is not complete. The invitation to join us and help out extends to
+the manual, too!
+</para></note>
+<para>
+Should you have any questions, comments or suggestions, please contact the
+documentation maintainer at <email>[email protected]</email>.
+</para>
+</sect1>
+
+<sect1 id="introduction-maintainer">
+<title>About the application maintainer</title>
+<para>
+Hi! I'm Boudewijn Rempt &mdash; the current maintainer of &chalk;. I was
+educated as a linguist, retrained as a database developer, work as a Java
+hacker, study theology and I have always liked to paint and sketch a little.
+Conspiciously absent in my life have been two important things for a developer
+of an image app: mathematics and experience with graphic design. That means that
+I am probably not the best person to explain the niceties of using an image
+editor or a paint application to you. If you catch me in an error, please don't
+hesitate to mail me: <email>[email protected]</email>.
+</para>
+</sect1>
+
+</chapter>
+
diff --git a/doc/chalk/mainscreen.png b/doc/chalk/mainscreen.png
new file mode 100644
index 00000000..cce13569
--- /dev/null
+++ b/doc/chalk/mainscreen.png
Binary files differ
diff --git a/doc/chalk/mountains-burn.png b/doc/chalk/mountains-burn.png
new file mode 100644
index 00000000..812c89d2
--- /dev/null
+++ b/doc/chalk/mountains-burn.png
Binary files differ
diff --git a/doc/chalk/mountains-color.png b/doc/chalk/mountains-color.png
new file mode 100644
index 00000000..aa34bece
--- /dev/null
+++ b/doc/chalk/mountains-color.png
Binary files differ
diff --git a/doc/chalk/mountains-darken.png b/doc/chalk/mountains-darken.png
new file mode 100644
index 00000000..3b1ba616
--- /dev/null
+++ b/doc/chalk/mountains-darken.png
Binary files differ
diff --git a/doc/chalk/mountains-divide.png b/doc/chalk/mountains-divide.png
new file mode 100644
index 00000000..b2778f65
--- /dev/null
+++ b/doc/chalk/mountains-divide.png
Binary files differ
diff --git a/doc/chalk/mountains-dodge.png b/doc/chalk/mountains-dodge.png
new file mode 100644
index 00000000..47f198a9
--- /dev/null
+++ b/doc/chalk/mountains-dodge.png
Binary files differ
diff --git a/doc/chalk/mountains-hue.png b/doc/chalk/mountains-hue.png
new file mode 100644
index 00000000..09adb913
--- /dev/null
+++ b/doc/chalk/mountains-hue.png
Binary files differ
diff --git a/doc/chalk/mountains-lighten.png b/doc/chalk/mountains-lighten.png
new file mode 100644
index 00000000..8149ef33
--- /dev/null
+++ b/doc/chalk/mountains-lighten.png
Binary files differ
diff --git a/doc/chalk/mountains-multiply.png b/doc/chalk/mountains-multiply.png
new file mode 100644
index 00000000..a8769394
--- /dev/null
+++ b/doc/chalk/mountains-multiply.png
Binary files differ
diff --git a/doc/chalk/mountains-normal.png b/doc/chalk/mountains-normal.png
new file mode 100644
index 00000000..675eb53b
--- /dev/null
+++ b/doc/chalk/mountains-normal.png
Binary files differ
diff --git a/doc/chalk/mountains-original.png b/doc/chalk/mountains-original.png
new file mode 100644
index 00000000..1927e618
--- /dev/null
+++ b/doc/chalk/mountains-original.png
Binary files differ
diff --git a/doc/chalk/mountains-overlay.png b/doc/chalk/mountains-overlay.png
new file mode 100644
index 00000000..4351c1b6
--- /dev/null
+++ b/doc/chalk/mountains-overlay.png
Binary files differ
diff --git a/doc/chalk/mountains-saturation.png b/doc/chalk/mountains-saturation.png
new file mode 100644
index 00000000..2893ed9e
--- /dev/null
+++ b/doc/chalk/mountains-saturation.png
Binary files differ
diff --git a/doc/chalk/mountains-screen.png b/doc/chalk/mountains-screen.png
new file mode 100644
index 00000000..4d0f9223
--- /dev/null
+++ b/doc/chalk/mountains-screen.png
Binary files differ
diff --git a/doc/chalk/mountains-value.png b/doc/chalk/mountains-value.png
new file mode 100644
index 00000000..29714b93
--- /dev/null
+++ b/doc/chalk/mountains-value.png
Binary files differ
diff --git a/doc/chalk/mountains.png b/doc/chalk/mountains.png
new file mode 100644
index 00000000..78c9ca86
--- /dev/null
+++ b/doc/chalk/mountains.png
Binary files differ
diff --git a/doc/chalk/newimage.png b/doc/chalk/newimage.png
new file mode 100644
index 00000000..210f0912
--- /dev/null
+++ b/doc/chalk/newimage.png
Binary files differ
diff --git a/doc/chalk/palettes-colors-gray.png b/doc/chalk/palettes-colors-gray.png
new file mode 100644
index 00000000..23bd973a
--- /dev/null
+++ b/doc/chalk/palettes-colors-gray.png
Binary files differ
diff --git a/doc/chalk/palettes-colors-hsv.png b/doc/chalk/palettes-colors-hsv.png
new file mode 100644
index 00000000..2ff42357
--- /dev/null
+++ b/doc/chalk/palettes-colors-hsv.png
Binary files differ
diff --git a/doc/chalk/palettes-colors-palettes.png b/doc/chalk/palettes-colors-palettes.png
new file mode 100644
index 00000000..4f0b379a
--- /dev/null
+++ b/doc/chalk/palettes-colors-palettes.png
Binary files differ
diff --git a/doc/chalk/palettes-colors-rgb.png b/doc/chalk/palettes-colors-rgb.png
new file mode 100644
index 00000000..bbf64883
--- /dev/null
+++ b/doc/chalk/palettes-colors-rgb.png
Binary files differ
diff --git a/doc/chalk/palettes-colors-watercolors.png b/doc/chalk/palettes-colors-watercolors.png
new file mode 100644
index 00000000..63fae210
--- /dev/null
+++ b/doc/chalk/palettes-colors-watercolors.png
Binary files differ
diff --git a/doc/chalk/palettes-controlbox-bezier.png b/doc/chalk/palettes-controlbox-bezier.png
new file mode 100644
index 00000000..4e42caee
--- /dev/null
+++ b/doc/chalk/palettes-controlbox-bezier.png
Binary files differ
diff --git a/doc/chalk/palettes-controlbox-brush.png b/doc/chalk/palettes-controlbox-brush.png
new file mode 100644
index 00000000..c3c3ed08
--- /dev/null
+++ b/doc/chalk/palettes-controlbox-brush.png
Binary files differ
diff --git a/doc/chalk/palettes-controlbox-colorpicker.png b/doc/chalk/palettes-controlbox-colorpicker.png
new file mode 100644
index 00000000..7733c18d
--- /dev/null
+++ b/doc/chalk/palettes-controlbox-colorpicker.png
Binary files differ
diff --git a/doc/chalk/palettes-controlbox-contiguousfill.png b/doc/chalk/palettes-controlbox-contiguousfill.png
new file mode 100644
index 00000000..57777af9
--- /dev/null
+++ b/doc/chalk/palettes-controlbox-contiguousfill.png
Binary files differ
diff --git a/doc/chalk/palettes-controlbox-crop.png b/doc/chalk/palettes-controlbox-crop.png
new file mode 100644
index 00000000..79091134
--- /dev/null
+++ b/doc/chalk/palettes-controlbox-crop.png
Binary files differ
diff --git a/doc/chalk/palettes-controlbox-duplicate.png b/doc/chalk/palettes-controlbox-duplicate.png
new file mode 100644
index 00000000..74ec92e4
--- /dev/null
+++ b/doc/chalk/palettes-controlbox-duplicate.png
Binary files differ
diff --git a/doc/chalk/palettes-controlbox-ellipse.png b/doc/chalk/palettes-controlbox-ellipse.png
new file mode 100644
index 00000000..14ab3733
--- /dev/null
+++ b/doc/chalk/palettes-controlbox-ellipse.png
Binary files differ
diff --git a/doc/chalk/palettes-controlbox-fill.png b/doc/chalk/palettes-controlbox-fill.png
new file mode 100644
index 00000000..1120d06b
--- /dev/null
+++ b/doc/chalk/palettes-controlbox-fill.png
Binary files differ
diff --git a/doc/chalk/palettes-controlbox-gradient.png b/doc/chalk/palettes-controlbox-gradient.png
new file mode 100644
index 00000000..857824c3
--- /dev/null
+++ b/doc/chalk/palettes-controlbox-gradient.png
Binary files differ
diff --git a/doc/chalk/palettes-controlbox-histogram.png b/doc/chalk/palettes-controlbox-histogram.png
new file mode 100644
index 00000000..1dccaecd
--- /dev/null
+++ b/doc/chalk/palettes-controlbox-histogram.png
Binary files differ
diff --git a/doc/chalk/palettes-controlbox-line.png b/doc/chalk/palettes-controlbox-line.png
new file mode 100644
index 00000000..c0671204
--- /dev/null
+++ b/doc/chalk/palettes-controlbox-line.png
Binary files differ
diff --git a/doc/chalk/palettes-controlbox-overview.png b/doc/chalk/palettes-controlbox-overview.png
new file mode 100644
index 00000000..483e3ec3
--- /dev/null
+++ b/doc/chalk/palettes-controlbox-overview.png
Binary files differ
diff --git a/doc/chalk/palettes-controlbox-paintwithfilters.png b/doc/chalk/palettes-controlbox-paintwithfilters.png
new file mode 100644
index 00000000..2a0ca8ef
--- /dev/null
+++ b/doc/chalk/palettes-controlbox-paintwithfilters.png
Binary files differ
diff --git a/doc/chalk/palettes-controlbox-polygon.png b/doc/chalk/palettes-controlbox-polygon.png
new file mode 100644
index 00000000..47cfbbc1
--- /dev/null
+++ b/doc/chalk/palettes-controlbox-polygon.png
Binary files differ
diff --git a/doc/chalk/palettes-controlbox-polyline.png b/doc/chalk/palettes-controlbox-polyline.png
new file mode 100644
index 00000000..c0671204
--- /dev/null
+++ b/doc/chalk/palettes-controlbox-polyline.png
Binary files differ
diff --git a/doc/chalk/palettes-controlbox-rectangle.png b/doc/chalk/palettes-controlbox-rectangle.png
new file mode 100644
index 00000000..14ab3733
--- /dev/null
+++ b/doc/chalk/palettes-controlbox-rectangle.png
Binary files differ
diff --git a/doc/chalk/palettes-controlbox-select.png b/doc/chalk/palettes-controlbox-select.png
new file mode 100644
index 00000000..0d5e0010
--- /dev/null
+++ b/doc/chalk/palettes-controlbox-select.png
Binary files differ
diff --git a/doc/chalk/palettes-controlbox-selectcontiguous.png b/doc/chalk/palettes-controlbox-selectcontiguous.png
new file mode 100644
index 00000000..591c8096
--- /dev/null
+++ b/doc/chalk/palettes-controlbox-selectcontiguous.png
Binary files differ
diff --git a/doc/chalk/palettes-controlbox-selectmagnetic.png b/doc/chalk/palettes-controlbox-selectmagnetic.png
new file mode 100644
index 00000000..4fb3ac1b
--- /dev/null
+++ b/doc/chalk/palettes-controlbox-selectmagnetic.png
Binary files differ
diff --git a/doc/chalk/palettes-controlbox-selectsimilar.png b/doc/chalk/palettes-controlbox-selectsimilar.png
new file mode 100644
index 00000000..8eb14a9e
--- /dev/null
+++ b/doc/chalk/palettes-controlbox-selectsimilar.png
Binary files differ
diff --git a/doc/chalk/palettes-controlbox-star.png b/doc/chalk/palettes-controlbox-star.png
new file mode 100644
index 00000000..a14f709e
--- /dev/null
+++ b/doc/chalk/palettes-controlbox-star.png
Binary files differ
diff --git a/doc/chalk/palettes-controlbox-text.png b/doc/chalk/palettes-controlbox-text.png
new file mode 100644
index 00000000..98691950
--- /dev/null
+++ b/doc/chalk/palettes-controlbox-text.png
Binary files differ
diff --git a/doc/chalk/palettes-controlbox-transform.png b/doc/chalk/palettes-controlbox-transform.png
new file mode 100644
index 00000000..19ff42ba
--- /dev/null
+++ b/doc/chalk/palettes-controlbox-transform.png
Binary files differ
diff --git a/doc/chalk/palettes-layers-layers.png b/doc/chalk/palettes-layers-layers.png
new file mode 100644
index 00000000..06e20ff6
--- /dev/null
+++ b/doc/chalk/palettes-layers-layers.png
Binary files differ
diff --git a/doc/chalk/palettes-layers-scriptsmanager.png b/doc/chalk/palettes-layers-scriptsmanager.png
new file mode 100644
index 00000000..07cea20e
--- /dev/null
+++ b/doc/chalk/palettes-layers-scriptsmanager.png
Binary files differ
diff --git a/doc/chalk/preferences-color.png b/doc/chalk/preferences-color.png
new file mode 100644
index 00000000..77cc9b86
--- /dev/null
+++ b/doc/chalk/preferences-color.png
Binary files differ
diff --git a/doc/chalk/preferences-display.png b/doc/chalk/preferences-display.png
new file mode 100644
index 00000000..7c4dfa36
--- /dev/null
+++ b/doc/chalk/preferences-display.png
Binary files differ
diff --git a/doc/chalk/preferences-general.png b/doc/chalk/preferences-general.png
new file mode 100644
index 00000000..38232182
--- /dev/null
+++ b/doc/chalk/preferences-general.png
Binary files differ
diff --git a/doc/chalk/preferences-grid.png b/doc/chalk/preferences-grid.png
new file mode 100644
index 00000000..48a9376a
--- /dev/null
+++ b/doc/chalk/preferences-grid.png
Binary files differ
diff --git a/doc/chalk/preferences-performance.png b/doc/chalk/preferences-performance.png
new file mode 100644
index 00000000..045f3585
--- /dev/null
+++ b/doc/chalk/preferences-performance.png
Binary files differ
diff --git a/doc/chalk/preferences-sidebar.png b/doc/chalk/preferences-sidebar.png
new file mode 100644
index 00000000..cc72e177
--- /dev/null
+++ b/doc/chalk/preferences-sidebar.png
Binary files differ
diff --git a/doc/chalk/preferences-tablet.png b/doc/chalk/preferences-tablet.png
new file mode 100644
index 00000000..366a46d4
--- /dev/null
+++ b/doc/chalk/preferences-tablet.png
Binary files differ
diff --git a/doc/chalk/settings.docbook b/doc/chalk/settings.docbook
new file mode 100644
index 00000000..01fecf88
--- /dev/null
+++ b/doc/chalk/settings.docbook
@@ -0,0 +1,229 @@
+<chapter id="settings">
+
+<title>Settings</title>
+
+<para>This chapter describes the various settings that affect the way &chalk;
+functions and looks.</para>
+
+<sect1 id="settings-preferences">
+<title>The <guilabel>Preferences</guilabel> dialog</title>
+
+<para>
+A number of options to configure &chalk; are available via the
+<guilabel>Preferences</guilabel> dialog, which is available via
+<menuchoice><guimenu>Settings</guimenu><guimenuitem>Configure
+&chalk;...</guimenuitem></menuchoice>. The dialog is divided into several
+sections, which you can open via the sidebar at the left, shown below.
+</para>
+
+<para>
+<screenshot>
+<screeninfo>The available <guilabel>Preferences</guilabel> sections</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="preferences-sidebar.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The available <guilabel>Preferences</guilabel> sections</phrase>
+</textobject>
+<caption><para>The available <guilabel>Preferences</guilabel> sections</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<sect2 id="settings-preferences-general">
+<title>The <guilabel>General</guilabel> section</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>General</guilabel> section</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="preferences-general.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>General</guilabel> section</phrase>
+</textobject>
+<caption><para>The <guilabel>General</guilabel> section</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+This section offers three options. First of all, the setting in the
+<guilabel>Cursor shape:</guilabel> dropdown box determines what the drawing
+cursor looks like. You can choose between a cursor resembling the actual tool
+you are working with, a normal cursor, a crosshair, and a brush-shaped cursor.
+Then you can select the <guilabel>Palette Behavior</guilabel>. You can set
+here when palettes may be <quote>docked</quote> (set aside at a window
+border): always (<guilabel>Allow docking</guilabel>), never
+(<guilabel>Allow only floating</guilabel>), or when there is enough space
+(<guilabel>Allow docking only on large screens</guilabel>). The last option is
+<guilabel>Palette font size:</guilabel> which determines the text size used in
+the palettes. Set this to a larger value if you have trouble reading the text,
+with the side effect that the palettes will take more space.
+</para>
+
+</sect2>
+
+<sect2 id="settings-preferences-display">
+<title>The <guilabel>Display</guilabel> section</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Display</guilabel> section</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="preferences-display.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Display</guilabel> section</phrase>
+</textobject>
+<caption><para>The <guilabel>Display</guilabel> section</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+This section contains just one option. If your graphics card and driver have
+OpenGL support, you can enable it here to make drawing faster (the
+processor of yor graphics card will take over part of the calculations). Be
+warned, though: there are a few cases where enabling OpenGL is known to
+introduce erratic behavior.
+</para>
+
+</sect2>
+
+<sect2 id="settings-preferences-colormanagement">
+<title>The <guilabel>Color Management</guilabel> section</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Color Management</guilabel> section</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="preferences-color.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Color Management</guilabel> section</phrase>
+</textobject>
+<caption><para>The <guilabel>Color Management</guilabel> section</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+Here you can set various options related to colorspaces in rendering, editing
+and printing of images. The topmost option can be used to set the default
+color model for creating new images (useful if you usually want to create CMYK
+images, for instance). Use the <guilabel>Display</guilabel> options to let
+&chalk; know what color profile your monitor uses, and how rendering should be
+done. Under <guilabel>Printing</guilabel>, you can set the color model and
+profile for your printer. The next option determines what &chalk; should do
+when you paste an image into it that was copied from another application. If
+<guilabel>Use Blackpoint compensation</guilabel> is checked, whenever a
+colorspace conversion is needed, the black points of the source and
+destination colorspaces are matched.
+</para>
+
+</sect2>
+
+<sect2 id="settings-preferences-performance">
+<title>The <guilabel>Performance</guilabel> section</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Performance</guilabel> section</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="preferences-performance.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Performance</guilabel> section</phrase>
+</textobject>
+<caption><para>The <guilabel>Performance</guilabel> section</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+Two options are available here. The <guilabel>Maximum number of tiles kept in
+memory</guilabel> setting indicates how many tiles (image subparts) &chalk;
+will keep in memory. The default setting should be reasonable, if you are low
+or very high on memory, you may want to decrease or increase this option,
+respectively. The <guilabel>Swappiness:</guilabel> option determines how eager
+&chalk; will be to swap to disk.
+</para>
+
+</sect2>
+
+<sect2 id="settings-preferences-tablet">
+<title>The <guilabel>Tablet</guilabel> section</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Tablet</guilabel> section</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="preferences-tablet.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Tablet</guilabel> section</phrase>
+</textobject>
+<caption><para>The <guilabel>Tablet</guilabel> section</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+If you have a tablet device attached, you can enable it and set its pressure
+sensitivity in this section.
+</para><para>
+You need to activate the tablet devices you want to use with &chalk;. There
+are three supported devices: the cursor, the eraser and the stylus. You can
+activate them using the tablet sections. Only use the configuration options of
+a device if you use a non-Wacom tablet, and if the behavior of the tablet is
+unexpected, like moving when you press on the tablet for instance. In this
+situation, you can use the dialog to make sure you have a correct interaction:
+values (position, pressure, tilt...) are sent from the tablet to the computer
+in a given order, it might happen that some tablets do not use the default
+order. You can set this in the configuration options of a device.
+</para>
+
+</sect2>
+
+<sect2 id="settings-preferences-grid">
+<title>The <guilabel>Grid</guilabel> section</title>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Grid</guilabel> section</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="preferences-grid.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Grid</guilabel> section</phrase>
+</textobject>
+<caption><para>The <guilabel>Grid</guilabel> section</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+In this section, you can fine-tune &chalk;'s grid. The line styles for the
+grid can be set in the <guilabel>Styles</guilabel> option set.
+<guilabel>Colors</guilabel> allows you to choose the line colors for the grid.
+The horizontal and vertical spacing between the main lines can be set under
+<guilabel>Spacing</guilabel>, as well as the amount of subdivisions (in how
+many smaller parts a grid section is subdivided). Furthermore you can set the
+<guilabel>Offset</guilabel>: usually the grid is painted starting at the top
+left corner, if you want the first main grid lines not to start there, you can
+enter an offset (displacement) here.
+</para>
+
+</sect2>
+
+</sect1>
+
+</chapter>
diff --git a/doc/chalk/tool-bezier-example.png b/doc/chalk/tool-bezier-example.png
new file mode 100644
index 00000000..111ac2fc
--- /dev/null
+++ b/doc/chalk/tool-bezier-example.png
Binary files differ
diff --git a/doc/chalk/tool-bezier-example2.png b/doc/chalk/tool-bezier-example2.png
new file mode 100644
index 00000000..607ef541
--- /dev/null
+++ b/doc/chalk/tool-bezier-example2.png
Binary files differ
diff --git a/doc/chalk/tool-bezier-example3.png b/doc/chalk/tool-bezier-example3.png
new file mode 100644
index 00000000..7bbc917e
--- /dev/null
+++ b/doc/chalk/tool-bezier-example3.png
Binary files differ
diff --git a/doc/chalk/tool-bezier.png b/doc/chalk/tool-bezier.png
new file mode 100644
index 00000000..357cfa80
--- /dev/null
+++ b/doc/chalk/tool-bezier.png
Binary files differ
diff --git a/doc/chalk/tool-brush.png b/doc/chalk/tool-brush.png
new file mode 100644
index 00000000..9b6c79c3
--- /dev/null
+++ b/doc/chalk/tool-brush.png
Binary files differ
diff --git a/doc/chalk/tool-colorpicker.png b/doc/chalk/tool-colorpicker.png
new file mode 100644
index 00000000..daf5a94e
--- /dev/null
+++ b/doc/chalk/tool-colorpicker.png
Binary files differ
diff --git a/doc/chalk/tool-contiguousfill.png b/doc/chalk/tool-contiguousfill.png
new file mode 100644
index 00000000..ddd1b6b1
--- /dev/null
+++ b/doc/chalk/tool-contiguousfill.png
Binary files differ
diff --git a/doc/chalk/tool-crop.png b/doc/chalk/tool-crop.png
new file mode 100644
index 00000000..829727dd
--- /dev/null
+++ b/doc/chalk/tool-crop.png
Binary files differ
diff --git a/doc/chalk/tool-duplicate.png b/doc/chalk/tool-duplicate.png
new file mode 100644
index 00000000..968e7961
--- /dev/null
+++ b/doc/chalk/tool-duplicate.png
Binary files differ
diff --git a/doc/chalk/tool-ellipse.png b/doc/chalk/tool-ellipse.png
new file mode 100644
index 00000000..ba945656
--- /dev/null
+++ b/doc/chalk/tool-ellipse.png
Binary files differ
diff --git a/doc/chalk/tool-eraseselection.png b/doc/chalk/tool-eraseselection.png
new file mode 100644
index 00000000..f26b0f62
--- /dev/null
+++ b/doc/chalk/tool-eraseselection.png
Binary files differ
diff --git a/doc/chalk/tool-gradient.png b/doc/chalk/tool-gradient.png
new file mode 100644
index 00000000..22239a52
--- /dev/null
+++ b/doc/chalk/tool-gradient.png
Binary files differ
diff --git a/doc/chalk/tool-line.png b/doc/chalk/tool-line.png
new file mode 100644
index 00000000..3efd3608
--- /dev/null
+++ b/doc/chalk/tool-line.png
Binary files differ
diff --git a/doc/chalk/tool-move.png b/doc/chalk/tool-move.png
new file mode 100644
index 00000000..7a588bbe
--- /dev/null
+++ b/doc/chalk/tool-move.png
Binary files differ
diff --git a/doc/chalk/tool-paintselection.png b/doc/chalk/tool-paintselection.png
new file mode 100644
index 00000000..654bfbd9
--- /dev/null
+++ b/doc/chalk/tool-paintselection.png
Binary files differ
diff --git a/doc/chalk/tool-paintwithfilters-example.png b/doc/chalk/tool-paintwithfilters-example.png
new file mode 100644
index 00000000..7e10f5d1
--- /dev/null
+++ b/doc/chalk/tool-paintwithfilters-example.png
Binary files differ
diff --git a/doc/chalk/tool-paintwithfilters.png b/doc/chalk/tool-paintwithfilters.png
new file mode 100644
index 00000000..9eb5a824
--- /dev/null
+++ b/doc/chalk/tool-paintwithfilters.png
Binary files differ
diff --git a/doc/chalk/tool-pan.png b/doc/chalk/tool-pan.png
new file mode 100644
index 00000000..63adf1c5
--- /dev/null
+++ b/doc/chalk/tool-pan.png
Binary files differ
diff --git a/doc/chalk/tool-perspectivegrid.png b/doc/chalk/tool-perspectivegrid.png
new file mode 100644
index 00000000..30d671fe
--- /dev/null
+++ b/doc/chalk/tool-perspectivegrid.png
Binary files differ
diff --git a/doc/chalk/tool-perspectivetransform.png b/doc/chalk/tool-perspectivetransform.png
new file mode 100644
index 00000000..611947f6
--- /dev/null
+++ b/doc/chalk/tool-perspectivetransform.png
Binary files differ
diff --git a/doc/chalk/tool-polygon.png b/doc/chalk/tool-polygon.png
new file mode 100644
index 00000000..b4fabae1
--- /dev/null
+++ b/doc/chalk/tool-polygon.png
Binary files differ
diff --git a/doc/chalk/tool-polyline.png b/doc/chalk/tool-polyline.png
new file mode 100644
index 00000000..f59b09bf
--- /dev/null
+++ b/doc/chalk/tool-polyline.png
Binary files differ
diff --git a/doc/chalk/tool-rectangle.png b/doc/chalk/tool-rectangle.png
new file mode 100644
index 00000000..83ddd599
--- /dev/null
+++ b/doc/chalk/tool-rectangle.png
Binary files differ
diff --git a/doc/chalk/tool-selectbezier.png b/doc/chalk/tool-selectbezier.png
new file mode 100644
index 00000000..33690580
--- /dev/null
+++ b/doc/chalk/tool-selectbezier.png
Binary files differ
diff --git a/doc/chalk/tool-selectcontiguous.png b/doc/chalk/tool-selectcontiguous.png
new file mode 100644
index 00000000..acf04cd3
--- /dev/null
+++ b/doc/chalk/tool-selectcontiguous.png
Binary files differ
diff --git a/doc/chalk/tool-selectelliptical.png b/doc/chalk/tool-selectelliptical.png
new file mode 100644
index 00000000..e7cba67f
--- /dev/null
+++ b/doc/chalk/tool-selectelliptical.png
Binary files differ
diff --git a/doc/chalk/tool-selectmagnetic.png b/doc/chalk/tool-selectmagnetic.png
new file mode 100644
index 00000000..63489bcd
--- /dev/null
+++ b/doc/chalk/tool-selectmagnetic.png
Binary files differ
diff --git a/doc/chalk/tool-selectoutline.png b/doc/chalk/tool-selectoutline.png
new file mode 100644
index 00000000..5646f6b1
--- /dev/null
+++ b/doc/chalk/tool-selectoutline.png
Binary files differ
diff --git a/doc/chalk/tool-selectpolygonal.png b/doc/chalk/tool-selectpolygonal.png
new file mode 100644
index 00000000..dded2a46
--- /dev/null
+++ b/doc/chalk/tool-selectpolygonal.png
Binary files differ
diff --git a/doc/chalk/tool-selectrectangular.png b/doc/chalk/tool-selectrectangular.png
new file mode 100644
index 00000000..217f6b5d
--- /dev/null
+++ b/doc/chalk/tool-selectrectangular.png
Binary files differ
diff --git a/doc/chalk/tool-selectsimilar.png b/doc/chalk/tool-selectsimilar.png
new file mode 100644
index 00000000..4177294b
--- /dev/null
+++ b/doc/chalk/tool-selectsimilar.png
Binary files differ
diff --git a/doc/chalk/tool-star.png b/doc/chalk/tool-star.png
new file mode 100644
index 00000000..72a68a21
--- /dev/null
+++ b/doc/chalk/tool-star.png
Binary files differ
diff --git a/doc/chalk/tool-text.png b/doc/chalk/tool-text.png
new file mode 100644
index 00000000..b1ac269d
--- /dev/null
+++ b/doc/chalk/tool-text.png
Binary files differ
diff --git a/doc/chalk/tool-transform.png b/doc/chalk/tool-transform.png
new file mode 100644
index 00000000..c00eeebb
--- /dev/null
+++ b/doc/chalk/tool-transform.png
Binary files differ
diff --git a/doc/chalk/tool-zoom.png b/doc/chalk/tool-zoom.png
new file mode 100644
index 00000000..99eb7496
--- /dev/null
+++ b/doc/chalk/tool-zoom.png
Binary files differ
diff --git a/doc/chalk/toolbar-brushes-brushshapes-autobrush.png b/doc/chalk/toolbar-brushes-brushshapes-autobrush.png
new file mode 100644
index 00000000..c39cacad
--- /dev/null
+++ b/doc/chalk/toolbar-brushes-brushshapes-autobrush.png
Binary files differ
diff --git a/doc/chalk/toolbar-brushes-brushshapes-custombrush.png b/doc/chalk/toolbar-brushes-brushshapes-custombrush.png
new file mode 100644
index 00000000..bd57d6e9
--- /dev/null
+++ b/doc/chalk/toolbar-brushes-brushshapes-custombrush.png
Binary files differ
diff --git a/doc/chalk/toolbar-brushes-brushshapes-predefined.png b/doc/chalk/toolbar-brushes-brushshapes-predefined.png
new file mode 100644
index 00000000..677d0e27
--- /dev/null
+++ b/doc/chalk/toolbar-brushes-brushshapes-predefined.png
Binary files differ
diff --git a/doc/chalk/toolbar-brushes-gradients.png b/doc/chalk/toolbar-brushes-gradients.png
new file mode 100644
index 00000000..89ae348e
--- /dev/null
+++ b/doc/chalk/toolbar-brushes-gradients.png
Binary files differ
diff --git a/doc/chalk/toolbar-brushes-patterns-custompattern.png b/doc/chalk/toolbar-brushes-patterns-custompattern.png
new file mode 100644
index 00000000..29d0fe1c
--- /dev/null
+++ b/doc/chalk/toolbar-brushes-patterns-custompattern.png
Binary files differ
diff --git a/doc/chalk/toolbar-brushes-patterns.png b/doc/chalk/toolbar-brushes-patterns.png
new file mode 100644
index 00000000..367fa3ef
--- /dev/null
+++ b/doc/chalk/toolbar-brushes-patterns.png
Binary files differ
diff --git a/doc/chalk/toolbar-brushesandstuff.png b/doc/chalk/toolbar-brushesandstuff.png
new file mode 100644
index 00000000..e37d1a83
--- /dev/null
+++ b/doc/chalk/toolbar-brushesandstuff.png
Binary files differ
diff --git a/doc/chalk/toolbar-chalk.png b/doc/chalk/toolbar-chalk.png
new file mode 100644
index 00000000..e39c6777
--- /dev/null
+++ b/doc/chalk/toolbar-chalk.png
Binary files differ
diff --git a/doc/chalk/toolbar-edit.png b/doc/chalk/toolbar-edit.png
new file mode 100644
index 00000000..c65c1969
--- /dev/null
+++ b/doc/chalk/toolbar-edit.png
Binary files differ
diff --git a/doc/chalk/toolbar-file.png b/doc/chalk/toolbar-file.png
new file mode 100644
index 00000000..5b8293bd
--- /dev/null
+++ b/doc/chalk/toolbar-file.png
Binary files differ
diff --git a/doc/chalk/toolbar-navigation.png b/doc/chalk/toolbar-navigation.png
new file mode 100644
index 00000000..6fd40b6a
--- /dev/null
+++ b/doc/chalk/toolbar-navigation.png
Binary files differ
diff --git a/doc/chalk/toolbar-transformationtools.png b/doc/chalk/toolbar-transformationtools.png
new file mode 100644
index 00000000..07e41208
--- /dev/null
+++ b/doc/chalk/toolbar-transformationtools.png
Binary files differ
diff --git a/doc/chalk/toolbars-button-zoomin.png b/doc/chalk/toolbars-button-zoomin.png
new file mode 100644
index 00000000..896f1c12
--- /dev/null
+++ b/doc/chalk/toolbars-button-zoomin.png
Binary files differ
diff --git a/doc/chalk/toolbars-button-zoomout.png b/doc/chalk/toolbars-button-zoomout.png
new file mode 100644
index 00000000..124ab6fb
--- /dev/null
+++ b/doc/chalk/toolbars-button-zoomout.png
Binary files differ
diff --git a/doc/chalk/tutorial-quick-starts.docbook b/doc/chalk/tutorial-quick-starts.docbook
new file mode 100644
index 00000000..b22d3250
--- /dev/null
+++ b/doc/chalk/tutorial-quick-starts.docbook
@@ -0,0 +1,183 @@
+<sect1 id="tutorial-quickstarts">
+<title>Quick start guides</title>
+<sect2 id="tutorial-quickstarts-cropimage">
+<title>Crop an area and save it</title>
+
+<para>Aim: from a picture, crop an area and save that area in a new file</para>
+
+<para>Open &chalk; with the original picture.</para>
+
+<screenshot>
+<screeninfo>The original picture</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="tutorial-quick-starts1.png" format="PNG"/>
+</imageobject>
+<textobject><phrase>The original picture</phrase></textobject>
+</mediaobject>
+</screenshot>
+
+<para>Select the <guiicon>Select Rectangular</guiicon> tool in the
+&chalk; toolbar.</para>
+
+<screenshot>
+<screeninfo>The Select a rectangular area tool</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="tutorial-quick-starts2.png" format="PNG"/>
+</imageobject>
+<textobject><phrase>The Select a rectangular area tool</phrase></textobject>
+</mediaobject>
+</screenshot>
+
+<para>Select the area you want to make a new picture with. &chalk; makes the
+outside area grey.</para>
+
+<screenshot>
+<screeninfo>The selected area</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="tutorial-quick-starts3.png" format="PNG"/>
+</imageobject>
+<textobject><phrase>The selected area</phrase></textobject>
+</mediaobject>
+</screenshot>
+
+<para>Then use the
+<menuchoice><guimenu>Edit</guimenu><guimenuitem>Copy</guimenuitem></menuchoice>
+menu item or <keycombo action="simul">&Ctrl;<keycap>C</keycap></keycombo> to
+copy the selected area.</para>
+
+<para>Click again on the <guimenu>Edit</guimenu> menu.</para>
+<para>Use the <guimenuitem>Paste into new image</guimenuitem> item.</para>
+
+<screenshot>
+<screeninfo>The <guimenu>Edit</guimenu> menu</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="tutorial-quick-starts4.png" format="PNG"/>
+</imageobject>
+<textobject><phrase>The <guimenu>Edit</guimenu> menu</phrase></textobject>
+</mediaobject>
+</screenshot>
+
+<para>&chalk; opens a new window with the selected area as new image.</para>
+
+<screenshot>
+<screeninfo>The new image</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="tutorial-quick-starts5.png" format="PNG"/>
+</imageobject>
+<textobject><phrase>The new image</phrase></textobject>
+</mediaobject>
+</screenshot>
+
+<para>Save the new image.</para>
+
+</sect2>
+<sect2 id="tutorial-quickstarts-drawrectangle">
+<title>Draw a rectangle on your picture</title>
+
+<para>Aim: draw a coloured rectangle on your picture</para>
+
+<para>Open &chalk; with the original picture. My picture consists of a view of
+a toolbar in which I want to point an icon by putting a red rectangle around
+it.</para>
+
+<screenshot>
+<screeninfo>The original picture</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="tutorial-quick-starts6.png" format="PNG"/>
+</imageobject>
+<textobject><phrase>The original picture</phrase></textobject>
+</mediaobject>
+</screenshot>
+
+<para>Enable the <guilabel>Brushes and Stuff</guilabel> toolbar using
+<menuchoice><guimenu>Settings</guimenu><guimenuitem>Toolbars</guimenuitem></menuchoice>
+menu.</para>
+<para>Also make sure the palettes are viewed. If not, use the
+<menuchoice><guimenu>View</guimenu><guimenuitem>Palettes</guimenuitem></menuchoice>
+menu.</para>
+
+<screenshot>
+<screeninfo>&chalk; view</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="tutorial-quick-starts7.png" format="PNG"/>
+</imageobject>
+<textobject><phrase>&chalk; view</phrase></textobject>
+</mediaobject>
+</screenshot>
+
+<para>Click on the <guiicon>Brush Shapes</guiicon> icon in the
+<guilabel>Brushes and Stuff</guilabel> toolbar.</para>
+
+<screenshot>
+<screeninfo>The <guiicon>Brush Shapes</guiicon> icon</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="tutorial-quick-starts8.png" format="PNG"/>
+</imageobject>
+<textobject><phrase>The <guiicon>Brush Shapes</guiicon> icon</phrase></textobject>
+</mediaobject>
+</screenshot>
+
+<para>Select which brush shape you want to use among the predefined
+brushes.</para>
+
+<screenshot>
+<screeninfo>Selecting a brush shape</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="tutorial-quick-starts9.png" format="PNG"/>
+</imageobject>
+<textobject><phrase>Selecting a brush shape</phrase></textobject>
+</mediaobject>
+</screenshot>
+
+<para>Select the drawing shape on the &chalk; toolbar. I choose a
+rectangle.</para>
+
+<screenshot>
+<screeninfo>Selecting the <guiicon>Rectangle</guiicon> icon</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="tutorial-quick-starts10.png" format="PNG"/>
+</imageobject>
+<textobject><phrase>Selecting the <guiicon>Rectangle</guiicon> icon</phrase></textobject>
+</mediaobject>
+</screenshot>
+
+<para>In the <guilabel>Colors</guilabel> palette, select the color you want by clicking on one of the
+tabs and then choosing the color.</para>
+
+<screenshot>
+<screeninfo>Choosing the color</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="tutorial-quick-starts11.png" format="PNG"/>
+</imageobject>
+<textobject><phrase>Choosing the color</phrase></textobject>
+</mediaobject>
+</screenshot>
+
+<para>Finally draw your shape on your picture and save the new picture!</para>
+
+<screenshot>
+<screeninfo>Drawing</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="tutorial-quick-starts12.png" format="PNG"/>
+</imageobject>
+<textobject><phrase>Drawing</phrase></textobject>
+</mediaobject>
+</screenshot>
+
+<para>Thanks go to Anne-Marie Mahfouf for providing this tutorial.</para>
+
+</sect2>
+
+</sect1>
diff --git a/doc/chalk/tutorial-quick-starts1.png b/doc/chalk/tutorial-quick-starts1.png
new file mode 100644
index 00000000..562e1595
--- /dev/null
+++ b/doc/chalk/tutorial-quick-starts1.png
Binary files differ
diff --git a/doc/chalk/tutorial-quick-starts10.png b/doc/chalk/tutorial-quick-starts10.png
new file mode 100644
index 00000000..fc76f188
--- /dev/null
+++ b/doc/chalk/tutorial-quick-starts10.png
Binary files differ
diff --git a/doc/chalk/tutorial-quick-starts11.png b/doc/chalk/tutorial-quick-starts11.png
new file mode 100644
index 00000000..7cd5f601
--- /dev/null
+++ b/doc/chalk/tutorial-quick-starts11.png
Binary files differ
diff --git a/doc/chalk/tutorial-quick-starts12.png b/doc/chalk/tutorial-quick-starts12.png
new file mode 100644
index 00000000..a74ea54f
--- /dev/null
+++ b/doc/chalk/tutorial-quick-starts12.png
Binary files differ
diff --git a/doc/chalk/tutorial-quick-starts2.png b/doc/chalk/tutorial-quick-starts2.png
new file mode 100644
index 00000000..fe54bf6a
--- /dev/null
+++ b/doc/chalk/tutorial-quick-starts2.png
Binary files differ
diff --git a/doc/chalk/tutorial-quick-starts3.png b/doc/chalk/tutorial-quick-starts3.png
new file mode 100644
index 00000000..b1f4223b
--- /dev/null
+++ b/doc/chalk/tutorial-quick-starts3.png
Binary files differ
diff --git a/doc/chalk/tutorial-quick-starts4.png b/doc/chalk/tutorial-quick-starts4.png
new file mode 100644
index 00000000..1d6fcacb
--- /dev/null
+++ b/doc/chalk/tutorial-quick-starts4.png
Binary files differ
diff --git a/doc/chalk/tutorial-quick-starts5.png b/doc/chalk/tutorial-quick-starts5.png
new file mode 100644
index 00000000..ceb18de9
--- /dev/null
+++ b/doc/chalk/tutorial-quick-starts5.png
Binary files differ
diff --git a/doc/chalk/tutorial-quick-starts6.png b/doc/chalk/tutorial-quick-starts6.png
new file mode 100644
index 00000000..69176011
--- /dev/null
+++ b/doc/chalk/tutorial-quick-starts6.png
Binary files differ
diff --git a/doc/chalk/tutorial-quick-starts7.png b/doc/chalk/tutorial-quick-starts7.png
new file mode 100644
index 00000000..92c6ab18
--- /dev/null
+++ b/doc/chalk/tutorial-quick-starts7.png
Binary files differ
diff --git a/doc/chalk/tutorial-quick-starts8.png b/doc/chalk/tutorial-quick-starts8.png
new file mode 100644
index 00000000..fb2bed36
--- /dev/null
+++ b/doc/chalk/tutorial-quick-starts8.png
Binary files differ
diff --git a/doc/chalk/tutorial-quick-starts9.png b/doc/chalk/tutorial-quick-starts9.png
new file mode 100644
index 00000000..db763b6c
--- /dev/null
+++ b/doc/chalk/tutorial-quick-starts9.png
Binary files differ
diff --git a/doc/chalk/tutorial-select-layer-1.png b/doc/chalk/tutorial-select-layer-1.png
new file mode 100644
index 00000000..29f8b0bf
--- /dev/null
+++ b/doc/chalk/tutorial-select-layer-1.png
Binary files differ
diff --git a/doc/chalk/tutorial-select-layer-10.png b/doc/chalk/tutorial-select-layer-10.png
new file mode 100644
index 00000000..a2d92fc6
--- /dev/null
+++ b/doc/chalk/tutorial-select-layer-10.png
Binary files differ
diff --git a/doc/chalk/tutorial-select-layer-11.png b/doc/chalk/tutorial-select-layer-11.png
new file mode 100644
index 00000000..75a6c10c
--- /dev/null
+++ b/doc/chalk/tutorial-select-layer-11.png
Binary files differ
diff --git a/doc/chalk/tutorial-select-layer-12.png b/doc/chalk/tutorial-select-layer-12.png
new file mode 100644
index 00000000..95487fa7
--- /dev/null
+++ b/doc/chalk/tutorial-select-layer-12.png
Binary files differ
diff --git a/doc/chalk/tutorial-select-layer-13.png b/doc/chalk/tutorial-select-layer-13.png
new file mode 100644
index 00000000..449ec903
--- /dev/null
+++ b/doc/chalk/tutorial-select-layer-13.png
Binary files differ
diff --git a/doc/chalk/tutorial-select-layer-2.png b/doc/chalk/tutorial-select-layer-2.png
new file mode 100644
index 00000000..4552f0af
--- /dev/null
+++ b/doc/chalk/tutorial-select-layer-2.png
Binary files differ
diff --git a/doc/chalk/tutorial-select-layer-3.png b/doc/chalk/tutorial-select-layer-3.png
new file mode 100644
index 00000000..a9a7a9bd
--- /dev/null
+++ b/doc/chalk/tutorial-select-layer-3.png
Binary files differ
diff --git a/doc/chalk/tutorial-select-layer-4.png b/doc/chalk/tutorial-select-layer-4.png
new file mode 100644
index 00000000..a3506440
--- /dev/null
+++ b/doc/chalk/tutorial-select-layer-4.png
Binary files differ
diff --git a/doc/chalk/tutorial-select-layer-5.png b/doc/chalk/tutorial-select-layer-5.png
new file mode 100644
index 00000000..f0e88e46
--- /dev/null
+++ b/doc/chalk/tutorial-select-layer-5.png
Binary files differ
diff --git a/doc/chalk/tutorial-select-layer-6.png b/doc/chalk/tutorial-select-layer-6.png
new file mode 100644
index 00000000..eac0b247
--- /dev/null
+++ b/doc/chalk/tutorial-select-layer-6.png
Binary files differ
diff --git a/doc/chalk/tutorial-select-layer-7.png b/doc/chalk/tutorial-select-layer-7.png
new file mode 100644
index 00000000..6580b54b
--- /dev/null
+++ b/doc/chalk/tutorial-select-layer-7.png
Binary files differ
diff --git a/doc/chalk/tutorial-select-layer-8.png b/doc/chalk/tutorial-select-layer-8.png
new file mode 100644
index 00000000..503c0223
--- /dev/null
+++ b/doc/chalk/tutorial-select-layer-8.png
Binary files differ
diff --git a/doc/chalk/tutorial-select-layer-9.png b/doc/chalk/tutorial-select-layer-9.png
new file mode 100644
index 00000000..cebfde39
--- /dev/null
+++ b/doc/chalk/tutorial-select-layer-9.png
Binary files differ
diff --git a/doc/chalk/tutorial-select-layer-sample.png b/doc/chalk/tutorial-select-layer-sample.png
new file mode 100644
index 00000000..4def7ed3
--- /dev/null
+++ b/doc/chalk/tutorial-select-layer-sample.png
Binary files differ
diff --git a/doc/chalk/tutorial-select-layer.docbook b/doc/chalk/tutorial-select-layer.docbook
new file mode 100644
index 00000000..65a7b6ee
--- /dev/null
+++ b/doc/chalk/tutorial-select-layer.docbook
@@ -0,0 +1,263 @@
+<sect1 id="tutorial-select-layer">
+<title>A Small selections and layers tutorial</title>
+
+<!-- Does someone know a better way to do this? -->
+<screenshot>
+<screeninfo>The starting image</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="tutorial-select-layer-sample.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The starting image</phrase>
+</textobject>
+<caption><para>The starting image</para></caption>
+</mediaobject>
+</screenshot>
+
+<para>
+The image above is the image we will work with. Start chalk with this
+image (in the documentation folder
+<filename>$<envar>KDEDIR</envar>/share/doc/HTML/en/chalk/tutorial-select-layer-sample.png</filename>)
+and save it to your Home folder (by choosing <guilabel>Save Image As...</guilabel>).
+
+Then open it in &chalk; &mdash; your screen will look a bit like this (we have
+zoomed in):
+</para>
+
+<screenshot>
+<screeninfo>Chalk with the starting image</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="tutorial-select-layer-1.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The starting image</phrase>
+</textobject>
+<caption><para>The starting image</para></caption>
+</mediaobject>
+</screenshot>
+
+<para>
+Now try to select the outline of the head with the <guilabel>Select Outline</guilabel> tool:
+</para>
+
+<screenshot>
+<screeninfo>The <guilabel>Select Outline</guilabel> tool</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="tutorial-select-layer-2.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Select Outline</guilabel> tool</phrase>
+</textobject>
+<caption><para>The <guilabel>Select Outline</guilabel> tool</para></caption>
+</mediaobject>
+</screenshot>
+
+<para>
+After you select it, it should look a bit like this picture:
+</para>
+
+<screenshot>
+<screeninfo>The picture after selecting the head</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="tutorial-select-layer-3.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The picture after selecting the head</phrase>
+</textobject>
+<caption><para>The picture after selecting the head</para></caption>
+</mediaobject>
+</screenshot>
+
+<para>
+If you accidently select too much, you can cut that part easily off by switching the tool to <guilabel>Subtract</guilabel> mode:
+</para>
+
+<screenshot>
+<screeninfo>The <guilabel>Subtract</guilabel> mode</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="tutorial-select-layer-4.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Subtract</guilabel> mode</phrase>
+</textobject>
+<caption><para>The <guilabel>Subtract</guilabel> mode</para></caption>
+</mediaobject>
+</screenshot>
+
+<para>
+Now it's time to make the edges of the selection a bit fuzzy. This can be done by applying <guilabel>Feather</guilabel> to the selection.
+</para>
+
+<screenshot>
+<screeninfo><guilabel>Feather</guilabel> selection</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="tutorial-select-layer-5.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase><guilabel>Feather</guilabel> selection</phrase>
+</textobject>
+<caption><para><guilabel>Feather</guilabel> selection</para></caption>
+</mediaobject>
+</screenshot>
+
+<para>
+Now cut the selection, using
+<menuchoice><guimenu>Edit</guimenu><guimenuitem>Cut</guimenuitem></menuchoice>.
+Delete the current layer with
+<menuchoice><guimenu>Layer</guimenu><guimenuitem>Remove
+Layer</guimenuitem></menuchoice>. Paste your selection, with
+<menuchoice><guimenu>Edit</guimenu><guimenuitem>Paste</guimenuitem></menuchoice>.
+Now we give ourselves a bit more room to work in by resizing the image a bit.
+Use the <menuchoice><guimenu>Image</guimenu><guimenuitem>Change Image
+Size...</guimenuitem></menuchoice> dialog for this.
+</para>
+
+<screenshot>
+<screeninfo>The <guilabel>Image Size</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="tutorial-select-layer-6.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Image Size</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Image Size</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+
+<para>
+Add a new layer, and place it below the old layer. You do this by selecting
+the new layer in the layerbox, and then pressing the little 'down' arrow at the bottom.
+Now we are going to select the area around the head with a contiguous select
+(the tool has a selection-with-bucketfill icon at the border).
+</para>
+
+<screenshot>
+<screeninfo>The <guilabel>Select Contiguous</guilabel> tool</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="tutorial-select-layer-7.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Select Contiguous</guilabel> tool</phrase>
+</textobject>
+<caption><para>The <guilabel>Select Contiguous</guilabel> tool</para></caption>
+</mediaobject>
+</screenshot>
+
+<para>
+Make sure to select <guilabel>Sample merged</guilabel> in the tool options:
+</para>
+
+<screenshot>
+<screeninfo>The <guilabel>Sample merged</guilabel> option</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="tutorial-select-layer-8.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Sample merged</guilabel> option</phrase>
+</textobject>
+<caption><para>The <guilabel>Sample merged</guilabel> option</para></caption>
+</mediaobject>
+</screenshot>
+
+<para>
+Feather the selection again, and invert it.
+Select the <guilabel>Contiguous Fill</guilabel> tool (this is a different tool than
+the <guilabel>Contiguous Select</guilabel> tool) and use it on the layer.
+</para>
+
+<screenshot>
+<screeninfo>The <guilabel>Contiguous Fill</guilabel> tool</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="tutorial-select-layer-9.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Contiguous Fill</guilabel> tool</phrase>
+</textobject>
+<caption><para>The <guilabel>Contiguous Fill</guilabel> tool</para></caption>
+</mediaobject>
+</screenshot>
+
+<para>
+Deselect with <menuchoice><guimenu>Select</guimenu><guimenuitem>Deselect</guimenuitem></menuchoice>.
+You'll notice some artefacts of the feathering at the sides. You can select them easily with a rectangular selection and then cut them.
+</para>
+
+<screenshot>
+<screeninfo>The <guilabel>Select Rectangular</guilabel> tool</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="tutorial-select-layer-10.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Select Rectangular</guilabel> tool</phrase>
+</textobject>
+<caption><para>The <guilabel>Select Rectangular</guilabel> tool</para></caption>
+</mediaobject>
+</screenshot>
+
+<para>
+Move the shadow layer a bit down and to the right to make it look nice.
+</para>
+
+<screenshot>
+<screeninfo>Moving the shadow layer</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="tutorial-select-layer-11.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>Moving the shadow layer</phrase>
+</textobject>
+<caption><para>Moving the shadow layer</para></caption>
+</mediaobject>
+</screenshot>
+
+<para>
+Now you can use the <guilabel>Crop</guilabel> tool to make the image better fit around the head.
+</para>
+
+<screenshot>
+<screeninfo>The <guilabel>Crop</guilabel> tool</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="tutorial-select-layer-12.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Crop</guilabel> tool</phrase>
+</textobject>
+<caption><para>The <guilabel>Crop</guilabel> tool</para></caption>
+</mediaobject>
+</screenshot>
+
+<para>
+Save the image, and you're done :-)
+</para>
+
+<screenshot>
+<screeninfo>The resulting image</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="tutorial-select-layer-13.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The resulting image</phrase>
+</textobject>
+<caption><para>The resulting image</para></caption>
+</mediaobject>
+</screenshot>
+
+<para>
+Thanks go to Bart Coppens for providing this tutorial. The original is available at <ulink url="http://www.bartcoppens.be/chalk/hackergotchi.html">http://www.bartcoppens.be/chalk/hackergotchi.html</ulink>.
+</para>
+
+</sect1>
diff --git a/doc/chalk/tutorial-starting.docbook b/doc/chalk/tutorial-starting.docbook
new file mode 100644
index 00000000..bed91f24
--- /dev/null
+++ b/doc/chalk/tutorial-starting.docbook
@@ -0,0 +1,117 @@
+<sect1 id="tutorial-starting">
+<title>Starting to know &chalk;</title>
+
+<para>
+So, let's show you all the niceties. You can start &chalk; either on its own
+or from the &koffice; shell. In your &kde; menus, &chalk; should be placed
+either under Graphics or under Office &mdash; it depends a bit on who packaged
+&koffice; for you. Or do what I do: press
+<keycombo action="simul">&Alt;<keycap>F2</keycap></keycombo> (which opens the
+minicli), type <userinput><command>chalk</command></userinput> and
+press <guibutton>OK</guibutton>.
+</para>
+
+<para>
+A little later, you'll be greeted by a dialog:
+</para>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>Create Document</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="createdocument.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>Create Document</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>Create Document</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+This is standard for &koffice;: you can create a new document, choose a
+document from among your files or select a document you had opened in an earlier
+session. We have got a bunch of templates here, ordered by color model. &chalk;
+is a very flexible application and can handle many different types of images:
+<acronym>CMYK</acronym> images for printers, <acronym>RGB</acronym> images for
+the web, <acronym>RGB</acronym> images with high channel depths for
+photographers, watercolor images for painters &mdash; and more. For now, choose
+<guilabel>Custom Document</guilabel>. That will allow
+us to see the <guilabel>New Image</guilabel> dialog box:
+</para>
+
+<para>
+<screenshot>
+<screeninfo>The <guilabel>New Image</guilabel> dialog</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="newimage.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The <guilabel>New Image</guilabel> dialog</phrase>
+</textobject>
+<caption><para>The <guilabel>New Image</guilabel> dialog</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+Here you can give your document a name, determine the dimensions and the
+resolution. The combination of width/height and resolution determines how big
+your image will be on screen or on paper: if your image has a resolution of
+100x100 dpi, and your image is 1000x1000 pixels big, then, if everything is
+configured correctly, your image will be exactly 10 inches long and 10 inches
+wide if you check with a ruler, no matter the resolution of your screen or of
+your printer &mdash; if shown at 100%. However, life is seldom so well-regulated
+that this actually works out. For now, just think pixels, not inches.
+</para>
+
+<para>
+The next group of options is a lot more interesting than resolution: &chalk;
+is an enormously flexible application and you can work with many kinds of
+images. For this tutorial, just select <guilabel>RGB (8
+bits/channel)</guilabel>. You can also select a profile. For now, we leave this
+at the default setting of <guilabel>sRGB built-in - (lcms internal)</guilabel>.
+</para>
+
+<para>
+In the third option group, you can select the initial canvas color and the
+amount of opacity/transparency of this color. Furthermore you can
+add a description of the contents. We leave these options at their default
+settings as well, so click <guibutton>Create</guibutton> to actually create the new
+image.
+</para>
+
+<para>
+You will now see the main &chalk; screen.
+</para>
+
+<para>
+<screenshot>
+<screeninfo>&chalk;'s main screen</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="mainscreen.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>&chalk;'s main screen</phrase>
+</textobject>
+<caption><para>&chalk;'s main screen</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+On the left hand side and on the top, there are toolbars which offer you access
+to tools for painting, editing, and selecting.
+You can find a more detailed description of these toolbars <link
+linkend="commands-toolbars">here</link>. The actual painting area is in the
+middle. On the right side of your screen, there are various palettes, which you
+can read more about in <link linkend="commands-palettes">this section</link>.
+Finally, there is a menu bar at the top of the screen, as usually. Read more
+about it <link linkend="commands-menus">here</link>.
+</para>
+
+</sect1>
diff --git a/doc/chalk/tutorial-tablet-1.png b/doc/chalk/tutorial-tablet-1.png
new file mode 100644
index 00000000..5ab3d648
--- /dev/null
+++ b/doc/chalk/tutorial-tablet-1.png
Binary files differ
diff --git a/doc/chalk/tutorial-tablet-2.png b/doc/chalk/tutorial-tablet-2.png
new file mode 100644
index 00000000..a2cf0023
--- /dev/null
+++ b/doc/chalk/tutorial-tablet-2.png
Binary files differ
diff --git a/doc/chalk/tutorial-tablet-3.png b/doc/chalk/tutorial-tablet-3.png
new file mode 100644
index 00000000..4986cbde
--- /dev/null
+++ b/doc/chalk/tutorial-tablet-3.png
Binary files differ
diff --git a/doc/chalk/tutorial-tablet.docbook b/doc/chalk/tutorial-tablet.docbook
new file mode 100644
index 00000000..05a57504
--- /dev/null
+++ b/doc/chalk/tutorial-tablet.docbook
@@ -0,0 +1,141 @@
+<sect1 id="tutorial-tablet">
+<title>Working with tablets</title>
+
+<para>This tutorial is intended to describe you the first steps with working
+with a tablet with &chalk;. The tutorial assumes you are using &Linux;.</para>
+
+<sect2 id="tutorial-tablet-configuring">
+<title>Configuring it</title>
+
+<para>
+As any hardware it nearly works out of the box. &Linux; should recognize it
+fine, but you might have to configure the X11 server by hand. The best way to
+do this is to follow the instruction on the Wacom &Linux; howto: <ulink
+url="http://linuxwacom.sourceforge.net/index.php/howto/main" />.
+</para><para>
+Then, in &chalk;, you need to enable the various tools (in the
+<guilabel>Tablet</guilabel> section of the
+<menuchoice><guimenu>Settings</guimenu><guimenuitem>Configure
+&chalk;...</guimenuitem></menuchoice> dialog) &mdash; you can find more
+information in the <link linkend="settings-preferences-tablet">tablet settings
+section</link>.
+</para>
+
+</sect2>
+
+<sect2 id="tutorial-tablet-firstcontact">
+<title>First contact with the tablet</title>
+
+<para>
+There are three devices of your tablet that you can use with &chalk;:
+</para>
+
+<itemizedlist>
+<listitem><para>the cursor, the mouse that was shipped with the Wacom
+tablet</para></listitem>
+<listitem><para>the eraser, the round part on the top of the pen</para></listitem>
+<listitem><para>the stylus, the thin point on the bottom of the pen</para></listitem>
+</itemizedlist>
+
+<para>
+By default, when you use the stylus or the cursor on the tablet, the Brush
+tool and the pixel brush painting operation will get selected. The eraser
+device is associated to the <quote>pixel eraser</quote> painting operation.
+But if you select a different tool or a different painting operation with one
+device, &chalk; will remember the association when you switch between devices.
+</para>
+
+</sect2>
+
+<sect2 id="tutorial-tablet-outlines">
+<title>Outlines of a flower</title>
+
+<para>
+Even if you knew how to draw before you started with a tablet, you will need
+to adapt to the tablet. It doesn't feel the same. So I suggest to start with
+something simple, like a flower, and to use a picture as a model:
+</para>
+
+<para>
+<screenshot>
+<screeninfo>A flower</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="tutorial-tablet-1.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>A flower</phrase>
+</textobject>
+<caption><para>A flower</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+First, you will need to create a new layer for the outline. I advise you to
+lock the layer with the picture, it will prevent you from making mistakes.
+</para><para>
+Drawing the outline of the flower seems pretty easy, but for your first
+experience you will have a great difficulty to precisely follow the line on
+the screen while your hand has to move on the tablet. Eventually you will get
+something like this:
+</para>
+
+<para>
+<screenshot>
+<screeninfo>The outline of the flower</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="tutorial-tablet-2.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The outline of the flower</phrase>
+</textobject>
+<caption><para>The outline of the flower</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+</sect2>
+
+<sect2 id="tutorial-tablet-colorization">
+<title>Colorization</title>
+
+<para>
+For the colorization, you will need to create a third layer. You will
+have to move it below the layer with the outlines, and do not forget to lock
+the outline layer.
+</para><para>
+It's mostly easier than the outline part, just select the color you want to
+use (either with the color selector or with the color picker), then for most
+of the work you can use the fill tool: with the mouse, click on the part you
+want to fill, as by default the fill tool will take the outline into
+consideration. On the following image, the different colors of the heart of
+the flower are not seperated by outlines, to do them I just completed the
+missing outline with a yellow or brown line to create the separation between
+the different colors.
+</para>
+
+<para>
+<screenshot>
+<screeninfo>The colored flower</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="tutorial-tablet-3.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The colored flower</phrase>
+</textobject>
+<caption><para>The colored flower</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+The resulting image looks and feels like old fashion clipart, mostly because
+it lacks shadows and illumination, which are not covered by this tutorial.
+</para>
+
+</sect2>
+
+</sect1>
diff --git a/doc/chalk/tutorial.docbook b/doc/chalk/tutorial.docbook
new file mode 100644
index 00000000..fbf0ea5b
--- /dev/null
+++ b/doc/chalk/tutorial.docbook
@@ -0,0 +1,14 @@
+<chapter id="tutorial">
+<title>Tutorial</title>
+
+<note><para>
+The toolbars and palettes shown in these tutorials may not match your
+installation of &chalk;. Our apologies for this inconvenience.
+</para></note>
+
+&tutorial-starting;
+&tutorial-select-layer;
+&tutorial-quick-starts;
+&tutorial-tablet;
+
+</chapter>
diff --git a/doc/chalk/using-colorspaces.docbook b/doc/chalk/using-colorspaces.docbook
new file mode 100644
index 00000000..6a3c5481
--- /dev/null
+++ b/doc/chalk/using-colorspaces.docbook
@@ -0,0 +1,149 @@
+<chapter id="colorspaces">
+<title>Colorspaces</title>
+
+<para>
+This chapter gives information on what colorspaces are, which colorspaces
+&chalk; offers, and what you should keep in mind when using them.
+</para>
+
+<sect1 id="colorspaces-intro">
+<title>Introduction to colorspaces</title>
+
+<sect2 id="colorspaces-intro-whatis">
+<title>What is a colorspace?</title>
+
+<para>
+In short, a colorspace is a way to represent colors by specifying a number of
+parameters. As parameters, one can choose for example the amounts of red,
+green and blue light needed for the color. This results in the commonly known
+RGB colorspace. One can visualize this as a three-dimensional space, with each
+of the red, green, and blue light components being an axis in the colorspace.
+A color then corresponds to a certain point in this colorspace, defined by its
+coordinates on the three axes.
+</para>
+<note><para>
+To be more precise, a colorspace is a combination of a color model (indicating
+which axes are present) and a mapping function (indicating which values
+correspond to which colors).
+</para></note>
+<para>
+Not every color can be represented in every colorspace. Some colorspaces
+define more, or different, colors than others. The set of colors that can be
+represented in a certain colorspace is called its gamut. Because gamuts
+can differ widely, it is not guaranteed that images in a certain colorspace
+can be converted to another colorspace without having to substitute certain
+colors for others, even if they are based on the same color model.
+</para>
+
+</sect2>
+
+</sect1>
+
+<sect1 id="colorspaces-list">
+<title>Available colorspaces</title>
+
+<para>
+&chalk; offers colorspaces based on RGB, CMYK, Lab, LMS, YCbCr, and Gray
+color models. These are shortly discussed in this section.
+</para>
+
+<sect2 id="colorspaces-list-rgb">
+<title>The RGB color models</title>
+
+<para>
+The abbreviation RGB stands for Red, Green, Blue, and the color model with
+this name refers to the three light components that are emitted in displays
+(televisions, computer monitors, etcetera) to create a certain color. This
+color model is used by default in virtually any standard painting application.
+</para><para>
+When defining a color in the RGB model, its red, green and blue components are
+specified. If all components are absent (each component is emitted at 0
+percent intensity, so no light at all), the color is pure black. If all
+components are fully present (100 percent intensity), the color is pure white.
+If one component is present at full intensity and the other two are absent,
+the pure respective color is obtained.
+</para><para>
+Two more examples: if both red and green are emitted at 100 percent and blue
+is not emitted, pure yellow is obtained. A color with all three components at
+the same intensity is a shade of gray.
+</para><para>
+There are various colorspaces that implement the RGB model. For example, the
+so-called RGB8 colorspace represents each color with 8 bits per component.
+Since 8 bits allow for 256 distinct values, the total number of different
+colors that can be specified in this colorspace is 256 (red) * 256 (green) *
+256 (blue), or about 16.7 million colors. In &chalk;, a couple of RGB
+colorspaces are available, for example RGB32, which is able to distinguish
+between 4.2 billion values per component.
+</para>
+
+</sect2>
+
+<sect2 id="colorspaces-list-cmyk">
+<title>The CMYK color model</title>
+
+<para>
+CMYK is the abbreviation for Cyan, Magenta, Yellow, blacK (although officially
+the K stands for Key, black is much more commonly used). This color model is
+based on ink: a color is specified by the amount of ink needed for a point
+to be perceived as having that color.
+</para><para>
+Since CMYK colors are used by printers while RGB colors are used on-screen,
+one often wants to convert RGB colors to CMYK colors. As this cannot always be
+done correctly, printed images may turn out to look quite different than what
+is perceived on-screen.
+</para>
+
+</sect2>
+
+<sect2 id="colorspaces-list-lab">
+<title>The L*a*b* color model</title>
+
+<para>
+This color model uses three parameters for a color: its
+luminance or lightness (L*, which lies between 0 for black and
+100 for white), its position between absolute red and absolute green (a*,
+which is negative for colors closer to green and positive for colors closer to
+red), and its position between yellow and blue (b*, which is negative for
+colors closer to blue and positive for colors closer to yellow).
+</para>
+
+</sect2>
+
+<sect2 id="colorspaces-list-LMS">
+<title>The LMS color model</title>
+
+<para>
+This model is based on the contribution of actual light wave lengths to the
+color. The human eye is sensitive to three types of light waves, distinguished
+by their wave lengths: long (L), middle (M) and short (S) waves. The eye's
+sensitivity for a certain color on these three wavelengths can be expressed in
+L, M and S coordinates.
+</para>
+
+</sect2>
+
+<sect2 id="colorspaces-list-YCbCr">
+<title>The YCbCr color model</title>
+
+<para>
+The YCbCr model is often used for video systems. The Y parameter indicates the
+luminance or lightness of the color (which can be seen as a gray-tone), the Cb
+and Cr parameters indicate the chrominance (color tone): Cb places the color
+on a scale between blue and yellow, Cr indicates the place of the color
+between red and green.
+</para>
+
+</sect2>
+
+<sect2 id="colorspaces-list-Gray"><title>The Gray color model</title>
+
+<para>
+The Gray color model simply represents colors as shades of gray (with black
+and white being the extremes).
+</para>
+
+</sect2>
+
+</sect1>
+
+</chapter>
diff --git a/doc/chalk/using-filters.docbook b/doc/chalk/using-filters.docbook
new file mode 100644
index 00000000..7dd8cf8d
--- /dev/null
+++ b/doc/chalk/using-filters.docbook
@@ -0,0 +1,923 @@
+<chapter id="filters">
+<title>Filters</title>
+
+<para>
+&chalk; comes with a number of filters. These can be used to enhance or
+otherwise modify the image, either in whole or in part. Some filters are
+applied directly, others are customizable, meaning that you are presented with
+a dialog in which you can tune the result to your liking before the filter is
+applied. If a selection is active, a filter is applied on the selected part of
+the image. If no selection is active, the entire image is modified.
+</para><para>
+This chapter describes the available filters in detail. To make comparing the
+filters easier, each filter has been applied to the same image and each description
+contains a comparison image, showing the result of applying the filter described.
+The original image (with thanks to the photographer, Christian Peper) is shown
+below at half the original size. The sample images demonstrating the
+results of applying the filters, with the original image at the left and the
+modified image at the right, are shown at 25% of the original size.
+</para>
+<note><para>Some filters yield reasonable results for most images. For
+other filters though, quite some tweaking needs to be done before the desired
+outcome is achieved. If a filter does not do what you want, it might need
+more or less customising. The examples in this chapter are exaggerated to
+give a good impression of the filters. You will usually want to have more
+<quote>gentle</quote> modifications.</para></note>
+<para>
+Tip: If you want to apply a filter to everything except a certain part of your
+image (for example, you want to desaturate your image except for the centre),
+select the part you do not want to apply the filter to, use the
+<menuchoice><guimenu>Select</guimenu><guimenuitem>Invert</guimenuitem></menuchoice>
+menu option, and then apply the filter.
+</para>
+<para>
+See the <link linkend="commands-dialogs-filters">Dialogs for working with
+filters</link> section for descriptions of the settings available for the
+customizable filters.
+</para>
+
+<screenshot>
+<screeninfo>The original image</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="crocusses.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The original image</phrase>
+</textobject>
+<caption><para>The original image</para></caption>
+</mediaobject>
+</screenshot>
+
+<sect1 id="filters-autocontrast">
+<title>The Auto Contrast filter</title>
+<para>
+The Auto Contrast filter changes the contrast of your image to what should be
+the best settings. Usually this works out fine, but in some cases (for example
+photos taken under unusual lighting circumstances), the filter will not yield
+satisfying results.
+</para>
+<para>
+You can find the Auto Contrast filter in the <menuchoice><guimenu>Filter</guimenu>
+<guisubmenu>Adjust</guisubmenu></menuchoice> menu. This filter is not customizable.
+</para>
+<screenshot>
+<screeninfo>The image with the Auto Contrast filter applied to it</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="crocusses-autocontrast.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The image with the Auto Contrast filter applied to it</phrase>
+</textobject>
+<caption><para>The image with the Auto Contrast filter applied to it</para></caption>
+</mediaobject>
+</screenshot>
+</sect1>
+
+<sect1 id="filters-blur">
+<title>The Blur filter</title>
+<para>
+You can use the Blur filter to blur your image (give it a fuzzy look).
+</para>
+<para>
+You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
+<guisubmenu>Blur</guisubmenu></menuchoice> menu.
+See the section on <link linkend="commands-dialogs-filters-blur">the
+<guilabel>Blur</guilabel> dialog</link>
+for more information on its settings.
+</para>
+<screenshot>
+<screeninfo>The image with the Blur filter applied to it</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="crocusses-blur.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The image with the Blur filter applied to it</phrase>
+</textobject>
+<caption><para>The image with the Blur filter applied to it</para></caption>
+</mediaobject>
+</screenshot>
+</sect1>
+
+<sect1 id="filters-brightnesscontrast">
+<title>The Brightness / Contrast filter</title>
+<para>
+With this filter, you can adjust the brightness and contrast of your image.
+</para>
+<para>
+You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
+<guisubmenu>Adjust</guisubmenu></menuchoice> menu.
+See the section on <link
+linkend="commands-dialogs-filters-brightnesscontrast">the
+<guilabel>Brightness / Contrast</guilabel> dialog</link>
+for more information on its settings.
+</para>
+<screenshot>
+<screeninfo>The image with the Brightness / Contrast filter applied to it</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="crocusses-brightnesscontrast.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The image with the Brightness / Contrast filter applied to it</phrase>
+</textobject>
+<caption><para>The image with the Brightness / Contrast filter applied to it</para></caption>
+</mediaobject>
+</screenshot>
+</sect1>
+
+<sect1 id="filters-bumpmap">
+<title>The Bumpmap filter</title>
+<para>
+The Bumpmap filter takes two layers and uses one of these to convert the other
+one so that it will give an illusion of depth. The object layer (the layer to be
+transformed) is the actual layer that should receive the three-dimensional
+looks. The bumpmap layer is a grayscale layer, which is read and used to
+determine the height for each point of the object layer. Alternatively, the
+same layer can be used as both object layer and bumpmap layer.
+</para>
+<para>
+You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
+<guisubmenu>Map</guisubmenu></menuchoice> menu.
+See the section on <link
+linkend="commands-dialogs-filters-bumpmap">the
+<guilabel>Bumpmap</guilabel> dialog</link> for more information on its
+settings.
+</para>
+<screenshot>
+<screeninfo>The image with the Bumpmap filter applied to it</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="crocusses-bumpmap.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The image with the Bumpmap filter applied to it</phrase>
+</textobject>
+<caption><para>The image with the Bumpmap filter applied to it</para></caption>
+</mediaobject>
+</screenshot>
+</sect1>
+
+<sect1 id="filters-cimg">
+<title>The CImg Image Restoration filter</title>
+<para>
+With this filter, you can perform minor enhancements to your image, for
+example removing small scratches or adding a slight blur. The difference
+between our sample original image and the result of applying this filter with
+standard settings is virtually none.
+</para>
+<para>
+You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
+<guisubmenu>Enhance</guisubmenu></menuchoice> menu.
+See the section on <link
+linkend="commands-dialogs-filters-imagerestoration">the
+<guilabel>Image Restoration</guilabel> dialog</link>
+for more information on its settings.
+</para>
+</sect1>
+
+<sect1 id="filters-coloradjustment">
+<title>The Color Adjustment filter</title>
+<para>
+This filter allows you to change the looks of your image by increasing or
+decreasing the abundance of certain colors.
+</para>
+<para>
+You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
+<guisubmenu>Adjust</guisubmenu></menuchoice> menu.
+See the section on <link
+linkend="commands-dialogs-filters-coloradjustment">the
+<guilabel>Color Adjustment</guilabel> dialog</link>
+for more information on its settings.
+</para>
+<screenshot>
+<screeninfo>The image with the Color Adjustment filter applied to it</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="crocusses-coloradjustment.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The image with the Color Adjustment filter applied to it</phrase>
+</textobject>
+<caption><para>The image with the Color Adjustment filter applied to it</para></caption>
+</mediaobject>
+</screenshot>
+</sect1>
+
+<sect1 id="filters-colortoalpha">
+<title>The Color to Alpha filter</title>
+<para>
+This filter changes a color or color range in your image to become
+transparent, effectively clearing regions with those colors.
+</para>
+<para>
+You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
+<guisubmenu>Colors</guisubmenu></menuchoice> menu.
+See the section on <link
+linkend="commands-dialogs-filters-colortoalpha">the
+<guilabel>Color to Alpha</guilabel> dialog</link>
+for more information on its settings.
+</para>
+<screenshot>
+<screeninfo>The image with the Color to Alpha filter applied to it</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="crocusses-colortoalpha.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The image with the Color to Alpha filter applied to it</phrase>
+</textobject>
+<caption><para>The image with the Color to Alpha filter applied to it</para></caption>
+</mediaobject>
+</screenshot>
+</sect1>
+
+<sect1 id="filters-colortransfer">
+<title>The Color Transfer filter</title>
+<para>
+With this filter, you can re-color an image using the colors from another
+image. Each color in your current image will be replaced by the most alike
+color used in the other image.
+</para>
+<para>
+You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
+<guisubmenu>Colors</guisubmenu></menuchoice> menu.
+See the section on <link
+linkend="commands-dialogs-filters-colortransfer">the
+<guilabel>Color Transfer</guilabel> dialog</link>
+for more information on its settings.
+</para>
+<screenshot>
+<screeninfo>The image with the Color Transfer filter applied to it</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="crocusses-colortransfer.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The image with the Color Transfer filter applied to it</phrase>
+</textobject>
+<caption><para>The image with the Color Transfer filter applied to it</para></caption>
+</mediaobject>
+</screenshot>
+</sect1>
+
+<sect1 id="filters-customconvolution">
+<title>The Custom Convolution filter</title>
+<para>
+This filter allows you to distort your image by setting a number of
+parameters.
+</para>
+<para>
+You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
+<guisubmenu>Enhance</guisubmenu></menuchoice> menu.
+See the section on <link
+linkend="commands-dialogs-filters-customconvolution">the
+<guilabel>Custom Convolution</guilabel> dialog</link>
+for more information on its settings.
+</para>
+<screenshot>
+<screeninfo>The image with the Custom Convolution filter applied to it</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="crocusses-customconvolution.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The image with the Custom Convolution filter applied to it</phrase>
+</textobject>
+<caption><para>The image with the Custom Convolution filter applied to it</para></caption>
+</mediaobject>
+</screenshot>
+</sect1>
+
+<sect1 id="filters-desaturate">
+<title>The Desaturate filter</title>
+<para>
+This filter converts your image to grayscale by setting the saturation of each
+pixel's color to zero.
+</para>
+<para>
+You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
+<guisubmenu>Adjust</guisubmenu></menuchoice> menu.
+This filter is not customizable.
+</para>
+<screenshot>
+<screeninfo>The image with the Desaturate filter applied to it</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="crocusses-desaturate.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The image with the Desaturate filter applied to it</phrase>
+</textobject>
+<caption><para>The image with the Desaturate filter applied to it</para></caption>
+</mediaobject>
+</screenshot>
+</sect1>
+
+<sect1 id="filters-edgedetection">
+<title>The Edge Detection filters</title>
+<para>
+These filters try to detect <quote>edges</quote> (boundaries) in the picture
+and modify the image such that only these edges retain their respective colors,
+while the rest of the image is turned gray. Through the use of lighting the
+image will then get a three-dimensional look.
+</para><para>
+There are four edge detection filters available. Each of these detects edges
+from a different side (possibly considering other parts of the image as being
+edges) and will therefore obtain a different resulting image.
+</para>
+<para>
+You can find the filters in the <menuchoice><guimenu>Filter</guimenu>
+<guisubmenu>Edge Detection</guisubmenu></menuchoice> menu.
+These filters are not customizable.
+</para>
+<screenshot>
+<screeninfo>The image with the Bottom Edge Detection filter applied to
+it</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="crocusses-edgebottom.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The image with the Bottom Edge Detection filter applied to it</phrase>
+</textobject>
+<caption><para>The image with the Bottom Edge Detection filter applied to
+it</para></caption>
+</mediaobject>
+</screenshot>
+</sect1>
+
+<sect1 id="filters-emboss">
+<title>The Emboss filters</title>
+<para>
+Emboss filters work somewhat like edge detection filters, with the difference
+that embossed images are entirely gray. Areas in the picture are detected and
+are given a certain <quote>height level</quote>, which is made visible by using
+grayscale borders, making the image look like it is three-dimensional.
+</para>
+<para>
+You can find the filters in the <menuchoice><guimenu>Filter</guimenu>
+<guisubmenu>Emboss</guisubmenu></menuchoice> menu.
+Except for the Emboss with Variable Depth filter, these filters are not
+customizable. See the section on <link
+linkend="commands-dialogs-filters-emboss">the
+<guilabel>Emboss</guilabel> dialog</link>
+for more information on the settings of the Emboss with Variable Depth filter.
+</para>
+<screenshot>
+<screeninfo>The image with the Emboss in All Directions filter applied to it</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="crocusses-embossall.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The image with the Emboss in All Directions filter applied to it</phrase>
+</textobject>
+<caption><para>The image with the Emboss in All Directions filter applied to
+it</para></caption>
+</mediaobject>
+</screenshot>
+<screenshot>
+<screeninfo>The image with the Emboss with Variable depth filter applied to
+it</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="crocusses-embossvariable.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The image with the Emboss with Variable depth filter applied to it</phrase>
+</textobject>
+<caption><para>The image with the Emboss with Variable depth filter applied to
+it</para></caption>
+</mediaobject>
+</screenshot>
+</sect1>
+
+<sect1 id="filters-gaussianblur">
+<title>The Gaussian Blur filter</title>
+<para>
+This filter makes the image a little fuzzy by blurring it in a pseudo-random
+way. A gaussian algorithm is used for finding the extent to which each part of
+the image should be blurred.
+</para>
+<para>
+You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
+<guisubmenu>Blur</guisubmenu></menuchoice> menu.
+This filter is not customizable.
+</para>
+<screenshot>
+<screeninfo>The image with the Gaussian Blur filter applied to it</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="crocusses-gaussianblur.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The image with the Gaussian Blur filter applied to it</phrase>
+</textobject>
+<caption><para>The image with the Gaussian Blur filter applied to
+it</para></caption>
+</mediaobject>
+</screenshot>
+</sect1>
+
+<sect1 id="filters-gaussiannoise">
+<title>The Gaussian Noise Reduction filter</title>
+<para>
+With this filter, you can remove noise from your image.
+</para>
+<para>
+You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
+<guisubmenu>Enhance</guisubmenu></menuchoice> menu.
+See the section on <link
+linkend="commands-dialogs-filters-gaussiannoise">the
+<guilabel>Gaussian Noise Reduction</guilabel> dialog</link>
+for more information on its settings.
+</para>
+<screenshot>
+<screeninfo>The image with the Gaussian Noise Reduction filter applied to it</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="crocusses-gaussiannoise.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The image with the Gaussian Noise Reduction filter applied to it</phrase>
+</textobject>
+<caption><para>The image with the Gaussian Noise Reduction filter applied to it</para></caption>
+</mediaobject>
+</screenshot>
+</sect1>
+
+<sect1 id="filters-invert">
+<title>The Invert filter</title>
+<para>
+This filter inverts all colors. The Red, Green and Blue component of each pixel
+are taken and subtracted from 255. This means that red becomes cyan, green
+becomes purple, and blue becomes yellow. The resulting values form the new
+pixel color.
+</para>
+<para>
+You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
+<guisubmenu>Adjust</guisubmenu></menuchoice> menu.
+This filter is not customizable.
+</para>
+<screenshot>
+<screeninfo>The image with the Invert filter applied to it</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="crocusses-invert.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The image with the Invert filter applied to it</phrase>
+</textobject>
+<caption><para>The image with the Invert filter applied to it</para></caption>
+</mediaobject>
+</screenshot>
+</sect1>
+
+<sect1 id="filters-lenscorrection">
+<title>The Lens Correction filter</title>
+<para>
+This filter can fix distortions in your image resulting from for example
+<quote>pincushion</quote> lens effects, and modify some lighting.
+</para>
+<para>
+You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
+<guisubmenu>Other</guisubmenu></menuchoice> menu.
+See the section on <link
+linkend="commands-dialogs-filters-lenscorrection">the
+<guilabel>Lens Correction</guilabel> dialog</link>
+for more information on its settings.
+</para>
+<screenshot>
+<screeninfo>The image with the Lens Correction filter applied to it</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="crocusses-lenscorrection.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The image with the Lens Correction filter applied to it</phrase>
+</textobject>
+<caption><para>The image with the Lens Correction filter applied to it</para></caption>
+</mediaobject>
+</screenshot>
+</sect1>
+
+<sect1 id="filters-maximizechannel">
+<title>The Maximize Channel filter</title>
+<para>
+This filter gives each pixel in your image a new color: only the color channel
+that contributes the most to the color of a pixel is retained (except for
+gray pixels, which are kept gray).
+</para>
+<para>
+You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
+<guisubmenu>Colors</guisubmenu></menuchoice> menu.
+This filter is not customizable.
+</para>
+<screenshot>
+<screeninfo>The image with the Maximize Channel filter applied to it</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="crocusses-maximizechannel.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The image with the Maximize Channel filter applied to it</phrase>
+</textobject>
+<caption><para>The image with the Maximize Channel filter applied to it</para></caption>
+</mediaobject>
+</screenshot>
+</sect1>
+
+<sect1 id="filters-meanremoval">
+<title>The Mean Removal filter</title>
+<para>
+This filter sharpens the image by changing the colors of neighboring pixels
+with approximately the same color, so that small differences are evened out.
+</para>
+<para>
+You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
+<guisubmenu>Enhance</guisubmenu></menuchoice> menu.
+This filter is not customizable.
+</para>
+<screenshot>
+<screeninfo>The image with the Mean Removal filter applied to it</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="crocusses-meanremoval.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The image with the Mean Removal filter applied to it</phrase>
+</textobject>
+<caption><para>The image with the Mean Removal filter applied to
+it</para></caption>
+</mediaobject>
+</screenshot>
+</sect1>
+
+<sect1 id="filters-minimizechannel">
+<title>The Minimize Channel filter</title>
+<para>
+This filter gives each pixel in your image a new color: the color channel
+that contributes the most to the color of a pixel is removed (except for
+gray pixels, which are kept gray).
+</para>
+<para>
+You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
+<guisubmenu>Colors</guisubmenu></menuchoice> menu.
+This filter is not customizable.
+</para>
+<screenshot>
+<screeninfo>The image with the Minimize Channel filter applied to it</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="crocusses-minimizechannel.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The image with the Minimize Channel filter applied to it</phrase>
+</textobject>
+<caption><para>The image with the Minimize Channel filter applied to it</para></caption>
+</mediaobject>
+</screenshot>
+</sect1>
+
+<sect1 id="filters-oilpaint">
+<title>The Oilpaint filter</title>
+<para>
+An oilpaint effect is given to the image by creating patch-shaped areas in which
+the most important color is applied to the entire area.
+</para>
+<para>
+You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
+<guisubmenu>Artistic</guisubmenu></menuchoice> menu.
+See the section on <link
+linkend="commands-dialogs-filters-oilpaint">the
+<guilabel>Oilpaint</guilabel> dialog</link>
+for more information on its settings.
+</para>
+<screenshot>
+<screeninfo>The image with the Oilpaint filter applied to it</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="crocusses-oilpaint.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The image with the Oilpaint filter applied to it</phrase>
+</textobject>
+<caption><para>The image with the Oilpaint filter applied to
+it</para></caption>
+</mediaobject>
+</screenshot>
+</sect1>
+
+<sect1 id="filters-pixelize">
+<title>The Pixelize filter</title>
+<para>
+The image is pixelated by taking a square area and giving it the mean color
+value of the pixels it contains.
+</para>
+<para>
+You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
+<guisubmenu>Artistic</guisubmenu></menuchoice> menu.
+See the section on <link
+linkend="commands-dialogs-filters-pixelize">the
+<guilabel>Pixelize</guilabel> dialog</link>
+for more information on its settings.
+</para>
+<screenshot>
+<screeninfo>The image with the Pixelize filter applied to it</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="crocusses-pixelize.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The image with the Pixelize filter applied to it</phrase>
+</textobject>
+<caption><para>The image with the Pixelize filter applied to
+it</para></caption>
+</mediaobject>
+</screenshot>
+</sect1>
+
+<sect1 id="filters-raindrops">
+<title>The Raindrops filter</title>
+<para>
+This filter makes it look like raindrops have fallen on the image by distorting
+drop-shaped areas with a lens-like effect as one would see when looking
+at the image through a real raindrop. Some raindrops will have a fish-eye lens
+effect.
+</para>
+<para>
+You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
+<guisubmenu>Artistic</guisubmenu></menuchoice> menu.
+See the section on <link
+linkend="commands-dialogs-filters-raindrops">the
+<guilabel>Raindrops</guilabel> dialog</link>
+for more information on its settings.
+</para>
+<screenshot>
+<screeninfo>The image with the Raindrops filter applied to it</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="crocusses-raindrops.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The image with the Raindrops filter applied to it</phrase>
+</textobject>
+<caption><para>The image with the Raindrops filter applied to
+it</para></caption>
+</mediaobject>
+</screenshot>
+</sect1>
+
+<sect1 id="filters-randomnoise">
+<title>The Random Noise filter</title>
+<para>
+With this filter, random noise can be added to your image.
+</para>
+<para>
+You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
+<guisubmenu>Other</guisubmenu></menuchoice> menu.
+See the section on <link
+linkend="commands-dialogs-filters-randomnoise">the
+<guilabel>Random Noise</guilabel> dialog</link>
+for more information on its settings.
+</para>
+<screenshot>
+<screeninfo>The image with the Random Noise filter applied to it</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="crocusses-randomnoise.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The image with the Random Noise filter applied to it</phrase>
+</textobject>
+<caption><para>The image with the Random Noise filter applied to it</para></caption>
+</mediaobject>
+</screenshot>
+</sect1>
+
+<sect1 id="filters-randompick">
+<title>The Random Pick filter</title>
+<para>
+This filter distorts the image by interchanging pixels.
+</para>
+<para>
+You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
+<guisubmenu>Other</guisubmenu></menuchoice> menu.
+See the section on <link
+linkend="commands-dialogs-filters-randompick">the
+<guilabel>Random Pick</guilabel> dialog</link>
+for more information on its settings.
+</para>
+<screenshot>
+<screeninfo>The image with the Random Pick filter applied to it</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="crocusses-randompick.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The image with the Random Pick filter applied to it</phrase>
+</textobject>
+<caption><para>The image with the Random Pick filter applied to it</para></caption>
+</mediaobject>
+</screenshot>
+</sect1>
+
+<sect1 id="filters-roundcorners">
+<title>The Round Corners filter</title>
+<para>
+This filter just rounds off the corners of the image. This is done by making
+the outside of the rounded corner transparent.
+</para>
+<para>
+You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
+<guisubmenu>Map</guisubmenu></menuchoice> menu.
+See the section on <link
+linkend="commands-dialogs-filters-roundcorners">the
+<guilabel>Round Corners</guilabel> dialog</link>
+for more information on its settings.
+</para>
+<screenshot>
+<screeninfo>The image with the Round Corners filter applied to it</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="crocusses-roundcorners.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The image with the Round Corners filter applied to it</phrase>
+</textobject>
+<caption><para>The image with the Round Corners filter applied to
+it</para></caption>
+</mediaobject>
+</screenshot>
+</sect1>
+
+<sect1 id="filters-sharpen">
+<title>The Sharpen filter</title>
+<para>
+This filter sharpens the image.
+</para>
+<para>
+You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
+<guisubmenu>Enhance</guisubmenu></menuchoice> menu.
+This filter is not customizable.
+</para>
+<screenshot>
+<screeninfo>The image with the Sharpen filter applied to it</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="crocusses-sharpen.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The image with the Sharpen filter applied to it</phrase>
+</textobject>
+<caption><para>The image with the Sharpen filter applied to it</para></caption>
+</mediaobject>
+</screenshot>
+</sect1>
+
+<sect1 id="filters-smalltiles">
+<title>The Small Tiles filter</title>
+<para>
+The picture is reduced in size and repeated multiple times.
+</para>
+<para>
+You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
+<guisubmenu>Map</guisubmenu></menuchoice> menu.
+See the section on <link
+linkend="commands-dialogs-filters-smalltiles">the
+<guilabel>Small Tiles</guilabel> dialog</link>
+for more information on its settings.
+</para>
+<screenshot>
+<screeninfo>The image with the Small Tiles filter applied to it</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="crocusses-smalltiles.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The image with the Small Tiles filter applied to it</phrase>
+</textobject>
+<caption><para>The image with the Small Tiles filter applied to
+it</para></caption>
+</mediaobject>
+</screenshot>
+</sect1>
+
+<sect1 id="filters-sobel">
+<title>The Sobel filter</title>
+<para>
+This is a more enhanced edge detection filter.
+</para>
+<para>
+You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
+<guisubmenu>Edge Detection</guisubmenu></menuchoice> menu.
+See the section on <link
+linkend="commands-dialogs-filters-sobel">the
+<guilabel>Sobel</guilabel> dialog</link>
+for more information on its settings.
+</para>
+<screenshot>
+<screeninfo>The image with the Sobel filter applied to it</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="crocusses-sobel.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The image with the Sobel filter applied to it</phrase>
+</textobject>
+<caption><para>The image with the Sobel filter applied to it</para></caption>
+</mediaobject>
+</screenshot>
+</sect1>
+
+<sect1 id="filters-unsharpmask">
+<title>The Unsharp Mask filter</title>
+<para>
+This filter sharpens part of your image. (The name <quote>unsharp</quote> is
+historical: parts would be masked off while the rest would be made less sharp.)
+</para>
+<para>
+You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
+<guisubmenu>Enhance</guisubmenu></menuchoice> menu.
+See the section on <link
+linkend="commands-dialogs-filters-unsharpmask">the
+<guilabel>Unsharp Mask</guilabel> dialog</link>
+for more information on its settings.
+</para>
+<screenshot>
+<screeninfo>The image with the Unsharp Mask filter applied to it</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="crocusses-unsharpmask.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The image with the Unsharp Mask filter applied to it</phrase>
+</textobject>
+<caption><para>The image with the Unsharp Mask filter applied to it</para></caption>
+</mediaobject>
+</screenshot>
+</sect1>
+
+<sect1 id="filters-wave">
+<title>The Wave filter</title>
+<para>
+This filter transforms your image into a wave shape.
+</para>
+<para>
+You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
+<guisubmenu>Other</guisubmenu></menuchoice> menu.
+See the section on <link
+linkend="commands-dialogs-filters-wave">the
+<guilabel>Wave</guilabel> dialog</link>
+for more information on its settings.
+</para>
+<screenshot>
+<screeninfo>The image with the Wave filter applied to it</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="crocusses-wave.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The image with the Wave filter applied to it</phrase>
+</textobject>
+<caption><para>The image with the Wave filter applied to it</para></caption>
+</mediaobject>
+</screenshot>
+</sect1>
+
+<sect1 id="filters-waveletnoise">
+<title>The Wavelet Noise Reduction filter</title>
+<para>
+This filter reduces noise in the image by giving loose pixels a color close to
+the surrounding area. This causes small details to be lost, but can enhance the
+general view of the image when this is hampered by too many unnecessary details.
+</para>
+<para>
+You can find the filter in the <menuchoice><guimenu>Filter</guimenu>
+<guisubmenu>Enhance</guisubmenu></menuchoice> menu.
+See the section on <link
+linkend="commands-dialogs-filters-waveletnoise">the
+<guilabel>Wavelet Noise Reduction</guilabel> dialog</link>
+for more information on its settings.
+</para>
+<screenshot>
+<screeninfo>The image with the Wavelet Noise Reduction filter applied to
+it</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="crocusses-waveletnoise.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The image with the Wavelet Noise Reduction filter applied to it</phrase>
+</textobject>
+<caption><para>The image with the Wavelet Noise Reduction filter applied to
+it</para></caption>
+</mediaobject>
+</screenshot>
+</sect1>
+
+
+</chapter>
diff --git a/doc/chalk/using-images.docbook b/doc/chalk/using-images.docbook
new file mode 100644
index 00000000..4def5a41
--- /dev/null
+++ b/doc/chalk/using-images.docbook
@@ -0,0 +1,66 @@
+<chapter id="images">
+<title>Images</title>
+
+<para>
+Creating and modifying images is one of &chalk;'s core functionalities. While
+most of the other chapters in this manual focus on the things you can do when
+painting or editing, this chapter shows you what you can do with respect to
+the images themselves.
+</para>
+
+<sect1 id="images-files">
+<title>Working with files</title>
+
+<para>
+Unless you are doing some quick sketching, working with &chalk; will most
+likely involve files. You can open existing images &mdash; &chalk; can work
+with a large number of file formats, see <link
+linkend="introduction-keyfeatures-imageformats">Image formats</link> &mdash;
+or start &chalk; to create a new one. When you are done or if you want to
+continue at a later time, you can easily save your work.
+</para>
+
+<variablelist>
+
+<varlistentry><term>Opening existing files</term>
+<listitem><para>When you start &chalk;, you can open an existing image with
+the <guibutton>Open Existing Document</guibutton> button at the lower left of
+the opening dialog. You can also use the
+<menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></menuchoice>
+menu option (<keycombo action="simul">&Ctrl;<keycap>O</keycap></keycombo>).
+This will bring up the <guilabel>Open Document</guilabel> dialog in which you
+can choose an image to open. The opening dialog and the
+<guimenu>File</guimenu> menu also contain a list of the most recently used
+files for quick access.</para></listitem>
+</varlistentry>
+
+<varlistentry><term>Saving your work in progress</term>
+<listitem><para>With the
+<menuchoice><guimenu>File</guimenu><guimenuitem>Save</guimenuitem></menuchoice>
+and <menuchoice><guimenu>File</guimenu><guimenuitem>Save As...</guimenuitem></menuchoice>
+menu options (or their respective shortcuts <keycombo
+action="simul">&Ctrl;<keycap>S</keycap></keycombo> and <keycombo
+action="simul">&Ctrl;&Shift;<keycap>S</keycap></keycombo>), you can save your
+work. The former option will save the modifications to the current image, the
+latter option will show the <guilabel>Save Document</guilabel> dialog in which
+you can give a new file name for the image. If this is the first time you save
+the image, <guimenuitem>Save</guimenuitem> will ask for a file name as well.
+</para></listitem>
+</varlistentry>
+
+<varlistentry><term>Creating a new image</term>
+<listitem><para>From the opening dialog (available via the
+<menuchoice><guimenu>File</guimenu><guimenuitem>New</guimenuitem></menuchoice>
+menu option or the <keycombo
+action="simul">&Ctrl;<keycap>N</keycap></keycombo> keys), you can create a
+fully custom document or choose one of the image templates. These templates
+offer a quick way of creating a new image. See the <link
+linkend="tutorial-starting">Starting to know &chalk;</link> tutorial.
+</para></listitem>
+</varlistentry>
+
+</variablelist>
+
+</sect1>
+
+</chapter>
diff --git a/doc/chalk/using-layers.docbook b/doc/chalk/using-layers.docbook
new file mode 100644
index 00000000..3ca80291
--- /dev/null
+++ b/doc/chalk/using-layers.docbook
@@ -0,0 +1,620 @@
+<chapter id="layers">
+<title>Layers</title>
+
+<para>
+This chapter gives an overview of how layers work in &chalk;.
+</para>
+
+<sect1 id="layers-background">
+<title>Background information on layers</title>
+
+<para>
+Extensive use of &chalk; will almost require you to have some knowledge of
+layers. Using layers, you can work on one part of the image without touching
+the rest of it, and most effects are best applied on a layer, instead of on
+the whole image. Of course, if you do want to apply an effect to an entire
+image, &chalk; does offer you that possibility, and there is nothing against
+it.
+</para><para>
+The idea behind layers is quite simple. As the name suggests, layers lie on
+top of each other, and together form the layer stack. The final resulting
+image is that what you see when looking through the stack from top to bottom.
+This means that usually the upper layers of your image will have more or less
+transparency, since you cannot look through a layer which has no transparency.
+(&chalk; works with opaqueness instead of transparency. A layer that is 100
+percent opaque is 0 percent transparent, and vice versa.) A layer higher in
+the stack gets applied later than one lower in the stack. For example, if your
+image contains four layers, numbered from 1 (lowest) to 4 (highest), the
+effect that layer number 4 adds to the image, is applied to the result from
+applying layers 1 through 3.
+</para><para>
+Every image you edit in &chalk; contains layers. When you create a new image,
+the layer box (usually shown at the bottom right of your screen, see <link
+linkend="commands-palettes-layers-layers">this section</link>) will contain
+one layer. The painting and editing you do is then applied to that layer. Once
+you add more layers, you can choose on which part of the image you want to
+work, by selecting the respective layer. All further painting is then applied
+to that layer, until you select another one.
+</para><para>
+Layers are also an excellent way to check whether adding certain effects (or
+applying certain image modifications) come out right. Add a layer which
+contains what you want to try out, and show or hide it with the eye icon in
+the layer box. You can especially profit from this method if you have multiple
+effects to check out: show and hide them in any combination, and decide which
+you like best. And since you can move the layers around, you can also
+experiment with the order in which the effects are applied.
+</para><para>
+See the <link linkend="tutorial-select-layer">Selections and layers
+tutorial</link> for a small hands-on introduction.
+</para>
+</sect1>
+
+<sect1 id="layers-layerbox">
+<title>The layer box</title>
+
+<para>The layer box is the instrument you will use most to work with layers. It
+gives an overview of the layers that are present in your image, and using it
+you can manage layers by adding, removing, reordering or modifying them.
+</para><para>
+The layer box consists of three parts. The middle part gives an overview of the
+layers in the image. At the top, you can set some properties for the current
+layer. At the bottom, a couple of layer management options can be found. The
+next sections describe these three parts in more detail.
+</para>
+
+<sect2 id="layers-layerbox-overview">
+<title>Layer overview</title>
+
+<para>This part shows you which layers are present in your image. In a tree-like
+structure, the layer group hierarchy is shown: layers that are contained within
+a layer group are displayed a bit to the right to indicate their belonging to
+that group.
+</para><para>
+For each layer, a thumbnail preview and its name are shown. The layer name
+is preceded by a folder icon if it is a group layer. Furthermore, two
+indicators are present: the eye icon shows whether the layer is currently
+visible (an open eye indicates that the layer is visible, a closed eye
+indicates that it is not), and the lock icon shows whether the layer is
+locked. No changes can be made to a locked layer.
+</para><para>
+When you click on a layer's eye icon, its visibility is switched from on to
+off or vice versa. Clicking on the lock icon enables or disables editing of
+that layer. You can click on the name of the current layer to rename it.
+Note that to rename a layer, it has to be the current one. You do not need to
+activate a layer in order to make it (in)visible or (un)locked via the eye and
+lock icons, respectively: these work directly.
+</para><para>
+Doubleclick on a layer entry in the list to open the <link
+linkend="commands-dialogs-layers-layerproperties"><guilabel>Layer
+Properties</guilabel></link> dialog. This dialog shows a layer's colorspace and
+profile. You can also change its name, opacity and composite mode here.
+</para>
+</sect2>
+
+<sect2 id="layers-layerbox-options">
+<title>Layer options</title>
+<para>
+The top of the layer box contains two controls for setting properties of the
+currently selected layer. The list box at the left allows you to quickly set
+the layer's composite mode. The spin field and slider at the right can be used
+to change the layer's opacity.
+</para><para>
+At the bottom of the layer box, there are five buttons. From left to right,
+these are as follows. The <guibutton>New Layer</guibutton> icon brings up a
+submenu from which you can choose which type of layer you want to add. This
+menu can also be opened by clicking with the &RMB; on the layer box. The
+<guibutton>Move Layer Down</guibutton> and <guibutton>Move Layer Up</guibutton>
+buttons move the current layer one level down and up, respectively, within the
+current layer group. If the layer is already the last or first within the
+layer group, trying to move it further will move it out of the layer group.
+The <guibutton>Layer Properties</guibutton> button opens the <link
+linkend="commands-dialogs-layers-layerproperties"><guilabel>Layer
+Properties</guilabel></link> dialog, just as when you would have doubleclicked
+on the layer. The <guibutton>Delete Layer</guibutton> button deletes the
+current layer.
+</para>
+</sect2>
+
+</sect1>
+
+<sect1 id="layers-working">
+<title>Working with layers</title>
+
+<para>
+Because layers are quite important when extensively using &chalk;, you can
+perform a lot of operations on them. These are all available via the <link
+linkend="commands-menus-layer"><guimenu>Layer</guimenu> menu</link>. Some of
+the possibilities:
+</para>
+
+<variablelist>
+<varlistentry><term></term><listitem><para>Add, remove, and duplicate layers;</para></listitem></varlistentry>
+<varlistentry><term></term><listitem><para>Create and edit layer masks;</para></listitem></varlistentry>
+<varlistentry><term></term><listitem><para>Flip, rotate, scale and shear layers;</para></listitem></varlistentry>
+<varlistentry><term></term><listitem><para>Convert layers between colorspaces;</para></listitem></varlistentry>
+<varlistentry><term></term><listitem><para>Save layers as images;</para></listitem></varlistentry>
+<varlistentry><term></term><listitem><para>View layer histograms.</para></listitem></varlistentry>
+</variablelist>
+
+</sect1>
+
+<sect1 id="layers-adjustment">
+<title>Adjustment Layers</title>
+
+<para>Adjustment layers are layers that consist of a filter and an optional
+selection. The filter effect is applied to the composite image of all
+layers under the adjustment layer in the current layer group. The big
+thing is, adjustment layers apply these effects non-destructively. The
+original image data is not modified.
+</para><para>
+Almost all &chalk; filters are suitable for use in adjustment
+layers -- even filters that would downgrade the image quality. For instance,
+the raindrops filter converts to 8-bit RGB before working its magic. If you
+would try to use this filter directly on a 16-bit L*a*b* layer, &chalk; would
+warn you about the conversion to RGB and back again this filter would cause.
+Not so with adjustment layers: the original data isn't touched, so applying
+the filter is safe.
+</para><para>
+What about the colorspace of an adjustment layer then? In order to examine
+this issue, you need to know what happens when &chalk; renders an adjustment
+layer.
+</para>
+
+<sect2 id="layers-adjustment-selections">
+<title>Adjustment layers and selections</title>
+
+<para>If the currently active layer has an active selection, then that selection
+will be copied and used as a mask for the adjustment layer. If there is no
+active selection, then there will be no mask and the adjustment will apply to
+the entire extent of the layers under the adjustment layer in the current
+group. There is <emphasis>no</emphasis> way of adding a mask to an existing
+adjustment layer.
+</para><para>
+If there is a mask in the adjustment layer, you can edit the mask using the
+ordinary painting tools and painting operations.
+</para>
+
+</sect2>
+
+<sect2 id="layers-adjustment-projection">
+<title>A note on projections</title>
+
+<para>
+&chalk; composites the layers bottom to top, within each layer group. The
+aggregate -- or the projection as it is also called -- is then filtered by
+the adjustment layer. If there are layers on top of the adjustment layer,
+those are composited onto the projection. &chalk; converts all layer data before
+compositing, so if the bottom-most layer in an image is grayscale, all layers
+are converted to grayscale before compositing -- and that means that the
+adjustment layer projection will be grayscale, too.
+</para><para>
+With this knowledge you'll understand why &chalk; can often offer better
+performance working with layers on top of an adjustment layer which is on top
+of a complex layer structure: &chalk; uses the projection and doesn't even look
+anymore at the layers under the adjustment layer. Unless, of course, you
+change one of them.
+</para>
+</sect2>
+
+</sect1>
+
+<sect1 id="layers-composite">
+<title>Compositing modes</title>
+
+<para>
+Layers can be composited in various ways, each yielding a different effect.
+This section describes the available compositing modes. Each description is
+accompanied by an example: on top of an original image (see below), a rainbow
+gradient is added.
+</para>
+
+<para>
+<screenshot>
+<screeninfo>The original image</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="mountains-original.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The original image</phrase>
+</textobject>
+<caption><para>The original image</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<sect2 id="layers-composite-normal">
+<title><guilabel>Normal</guilabel></title>
+
+<para>
+The <guilabel>Normal</guilabel> mode does nothing special. It adds the layer
+to the image, and if no other special effects like opacity are changed, the
+underlying layers will only be visible at places where the new layer is
+itself transparent.
+</para>
+
+<para>
+<screenshot>
+<screeninfo>The gradient applied with the <guilabel>Normal</guilabel> compositing
+mode</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="mountains-normal.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The gradient applied with the <guilabel>Normal</guilabel> compositing
+mode</phrase>
+</textobject>
+<caption><para>The gradient applied with the <guilabel>Normal</guilabel> compositing
+mode</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+</sect2>
+
+<sect2 id="layers-composite-multiply">
+<title><guilabel>Multiply</guilabel></title>
+
+<para>
+The <guilabel>Multiply</guilabel> mode blends the two layers so that the
+bottom layer gets <quote>colorized</quote> by the new layer. The resulting
+image is generally quite dark.
+</para>
+
+<para>
+<screenshot>
+<screeninfo>The gradient applied with the <guilabel>Multiply</guilabel> compositing
+mode</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="mountains-multiply.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The gradient applied with the <guilabel>Multiply</guilabel> compositing
+mode</phrase>
+</textobject>
+<caption><para>The gradient applied with the <guilabel>Multiply</guilabel> compositing
+mode</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+</sect2>
+
+<sect2 id="layers-composite-burn">
+<title><guilabel>Burn</guilabel>, <guilabel>Dodge</guilabel>,
+<guilabel>Divide</guilabel> and <guilabel>Screen</guilabel></title>
+
+<para>
+The <guilabel>Burn</guilabel>, <guilabel>Dodge</guilabel>,
+<guilabel>Divide</guilabel> and <guilabel>Screen</guilabel> modes all add an
+extra <quote>burning</quote> effect by following contours instead of using
+straight lines. In addition, <guilabel>Burn</guilabel> and
+<guilabel>Divide</guilabel> use the inverted colors instead of the actual
+colors of the composited layer.
+</para>
+
+<para>
+<screenshot>
+<screeninfo>The gradient applied with the <guilabel>Burn</guilabel> compositing
+mode</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="mountains-burn.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The gradient applied with the <guilabel>Burn</guilabel> compositing
+mode</phrase>
+</textobject>
+<caption><para>The gradient applied with the <guilabel>Burn</guilabel> compositing
+mode</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+<screenshot>
+<screeninfo>The gradient applied with the <guilabel>Dodge</guilabel> compositing
+mode</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="mountains-dodge.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The gradient applied with the <guilabel>Dodge</guilabel> compositing
+mode</phrase>
+</textobject>
+<caption><para>The gradient applied with the <guilabel>Dodge</guilabel> compositing
+mode</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+<screenshot>
+<screeninfo>The gradient applied with the <guilabel>Divide</guilabel> compositing
+mode</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="mountains-divide.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The gradient applied with the <guilabel>Divide</guilabel> compositing
+mode</phrase>
+</textobject>
+<caption><para>The gradient applied with the <guilabel>Divide</guilabel> compositing
+mode</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+<screenshot>
+<screeninfo>The gradient applied with the <guilabel>Screen</guilabel> compositing
+mode</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="mountains-screen.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The gradient applied with the <guilabel>Screen</guilabel> compositing
+mode</phrase>
+</textobject>
+<caption><para>The gradient applied with the <guilabel>Screen</guilabel> compositing
+mode</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+</sect2>
+
+<sect2 id="layers-composite-overlay">
+<title><guilabel>Overlay</guilabel></title>
+
+<para>
+Like <guilabel>Multiply</guilabel>, the <guilabel>Overlay</guilabel> mode
+colorizes the underlying layer. The resulting image is about as light as
+the original layer.
+</para>
+
+<para>
+<screenshot>
+<screeninfo>The gradient applied with the <guilabel>Overlay</guilabel> compositing
+mode</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="mountains-overlay.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The gradient applied with the <guilabel>Overlay</guilabel> compositing
+mode</phrase>
+</textobject>
+<caption><para>The gradient applied with the <guilabel>Overlay</guilabel> compositing
+mode</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+</sect2>
+
+<sect2 id="layers-composite-darken">
+<title><guilabel>Darken</guilabel></title>
+
+<para>
+The <guilabel>Darken</guilabel> mode darkens the underlying layer while
+colorizing it to match the colors in the composited layer.
+</para>
+
+<para>
+<screenshot>
+<screeninfo>The gradient applied with the <guilabel>Darken</guilabel> compositing
+mode</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="mountains-darken.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The gradient applied with the <guilabel>Darken</guilabel> compositing
+mode</phrase>
+</textobject>
+<caption><para>The gradient applied with the <guilabel>Darken</guilabel> compositing
+mode</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+</sect2>
+
+<sect2 id="layers-composite-lighten">
+<title><guilabel>Lighten</guilabel></title>
+
+<para>
+The <guilabel>Lighten</guilabel> mode lightens the underlying layer while
+colorizing it to match the colors in the composited layer.
+</para>
+
+<para>
+<screenshot>
+<screeninfo>The gradient applied with the <guilabel>Lighten</guilabel> compositing
+mode</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="mountains-lighten.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The gradient applied with the <guilabel>Lighten</guilabel> compositing
+mode</phrase>
+</textobject>
+<caption><para>The gradient applied with the <guilabel>Lighten</guilabel> compositing
+mode</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+</sect2>
+
+<sect2 id="layers-composite-hue">
+<title><guilabel>Hue</guilabel>, <guilabel>Saturation</guilabel> and
+<guilabel>Value</guilabel></title>
+
+<para>
+The <guilabel>Hue</guilabel>, <guilabel>Saturation</guilabel> and
+<guilabel>Value</guilabel> modes respectively apply the hue, saturation and
+value components of the composited layer to the underlying layer.
+</para>
+
+<para>
+<screenshot>
+<screeninfo>The gradient applied with the <guilabel>Hue</guilabel> compositing
+mode</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="mountains-hue.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The gradient applied with the <guilabel>Hue</guilabel> compositing
+mode</phrase>
+</textobject>
+<caption><para>The gradient applied with the <guilabel>Hue</guilabel> compositing
+mode</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+<screenshot>
+<screeninfo>The gradient applied with the <guilabel>Saturation</guilabel> compositing
+mode</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="mountains-saturation.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The gradient applied with the <guilabel>Saturation</guilabel> compositing
+mode</phrase>
+</textobject>
+<caption><para>The gradient applied with the <guilabel>Saturation</guilabel> compositing
+mode</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+<para>
+<screenshot>
+<screeninfo>The gradient applied with the <guilabel>Value</guilabel> compositing
+mode</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="mountains-value.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The gradient applied with the <guilabel>Value</guilabel> compositing
+mode</phrase>
+</textobject>
+<caption><para>The gradient applied with the <guilabel>Value</guilabel> compositing
+mode</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+</sect2>
+
+<sect2 id="layers-composite-color">
+<title><guilabel>Color</guilabel></title>
+
+<para>
+The <guilabel>Color</guilabel> mode colorizes the underlying layer, yielding
+very strong colors.
+</para>
+
+<para>
+<screenshot>
+<screeninfo>The gradient applied with the <guilabel>Color</guilabel> compositing
+mode</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="mountains-color.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>The gradient applied with the <guilabel>Color</guilabel> compositing
+mode</phrase>
+</textobject>
+<caption><para>The gradient applied with the <guilabel>Color</guilabel> compositing
+mode</para></caption>
+</mediaobject>
+</screenshot>
+</para>
+
+</sect2>
+
+</sect1>
+
+<sect1 id="layers-masks">
+<title>Layer Masks</title>
+
+<para>
+Basically, a layer mask is a mask that you place on your paint layer. This
+will literally mask areas of the layer, so that the content underneath shows
+through. You can paint on it with greyscale colors: the more black the color,
+the less the layer under it will shine through, the more white, the less the
+layer under it will be shown. So complete white will let nothing through,
+complete black will let everything through. Basically, it is a bit like
+selecting a piece of your image, and then cutting it, so that the selected
+bits go away. So what is the use for a mask here? The big advantage is that it
+is non-destructive: if you decide that you masked out the wrong part of your
+layer, you can easily remove the mask and start anew, something a lot harder
+(not to say near impossible, especially in between sessions) with regular
+selection-cutting.
+</para><para>
+So, how to create a mask? There are 2 ways:
+</para>
+
+<itemizedlist>
+<listitem><para>
+Start from scratch.
+<menuchoice><guimenu>Layer</guimenu><guisubmenu>Mask</guisubmenu><guimenuitem>Create
+Mask</guimenuitem></menuchoice>. The mask starts with everything being
+retained, that is, a complete white mask. Basically you will not see any
+changes as long as you do not paint on it.
+</para></listitem>
+<listitem><para>
+Start from the current selection.
+<menuchoice><guimenu>Layer</guimenu><guisubmenu>Mask</guisubmenu><guimenuitem>Mask
+From Selection</guimenuitem></menuchoice>. The selectedness will be converted
+to whiteness. This means that fully selected area will be visible, fully
+unselected areas will be invisible, and the rest will be partially visible,
+depending on how much the area was selected.
+</para></listitem>
+</itemizedlist>
+
+<sect2 id="layers-masks-editing">
+<title>Editing the mask</title>
+
+<para>
+First, make sure you are editing the mask, not the layer, by making sure
+<menuchoice><guimenu>Layer</guimenu><guisubmenu>Mask</guisubmenu><guimenuitem>Edit
+Mask</guimenuitem></menuchoice> is checked. (This is checked by default.) Then
+you can paint on the layer just like before, only now you are
+painting on the mask, instead of on the layer itself. To stop painting on the
+mask, you can uncheck the <guilabel>Edit Mask</guilabel> checkbox. There's
+also the option to show the mask, through checking
+<menuchoice><guimenu>Layer</guimenu><guisubmenu>Mask</guisubmenu><guimenuitem>Show
+Mask</guimenuitem></menuchoice>. (This is not checked by
+default). This option will render the entire layer as a visual representation
+of the mask in greyscale, instead of the actual layer. This can be handy to
+see where your mask is, but it might be not as handy when you want to edit it,
+since you cannot look at the actual layer.
+</para><para>
+Other actions: you can also remove the mask if you are not satisfied with it,
+and want to start over again, or just want to remove it, with
+<menuchoice><guimenu>Layer</guimenu><guisubmenu>Mask</guisubmenu><guimenuitem>Remove
+Mask</guimenuitem></menuchoice>. You can also <quote>apply</quote> the mask,
+meaning that the mask will be made permanently. This means that the mask is
+removed, but that its effect of transparency will be committed to the layer.
+</para>
+
+</sect2>
+</sect1>
+
+</chapter>
diff --git a/doc/chalk/using-selections-1.png b/doc/chalk/using-selections-1.png
new file mode 100644
index 00000000..3efc76bb
--- /dev/null
+++ b/doc/chalk/using-selections-1.png
Binary files differ
diff --git a/doc/chalk/using-selections-2.png b/doc/chalk/using-selections-2.png
new file mode 100644
index 00000000..f2e3febc
--- /dev/null
+++ b/doc/chalk/using-selections-2.png
Binary files differ
diff --git a/doc/chalk/using-selections-3.png b/doc/chalk/using-selections-3.png
new file mode 100644
index 00000000..059d2983
--- /dev/null
+++ b/doc/chalk/using-selections-3.png
Binary files differ
diff --git a/doc/chalk/using-selections-4.png b/doc/chalk/using-selections-4.png
new file mode 100644
index 00000000..0cfec2cb
--- /dev/null
+++ b/doc/chalk/using-selections-4.png
Binary files differ
diff --git a/doc/chalk/using-selections-5.png b/doc/chalk/using-selections-5.png
new file mode 100644
index 00000000..c220306d
--- /dev/null
+++ b/doc/chalk/using-selections-5.png
Binary files differ
diff --git a/doc/chalk/using-selections-6.png b/doc/chalk/using-selections-6.png
new file mode 100644
index 00000000..7c99accd
--- /dev/null
+++ b/doc/chalk/using-selections-6.png
Binary files differ
diff --git a/doc/chalk/using-selections.docbook b/doc/chalk/using-selections.docbook
new file mode 100644
index 00000000..675088ec
--- /dev/null
+++ b/doc/chalk/using-selections.docbook
@@ -0,0 +1,200 @@
+<chapter id="selections">
+<title>Selections</title>
+
+<para>
+This chapter gives a short introduction on selections.
+</para><para>
+You can select a part of an image masking off the rest. This is handy when
+you want to cut, copy or just modify a part of the image without affecting
+the rest. For processing selected objects &chalk; applies a mask. Each pixel of
+the selection is processed based on a value of its mask, or the <quote>level
+of the selection</quote>, that can range from 0 (unselected) to 255
+(selected). Yes, that is right, you can have fractionally selected pixels.
+And by working on individual pixels you can <quote>paint</quote> your selection.
+</para><para>
+The selection mask is visualized with unselected pixels having a blueish
+tint, and selected pixels looking like normal. Fractionally selected pixels
+are shown as something in between. Additionally a red border is drawn around
+the selected areas. Fractionally selected pixels are inside the border, so
+even inside the red border you can possibly see the blueish tint on some pixels.
+</para>
+
+<sect1 id="selections-making">
+<title>Making a selection</title>
+<para>
+A whole range of tools exist to make selections. From rectangles, ellipses
+and freehand to the more exotic like color range select. When you make
+several selections they add up. So a rectangle select followed by an
+ellipse select select both areas. Later on, you can subtract areas from
+the selection by using, for example, the <guilabel>Erase Selection</guilabel> tool.
+</para><para>
+To get back to normal (no active selection), choose
+<menuchoice><guimenu>Select</guimenu><guimenuitem>Deselect</guimenuitem>
+</menuchoice>. To select all pixels, choose
+<menuchoice><guimenu>Select</guimenu><guimenuitem>Select All</guimenuitem>
+</menuchoice>.
+</para><para>
+You may think that those two actions give the same result, but it
+is much more efficient to have no active selection than to have selected
+everything.
+</para><para>
+After having deselected you can bring your selection back by choosing
+<menuchoice><guimenu>Select</guimenu><guimenuitem>Reselect</guimenuitem>
+</menuchoice>.
+</para>
+</sect1>
+
+<sect1 id="selections-painting">
+<title>Painting your selection</title>
+<para>
+As said above you can essentially paint your selection, and just like
+when you paint normally you can choose to paint your selection freehand or
+guided with rectangles, ellipses, &etc;. You also have the choice of different
+paint tools like pen, brush, airbrush, &etc;. Choose the guide tool, and the
+paint tool in the toolbox, and go ahead and <quote>paint</quote> your
+selection.
+</para><para>
+The guide tools work just like you may be used to from other applications. So
+holding down shift while drawing a rectangle or an ellipse still forces them to
+be a square or a circle respectively.
+</para>
+
+<screenshot>
+<screeninfo>Painting a selection</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="using-selections-1.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>Painting a selection</phrase>
+</textobject>
+<caption><para>Painting a selection</para></caption>
+</mediaobject>
+</screenshot>
+<screenshot>
+<screeninfo>Painting a selection</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="using-selections-2.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>Painting a selection</phrase>
+</textobject>
+<caption><para>Painting a selection</para></caption>
+</mediaobject>
+</screenshot>
+
+</sect1>
+
+<sect1 id="selections-unselecting">
+<title>Unselecting</title>
+<para>
+All the selection paint tools have an option to add or subtract from the
+selection. This means that you can use all your familiar tools to both select
+and unselect. There is also a true selection eraser among the selection paint
+tools.
+</para>
+
+<screenshot>
+<screeninfo>Unselecting</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="using-selections-3.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>Unselecting</phrase>
+</textobject>
+<caption><para>Unselecting</para></caption>
+</mediaobject>
+</screenshot>
+</sect1>
+
+<sect1 id="selections-making-new">
+<title>Making a new selection</title>
+<para>
+When you want to make a new selection, replacing the currently active one, you
+first need to deselect the active selection. Choose
+<menuchoice><guimenu>Select</guimenu><guimenuitem>Deselect</guimenuitem>
+</menuchoice>.
+</para>
+</sect1>
+
+<sect1 id="selections-contigious">
+<title>Selecting a contiguous area (magic wand)</title>
+<para>
+To follow the analogy of painting your selection &chalk; also provides an
+equivalent to filling a contiguous area. Some paint applications call this
+selection tool the magic wand tool. What it does is select the nearby
+pixels as long as they have nearly the same color as the pixel you click
+on. The selection floods out from the point you click on. In the fuzziness
+option you can set how different the colors are allowed to be before the
+flooding stops.
+</para>
+
+<screenshot>
+<screeninfo>Before the magic wand</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="using-selections-4.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>Before the magic wand</phrase>
+</textobject>
+<caption><para>Before the magic wand</para></caption>
+</mediaobject>
+</screenshot>
+
+<screenshot>
+<screeninfo>A magic wand selection</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="using-selections-5.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>A magic wand selection</phrase>
+</textobject>
+<caption><para>A magic wand selection</para></caption>
+</mediaobject>
+</screenshot>
+
+</sect1>
+
+<sect1 id="selections-similar">
+<title>Selecting similar colors</title>
+<para>
+The <guilabel>Select Similar</guilabel> tool lets you pick a pixel and then select all pixels that
+have a similar color. Picking a color in one corner of the image may select a
+pixel in another corner if they have similar color.
+With the <guilabel>Fuzziness</guilabel> option you can set how similar the colors must be to become
+selected.
+</para>
+
+<screenshot>
+<screeninfo>Selecting similar colors</screeninfo>
+<mediaobject>
+<imageobject>
+<imagedata fileref="using-selections-6.png" format="PNG" />
+</imageobject>
+<textobject>
+<phrase>Selecting similar colors</phrase>
+</textobject>
+<caption><para>Selecting similar colors</para></caption>
+</mediaobject>
+</screenshot>
+</sect1>
+
+<sect1 id="selections-inverting">
+<title>Inverting the selection</title>
+<para>
+In some cases it is easier to specify your selection the other way around. That
+is, first you select the parts that ultimately should not be selected and then
+then you choose
+<menuchoice><guimenu>Select</guimenu><guimenuitem>Invert</guimenuitem>
+</menuchoice>.
+What invert does, is that for every pixel it flips the selection level so to
+speak, by setting it to 256 minus the current selection level. Thus what was
+selected becomes unselected and vice versa.
+</para>
+</sect1>
+
+</chapter>
diff --git a/doc/chalk/using-views.docbook b/doc/chalk/using-views.docbook
new file mode 100644
index 00000000..e9d184a9
--- /dev/null
+++ b/doc/chalk/using-views.docbook
@@ -0,0 +1,167 @@
+<chapter id="views">
+<title>Views</title>
+
+<para>
+One of the most important things you need to know when working with a painting
+or image editing application, is how to adapt the view of your image to your
+(changing) needs. This chapter describes the various possibilities &chalk;
+offers.
+</para>
+
+<sect1 id="views-zooming">
+<title>Zooming</title>
+
+<para>
+By zooming, you can view your images at various levels of detail. Zooming out
+will show a larger part of the image, but with less detail. &chalk; offers a
+couple of options that affect which part of the image is shown:
+</para>
+
+<variablelist>
+
+<varlistentry><term>Zooming in</term>
+<listitem><para>Zooming in allows you to see more details, but you will only
+see a smaller part of the image. You can zoom in by choosing the
+<menuchoice><guimenu>View</guimenu><guimenuitem>Zoom
+in</guimenuitem></menuchoice> menu item, by clicking the
+<inlinemediaobject><imageobject><imagedata
+fileref="toolbars-button-zoomin.png" format="PNG"/>
+</imageobject></inlinemediaobject> <guilabel>Zoom in</guilabel> button on the
+toolbar, or by pressing the <keycombo
+action="simul">&Ctrl;<keycap>+</keycap></keycombo> keys.
+You can zoom in up to 1600% (a 16:1 ratio) via a number of fixed zoom levels.
+</para></listitem>
+</varlistentry>
+
+<varlistentry><term>Zooming out</term>
+<listitem><para>Zooming out allows you to see a larger part of the image while
+losing some detail. Zooming out can be done by choosing the
+<menuchoice><guimenu>View</guimenu><guimenuitem>Zoom
+out</guimenuitem></menuchoice> menu item, by clicking the
+<inlinemediaobject><imageobject><imagedata
+fileref="toolbars-button-zoomout.png" format="PNG"/>
+</imageobject></inlinemediaobject> <guilabel>Zoom out</guilabel> button on the
+toolbar, or by pressing the <keycombo
+action="simul">&Ctrl;<keycap>-</keycap></keycombo> keys.
+You can zoom out up to 0.2% (a 1:500 ratio) via a number of fixed zoom levels.
+</para></listitem>
+</varlistentry>
+
+<varlistentry><term>Going back to 100%</term>
+<listitem><para>As viewing your image at its real size is quite handy at
+times, you can do so via the
+<menuchoice><guimenu>View</guimenu><guimenuitem>Actual
+pixels</guimenuitem></menuchoice> menu item or by pressing <keycombo
+action="simul">&Ctrl;<keycap>0</keycap></keycombo>.
+</para></listitem>
+</varlistentry>
+
+<varlistentry><term>Zooming in and out from the <guilabel>Overview</guilabel>
+tab</term>
+<listitem><para>The <guilabel>Overview</guilabel> tab of the control box
+(usually found at the right hand side of the &chalk; window) also allows you
+to change the zoom level by using the slider or the spinbox. Slightly
+different zoom levels are available here, so if zooming in or out as described
+above does not produce a view you want, you can try using this option. The
+<guibutton>1:1</guibutton> button offers another way of getting back to a 100%
+zoom.</para></listitem>
+</varlistentry>
+
+<varlistentry><term>Special zooms</term>
+<listitem><para>There are two more special ways of zooming. The
+<menuchoice><guimenu>View</guimenu><guimenuitem>Fit to
+Page</guimenuitem></menuchoice> menu item zooms your image such that it is
+as large as possible while remaining entirely visible. The
+<menuchoice><guimenu>View</guimenu><guimenuitem>Full Screen
+Mode</guimenuitem></menuchoice> menu item (pressing <keycombo
+action="simul">&Ctrl;&Shift;<keycap>F</keycap></keycombo> will also activate
+this mode) enlarges the &chalk; window to fill your entire screen, removing
+the title bar as well. Although this is not a <quote>real</quote> way of
+zooming, it can help you by showing just that little bit more of your
+image.</para></listitem>
+</varlistentry>
+
+</variablelist>
+
+</sect1>
+
+<sect1 id="views-views">
+<title>Working with views</title>
+
+<para>
+Apart from changing the zoom level of your view, you can also open different
+views for the same image. This way, you can for example look at two different
+parts of your image that would not fit on your screen together otherwise.
+</para>
+
+<variablelist>
+
+<varlistentry><term>New view windows</term>
+<listitem><para>You can open a new &chalk; window for your image by choosing
+<menuchoice><guimenu>View</guimenu><guimenuitem>New
+View</guimenuitem></menuchoice> Both windows are independent from each other
+(so you can select different tools, view different parts of your image,
+&etc;), but changes you make to the image in one window are immediately
+visible in the other. To close a window, use the normal window closing button.
+There is also an option <menuchoice><guimenu>View</guimenu><guimenuitem>Close
+All Views</guimenuitem></menuchoice>, which closes all newly created views and
+leaves only the original window open.</para></listitem>
+</varlistentry>
+
+<varlistentry><term>Splitting views</term>
+<listitem><para>You can also split a window into two views. Like a new window,
+one view of a split window has its own settings for brushes, zoom levels and
+the like, but both views are shown in the same window. To split your window,
+choose <menuchoice><guimenu>View</guimenu><guimenuitem>Split
+View</guimenuitem></menuchoice>. The viewing area of the &chalk; window will
+then be divided into two halves. You can switch between horizontal and
+vertical division with the
+<menuchoice><guimenu>View</guimenu><guisubmenu>Splitter
+Orientation</guisubmenu></menuchoice> menu, and get back to one view by
+choosing <menuchoice><guimenu>View</guimenu><guimenuitem>Remove
+View</guimenuitem></menuchoice>.</para></listitem>
+</varlistentry>
+
+</variablelist>
+
+</sect1>
+
+<sect1 id="views-miscellaneous">
+<title>Miscellaneous view options</title>
+
+<para>
+&chalk; also offers two options that can help you with knowing where you are.
+</para>
+
+<variablelist>
+
+<varlistentry><term>Rulers</term>
+<listitem><para>You can have &chalk; show rulers along the sides of your
+image, indicating x and y coordinates. To do so, choose
+<menuchoice><guimenu>View</guimenu><guimenuitem>Show
+Rulers</guimenuitem></menuchoice> or press <keycombo
+action="simul">&Ctrl;<keycap>R</keycap></keycombo>. The rulers will
+automatically adapt to your zoom level to show a proper amount of
+subdivisions. To remove the rulers, choose the same menu option (now called
+<guimenuitem>Hide Rulers</guimenuitem>) or press <keycombo
+action="simul">&Ctrl;<keycap>R</keycap></keycombo> again. </para></listitem>
+</varlistentry>
+
+<varlistentry><term>Grid</term>
+<listitem><para>In order to see grid lines, choose
+<menuchoice><guimenu>View</guimenu><guimenuitem>Show
+Grid</guimenuitem></menuchoice>. You can set the distance between grid lines
+with <menuchoice><guimenu>View</guimenu><guisubmenu>Grid
+Spacing</guisubmenu></menuchoice> and you can choose different colours for the
+lines in the <menuchoice><guimenu>Settings</guimenu><guimenuitem>Configure
+&chalk;...</guimenuitem></menuchoice> dialog (see <link
+linkend="settings-preferences-grid">the Grid section of the Settings
+chapter</link>).
+</para></listitem>
+</varlistentry>
+
+</variablelist>
+
+</sect1>
+
+</chapter>