The 0.44.1 release has been finalized and the code is now available for
Thanks go to Mental and all the translators and bug squashers who helped
put this point release together!
Packagers are encouraged to produce and upload packages for all
platforms at this time. We will do the public announcement Monday
evening, which we hope gives packagers sufficient time.
The website download page needs to be updated, and a news item entered.
It would be great if someone could do these updates; otherwise I'll
tackle it as I have time this weekend.
Rejon, please prepare press release materials, and send notices about
this release Monday evening.
Everyone else, please do not submit information about this release to
any online sites until Monday evening, so that folks have time to do
packaging, website updating, etc.
Inkscape 0.44.1 changes with respect to 0.44
* fix a crash on Windows ("python.exe can't find msvcrt71.dll") by
providing that dll in the package;
* fix hang in page size widget
* on Mac OS X, removed problems with home folder path names
* inkscape now finds libpng include headers on some systems where it
previously failed to do so
* several changes to allow compiling on glib-2.4 systems (e.g.
* allow compiling on systems with incomplete boost library headers;
recognize if boost is too old
* inkscape now compiles with gcc-4.2.x.
* fixed a bug where stderr output from scripts was not shown
* fixed a bug affecting the recent files menu
* resolution information is now saved in exported PNG files
* fix some ODG export bugs
* fix dia import
* fix several include issues affecting building on Solaris
(there are still some more problems, at least under Solaris 8, and
similar ones on OpenBSD)
* added missing German version of the advanced tutorial and made
corrections to the calligraphy one; added missing Czech, German,
and Brazil-Portuguese tutorials to tarball; added missing German
keytable to tarball
* applied changes to the German and Spanish translations of Inkscape
* interactivity improvements at high zooms
* fix for specifying CSS colors with percentages
* re-enabled old PDF exporter alongside the new one
* minor fixes to new PDF exporter (a major overhaul is still in the
* fixup for invalid "s odipodi" namespace which has become
widespread in Inkscape documents
* Mac OS X packaging updates
* miscellaneous build fixes
Inkscape 0.44: overview
Inkscape 0.44 is bigger and better than ever. Some highlights:
* Layers dialog
* Outline mode, many performance improvements
* Native PDF export with transparency
* Clipping and masking support
* Configurable keyboard shortcuts, including optional Xara X
* Docked color palette in the editing window
* Interactive indicator of the style of selection in the statusbar
* Innovative "node sculpting" and other improvements in Node tool
* Extensions are enabled by default and work on all major platforms
* Better SVG support: <switch> element, ICC color profiles for
* Persistent rotation centers, Paste Size command
* New icons, redesigned preferences dialogs, rearranged menus, many
* Hundreds of bugfixes and smaller features
* Not directly related to Inkscape, but important nevertheless:
since our last release, Firefox 1.5 was released with SVG
support enabled by default. This means that you can now view any
Inkscape document right in your Firefox window without any format
conversions or installing any plugins!
An Outline ("wireframe") display mode is implemented. Use the View >
Display Mode > Outline to activate it. In this mode:
* all paths and shapes are rendered as inverse (black on light
background and vice versa) outlines of constant width (1 screen
pixel regardless of zoom), without fill;
* text is painted by inverse fill, without stroke;
* bitmaps are shown as is;
* any opacity and gradients are ignored.
The outline mode is usually not drastically faster than regular mode
(usually 10% to 50% faster), and in some special cases it may even be
slower. However, the value of the outline mode is not only in its
speed; it is a good way to get an idea of the structure and objects of
your document, and it is convenient for precision node editing and for
finding "stray objects".
In addition to the Outline mode which makes it much easier to work
with complex drawings, this version of Inkscape also provides
significant speed improvements in many areas.
* Thanks to optimizations in the renderer, Inkscape's screen redraw
is faster by at least 10%, and in some cases (such as complex
stroked/dashed paths at high zooms) up to three times faster.
* Optimizations in the Node tool resulted in noticeable speed gains
for node editing. Thus, switching to and from the Node tool (with
a path selected), as well as selecting nodes in that tool, are now
at least ten times faster than before. Other operations, including
curve and node dragging and move/scale/rotate operations on
multiple selected nodes, are much faster as well. This is
especially important when working with complex paths; with these
optimizations, paths containing several thousand nodes, though
still slow, are much more usable.
* An optimization in the attribute setting method made operations
such as moving multiple objects with arrow keys at least 30%
faster compared to 0.43. This is especially noticeable when you
are moving clones selected together with their original (e.g. a
clone tiling), in which case Inkscape now works three to four
* Interface icons are now rendered in the background (from SVG
source in share/icons/icons.svg) when Inkscape is idle, rather
than waiting for all the icons in a menu to render the first time
you pull it up. This eliminates the annoying delay when opening
menus for the first time.
* Previously, zooming in to view a small portion of a path
(especially big and complex path), there was a very noticeable
slowdown and memory use increased dramatically. We optimized the
renderer to only process the visible part of a path, and as a
result the rendering speed is now almost the same at any zoom up
to the maximum, providing up to 10-40 times speedup compared to
the previous version (the closer is the zoom, the greater is the
* The Path > Break Apart command is now dozens of times (up to 100x)
faster for complex paths with thousands of subpaths.
Color profile support
Inkscape now includes base ICC profile functionality. If compiled with
LittleCMS support (if you run configure with --enable-lcms switch),
Inkscape passes the ICC color profile test by W3C. The
<color-profile> element has been implemented along with the
"color-profile" attribute for <image> elements.
Rendering support for SVG 1.1's Conditional Processing Module has been
implemented, including switch element, requiredFeatures,
requiredExtensions, systemLanguage attributes. Inkscape passes the
Conditional processing tests ( and ) by W3C.
* In Inkscape's SVG documents, colors are now expressed by name
(`white') or three-digit form (`#f3c') when possible.
* The numeric values in transform attributes are written without
insignificant trailing zeros, and anything less than that 1e-8 by
absolute value (usually caused by rounding errors) is written as 0
to reduce clutter.
A Layers dialog (Ctrl+Shift+L) is implemented in this version. It
works in parallel with the quick layer selector in the statusbar, so
you can use whichever is more convenient for you.
* In the dialog, you can click on a layer to make it current, as
well as toggle layers visible/hidden and locked/unlocked. You
don't need to make a layer current to toggle its visibility or
* A hierarchical tree of layers is represented by a tree-like
display in the dialog. You can expand or collapse branches of the
tree to make the layer structure of a document easier to navigate.
* At the bottom of the dialog, there are buttons for adding a new
layer, moving the current layer up or down (either one step or all
the way to top or bottom), and deleting the current layer.
* Below the buttons, there's a slider and a spinbutton for adjusting
the opacity of the current layer. A layer's opacity affects all
objects in that layer in the same way as opacity of a group.
Selected style indicator
A new control in the left end of the statusbar lets you quickly view
and change the fill and stroke of the selected objects. When you have
a text selection in Text tool or a gradient handle selected in the
Gradient tool, this indicator displays and changes the style of the
text fragment or gradient stop, instead of the entire object (it's the
same behavior as the Fill&Stroke dialog.)
* The two indicators, labelled F: (top) and S: (bottom), display
fill and stroke of the selected object(s) correspondingly. (For
gradient handles, they always display the same style.)
* Each fill/stroke indicator can display either a color+opacity
swatch (the opacity shown here is the fill opacity or stroke
opacity, not the master opacity) or a text label specifying N/A
(nothing selected), None (no fill/stroke), Unset (unset
fill/stroke), L Gradient, R Gradient, Pattern (corresponding
fill/stroke types), or Different (selected objects have different
* Additionally, each indicator may be accompanied by one of two
flags, m ("multiple", meaning there are two or more objects all
with the same fill/stroke) or a ("averaged", meaning there are two
or more objects with different flat colors in fill/stroke, and the
indicator shows the average of these colors).
* Left-click on an indicator opens or activates the Fill&Stroke
dialog with the corresponding tab (Fill or Stroke) active.
* Right-click on an indicator opens a popup menu with the following
+ Edit fill/stroke...: Opens or activates the Fill&Stroke
dialog with the corresponding tab selected. (Same as
+ Last set color: Applies to the selected objects the
fill/stroke color that was last applied to anything.
+ Last selected color: Applies to the selected objects the
fill/stroke color that was last displayed in this indicator.
(Allows you to easily copy fill/stroke color between objects:
select source, select destination, apply "last selected
+ Invert: Sets the fill or stroke to the inverse of the current
color (does not affect opacity).
+ White, Black: Sets the fill or stroke to the corresponding
color (fully opaque).
+ Copy color, Paste color: Copies or pastes the fill or stroke
color (when it's color) to/from the system clipboard, as text
in the #rrggbb hex format.
+ Swap fill and stroke: Exchanges fill and stroke (both their
types and colors, if any).
+ Make fill/stroke opaque: Removes fill or stroke transparency
(not master transparency!).
+ Unset fill/stroke: Unsets fill or stroke from selected
+ Remove fill/stroke: Removes fill or stroke from the selected
* Middle-click on a fill/stroke indicator removes fill/stroke from
selected objects; if it is already removed (i.e. if the indicator
displays "None"), it does the same as the "Last set color" command
from the popup menu.
* Drag and Drop of colors onto a fill/stroke indicator sets the fill
and stroke of the selected object(s) correspondingly.
* The Stroke indicator also displays the stroke width of selection
(averaged if there are multiple objects selected with different
stroke widths), located to the right of the stroke
color/transparency swatch. Left-clicking on it opens the
Fill&Stroke dialog with the Stroke Style tab selected.
Right-clicking on it opens a popup menu which allows you to choose
the units for displaying the stroke width, as well as choose one
of the presets to assign to selection.
* To the right of the fill/stroke indicators, the Opacity numeric
field (labelled "O:") shows and allows you to change the master
opacity of the selected object (or the averaged opacity of several
selected objects). Right-clicking the numeric field opens a popup
menu with preset opacity levels. Middle-clicking on the "O:" label
cycles the opacity through the values of 0 (transparent), 0.5, and
The zoom field and the cursor coordinates indicator have been
rearranged for compactness and moved to the right end of the
statusbar. There's also a window resize handle added at the very end
of the statusbar.
Tool style indicators
For each object-creating tool (shapes, Pen/Pencil, Calligraphic,
Text), the Controls bar (above the canvas) now includes a style
indicator on the right. This indicator shows you which style the newly
created object will have.
* The indicator correctly displays whichever style the tool is set
to use - the global "last set" style or that tool's fixed style.
For example, clicking on a palette swatch (even with nothing
selected) changes the "last set" color and, if your tool is set to
use the last set color, its indicator is updated, giving you an
idea of your "brush" before you start to draw.
Controls bar for the Text tool
* This version adds the beginnings of a Controls Bar for the Text
tool (previously empty). Now you can select the font family, size,
apply bold and italic styles, change alignment and text
orientation without opening the Text and Font dialog.
* All controls are instant-apply and work on the entire text object
(if nothing selected) or text selection. They can also apply to
multiple text objects (though you would need to switch to Selector
to select multiple text objects, then switch back to Text tool for
* The font-family drop-down contains names and previews of all
fonts; unlike other programs, we didn't apply each font to its
name, but added a separate preview string displayed with gray
color after each font's name. This design ensures readability of
font family names and provides maximum useful information in a
* We will be adding more controls (including spacing and kerning) to
this bar for the next versions.
Docked color palette
* Previously, color swatches could only be used from a floating
palette (Ctrl+Shift+W). Now the color swatches palette is embedded
in the main UI, at the bottom of the window between the canvas and
the statusbar. It is enabled by default; use View > Show/Hide >
Palette to enable or disable it. The docked palette has the same
functionality as the floating one; use a button in the top right
corner to access the swatches menu.
* The Wrap option (off by default) in the swatches menu converts the
palette from a single row into a frame 2 or 3 rows high, for
better access to colors in large palettes.
* Drag and Drop of colors has been enabled.
+ Dragging colors from a palette shows a live swatch of the
color being dragged under cursor.
+ Drag and Drop of colors onto the selected style indicator in
the statusbar sets the fill or stroke of the selected
+ Colors can be dropped directly on to objects on canvas to set
their fill, or shift+dropped to set their stroke. This
affects only the object you drop the color on, regardless of
whether that object is selected or not.
+ Colors can be dragged to and from other applications.
* The new Inkscape default color palette was added. It contains a
range of grays, standard HTML named colors, and a full range of
colors sorted by their HSL values (475 colors overall). It is
generated by a Python script which is available from Inkscape SVN
* Several specialized color palettes, useful in color-coordinated
projects, were created or borrowed from GIMP: Grays, Reds, Greens,
Blues, Gold, Royal, Khaki, Hilite, and Topographic.
* All standard sizes of the swatches (Tiny, Small, Medium, Large,
Huge) are made smaller overall.
Inkscape Preferences dialog
Not only was the Inkscape Preferences dialog completely rewritten and
redesigned, with numerous bugs fixed in the rewrite.
* The old tabbed dialog is gone; the new dialog fits much better
with the GNOME Human Interface Guidelines.
* As a new feature, the Simplify threshold can now be set with more
Document Properties / Metadata dialogs
* The Document Preferences dialog is now named Document Properties,
and it was split in two: metadata were extracted into the Document
Metadata dialog; metadata widgets are now also spread over two
* A button was added to fit the page to the current selection or, if
there's no selection, to the entire drawing. The button resizes
the page and, if necessary, moves the drawing into place. It is
now very easy to size a page to an illustration after it is ready.
* New controls: the new object snapping features required their own
property widgets, and you can set the snapping sensitivity with a
slider, or let it snap regardless of distance (grid only).
* Rearrangements within Document Properties: everything
snapping-related was collected on one page; Grid and Guide widgets
are on their own, the same page. For better HIG compliance, all
widgets were categorized; especially the widgets on the Page page
were completely rearranged in the General/Format/Border
* Bug fixes: grayed out license URI had too low contrast, so it's no
longer grayed out; the proprietary license didn't clean the
license URI; spinbuttons had no tooltips, and minor grid quirks
were removed; data was not updated when a new file replaced
another in the same window.
* HIG compliance: much work went into improving GNOME HIG compliance
but usability it is always an ongoing process.
* Updated Creative Commons Licenses: Updated CC licenses to the
latest 2.5 versions by default in the license tab of the metadata
Inkscape's keyboard shortcuts are now configurable!
There is no graphical users interface at this time, and not all
Inkscape actions can have their shortcuts customized. However, if you
do not mind editing a configuration file, the majority of actions,
including everything you see in the menus, can already have their keys
changed. We're working on making more actions configurable.
On startup, Inkscape reads its keyboard shortcuts from
share/keys/default.xml. That file is a copy of inkscape.xml in the
same directory, which also contains keyboard emulation profiles for
other vector editors:
* xara.xml: Xara X/Xara Xtreme/Xara LX keys
You can copy any of these over default.xml to use that profile. In all
profiles, those keys which are not used by the corresponding program
still have their Inkscape bindings. If you can contribute a profile
for some vector editor that we don't yet have, we will appreciate
that. The files have a simple XML-based format described in
You can also customize some of your keybindings without overwriting
the main default.xml. If your profile directory (~/.inkscape on Linux)
contains a keys subdirectory with a default.xml file, the keybindings
from that file will overlay (i.e. add to, and override in case of a
conflict) the default bindings. The format of your own default.xml is
the same as that of the main default.xml.
* Zoom commands in the View menu are moved to a submenu; the Zoom In
and Zoom Out commands are added to that submenu.
* Clone commands are moved into a submenu in Edit menu and given
more descriptive names and tips.
* Pattern commands (Objects to Pattern and Pattern to Objects) are
moved into a submenu in Object menu, under the new Clip and Mask
* The contents of the Effects menu are categorized into submenus,
and several effects are renamed to use more intuitive names.
* In Selector, for multiple selected objects, the statusbar now
reports their types. For example, if 5 groups are selected, it
5 objects of type Group in layer LayerName.
instead of just "5 objects selected" as before. If there are up
to 3 types in the selection, they will be listed, for example:
5 objects of types Group, Path, Rectangle in layer
The order of the list will correspond to the order in which the
objects were added to selection. If there are 4 or more types
in selection, only the number of types is reported, for
5 objects of 4 types in layer LayerName.
* In Selector, objects selected in groups are now identified as
such, and the group ID is given, for example:
Rectangle in group g212 (layer content)
If selected objects have different parents within one layer
(for example, if one is selected in a group and another outside
it), the number of parents is reported:
2 objects of types Rectangle, Path in 2 parents (layer
If objects are in different layers, only the number of layers
is reported since this also implies different parents:
2 objects of types Rectangle, Path in 2 layers
* In Node tool, if your node selection includes nodes from different
subpaths, statusbar reports the number of subpaths with selection
and the total number of subpaths, for example:
2 of 195 nodes selected in 2 of 36 subpaths.
* The contents of the statusbar message are now duplicated as a
tooltip that is shown when you hover the mouse over the statusbar.
* The statusbar text is now no longer just cut off if there is
insufficient room, but an ellipsis (...) is inserted at the end to
show there's more (only with Gtk 2.6 and newer).
* Inkscape has a new default icon set titled "Crispy" provided by
Andre Sousa. The new icons are intended to add a more professional
and cohesive look to our application, as well as to make the
functions the icons represent more self-evident.
An entirely new way of manipulating paths in Node tool is added in
this version: Node sculpting. Normally, when you have several nodes
selected and you drag one of them, all selected nodes move by the same
amount. Now, if you Alt-drag one of the selected nodes, only that node
is fully displaced; other selected nodes are moved less than the full
amount, so that those farthest from the drag point remain stationary.
This is similar to "proportional editing" or "soft selection" in 3D
editors such as Blender.
So, for example, if you select several nodes on a straight line and
Alt+drag the middle selected node, the path will bend into a smooth
bell-like curve. Nodes' handles are also adjusted correspondingly to
keep the overall shape smooth and natural. (If you don't have enough
nodes on a path fragment that you want to reshape in this way, just
select the end nodes of that fragment and press Ins a few times to
populate it with nodes.)
Moreover, node sculpting is pressure-sensitive when you are using a
tablet pen. If you press slightly, your curve will have a narrow sharp
tip (i.e. the nearest neighbors of your dragged node will move only a
bit); if you press hard, the curve's tip will be wide and blunt (i.e.
the nearest neighbors will move almost as much as the dragged node).
(Hint: to stop dragging without losing your shape, first release Alt
and then lift the tip of the pen.)
There are many possible applications of the sculpting technique. To
take a simple example, selecting all nodes of an ellipse-like shape
and Alt+dragging one of them will smoothly and naturally stretch and
skew the entire shape in any direction. Doing the same to a complex
path, such as star or spiral, will twist and punch it without
destroying its intricate structure - this is the way to get squashed
or self-intersecting stars, eccentric spirals and other shapes not
easily doable before. Selecting only part of all nodes allows you to
smoothly reshape parts of the figure without disturbing the rest.
When applied to text converted to path, node sculpting is a fun and
easy way to twist, bend and distort it, achieving effects similar to
"perspective envelope" or "curvilinear envelope" in other programs -
but in a more powerful and flexible way. For example, by selecting all
or part of the text's nodes and Alt-dragging, you can not only make a
wavy banner out of a paragraph of text, but also apply a "magnifying
lens"-like effect to any word in the middle.
Especially useful node sculpting is for complex natural paths, such as
calligraphic strokes or bitmap traces, where you often want to do
large-scale pushes and bends without destroying the small-scale
features. Things like making a calligraphic stroke narrower in one
place and wider in another, or changing the proportions, extending the
ear or flattening the nose of a head - all this is now much faster and
more natural to do using sculpting. It is also a new way to create new
paths, too - starting from en ellipse with added nodes, it takes just
a few Alt+drags to tweak it into a silhouette of a head, or a map of
Australia, or an Inkscape logo!
Some examples are shown on the screenshot:
"Show handles" toggle
The Controls bar for the Nodes tool now includes a toggle button which
controls whether Bezier handles are shown on selected nodes (on by
default). Selecting and dragging nodes on node-dense paths in zoom-out
(e.g. for node sculpting) may be extremely difficult without hiding
the handles, as it's hard to pick a node and not a handle when handles
New deletion behavior
* In Node tool, deleting node(s) by Del/Backspace keys or by
Ctrl+Alt+clicking a node now tries to preserve, as much as
possible, the current shape of the path. This means that the nodes
adjacent to those being deleted have their handles adjusted to
approximate the form that the path had before deletion. For
example, if you Ctrl+Alt+click a path twice, once to add a new
node and then to delete it, the path will not change at all (or
change very slightly). The old deletion behavior without adjusting
handles is still available via Ctrl+Del or Ctrl+Backspace.
Preserving positions of nodes and handles
* When you switch the type of the selected node to Smooth or
Symmetric by pressing Shift+S/Shift+Y, you can now preserve the
position of one of the two handles by hovering your mouse over it,
so that only the other handle is rotated/scaled to match.
* Similarly, when you join endnodes by pressing Shift+J, you can
preserve the position of one of the two nodes by hovering your
mouse over it, so that only the other node is moved.
* The ! key inverts node selection in the current subpath(s) (i.e.
subpaths with at least one selected node); Alt+! inverts in the
entire path. (This is similar to how these keys work in Selector,
with current subpath(s) instead of the current layer.)
* The keyboard shortcut for "Make selected segments curves" in Node
tool is changed from Shift+K to Shift+U for better mnemonics.
* Even when using a graphics tablet with pressure sensitivity, the
Calligraphy pen's strokes often look too smooth and artificial. To
enable a more natural look, the new Tremor parameter is added to
the Calligraphy tool in this version. Adjustable in the Controls
bar from 0.0 to 1.0, it will affect your strokes producing
anything from slight unevenness to wild blotches and splotches.
This significantly expands the creative range of the tool.
* In all previous versions, pen width depended on zoom in such a way
that the strokes appeared the same visible width at any zoom, but
were in fact narrower at zoom-in and wider at zoom-out. This
behavior makes sense if you want to keep the same "feel" of the
pen regardless of zoom; for example, if you zoomed in to make a
small fix to your drawing, it's natural that your pen becomes
physically smaller but feels the same to you. So, this behavior is
kept as the default, but now we also added an alternative mode
where your pen width is constant in absolute units regardless of
zoom. To switch to this mode, use the checkbox on the tool's
Preferences page (you can open it by double-clicking the tool
* The Width field in the tool's controls bar now changes from 1 to
100, which corresponds to the range from 0.01 to 1.0 in the
previous version. If the "width in absolute units" mode is turned
on, the value in this fields gives the width of the stroke in px
units. In the default mode, the value of 100 gives 100px wide
strokes only at 100% zoom, and strokes are correspondingly
narrower or wider at other zoom levels.
* A new preferences option for the Calligraphic tool, Keep selected,
controls whether the newly created object remains selected after
you finish drawing it. If you turn it off (by default it's on) and
set the tool to using Last Set color, you can easily choose a new
color by clicking on the palette without having to worry if this
will change the color of the stroke you just created. (Watch the
tool style indicator at the right end of the Controls bar for the
style of the next stroke you will draw.)
* Esc deselects selected objects in Calligraphic, as in most other
* The stroke you're drawing is now shown, while you're drawing it,
with the correct color and opacity that it will eventually have,
instead of always black as before.
* On a new Inkscape installation, this tool now uses the last set
style by default instead of the fixed black as before (this is
changeable in the Inkscape Preferences for the tool).
* While drawing a path, you can now move the last node you created
by the same keys as in Node tool - that is, arrows, with Shift
(for 10x displacement) or Alt (screen pixel displacement)
* Also, you can switch the not-yet-finalized (red) segment of the
path being drawn from curve to line (Shift+L) or back to curve
(Shift+U), again the same shortcuts as in the Node tool.
* By popular demand, if a new path is being drawn but not yet
finished, Ctrl+Z cancels that unfinished path (i.e. does the same
as Esc), instead of undoing the previous action.
* In Pen tool, Del works the same as Backspace to delete the last
created point on the unfinished path.
Clipping and masking
Inkscape now provides some UI for using clipping paths and masks.
* Any object can be non-destructively intersected with a path
(called a clipping path) so that only the intersected portion of
the object is visible.
+ To apply clipping, select the objects to be clipped and the
clipping path object, make sure the clipping path is above
the other objects in z-order, and do Object > Clip > Set.
+ You can transform, edit, or style the clipped objects as
usual. The clipping remains applied and transforms together
with each clipped object.
+ To remove the clipping, do Object > Clip > Release. The
clipping path is returned to the drawing as a regular object;
it is inserted on top of the unclipped object in z-order.
* Any object can be non-destructively masked by another object
(called mask) so that: the mask's black or transparent areas
become fully transparent in the masked object; mask's opaque white
areas become fully opaque; and all intermediate colors translate
into intermediate levels of opacity in the masked object. This
allows you to apply, for example, arbitrary transparency gradients
+ To apply a mask, select the objects to be masked and the mask
object, make sure the mask is above the other objects in
z-order, and do Object > Mask > Set.
+ You can transform, edit, or style the masked objects as
usual. The mask remains applied and transforms together with
each masked object.
+ To remove the masking, do Object > Mask > Release. The mask
is returned to the drawing as a regular object; it is
inserted on top of the unmasked object in z-order.
* Objects with clippath show their bounding box intersected with the
bounding box of the clippath, instead of the original unclipped
bbox as before. (However, this does not apply to objects without
clippath of their own which are clipped by being inside a clipped
* Clipped or masked objects display "clipped" or "masked",
correspondingly, in their statusbar descriptions.
* Although Inkscape had render-only support for clipping paths and
masks for quite some time, in this release we fixed a number of
bugs which may affect the display of your documents using
clippaths or masks.
+ Clippaths and masks with objectBoundingBox units are now
shown correctly upon loading of the document.
+ Clippaths without fill didn't work, this is now fixed.
+ Objects with clippaths or masks are correctly copied/pasted
Fixes and improvements in the Transform dialog (Ctrl+Shift+M):
* The Apply to each object separately checkbox is added, allowing
you to scale/rotate/skew each selected object by the same amount,
around that object's center. When off (by default), the selection
is transformed as a whole. The status of this checkbox is
remembered across sessions. (It has no effect on Move and Matrix
* The Clear button resets the values on the current tab to defaults.
* The Scale tab now allows you to specify horizontal or vertical
size increments in percentage or absolute units. Also, there's a
Scale proportionally checkbox which ensures that scaling preserves
the width/height ratio. (If you are scaling several objects
proportionally with "Apply to each object separately", you can
only use the % unit to specify the scaling; otherwise each
object's scale increments will have the width/height ratio of the
entire selection, not of that specific object.)
* The Skew tab can now specify the skew as an absolute displacement
(e.g. for horizontal skewing of a rectangle, that means the shift
of the top rectangle side relative to the bottom), as percentage
displacement (e.g. a 1% horizontal skew of a rectangle means
shifting the top side by 1% of the rectangle height), or as an
angle (e.g. horizontal skew by 15 degrees results in the sides of
a rectangle being rotated to that angle, while the top and bottom
* The Matrix tab (previously called "Transform") can either edit the
current transform= matrix of an object, or post-multiply the
transform= with the matrix you specify, depending on the Edit
current matrix checkbox. (As it is now redundant, the
transformation matrix in the Object Properties dialog is removed.)
* The dialog now correctly watches selection changes in the active
document window and updates its values accordingly.
* The layout of the dialog is simplified, tooltips and mnemonics
added for better usability.
* Many bugs are fixed, especially in value conversions between
Persistent rotation centers
* The position of the center (axis) of rotation and skewing used by
Selector is now remembered for all objects and restored when you
select those objects again (even after saving and reopening the
document). When you move or scale an object, its rotation center
is moved or scaled too, so its position relative to the object
always remains the same unless you move it explicitly.
* When you have several objects selected, they use the rotation
center of the first selected object. If the first object does not
have center set (i.e. if it's in a default central position), then
several objects will rotate around the geometric center of their
common bounding box (as before).
* Shift+click on the rotation center resets it back to the center of
the object's box.
* Consequently, dragging the rotation center is now an undoable
action; you can press Ctrl+Z to undo the drag.
* Keyboard rotation by [, ] keys with various modifiers, as well as
the Rotate tab in the Transform dialog, work around the selected
object's rotation center (for multi-object selection, the rotation
center of the first selected object).
* Rotation centers are preserved when duplicating, cloning
(including clone tiler), grouping/ungrouping, and converting to
A number of commands are added to easily scale selected objects to
match the size of the object(s) previously copied to the clipboard.
They are all in the Paste Size submenu in Edit menu:
* Paste Size scales the whole selection to match the overall size of
the clipboard object(s).
* Paste Width/Paste Height scale the whole selection
horizontally/vertically so that it matches the width/height of the
clipboard object(s). These commands honor the scale ratio lock on
the Selector controls bar (between W and H fields), so that when
that lock is pressed, the other dimension of the selected object
is scaled in the same proportion; otherwise the other dimension is
* Paste Size Separately, Paste Width Separately and Paste Height
Separately work similarly to the above described commands, except
that they scale each selected object separately to make it match
the size/width/height of the clipboard object(s).
Connectors and automatic layout
* There have been numerous bugfixes and several improvements to the
behaviour of connectors and the connector tool:
+ Connectors moved as part of a selection will now stay
attached to other objects in the selection, rather than
becoming detached from them.
+ By default, the Connector tool will not attach connectors to
text objects. There is a new checkbox in the connector
preferences to control this setting.
+ The margins around avoided shapes (used for autorouting
connectors) can now be adjusted via the "Spacing" control on
the controls bar.
* Automatic Diagram Layout: A new button is available in the Align
and Distribute dialog that performs automatic layout of diagrams
involving a network of shapes and connectors. Layout is
accomplished using force-directed graph layout based on the
Kamada-Kawai algorithm. This algorithm treats edges as if they are
springs such that the distance between nodes will be proportional
to the path length - number of connectors - between them.
Disconnected components (where not every shape is connected) will
be arranged around the circumference of a circle.
* There is a new Remove Overlaps button to move the selected objects
enough that they don't overlap each other. A minimum spacing
between the boundaries of objects can be specified. Together with
the automatic layout tool, described above, this should be a
significant addition to Inkscape's usability for diagramming.
Removing overlaps is different from the "Unclump" button in that
the former is completely deterministic and guarantees removing
overlaps on the first application, but is not concerned with
visual perceptive distances between objects. Unclumping, on the
other hand, attempts to equalize perceptive distances between
objects and can be applied repeatedly for gradual effect.
Selective tracing with SIOX
* Inkscape 0.44 has an early version of the Simple Interactive
Object Extraction (SIOX) algorithm (see siox.org) implemented
in its bitmap tracing code. For a quick reference on how this is
used, please see this file. This clever algorithm from the
realm of Image Recognition allows you to select areas of similar
color, with the goal of extracting a foreground area from the
background. To use:
+ Enable the SIOX checkbox in addition to your usual tracing
+ Select both the bitmap and an object that covers the
foreground and part of background, leaving only background
areas of the image uncovered.
+ Hit OK. SIOX will now analyze and attempt to pull out the
foreground-colored areas you want, and trace only those parts
of the image.
* The full SIOX selection mechanism (e.g. the ability to identify
foreground and background areas separately) is not implemented
yet, but is planned for a future release.
* In addition to snapping to guides and grids, you can now snap to
other objects' paths and/or nodes. As with grid and guide
snapping, you can separately enable snapping of bboxes to objects
and/or snapping of nodes to objects. Be aware, however, that this
is experimental code - there may be surprises. It may also be slow
in large documents with thousands of objects.
* In addition to the snap sensitivity sliders in Document
Preferences (which set snap distances in px), there are Always
snap checkboxes (separately for object, grid and guide snapping)
which force snapping at any distance.
* Grid snapping now applies only to the visible grid lines. For
example, if you have zoomed out so that only every 10th grid line
is visible, snapping will only apply to these visible lines. In
addition, default grid snap sensitivity is set to "Always snap".
This will hopefully reduce the number of "snapping does not work"
complaints from users who didn't zoom in close enough to see that
snapping does in fact work, but only at sub-px distances to the
1px-spaced grid. At the same time, you can still snap to finely
grained distances if you zoom in.
* Guidelines are made easier to pick. Now you don't need to position
mouse exactly over a guideline to activate it; instead there's a
small position tolerance (1 screen pixel on each side of the
Previously, it was only possible to make a group a temporary sublayer
by entering that group. Now Inkscape supports creating and using true
persistent sublayers within a layer.
* The Add layer dialog allows you to place the new layer above,
below, or inside the current layer.
* In Preferences (Selecting tab), options are added allowing the
"Select All" command and Tab key selection to work either in the
current layer only or in the current layer and its sublayers.
* Converting stroke to path now correctly processes dashed strokes.
For paths with markers, this command now creates a group
containing the stroke converted to path and all its markers as
independent objects (i.e. they are not markers anymore, but
instead you can easily transform them or paint them any color, as
a workaround for the "markers don't take the color of the stroke"
bug; to be properly fixed, this bug requires implementing some SVG
* The DimensionIn and DimensionOut markers are changed so that the
arrow tips exactly correspond to node positions. It is now very
easy to make dimension lines that correspond to drawn objects. The
dimension specifications can now easily be chained by splitting a
straight line at a point and assigning DimensionIn/Out markers to
the resulting smaller paths whose endpoints coincide.
* All arrow markers in the standard set are moved on the path so
that their tips are as close as possible to the corresponding node
of the path. Complete coincidence is not possible, because it
would cause the blunt end of the stroke itself to be visible under
the sharp tip of the arrow, distorting its shape. However, now the
arrow tips are much closer to their nodes than before, and
probably sufficiently close for many practical situations.
* A new RazorWire path marker was added. By applying it as a
mid-marker you can get a good approximation of a razor wire.
* The Effects menu is now officially on and no longer an optional
"experimental feature" as in past versions. The preference setting
to enable the menu has been removed. Inkscape 0.44 comes with
about 30 effects that perform a variety of useful tasks, such as
path blending, randomization, function plotting etc.
* Python effects (which includes almost all currently available
effects) work on Windows out of the box, using a copy of Python
shipping with Inkscape. The only minor inconvenience is that when
an effect is launched, you get an empty console window that stays
on while the effect is doing its work. (Don't close that window,
it will disappear by itself when the effect is finished.)
* A new Python effect, Render > LaTeX formula, allows you to type in
any LaTeX formula and get a vector object with the TeX rendition
of this formula inserted into your document. You need to have
latex, dvips, and pstoedit installed and in PATH for this to work.
* A new Python effect, Flatten Path, flattens paths in the current
selection, approximating each path with a polyline whose segments
meet the specified criteria for flatness.
* A new Python effect, Measure Path, attaches a text label to each
path in the selection giving the length of that path (in px
* The Radius Randomize effect has a new parameter which enables
normal distribution of random displacements instead of uniform as
before, which gives a more natural feel to the randomized path.
* The Render > L-system (formerly "Fractal (Lindenmayer)") effect is
improved in this version. Now you can specify different angle
values for turning left and right, which makes it possible to
smoothly bend some L-systems sideways. Also, you can separately
randomize the step length and the angles by a given percent for
more natural look (this works especially well with plant-like
branching shapes). This effect can be used to create Penrose
tiling, Sierpinsky triangle, Dragon curve and other famous
mathematical artefacts, as well as various meanders, friezes,
patterns, and trees. Some examples can be seen on this screenshot:
g as well as in the new example file share/examples/l-systems.svg.
* The Interpolate Path, Random Tree, and L-system effects are fixed
to place their result on the current layer instead of document
root and in the center of the (last-saved) document view instead
of 0,0 as before.
* INX files now have the ability to hold more information. This
includes tooltips and descriptions of the extensions. These are
all also translatable.
* Thanks to keyboard configurability, it is now possible to assign
keyboard shortcuts to those effects you use most often, so you can
activate them without going into the menu.
* Inkscape's PDF export is now native (i.e. does not require any
external applications) and supports transparency, including
gradients with transparency. This replaced the old export
extension that required Ghostscript and worked via Postscript,
losing any transparency. The new PDF export is still immature; in
particular it does not handle text, so you should check "Convert
text to path" on the export options dialog. Other things not yet
supported include: gradients on stroke; eccentric elliptic
gradients; patterns, masks, and clipping paths; embedded images.
* You can now Save as Compressed Inkscape SVG with media.This save
option collects the svg file and all linked images into a zip
archive for distribution. Although you cannot open the resulting
archive directly with inkscape, the media is linked such that
after unzipping you can open the SVG file immediately.
* An output format for desktop cutting plotters, such as the
Wishblade and Craftrobo, was added. This format is a very
minimalist DXF file with appropriate scaling and translation
applied. This output format should not be expected to operate as a
generalized DXF output.
* Inkscape can open/import default files generated by the Xfig
vector graphics editor. This requires that the fig2dev command
(transfig) is in your PATH.
* Starting with this version, there is a limited ability to export
Inkscape drawing shapes as Open Document Format drawings (.odg
files). Currently the export is limited to text, shapes, and solid
fill and strokes. This output will be improved in the coming
months. In the meantime, however, ODG output is already useful for
getting your SVG drawings into the Open Document world, in
particular into an office suite such as OpenOffice.org.
* The new XCF output extension exports all top-level elements (i.e.
layers and objects directly under root) as PNGs and assembles them
into an XCF for procesing in GIMP. Requires Python, PyXML and
GIMP. GIMP 2.2.x or above must be in the path and be named gimp. A
version of Inkscape 0.44 or above must be accessible from the
path. Does not function in Windows yet.
* Now you can use Shift+middle button drag, in any tool, to zoom
into an area. This works the same as simple drag in Zoom tool, but
is faster because it does not require switching away from your
current tool. Together with middle button drag (panning), middle
button click (zoom in) and Shift+middle button click (zoom out),
this completes the set of canvas navigation shortcuts available in
any tool or context.
* In Gradient tool, Shift+R reverses the gradient definition (i.e.
mirrors the stop positions) without moving the gradient handles.
For example, an elliptic gradient with blue center and red
periphery becomes red in the center and blue in the periphery.
This works on the gradient(s) of the currently selected gradient
handle or, if no handle is selected, on all selected objects'
gradients. (Compare with the Node tool where Shift+R reverses the
direction of the selected path.) This is especially convenient for
elliptic gradients which, unlike linear, you cannot simply rotate
by 180 degrees for the same result.
* In Selector, Ctrl+Enter enters the selected group (making it a
temporary layer). Ctrl+Backspace leaves the current layer and goes
one layer up in the hierarchy (but not to root).
* Document templates (listed in File > New) are now first searched
in the templates subdirectory of the user's profile directory (on
Linux it's ~/.inkscape/templates), then in the system-wide
Inkscape templates directory. This allows you to add your own
templates on top of the list of standard templates, as well as
override the default template with your own one (the default.svg
in the profile directory has priority over the system-wide one).
* When toggling one of the "transform with object" buttons (for
stroke width, rounded rectangle corners, gradients, or patterns),
a message is displayed in the statusbar explaining what has
changed in the program's behavior. Hopefully this will reduce the
number of complaints from users who had accidentally toggled one
of these and were surprised by the result.
* Whole thousands above 2000 in the rulers are now displayed as 2k,
3k, 4k etc.
* In the Inkscape Preferences dialog, the new object style for each
tool is now shown as a style swatch (displaying fill/stroke colors
and opacity, stroke width, and master opacity), similar in design
to the selected style indicator in the statusbar.
* In the Grid Arrange dialog, row/column spacing can now be
* The installation default is now to scale the rounded rectangle
corners with the rectangles themselves (the previous default mode,
still available as an option, was to keep rounding radii unchanged
when scaling rectangles).
* Added a new --export-area-canvas command line parameter that
causes the exported PNG to contain the full canvas. This option as
well as --export-area-drawing and --export-area can now be used
along with --export-id and --export-id-only for greater
* The --query-* command line parameters now return the true SVG
bounding box of the object instead of the Inkscape coordinate
system bbox (with inverted Y axis). The new behavior makes more
sense for scripting use of Inkscape.
* The dpi value in the Export dialog has had its range extended; now
possible values are from 0.01 to 100000.
* Individual <tspan>s within text objects (including line tspans)
can now be selected via the XML editor to view their bounding
boxes (though per SVG, you cannot transform them). Also, you can
use the --query-* command line parameters to find out the bounding
boxes of tspans from a script. (Individual strings within or
between tspans are still not selectable, and they cannot have an
ID for querying anyway.)
* The placeholder image which is shown when a bitmap file was no
longer accessible reads now "Linked image not found" instead of
the confusing "Broken image".
* Cloning multiple selected objects now works as expected (i.e. each
selected object is cloned separately, similar to the Duplicate
command). Previously you could only clone a single selected
* The separate "license" and "contributors" dialogs have been merged
into tabs on the About dialog. The about dialog now correctly
sizes itself to fit the size of the splash SVG (while remaining
resizable), and the rendering area is now cropped to the correct
aspect ratio when the dialog is resized. The dialog also now
displays the build information in the upper right corner.
* In the Transform dialog / Rotate tab, the icon was flipped
horizontally to be in line with the direction of positive
rotation; the change was applied to the default (now crispy) and
legacy icon sets.
* The scale ratio lock button on the Selector controls bar shows a
closed lock when pressed and open lock otherwise (same as the
layer lock in the statusbar).
* The Browse button on Export dialog now opens the new file chooser,
same as those used by Open and Save.
* Reading a document with an incorrect namespace URI not only did
not cause Inkscape to complain, but could also "pollute"
Inkscape's internal namespace table, resulting in an "infection"
of subsequently saved documents by the incorrect namespace. This
is now fixed, but as a result, documents with incorrect namespace
URIs will no longer load. You will have to edit them in a text
editor to fix the namespaces.
* With newer versions of GTK, dragging with graphics tablet pen did
not work in some tools and contexts (in particular, in Node and
Rectangle tools). This is fixed.
* Scaling of objects with stroke in Selector used to cause undesired
shifts of the scaled object, as well as scaling it in the
dimension which was intended to remain untouched (e.g. slight
change in width when you scale only height). All these problems
are now fixed, both for interactive scaling by mouse and for
numeric scaling via the Controls bar, and for both values of the
"Scale stroke with objects" option. Among other things, this means
that stroked objects no longer lose snapping on scale, and that
the "Default scale origin" option in the Selector tool preferences
finally works as designed. Caveat: There may still be problems if
you scale a selection that contains objects with different stroke
* Scaling of stroke now works for objects that didn't specify
stroke-width; before, they always ended up with the default 1px
* The bounding box for text and flowed text objects did not include
stroke width. This has been fixed.
* Stroke miterlimit on text objects was misinterpreted in absolute
units instead of multiplies of stroke width (resulting in miter
joins rendered as bevel).
* The unfinished path in Pen tool is now cancelled, not finalized,
when you switch away from the Pen tool. Apart from being more
intuitively correct, this also fixes a crash when you quit
Inkscape with the unfinished path in Pen tool.
* Fonts on Win32 now use the native font mapper, meaning that
Inkscape's font list is the same as other Windows programs, and
the (potentially) very long delay experienced when using fonts for
the first time in each session is gone.
* Setting dash pattern was broken for transformed objects, and
copy/paste of style with dash pattern did not apply correctly to
objects with transforms.
* An error caused a complete extra screen redraw after each zoom
operation. That is, after you press "+" in a complex drawing,
Inkscape redraws, but for some time after that it remains still
unresponsive because it does that second redraw (invisibly for
you, i.e. nothing changes on the screen). This is fixed.
* Gradient rendering was off by one pixel, which often resulted in
visibly wrong gradient rendering for small objects or in zoom-out.
* The SVG path parser could not handle fractional numbers with the
* Several pattern rendering bugs are fixed, discovered by working
with SVG files exported from Adobe Illustrator.
* Inkscape on Mac OS X will now notice fonts in your ~/Library/Fonts
directory, in addition to the other standard places.
* Inkscape couldn't be compiled with libxml versions <= 2.6.9, and
we now bumped the requirements from 2.6.0 up to libxml >= 2.6.11,
which is the earliest you can get officially, anyway.
* Inkscape no longer crashes when presented with a defective inx
file for extensions.
* More document memory is now freed when documents are closed.
* EPS output now correctly includes an %%EOF footer.
* There was a regression in 0.43 that caused several minor, though
annoying bugs; knots and handles remained highlighted after the
mouse was released, and the rubberband selection rectangle stayed
visible if the selection was ended over a node while in the node
tool. This regression has been fixed.
* The connector routing code would previously sometimes confuse
objects between multiple documents resulting in strange routing
behaviour. This has been fixed.
* There existed a bug in 0.43's Inkboard code that allowed a
malicious outsider to very easily disrupt an Inkboard session.
This has been fixed.
* There existed a bug in 0.43's Inkboard code that would cause
deadlocks in the case that two users attempted to invite each
other at the same time (see bug #1352522 for further
details). This should be fixed, although the fix has not been
* There existed a bug in 0.43's Inkboard code that would cause
session invitations to not appear on the invitee's screen. This
was the result of a mistake in handling GDK modifier flags, and
has been fixed.
* INX files (containing the UI of the external effects) now allow
the user visible strings to be translated. This means that effect
dialogs, file type selections, and extension names can all be
translated by translators.
* Inkscape is now significantly translated to 18 languages: Basque,
Catalan, Czech, French, German, Hungarian, Italian, Lithuanian,
Norwegian (Bokmål dialect), Polish, Russian, Serbian (Cyrillic and
Latin), Simplified Chinese, Slovenian, Spanish, Traditional
Chinese, and Vietnamese. Additionally, 21 more languages have some
level of translation. Average translation ratio has increased from
49% to 61% in this release.
* Some new translations of tutorials have been brought by
contributors: Czech, Portuguese (Brazilian) and Russian.
* The Document Properties Dialog code was completely gtkmmified,
which lead to dramatic reduction of code size due to usage of
widget objects. The used widget objects should be reusable by
other dialogs, too, and the code is much more readable.
* Work on optimizing includes in all cpp files started, using the
purgeincludes tool specifically written for that purpose, and
ended with 40% of include lines removed!
SVG files saved using previous version don't display font correctly
* You may find that fonts don't correctly display when opening a
file from a previous version (eg 0.43). This can be fixed by
simply reapplying the font. However, bringing up the font dialog
doesn't acquire the font size from the document and so the actual
size may be lost. If you select the text, then check using the XML
viewer what the original font and size were you can then input
this via the font dialog and restore your document to it's
original glory! [ pbhj ]
Problems with some Debian libgc-6.7 packages
* Inkscape will hang or crash when linked with the first Debian
packaged version of the Boehm garbage collection library. This
problem was fixed in version 1:6.7-2 of the package. If you have
libgc 6.7 on your Debian-based system, make sure that you are
using that version of the package or later.
Problems with "Composite" option of X.org
* Some prereleases of inkscape-0.44 could crash if the "Composite"
option were enabled in X.org's configuration. This is not a
problem in the final release.
Namespaces may need fixing
* Previous versions of inkscape sometimes silently saved documents
with wrong namespace URIs. This has been fixed, but such corrupted
documents will no longer load successfully. Such documents may
require their namespace declarations to be fixed by hand. Correct
namespace URLs are as follows, with typical namespace prefixes
given in parenthesis:
+ Creative Commons
+ Dublin Core Metadata
Beware of defective themes on Linux
* Inkscape and other Gtk programs can crash on any Linux, when the
gtk2-engines-smooth / libsmooth package is installed. We have
filed a bug against libsmooth which is now in gtk-engine and part
of gnome. Removing the package resolves the problem. Update: this
bug appears to be fixed in newer versions of gtk-engines. If you
are affected by this problem please update to a newer version of
gtk-engines. If problems persist then please inform the
gtk-engines maintainers of the problem.
* A similar crash happens if the KDE Baghira theme or the package
gtk_qt_engine are installed. If you experience Inkscape crashes on
KDE, please try to install a different theme from Baghira, or
uninstall the gtk_qt_engine package from your system. Both
problems also affect older versions of Inkscape.
Make sure to remove menus.xml if you have it
* If you were using certain CVS/SVN builds from autumn of 2005, you
may have the file menus.xml hanging around in your profile
directory (e.g. ~/.inkscape on Linux). In that case you will see
many errors about verbs that cannot be found, and some commands in
menus will be disabled. Make sure to delete menus.xml to fix this.