Difference between revisions of "Release notes/1.1"
m (→Bugs) |
|||
(40 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
<languages /> | <languages /> | ||
<translate> | <translate> | ||
== Release highlights == | == Release highlights == <!--T:1--> | ||
''' | <!--T:2--> | ||
'''Released on May 24, 2021''' | |||
<!--T:3--> | |||
Inkscape 1.1 is the latest major Inkscape release that brings users many fresh new features and new functionality. | Inkscape 1.1 is the latest major Inkscape release that brings users many fresh new features and new functionality. | ||
<!--T:4--> | |||
The most notable changes include: | The most notable changes include: | ||
<!--T:5--> | |||
* A '''[[#welcome|Welcome dialog]]''', where the look of Inkscape can be selected, and some choices for the new document's size or file to open are available | * A '''[[#welcome|Welcome dialog]]''', where the look of Inkscape can be selected, and some choices for the new document's size or file to open are available | ||
* A '''[[#command_palette|Command palette]]''' that opens when the <kbd>?</kbd> key is pressed and that allows to search and use many functions without having to use a keyboard shortcut or going through the menus | * A '''[[#command_palette|Command palette]]''' that opens when the <kbd>?</kbd> key is pressed and that allows to search and use many functions without having to use a keyboard shortcut or going through the menus | ||
Line 26: | Line 26: | ||
* An extension for updating extensions and installing additional extensions, called the '''[[#extman|Extension Manager]]''' (currently in beta stage) | * An extension for updating extensions and installing additional extensions, called the '''[[#extman|Extension Manager]]''' (currently in beta stage) | ||
== General user interface == | == General user interface == <!--T:6--> | ||
=== <span id="command_palette">Command palette</span> === | === <span id="command_palette">Command palette</span> === <!--T:7--> | ||
* Pressing <kbd>'''?'''</kbd> will open the new Command palette. | <!--T:8--> | ||
* In the little overlay, a type-forward search allows you to find any available command to execute on the whole drawing or selection. The list of available commands is currently restricted to those commands that have already been converted to 'actions', as part of an ongoing effort. Additionally, it includes the option to import or open files from Inkscape's document usage history. | * Pressing <kbd>'''?'''</kbd> will open the new '''Command palette'''. | ||
** Some commands allow you to indicate parameters. A little keyboard icon will show you when the program expects a parameter (such as an angle for rotation, or a fraction for scaling). Note that the unit that is used for parameters is usually 'px', not the display unit. Some parameters require a specific format (like a comma-separated list of values for moving). The format is often indicated in the description of the command, e.g. to align selected objects to the last selected one's left side, find the 'align objects' command, then type 'left last'. | * In the little overlay, a '''type-forward search''' allows you to find any available command to execute on the whole drawing or selection. The list of available commands is currently restricted to those commands that have already been converted to 'actions', as part of an ongoing effort. Additionally, it includes the option to '''import or open files''' from Inkscape's document usage history. | ||
** Some commands allow you to indicate '''parameters'''. A little '''keyboard icon''' will show you when the program expects a parameter (such as an angle for rotation, or a fraction for scaling). Note that the unit that is used for parameters is usually 'px', not the display unit. Some parameters require a specific format (like a comma-separated list of values for moving). The format is often indicated in the description of the command, e.g. to align selected objects to the last selected one's left side, find the 'align objects' command, then type 'left last'. | |||
** Some commands do nothing visible in the user interface (yet), as either | ** Some commands do nothing visible in the user interface (yet), as either | ||
*** they only work in conjunction with other commands, such as commands that change how a file is exported, or commands that export the file. These need to be entered in order, e.g. <code>export type</code> ⯈ type 'png' ⯈ press <kbd>Enter</kbd> ⯈ press <kbd>?</kbd> ⯈ <code>export file name</code> ⯈ type a file name ⯈ press <kbd>Enter</kbd> ⯈ press <kbd>?</kbd> ⯈ <code>export do</code> ⯈ press <kbd>Enter</kbd>; <code>export do</code> in this example can also be used repeatedly to export the updated image to the same file name) or | *** they only work '''in conjunction with other commands''', such as commands that change how a file is exported, or commands that export the file. These need to be entered in order, e.g. <code>export type</code> ⯈ type 'png' ⯈ press <kbd>Enter</kbd> ⯈ press <kbd>?</kbd> ⯈ <code>export file name</code> ⯈ type a file name ⯈ press <kbd>Enter</kbd> ⯈ press <kbd>?</kbd> ⯈ <code>export do</code> ⯈ press <kbd>Enter</kbd>; <code>export do</code> in this example can also be used repeatedly to export the updated image to the same file name) or | ||
*** they produce output on the command line (like commands asking for coordinates of objects), which you will only see if you have started Inkscape from the command line. | *** they '''produce output on the command line''' (like commands asking for coordinates of objects), which you will only see if you have started Inkscape from the command line. | ||
* Press <kbd>Enter</kbd> to execute any command. | * Press '''<kbd>Enter</kbd> to execute''' any command. | ||
* By pressing the <kbd>↑</kbd> (upwards arrow key), you enter the history mode, where you can choose between commands that you have already used. | * By pressing the <kbd>↑</kbd> (upwards arrow key), you enter the '''history mode''', where you can choose between commands that you have already used. | ||
* To close the palette, if not using any of the commands offered, you can press <kbd>?</kbd> again, or just click on the canvas. | * To '''close''' the palette, if not using any of the commands offered, you can '''press <kbd>?</kbd> again''', or just click on the canvas. | ||
<!--T:9--> | |||
If a keyboard shortcut is available for the selected command, it will show up in the command palette (in the form that it is saved in the keyboard shortcut file). | If a keyboard shortcut is available for the selected command, it will show up in the command palette (in the form that it is saved in the keyboard shortcut file). | ||
In the settings, at <code>Edit ⯈ Preferences ⯈ Interface: Command palette</code>, you can select some of the info you would like the palette to display. In addition to the translated action name, it can also show the English names of the commands and the corresponding command line argument name. | In the settings, at <code>Edit ⯈ Preferences ⯈ Interface: Command palette</code>, you can select some of the info you would like the palette to display. In addition to the '''translated action name''', it can also show '''the English names''' of the commands and the corresponding '''command line argument name'''. | ||
This feature was added by Google Summer of Code Student Abhay Raj Singh in 2020. You can learn more about the feature's development [https://gitlab.com/rathod-sahaab/gsoc-2020-inkscape on GitLab] or in [https://dev.to/rathod_sahaab/inkscape-command-palette-merged-15c2 Abhay's blog entry]. ([https://gitlab.com/inkscape/ux/-/issues/31 UX issue #31], [https://gitlab.com/inkscape/inkscape/-/merge_requests/2072 MR #2072]) | <!--T:10--> | ||
This feature was added by '''Google Summer of Code Student Abhay Raj Singh''' in 2020. You can learn more about the feature's development [https://gitlab.com/rathod-sahaab/gsoc-2020-inkscape on GitLab] or in [https://dev.to/rathod_sahaab/inkscape-command-palette-merged-15c2 Abhay's blog entry]. ([https://gitlab.com/inkscape/ux/-/issues/31 UX issue #31], [https://gitlab.com/inkscape/inkscape/-/merge_requests/2072 MR #2072]) | |||
<!--T:11--> | |||
<gallery mode="packed" heights=450px> | <gallery mode="packed" heights=450px> | ||
File:Command pallet demo.gif|The new Command palette can be opened by pressing "?" | File:Command pallet demo.gif|The new Command palette can be opened by pressing "?" | ||
</gallery> | </gallery> | ||
=== <span id="pot">Paste on top of selection</span> === | === <span id="pot">Paste on top of selection</span> === <!--T:12--> | ||
When pasting an object from the clipboard onto the canvas, Inkscape will now by default paste it right above the currently selected object ([https://gitlab.com/inkscape/inkscape/-/issues/1988 Bug #1988], [https://gitlab.com/inkscape/inkscape/-/merge_requests/2476 MR #2476], [https://gitlab.com/inkscape/ux/-/issues/65 Usability test #65]). | <!--T:13--> | ||
When pasting an object from the clipboard onto the canvas, Inkscape will now '''by default paste it right above the currently selected object''' ([https://gitlab.com/inkscape/inkscape/-/issues/1988 Bug #1988], [https://gitlab.com/inkscape/inkscape/-/merge_requests/2476 MR #2476], [https://gitlab.com/inkscape/ux/-/issues/65 Usability test #65]). | |||
This feature can be disabled in <code>Edit ⯈ Preferences ⯈ Behavior ⯈ Selecting: Paste on top of selection instead of layer-top</code>. | This feature can be disabled in <code>Edit ⯈ Preferences ⯈ Behavior ⯈ Selecting: Paste on top of selection instead of layer-top</code>. | ||
<!--T:14--> | |||
<gallery mode="packed" heights=450px> | <gallery mode="packed" heights=450px> | ||
File:Pasting on top of selected + keys.gif| Pasting on top of selection | File:Pasting on top of selected + keys.gif| Pasting on top of selection | ||
</gallery> | </gallery> | ||
=== Paste text as SVG data === | === Paste text as SVG data === <!--T:15--> | ||
Plain text from editors will now be interpreted as an SVG document when pasted into Inkscape (and not currently editing a text object), so you can now open an SVG file in your text editor and copy and paste the whole file into Inkscape ([https://gitlab.com/inkscape/inkscape/-/commit/14f5389926b1a1831ffa8311179d52cc5e8ea134 Commit #14f53899], [https://gitlab.com/inkscape/inbox/-/issues/4845 Known issues]). This only works with complete SVG files, not with parts. This was originally a bug fix for copy-pasting SVG data from applications that do not use the correct mime type when copying their vector contents to the clipboard, but appears to have other potential uses, too. | <!--T:16--> | ||
'''Plain text''' from editors will now be interpreted as an SVG document when pasted into Inkscape (and not currently editing a text object), so you can now open an SVG file in your text editor and copy and paste the whole file into Inkscape ([https://gitlab.com/inkscape/inkscape/-/commit/14f5389926b1a1831ffa8311179d52cc5e8ea134 Commit #14f53899], [https://gitlab.com/inkscape/inbox/-/issues/4845 Known issues]). This '''only works with complete SVG files''', not with parts. This was originally a bug fix for copy-pasting SVG data from applications that do not use the correct mime type when copying their vector contents to the clipboard, but appears to have other potential uses, too. | |||
=== Paste size === | === Paste size === <!--T:17--> | ||
When the option to use the geometrical bounding box is selected in the preferences, the size of the geometrical bounding box will now be used for copying and pasting an object's size ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2243 MR #2243]). | <!--T:18--> | ||
When the option to use the '''geometrical bounding box''' is selected in the preferences, the size of the geometrical bounding box will now '''be used for copying and pasting an object's size''' ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2243 MR #2243]). | |||
== Canvas == | == Canvas == <!--T:19--> | ||
=== | === <span id="outline_overlay">Outline Overlay display mode</span> === <!--T:20--> | ||
<!--T:21--> | |||
In this mode, a '''toned down view of the drawing''' (not click-sensitive) is shown behind the (click-sensitive) '''object outlines'''. The '''opacity''' of the original drawing in this view mode can be set in <code>Edit ⯈ Preferences ⯈ Rendering: Outline overlay opacity</code>. | |||
<!--T:22--> | |||
<gallery mode="packed" heights=450px> | <gallery mode="packed" heights=450px> | ||
File:Outline Overlay Preview.png|Outline Overlay Display mode | File:Outline Overlay Preview.png|Outline Overlay Display mode | ||
</gallery> | </gallery> | ||
=== Handles === | === Handles === <!--T:23--> | ||
* Inkscape now uses vector-based handles, which are currently hardcoded (not SVG) ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2334 MR #2334]) | <!--T:24--> | ||
* The maximum handle size has been increased, so users with HiDPI displays will be able to enlarge them to a more comfortable size from <code>Edit ⯈ Preferences ⯈ Interface: Handle size</code> | * Inkscape now uses '''vector-based handles''', which are currently hardcoded (not SVG) ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2334 MR #2334]) | ||
* Rotation center handles have been made more visible | * The '''maximum handle size has been increased''', so users with HiDPI displays will be able to enlarge them to a more comfortable size from <code>Edit ⯈ Preferences ⯈ Interface: Handle size</code> | ||
* '''Rotation center''' handles have been made more visible | |||
<!--T:25--> | |||
<gallery mode="packed" heights=200px> | <gallery mode="packed" heights=200px> | ||
File:Handels.png|New handles design | File:Handels.png|New handles design | ||
</gallery> | </gallery> | ||
=== Guides === | === Guides === <!--T:26--> | ||
* Guide positions can now be defined with higher precision (5 digits after the decimal separator instead of 3) ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2951 MR #2951]). | <!--T:27--> | ||
* Guides can no longer be moved using the Tweak or Spray tool, but only with the Node and Selector tools ([https://gitlab.com/inkscape/inkscape/-/commit/ca7d46a6b0e6cdce01f5e587e4764e177e14e281 Commit #ca7d46a6]). | * Guide positions can now be defined with '''higher precision''' (5 digits after the decimal separator instead of 3) ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2951 MR #2951]). | ||
* Guides can '''no longer be moved using the Tweak or Spray tool''', but only with the Node and Selector tools ([https://gitlab.com/inkscape/inkscape/-/commit/ca7d46a6b0e6cdce01f5e587e4764e177e14e281 Commit #ca7d46a6]). | |||
== Tools == | == Tools == <!--T:28--> | ||
=== Calligraphy Tool === | === Calligraphy Tool === <!--T:29--> | ||
* The tool now supports units for the width, with a much-increased precision (up to three digits after the decimal separator, e.g. 0.005). The old, zoom-dependent width behavior is accessible with the unit '%' ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2449 MR #2449]) | <!--T:30--> | ||
* The entry field for 'Mass' has been moved towards left (for LTR languages) on the tool's tool controls bar, emphasizing its importance ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2816 MR #2816]) | * The tool now supports '''units for the width''', with a '''much-increased precision''' (up to three digits after the decimal separator, e.g. 0.005). The old, zoom-dependent width behavior is accessible with the unit ''''%'''' ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2449 MR #2449]) | ||
* The entry field for ''''Mass'''' has been moved towards left (for LTR languages) on the tool's tool controls bar, emphasizing its importance ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2816 MR #2816]) | |||
=== Connector tool === | === Connector tool === <!--T:31--> | ||
* It's now possible to connect to objects that are on top of the object that the connector was started from ([https://gitlab.com/inkscape/inkscape/-/issues/1115 Bug #1115]) | <!--T:32--> | ||
* Connection lines now update in real-time while objects are moved | * It's now possible to connect to objects that are '''on top of the object that the connector was started from''' ([https://gitlab.com/inkscape/inkscape/-/issues/1115 Bug #1115]) | ||
* Connection lines now '''update in real-time''' while objects are moved | |||
<!--T:33--> | |||
<gallery mode="packed" heights=400px> | <gallery mode="packed" heights=400px> | ||
File:Connections updated while dragging.gif|Connector tool updating while dragging objects | File:Connections updated while dragging.gif|Connector tool updating while dragging objects | ||
</gallery> | </gallery> | ||
=== Node tool=== | === Node tool=== <!--T:34--> | ||
The node tool <span id="paste_nodes">now allows to copy, cut and paste</span> a selection of nodes. These nodes can be inserted into the original path, into a different path or they can be pasted as a completely new path ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2343 MR #2343]). | <!--T:35--> | ||
The node tool <span id="paste_nodes">now allows to '''copy, cut and paste'''</span> a selection of nodes. These nodes can be inserted '''into the original path, into a different path''' or they can be '''pasted as a completely new path''' ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2343 MR #2343]). | |||
<gallery mode="packed" | <!--T:36--> | ||
<gallery mode="packed" > | |||
File:Copy and past parts of the path.gif| Copy and paste parts of a path | File:Copy and past parts of the path.gif| Copy and paste parts of a path | ||
</gallery> | </gallery> | ||
=== Pen / Pencil Tool === | === Pen / Pencil Tool === <!--T:37--> | ||
<!--T:38--> | |||
The Pen and Pencil tools feature a new ''''Scale'''' option to set the '''width of paths''' created with a 'Shape' option other than 'None' numerically (the handle that allows you to adjust the width with the node tool continues to be available). | |||
<!--T:39--> | |||
<gallery mode="packed" heights=300px> | <gallery mode="packed" heights=300px> | ||
File:Scale option in pencil tool.gif|Using the scale number entry field to precisely adjust stroke width | File:Scale option in pencil tool.gif|Using the scale number entry field to precisely adjust stroke width | ||
</gallery> | </gallery> | ||
=== Selector Tool === | === Selector Tool === <!--T:40--> | ||
<!--T:41--> | |||
A '''new selection mode''' for the lasso/rubber-band selection was added, which can now select every object that is either '''within the box or that touches its boundaries'''. The mode can be activated by pressing '''the corresponding button''' in the Selector tool's tool controls bar. On canvas, the mode is visualized by changing the color of the selection box to a '''dashed red line''' while dragging ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2520 MR #2520]). | |||
<!--T:42--> | |||
<gallery mode="packed" heights=400px> | <gallery mode="packed" heights=400px> | ||
File:Touch to select rectangle2.gif|Comparison of the two lasso selection modes | File:Touch to select rectangle2.gif|Comparison of the two lasso selection modes | ||
</gallery> | </gallery> | ||
=== Star and Polygon Tool === | === Star and Polygon Tool === <!--T:43--> | ||
<!--T:44--> | |||
Stars created with the Star/Polygon tool can now have '''only two corners'''. This allows the creation of '''rhomboid/diamond shapes''' ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2044 MR #2044]) | |||
<!--T:45--> | |||
<gallery mode="packed" heights=350px> | <gallery mode="packed" heights=350px> | ||
File:2 side Star tool.gif|A star with only two corners … is a rhomboid | File:2 side Star tool.gif|A star with only two corners … is a rhomboid | ||
</gallery> | </gallery> | ||
=== Text Tool === | === Text Tool === <!--T:46--> | ||
<!--T:47--> | |||
* '''Text-in-a-shape''' (aka flowed text) can now make use of '''justified text alignment''' ([https://gitlab.com/inkscape/inkscape/-/merge_requests/1764 MR #1764]) | |||
* Highlight all shapes: When editing text-in-shape or text-on-path, '''all shapes are highlighted''', not only the first ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2468 MR #2468]) and the orientation / position of the shapes is shown correctly (e.g. display rotated rectangle as being rotated). | |||
* Distances entered in the text tool's number fields '''can now exceed 100 units''' (new maximum is 1000 units; [https://gitlab.com/inkscape/inkscape/-/issues/1639 Bug #1639]) | |||
* When first opened, the '''font selection dropdown''' now '''does not contain any font samples'''. They are shown only when the dropdown expands '''for the second time'''. This is a workaround around the font dropdown not showing any scroll bars when opening it first and temporarily freezing Inkscape ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2546 MR #2546]). | |||
== Dialogs == <!--T:48--> | |||
== | === General === <!--T:49--> | ||
=== | ==== <span id="docking">Docking</span> ==== <!--T:50--> | ||
<!--T:51--> | |||
Dialogs can now be docked '''on the left side of the Inkscape window'''. They're now '''displayed as tabs''', with optional label and icon. The dialog tabs can be combined to '''new floating docks'''. Tabs can be closed by middle mouse click, right-click and selecting to close, or by clicking on the x icon.<br>The previous option to minimize dialogs has been superseded by the new feature.<br>The work for this big code refactoring was undertaken by '''Google Summer of Code Student Valentin Ionita''' in 2020. You can learn more about his work [https://gitlab.com/vanntile/inkscape-gsoc-2020 on GitLab] ([https://gitlab.com/vanntile/inkscape-gsoc-2020/-/blob/master/RFC.md technical documentation]). | |||
<!--T:52--> | |||
The '''dock layout is now remembered across Inkscape sessions''' ([https://gitlab.com/inkscape/inkscape/-/issues/1422 Bug #1422]) and the dialogs' size is also remembered ([https://gitlab.com/inkscape/inkscape/-/issues/2213 Bug #2213]) | |||
<!--T:53--> | |||
When a user requests a dialog to open (e.g. with the keyboard shortcut, or by pressing a button), the dialog will now show a '''flashing animation''', so it will be easier to see it (both when it is actually being opened and when it has already been open). | |||
<!--T:54--> | |||
<gallery mode="packed" heights=450px> | <gallery mode="packed" heights=450px> | ||
File:Docking demo.gif|Playing with the new dialog docking system | File:Docking demo.gif|Playing with the new dialog docking system | ||
</gallery> | </gallery> | ||
==== Design ==== | ==== Design ==== <!--T:55--> | ||
<!--T:56--> | |||
Arrows on '''color sliders''' now have better visibility ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2427 MR #2427]) | |||
<!--T:57--> | |||
<gallery mode="packed" heights=200px> | <gallery mode="packed" heights=200px> | ||
File:Color sliders arrows.png|Updated color sliders | File:Color sliders arrows.png|Updated color sliders | ||
</gallery> | </gallery> | ||
=== 'About Inkscape' dialog === | === 'About Inkscape' dialog === <!--T:58--> | ||
The <code>Help ⯈ About Inkscape</code> dialog has been rebuilt from scratch with a larger window (and image) and a tabbed interface. | <!--T:59--> | ||
The <code>Help ⯈ About Inkscape</code> dialog has been rebuilt from scratch with a '''larger window''' (and image) and a '''tabbed interface'''. | |||
* The user-contributed About Screen artwork is now displayed much larger, as it should be! | <!--T:60--> | ||
* Authors and translators are now featured on separate tabs, email addresses are no longer shown and the order of names is randomized ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2497 MR #2497]). | * The user-contributed 'About Screen' artwork is now displayed '''much larger''', as it should be! | ||
* A new | * '''Authors and translators''' are now featured on separate tabs, email addresses are no longer shown and the order of names is randomized ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2497 MR #2497]). | ||
* All the tabs include calls to action or links to the official website for more information. | * A new '''License tab''' offers a brief explanation of Inkscape licensing. | ||
* The current version of Inkscape is displayed on a button. When clicked, the full version information is copied to the clipboard, so it can be used in bug reports, for example. | * All the tabs include '''calls to action or links''' to the official website for more information. | ||
* In the bottom right corner, there is an additional small button with a little beetle on it. Clicking that button will copy extensive information about available software library versions, in addition to operating system and Inkscape version information. | * The current version of Inkscape is displayed on a button. When clicked, the '''full version information is copied to the clipboard''', so it can be used in bug reports, for example. | ||
* In the bottom right corner, there is an additional small button with a '''little beetle''' on it. Clicking that button will copy '''extensive information about available software library versions''', in addition to operating system and Inkscape version information. | |||
<!--T:61--> | |||
<gallery mode="packed" heights=500px> | <gallery mode="packed" heights=500px> | ||
File:About dialog 1.1.gif|The updated 'About Inkscape' dialog | File:About dialog 1.1.gif|The updated 'About Inkscape' dialog | ||
</gallery> | </gallery> | ||
=== Document Properties dialog === | === Document Properties dialog === <!--T:62--> | ||
Many video formats are now available for selection in the 'Page' tab of the Document Properties dialog ([https://gitlab.com/inkscape/inkscape/-/merge_requests/1314 MR #1314]). | <!--T:63--> | ||
Many '''video formats''' are now available for selection in the 'Page' tab of the Document Properties dialog ([https://gitlab.com/inkscape/inkscape/-/merge_requests/1314 MR #1314]). | |||
=== Fill and Stroke === | === Fill and Stroke === <!--T:64--> | ||
* The stroke's width can now be set to '''Hairline''' in the dialog at <code>Object ⯈ Fill and stroke ⯈ Stroke Style</code> (as a unit). This type of stroke is always 1px wide, independent of the zoom level. The feature will hopefully one day be useful for laser cutting and plotting ([https://gitlab.com/inkscape/inkscape/-/merge_requests/846 MR #846]) | <!--T:65--> | ||
** Hairline strokes can be exported to file formats with native hairline support (PDF/PS), but this requires [https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/21 a code change in the Cairo software library], which has not been accepted (yet), so the PS/PDF hairline export feature will not yet be available in any official packages. If unavailable, a very thin line width will be used instead (1px at the "1:1 zoom" level of the output). | * The stroke's width can now be set to '''Hairline''' in the dialog at <code>Object ⯈ Fill and stroke ⯈ Stroke Style</code> (as a unit). This type of stroke is '''always 1px wide''', independent of the zoom level. The feature will hopefully one day be useful for laser cutting and plotting ([https://gitlab.com/inkscape/inkscape/-/merge_requests/846 MR #846]) | ||
** In other SVG renderers, hairlines will be handled via non-scaling stroke with a stroke width of 1px. | ** Hairline strokes can (theoretically) be exported to file formats with native hairline support (PDF/PS), but this requires [https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/21 a code change in the Cairo software library], which has not been accepted (yet), so the PS/PDF hairline export feature will not yet be available in any official packages. If unavailable, a very thin line width will be used instead (1px at the "1:1 zoom" level of the output). | ||
** Export to PNG and rendering on canvas will use a line width of 1px. | ** In other '''SVG renderers''', hairlines will be handled via '''non-scaling stroke''' with a stroke width of 1px. | ||
** Export to '''PNG and rendering on canvas''' will use a '''line width of 1px'''. | |||
* The '''Miter maximum''' has been increased to 100000 ([https://gitlab.com/inkscape/inkscape/-/issues/1996 Bug #1996]) | * The '''Miter maximum''' has been increased to 100000 ([https://gitlab.com/inkscape/inkscape/-/issues/1996 Bug #1996]) | ||
* Stock markers use SVG 2.0 context-stroke to automatically take on the stroke color of the object ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2009 MR #2009]). If SVG 1.1 compatibility is needed, the setting for marker colors in <code>Edit ⯈ Preferences ⯈ Input/Output ⯈ SVG export</code> can be activated and SVG 1.1 compatibility can be activated in the 'Save as' dialog. | * Stock markers use SVG 2.0 context-stroke to '''automatically take on the stroke color of the object''' ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2009 MR #2009]). If SVG 1.1 compatibility is needed, the setting for marker colors in <code>Edit ⯈ Preferences ⯈ Input/Output ⯈ SVG export</code> can be activated and SVG 1.1 compatibility can be activated in the 'Save as' dialog. | ||
<!--T:66--> | |||
<gallery mode="packed" heights=500px> | <gallery mode="packed" heights=500px> | ||
File:InkscapeHairlines.gif|Hairlines stay the same width, independent of the zoom level | File:InkscapeHairlines.gif|Hairlines stay the same width, independent of the zoom level | ||
</gallery> | </gallery> | ||
=== Filter Editor dialog === | === Filter Editor dialog === <!--T:67--> | ||
When right-clicking on a filter in the filter list, there is an option called 'Select' now to select all objects which are using that filter. | <!--T:68--> | ||
When right-clicking on a filter in the filter list, there is an option called 'Select' now to '''select all objects which are using that filter'''. | |||
<!--T:69--> | |||
<gallery mode="packed" heights=400px> | <gallery mode="packed" heights=400px> | ||
File:Select objects with this filter.gif|Select all objects with the same filter | File:Select objects with this filter.gif|Select all objects with the same filter | ||
</gallery> | </gallery> | ||
=== Find/Replace dialog === | === Find/Replace dialog === <!--T:70--> | ||
It's now possible to also search in 'desc' and 'title' attributes of objects ([https://gitlab.com/inkscape/inkscape/-/merge_requests/1310 MR #1310]) | <!--T:71--> | ||
It's now possible to also '''search in 'desc' and 'title' attributes''' of objects ([https://gitlab.com/inkscape/inkscape/-/merge_requests/1310 MR #1310]) | |||
=== Gradient Editor dialog | === Legacy Gradient Editor dialog removed === <!--T:72--> | ||
<!--T:73--> | |||
The legacy gradient editor (a dialog that could previously be enabled in the preferences for the gradient tool) '''has been removed'''. A replacement may be added in a later version ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2015 MR #2015]). | |||
=== Preferences dialog === | === Preferences dialog === <!--T:74--> | ||
* The preferences dialog now features <span id="pref_search">a search bar</span>, which performs a recursive search over all the nested categories of settings: | <!--T:75--> | ||
* The preferences dialog now features '''<span id="pref_search">a search bar</span>''', which performs a recursive search over all the nested categories of settings: | |||
** press '''<code>F3</code>''' or '''<code>Ctrl + G</code>''' for next result | ** press '''<code>F3</code>''' or '''<code>Ctrl + G</code>''' for next result | ||
** press '''<code>Shift + F3</code>''' or '''<code>Ctrl + Shift+G</code>''' for previous result | ** press '''<code>Shift + F3</code>''' or '''<code>Ctrl + Shift+G</code>''' for previous result | ||
* In <code>Edit ⯈ Preferences ⯈ Rendering</code>, there is a new option to <code>Redraw while editing</code>, which '''improves performance of redrawing''' with some faster CPUs ("Responsive", active by default, or "Conservative"). | |||
* In <code>Edit ⯈ Preferences ⯈ Rendering</code>, there is a new option to <code>Redraw while editing</code>, which improves performance of redrawing with some faster CPUs ("Responsive", active by default, or "Conservative"). | * In <code>Edit ⯈ Preferences ⯈ Behavior ⯈ Scrolling</code>, the setting '''Mouse wheel zooms by default''' has been '''removed'''. This setting can now be set by disabling the modifier 'Ctrl' for '''Canvas zoom''', and enabling it for '''Vertical pan''' instead (see section about 'Customization' below for more information). | ||
* In <code>Edit ⯈ Preferences ⯈ Behavior ⯈ Scrolling</code>, the setting '''Mouse wheel zooms by default''' has been removed. This setting can now be set by disabling the modifier 'Ctrl' for '''Canvas zoom''', and enabling it for '''Vertical pan''' instead (see section about 'Customization' below for more information). | * The '''Zoom correction factor''' in <code>Edit ⯈ Preferences ⯈ Interface</code> now works correctly for other units than mm and remembers values below 100%. | ||
* The Zoom correction factor in <code>Edit ⯈ Preferences ⯈ Interface</code> now works correctly for other units than mm and remembers values below 100%. | * There is an option now in <code>Edit ⯈ Preferences ⯈ Interface: Show zoom percentage corrected by factor</code>to adjust the number shown in the Zoom field in the bottom right corner of the Inkscape window to match the real world scale. The new option is active by default, so that, after adjusting the factor for your monitor, at 100% zoom, your document page is '''as large on the screen as it is in reality'''. | ||
* There is an option now to adjust the number shown in the Zoom field in the bottom right corner to match the real world scale. The new option is active by default, so that, after adjusting the factor for your monitor, at 100% zoom, your document page is as large on the screen as it is in reality. | |||
* In <code>Edit ⯈ Preferences ⯈ Interface: Cursor size</code>, the option to '''Enable cursor scaling''' allows users to work around too large and unsharp cursors in some cases ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2432 MR #2432]) | * In <code>Edit ⯈ Preferences ⯈ Interface: Cursor size</code>, the option to '''Enable cursor scaling''' allows users to work around too large and unsharp cursors in some cases ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2432 MR #2432]) | ||
* Removed favorite languages from <code>Edit ⯈ Preferences ⯈ Spellcheck</code>, as they did not work properly. Language can still be selected in the | * '''Removed favorite languages''' from <code>Edit ⯈ Preferences ⯈ Spellcheck</code>, as they did not work properly. Language can still be selected in the Spellcheck dialog itself ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2527 MR #2527]). | ||
* Added an option to <code>Edit ⯈ Preferences ⯈ Imported Images : Import : Store absolute filepath for linked images</code>, that allows you to decide whether you'd like to save the absolute path of a linked image in the file. This allows you to move the SVG file around on your disk with more confidence, but it also exposes your computer's file structure more, if you share the image with others ([https://gitlab.com/inkscape/inkscape/-/issues/526 Bug #526]). | * Added an option to <code>Edit ⯈ Preferences ⯈ Imported Images : Import : Store absolute filepath for linked images</code>, that allows you to decide '''whether you'd like to save the absolute path of a linked image in the file'''. This allows you to move the SVG file around on your disk with more confidence, but it also exposes your computer's file structure more, if you share the image with others ([https://gitlab.com/inkscape/inkscape/-/issues/526 Bug #526]). | ||
<!--T:76--> | |||
<gallery mode="packed" heights=400px> | <gallery mode="packed" heights=400px> | ||
File:A search bar in the preferences dialogue.gif|Search bar in the Preferences dialog | File:A search bar in the preferences dialogue.gif|Search bar in the Preferences dialog | ||
</gallery> | </gallery> | ||
=== Symbols dialog === | === Symbols dialog === <!--T:77--> | ||
<!--T:78--> | |||
'''Symbol search''' now also takes symbol name '''translations''' into account ([https://gitlab.com/inkscape/inkscape/-/issues/1804 Issue #1804]) | |||
=== Text and Font dialog === | === Text and Font dialog === <!--T:79--> | ||
<!--T:80--> | |||
* Removed the 'Close' button and the icon on the 'Apply' button ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2523 MR #2523]) | * Removed the 'Close' button and the icon on the 'Apply' button ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2523 MR #2523]) | ||
* Users can now customize the font sample text in the preferences for the Text tool (e.g. to include their own language's special characters; [https://gitlab.com/inkscape/inkscape/-/merge_requests/2537 MR #2537]) | * Users can now '''customize the font sample text''' in the preferences for the Text tool (e.g. to include their own language's special characters; [https://gitlab.com/inkscape/inkscape/-/merge_requests/2537 MR #2537]) | ||
=== Trace Bitmap dialog === | === Trace Bitmap dialog === <!--T:81--> | ||
* Following better UI guidelines, the 'OK' button was renamed to 'Apply' ([https://gitlab.com/inkscape/inbox/-/issues/1291 Bug UX#1291]) | <!--T:82--> | ||
* An option to optimize the result of 'Tracing pixelart' was added ([https://gitlab.com/inkscape/inkscape/-/issues/1137 Bug #1137]) | * Following better UI guidelines, the ''''OK' button was renamed to 'Apply'''' ([https://gitlab.com/inkscape/inbox/-/issues/1291 Bug UX#1291]) | ||
* An option to '''optimize''' the result of 'Tracing pixelart' was added ([https://gitlab.com/inkscape/inkscape/-/issues/1137 Bug #1137]) | |||
=== <span id="welcome">'Welcome' dialog</span>=== | === <span id="welcome">'Welcome' dialog</span>=== <!--T:83--> | ||
A new Welcome and onboarding screen was added. | <!--T:84--> | ||
A new '''Welcome and onboarding screen''' was added. | |||
In its first tab, you can set up the theme for Inkscape, in the second tab, you will find links to our website, where you can learn how to support the project. The last tab gives you a choice between various document formats and recently used files. | <!--T:85--> | ||
In its first tab, you can '''set up the theme''' for Inkscape, in the second tab, you will find links to our website, where you can learn '''how to support the project'''. The last tab gives you a choice between '''various document formats and recently used files'''. | |||
To select a file to open, click on it and then use the <code>Load</code> button. You can also double-click on any of the files and file format icons (faster). To open the default template, click on the 'New document' button. | <!--T:86--> | ||
To select a file/format to open, click on it and then use the <code>Load</code> button. You can also '''double-click''' on any of the files and file format icons (faster). To open the '''default template''', click on the 'New document' button. | |||
The appearing of the dialog can be deactivated either by a checkbox in its last tab, or in <code>Edit ⯈ Preferences ⯈ Windows: Miscellaneous</code>. | <!--T:87--> | ||
The appearing of the dialog can be deactivated either '''by a checkbox in its last tab''', or in <code>Edit ⯈ Preferences ⯈ Windows: Miscellaneous</code>. | |||
<!--T:88--> | |||
<gallery mode="packed" heights=350px> | <gallery mode="packed" heights=350px> | ||
File:Welcome dialog 1.png|The new Welcome dialog | File:Welcome dialog 1.png|The new Welcome dialog | ||
Line 267: | Line 318: | ||
</gallery> | </gallery> | ||
=== XML dialog === | === XML dialog === <!--T:89--> | ||
* When a text span is selected, it can be edited in a proper text entry field now ([https://gitlab.com/inkscape/inkscape/-/merge_requests/1977 MR #1977]) | <!--T:90--> | ||
* When a nested group is selected, that exact group can now also be moved around on-canvas ([https://gitlab.com/inkscape/inkscape/-/issues/1266 Bug #1266]) | * When a text span is selected, it can be edited '''in a proper text entry field''' now ([https://gitlab.com/inkscape/inkscape/-/merge_requests/1977 MR #1977]) | ||
* When a nested group is selected, '''that exact group''' can now also be moved around on-canvas ([https://gitlab.com/inkscape/inkscape/-/issues/1266 Bug #1266]) | |||
== Filters == | == Filters == <!--T:91--> | ||
* A new "Fast Crop" filter can be found at <code>Filters ⯈ Fill and transparency ⯈ Fast Crop</code>. Adjust the handles with the node tool to crop to a rectangular region ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2767 MR #2767]). | * A new "Fast Crop" filter can be found at <code>Filters ⯈ Fill and transparency ⯈ Fast Crop</code>. Adjust the handles with the node tool to crop to a rectangular region ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2767 MR #2767]). | ||
<!--T:92--> | |||
<gallery mode="packed" heights=500px> | <gallery mode="packed" heights=500px> | ||
File:Fast Crop.gif|Cropping a screenshot of the About Screen quickly using the new 'Fast Crop' filter | File:Fast Crop.gif|Cropping a screenshot of the About Screen quickly using the new 'Fast Crop' filter | ||
</gallery> | </gallery> | ||
== Live path effects == | == Live path effects == <!--T:93--> | ||
=== General === | === General === <!--T:94--> | ||
==== Automatic fill preservation for path effects ==== | ==== Automatic fill preservation for path effects ==== <!--T:95--> | ||
LPEs which render strokes as fills (<code>Join Type</code>, <code>Power Stroke</code> and <code>Taper Stroke</code>) have been modified to automatically preserve the previous fill by creating a linked clone with the original fill color when applied to an object ([https://gitlab.com/inkscape/inkscape/-/merge_requests/1969 MR #1969]). | <!--T:96--> | ||
LPEs which render strokes as fills (<code>Join Type</code>, <code>Power Stroke</code> and <code>Taper Stroke</code>) have been modified to '''automatically preserve the previous fill''' by creating a linked clone with the original fill color when applied to an object ([https://gitlab.com/inkscape/inkscape/-/merge_requests/1969 MR #1969]). | |||
<!--T:97--> | |||
<gallery mode="packed" heights=250px> | <gallery mode="packed" heights=250px> | ||
File:Sadchrys original drawing with fill.png|Original drawing | File:Sadchrys original drawing with fill.png|Original drawing | ||
Line 294: | Line 349: | ||
</gallery> | </gallery> | ||
=== "Boolean Operations" LPE === | === "Boolean Operations" LPE === <!--T:98--> | ||
* The path effect is no longer marked as experimental | <!--T:99--> | ||
* The path effect is '''no longer marked as experimental'''! | |||
* Some operations that did not work reliably had to be removed (cut, cut inside, cut outside, [https://gitlab.com/inkscape/inkscape/-/merge_requests/2810 MR #2810]) | * Some operations that did not work reliably had to be removed (cut, cut inside, cut outside, [https://gitlab.com/inkscape/inkscape/-/merge_requests/2810 MR #2810]) | ||
* Operands can now easily be selected and moved with the mouse. | * Operands can now easily be '''selected and moved''' with the mouse. | ||
* Improved stability | * Improved '''stability''' | ||
=== "Fill between many" LPE === | === "Fill between many" LPE === <!--T:100--> | ||
A new item '''Fill between Paths''' has been added under the <code>Path</code> menu to automatically create a linked fill path using the '''Fill between many''' path effect. The effect is created beneath the selected paths and automatically selected to | <!--T:101--> | ||
A new item '''Fill between Paths''' has been added under the <code>Path</code> menu to automatically create a linked fill path using the '''Fill between many''' path effect. The effect is created beneath the selected paths and then '''automatically selected''' to facilitate moving the path into the correct z-order and styling it as intended. For greater efficiency, a shortcut can also be assigned, using the '''Preferences''' dialog ([https://gitlab.com/inkscape/inkscape/-/merge_requests/1973 MR #1973]). | |||
This is especially useful for filling variable-width paths created with the PowerStroke option (or other | <!--T:102--> | ||
This is especially useful for '''filling variable-width paths''' created with the PowerStroke option (or other Live Path Effects that use the fill to emulate a stroke). | |||
<!--T:103--> | |||
<gallery mode="packed" heights=500px> | <gallery mode="packed" heights=500px> | ||
File:Fill between manny - egg.gif|Previously, using this effect required tediously copying every path to the clipboard and pasting it into the parameter list of a new path. | File:Fill between manny - egg.gif|Previously, using this effect required tediously copying every path to the clipboard and pasting it into the parameter list of a new path. | ||
</gallery> | </gallery> | ||
=== "Offset" LPE === | === "Offset" LPE === <!--T:104--> | ||
* The Offset LPE's performance was improved for more complex shapes. | <!--T:105--> | ||
* Open paths can now have an offset that is not automatically closed | * The Offset LPE's '''performance was improved''' for more complex shapes. | ||
* '''Open paths''' can now have an offset that is not automatically closed. | |||
<!--T:106--> | |||
<gallery mode="packed" heights=390px> | <gallery mode="packed" heights=390px> | ||
File:Offset open path.gif|Offsetting an open path | File:Offset open path.gif|Offsetting an open path | ||
</gallery> | </gallery> | ||
=== "Slice" LPE (new) === | === "Slice" LPE (new) === <!--T:107--> | ||
This new path effect allows you to split an object into two (or more by stacking multiple LPEs), without destroying the original. | <!--T:108--> | ||
This new path effect allows you to '''split an object into two''' (or more by stacking multiple LPEs), without destroying the original. | |||
<!--T:109--> | |||
It works with groups, shapes, and paths. If you want to use it on text, you need to use the 'Clone' LPE and apply the 'Slice' LPE on this clone. | |||
It also allows '''changing styles for the resulting parts''', because each part is a separate object ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2372 MR #2372]) | |||
<!--T:110--> | |||
<gallery mode="packed" heights=600px> | <gallery mode="packed" heights=600px> | ||
File:Slice LPE 1.gif|Using the new 'Slice' Live Path Effect | File:Slice LPE 1.gif|Using the new 'Slice' Live Path Effect | ||
</gallery> | </gallery> | ||
=== "Taper Stroke" LPE === | === "Taper Stroke" LPE === <!--T:111--> | ||
The Taper | <!--T:112--> | ||
The 'Taper Stroke' LPE has been updated to include '''taper direction options''' (allowing the taper to run to one side of the path, instead of to the middle) and '''smoothing options''' for both ends of the path, allowing more interesting paths to be made in the effect. | |||
<!--T:113--> | |||
In addition, <code>'''Shift+click'''</code>ing on the on-canvas handles allows '''quickly alternates''' between the different possible taper shapes. | |||
<!--T:114--> | |||
<gallery mode="packed" heights=400px> | <gallery mode="packed" heights=400px> | ||
File:Taper stroke direction control.png|Direction control options | File:Taper stroke direction control.png|Direction control options | ||
Line 339: | Line 409: | ||
</gallery> | </gallery> | ||
== Import / Export == | == Import / Export == <!--T:115--> | ||
=== Import === | === Import === <!--T:116--> | ||
* Inkscape can now recognize layers in SVG files exported from CorelDraw ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2046 MR #2046]) | <!--T:117--> | ||
* When importing a DXF file, a new option for setting the text scale factor is available now ([https://gitlab.com/inkscape/extensions/-/issues/321 Bug extensions#321]) | * Inkscape can now recognize '''layers in SVG files exported from CorelDraw''' ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2046 MR #2046]) | ||
* When importing a '''DXF file''', a new option for setting the '''text scale factor''' is available now ([https://gitlab.com/inkscape/extensions/-/issues/321 Bug extensions#321]) | |||
=== Export === | === Export === <!--T:118--> | ||
==== PNG Export Dialog ==== | ==== PNG Export Dialog ==== | ||
* The default export area when nothing is selected is now 'Page'. This leads to the 'Custom' tab being initialized with the coordinates of the page, so it should be rarer to accidentally get an invalid export area of 0x0 px size. When deselecting an object, the export area mode is now set back to the one it had before 'Selection', which can be 'Page', 'Drawing' or 'Custom' (and not always 'Drawing')([https://gitlab.com/inkscape/inkscape/-/merge_requests/1587 MR #1587]). | <!--T:119--> | ||
* The '''default export area''' when nothing is selected is now ''''Page''''. This leads to the 'Custom' tab being initialized with the coordinates of the page, so '''it should be rarer to accidentally get an invalid export area''' of 0x0 px size. When deselecting an object, the export area mode is now '''set back to the one it had before''' 'Selection', which can be 'Page', 'Drawing' or 'Custom' (and not always 'Drawing')([https://gitlab.com/inkscape/inkscape/-/merge_requests/1587 MR #1587]). | |||
* The <span id="png_export">'''Export PNG Image dialog'''</span> now exports the PNG as soon as the button <code>Export as</code> has been clicked and a file name was selected for the file. It's no longer necessary to explicitly click on Export after choosing a file name. Clicking on <code>Export</code> will still be available to export to the file name that is currently set in the dialog ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2080 MR #2080]). | * The <span id="png_export">'''Export PNG Image dialog'''</span> now exports the PNG as soon as the button <code>Export as</code> has been clicked and a file name was selected for the file. It's no longer necessary to explicitly click on Export after choosing a file name. Clicking on <code>Export</code> will still be available to export to the file name that is currently set in the dialog ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2080 MR #2080]). | ||
* Use the file name extensions <span id="raster_export">''''.jpg', '.webp' or '.tiff''''</span> in the PNG export dialog to open the corresponding export options and export to the selected file format. In the file chooser that opens after clicking on 'Export as', there is also a dropdown menu available to choose the file format. ''''Optimized PNG'''' is available there as an additional option (as it uses the same file name extension, it's not possible to auto-detect). The export functionality is implemented using a Python extension of the new 'Raster Output' type. | * Use the file name extensions <span id="raster_export">''''.jpg', '.webp' or '.tiff''''</span> in the PNG export dialog to open the corresponding export options and export to the selected file format. In the file chooser that opens after clicking on 'Export as', there is also a dropdown menu available to choose the file format. ''''Optimized PNG'''' is available there as an additional option (as it uses the same file name extension, it's not possible to auto-detect). The export functionality is implemented using a Python extension of the new 'Raster Output' type. | ||
<!--T:120--> | |||
<gallery mode="packed" heights=150px> | <gallery mode="packed" heights=150px> | ||
File:Jpg export 1.png | A warning about JPEG export | File:Jpg export 1.png | A warning about JPEG export | ||
Line 362: | Line 435: | ||
</gallery> | </gallery> | ||
==== Other export formats ==== | ==== Other export formats ==== <!--T:121--> | ||
* HPGL (for plotting): the speed can now be set for each Pen independently, using layer names ([https://gitlab.com/inkscape/extensions/-/issues/277 Bug extensions#277]) | <!--T:122--> | ||
* GPL (Gimp palette): named custom swatch colors' names are now included in the resulting gpl file ([https://gitlab.com/inkscape/extensions/-/commit/2e08b0bde1d16fe32060292dec19135e95b1af8e Commit extensions#2e08b0b]) | * '''HPGL (for plotting):''' the speed can now be set for each Pen independently, using layer names ([https://gitlab.com/inkscape/extensions/-/issues/277 Bug extensions#277]) | ||
* '''GPL (Gimp palette):''' named custom swatch colors' names are now included in the resulting <code>.gpl</code> file ([https://gitlab.com/inkscape/extensions/-/commit/2e08b0bde1d16fe32060292dec19135e95b1af8e Commit extensions#2e08b0b]) | |||
== Customization == | == Customization == <!--T:123--> | ||
=== Cursors === | === Cursors === <!--T:124--> | ||
A set of SVG-based, themeable mouse cursors with HiDPI support were added. | <!--T:125--> | ||
A set of '''SVG-based, themeable mouse cursors''' with HiDPI support were added. | |||
<!--T:126--> | |||
These new cursors are coupled with the icon themes. The default set (hicolor theme) is stored in <code>~inkscape\share\inkscape\icons\hicolor\cursors</code>. | These new cursors are coupled with the icon themes. The default set (hicolor theme) is stored in <code>~inkscape\share\inkscape\icons\hicolor\cursors</code>. | ||
<!--T:127--> | |||
To override them with your personal cursors while keeping the selected theme, your user configuration directory needs to supply the following structure to Inkscape: | To override them with your personal cursors while keeping the selected theme, your user configuration directory needs to supply the following structure to Inkscape: | ||
<!--T:128--> | |||
<pre> | <pre> | ||
inkscape (this is your user preferences directory, its location depends on your operating system) | inkscape (this is your user preferences directory, its location depends on your operating system) | ||
Line 388: | Line 467: | ||
</pre> | </pre> | ||
<!--T:129--> | |||
More information can be found on the [[SVG Cursors]] page. | More information can be found on the [[SVG Cursors]] page. | ||
<!--T:130--> | |||
<gallery mode="packed" heights=350px> | <gallery mode="packed" heights=350px> | ||
File:Coursers.png|New cursor theme | File:Coursers.png|New cursor theme | ||
</gallery> | </gallery> | ||
=== Shortcuts === | === Shortcuts === <!--T:131--> | ||
<!--T:132--> | |||
* In <code>Edit ⯈ Preferences ⯈ Interface ⯈ Keyboard</code>, in the new '''Modifiers''' tab, you can customize keyboard shortcut modifiers for on-canvas mouse actions or disable the shortcut entirely (for example holding <kbd>Ctrl</kbd> for scaling while keeping the object's aspect ratio can be changed to Shift; [https://gitlab.com/inkscape/inkscape/-/merge_requests/2070 MR #2070]) | * In <code>Edit ⯈ Preferences ⯈ Interface ⯈ Keyboard</code>, in the new '''Modifiers''' tab, you can customize keyboard shortcut modifiers for on-canvas mouse actions or disable the shortcut entirely (for example holding <kbd>Ctrl</kbd> for scaling while keeping the object's aspect ratio can be changed to Shift; [https://gitlab.com/inkscape/inkscape/-/merge_requests/2070 MR #2070]) | ||
* Keyboard shortcut files for Inkscape can now inherit from other keyboard shortcut files by using [https://en.wikipedia.org/wiki/XInclude XInclude] ([https://gitlab.com/inkscape/inkscape/-/merge_requests/1150 MR #1150]) | * Keyboard shortcut files for Inkscape can now '''inherit''' from other keyboard shortcut files by using [https://en.wikipedia.org/wiki/XInclude XInclude] ([https://gitlab.com/inkscape/inkscape/-/merge_requests/1150 MR #1150]) | ||
* Illustrator keyboard shortcut map has been updated to include a few more common and up-to-date shortcuts ([https://gitlab.com/inkscape/inkscape/-/issues/2109 Bug #2109], [https://gitlab.com/inkscape/inkscape/-/merge_requests/2069 MR #2069]) | * '''Illustrator keyboard shortcut map''' has been updated to include a few more common and up-to-date shortcuts ([https://gitlab.com/inkscape/inkscape/-/issues/2109 Bug #2109], [https://gitlab.com/inkscape/inkscape/-/merge_requests/2069 MR #2069]) | ||
<!--T:133--> | |||
<gallery mode=packed heights=550px> | <gallery mode=packed heights=550px> | ||
File:Modifiers.png|The new shortcut modifiers settings | File:Modifiers.png|The new shortcut modifiers settings | ||
</gallery> | </gallery> | ||
=== Themes === | === Themes === <!--T:134--> | ||
<!--T:135--> | |||
* A more '''compact Minwaita theme''' (derived from Adwaita) has been added, with a light and a dark mode | * A more '''compact Minwaita theme''' (derived from Adwaita) has been added, with a light and a dark mode | ||
* The '''win32 theme has been improved''' by adding some custom adjustments | * The '''win32 theme has been improved''' by adding some custom adjustments | ||
* '''Many small tweaks''' and refinements in to '''Multicolor icon pack''' | * '''Many small tweaks''' and refinements in to '''Multicolor icon pack''' | ||
== macOS-specific Changes == | == macOS-specific Changes == <!--T:136--> | ||
<!--T:137--> | |||
* New Inkscape '''icon''' ([https://gitlab.com/inkscape/inkscape/-/issues/2072 Bug #2072]) | * New Inkscape '''icon''' ([https://gitlab.com/inkscape/inkscape/-/issues/2072 Bug #2072]) | ||
* '''Visio files''' can be imported ([https://gitlab.com/inkscape/inkscape/-/issues/2094 Bug #2094]) | * '''Visio files''' can be imported ([https://gitlab.com/inkscape/inkscape/-/issues/2094 Bug #2094]) | ||
* '''Breaking change:''' We can no longer bundle Ghostscript, effectively '''removing out of the box support for EPS and PS''' ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2608 MR #2608]). <br>'''''[https://gitlab.com/inkscape/inbox/-/issues/4321 Learn how to work around this restriction]'''''. | * '''Breaking change:''' We can no longer bundle Ghostscript, effectively '''removing out of the box support for EPS and PS''' ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2608 MR #2608]). <br>'''''[https://gitlab.com/inkscape/inbox/-/issues/4321 Learn how to work around this restriction]'''''. | ||
== Extensions == | == Extensions == <!--T:138--> | ||
=== Features added === | === Features added === <!--T:139--> | ||
<!--T:140--> | |||
* '''"Bar code" extension''' now accepts tildes, too ([https://gitlab.com/inkscape/extensions/-/commit/e09622547cc13cce93695c645ce627af5883453a Commit extensions#e096225]) | * '''"Bar code" extension''' now accepts tildes, too ([https://gitlab.com/inkscape/extensions/-/commit/e09622547cc13cce93695c645ce627af5883453a Commit extensions#e096225]) | ||
* The extensions '''"Function Plotter"''' and '''"Parametric Curves"''' now support more mathematical functions and constants, and can even make use of the random() function ([https://gitlab.com/inkscape/extensions/-/commit/70d53ae7317a6a9ce007ccf3d19787106e8abaaa Commit extensions#70d53ae7]) | * The extensions '''"Function Plotter"''' and '''"Parametric Curves"''' now support more mathematical functions and constants, and can even make use of the random() function ([https://gitlab.com/inkscape/extensions/-/commit/70d53ae7317a6a9ce007ccf3d19787106e8abaaa Commit extensions#70d53ae7]) | ||
* '''"Lorem ipsum" extension''' can now flow text into selected shapes, so the generated text changes along with any further changes of the shape, instead of only creating a text in the shape of the selection ([https://gitlab.com/inkscape/extensions/-/issues/122 Bug extensions#122]) | * '''"Lorem ipsum" extension''' can now flow text into selected shapes, so the generated text changes along with any further changes of the shape, instead of only creating a text in the shape of the selection ([https://gitlab.com/inkscape/extensions/-/issues/122 Bug extensions#122]) | ||
=== Fixes === | === Fixes === <!--T:141--> | ||
==== Bugs ==== | ==== Bugs ==== <!--T:142--> | ||
<!--T:143--> | |||
* Path transformations now work more reliably ([https://gitlab.com/inkscape/extensions/-/merge_requests/230 MR extensions#230], [https://gitlab.com/inkscape/extensions/-/issues/255 Bug extensions#255], [https://gitlab.com/inkscape/extensions/-/issues/299 Bug extensions#299], [https://gitlab.com/inkscape/extensions/-/issues/343 Bug extensions#343]) | * Path transformations now work more reliably ([https://gitlab.com/inkscape/extensions/-/merge_requests/230 MR extensions#230], [https://gitlab.com/inkscape/extensions/-/issues/255 Bug extensions#255], [https://gitlab.com/inkscape/extensions/-/issues/299 Bug extensions#299], [https://gitlab.com/inkscape/extensions/-/issues/343 Bug extensions#343]) | ||
* Some older extensions were greyed out in the menu; now they can be run again (but might not work; [https://gitlab.com/inkscape/extensions/-/commit/e5c1668dbf939f6f7a1645f9e7411048a8ced640 Commit extensions#e5c1668]) | * Some older extensions were greyed out in the menu; now they can be run again (but might not work; [https://gitlab.com/inkscape/extensions/-/commit/e5c1668dbf939f6f7a1645f9e7411048a8ced640 Commit extensions#e5c1668]) | ||
* "3D Polyhedrons" are rendered now, even when the faces are supposed to be ordered by the location of their centroid ([https://gitlab.com/inkscape/extensions/-/issues/262 Bug extensions#262]) | * "3D Polyhedrons" are rendered now, even when the faces are supposed to be ordered by the location of their centroid ([https://gitlab.com/inkscape/extensions/-/issues/262 Bug extensions#262]) | ||
* "3D Polyhedrons" can be created from custom files again ([https://gitlab.com/inkscape/extensions/-/issues/342 Bug extensions#342]) | |||
* "Create Typography Canvas" includes the necessary guides again ([https://gitlab.com/inkscape/extensions/-/issues/254 Bug extensions#254]) | |||
* "Deep Ungroup" no longer scatters text and shape objects around ([https://gitlab.com/inkscape/extensions/-/issues/340 Bug extensions#340]) | |||
* "Draw Handles" extension draws the handles in the right places again, even if the object they belong to has been rotated or otherwise transformed ([https://gitlab.com/inkscape/extensions/-/issues/335 Bug extensions#335]) | * "Draw Handles" extension draws the handles in the right places again, even if the object they belong to has been rotated or otherwise transformed ([https://gitlab.com/inkscape/extensions/-/issues/335 Bug extensions#335]) | ||
* "DXF import" now sets the colors correctly ([https://gitlab.com/inkscape/extensions/-/issues/315 Bug extensions#315]) | * "DXF import" now sets the colors correctly ([https://gitlab.com/inkscape/extensions/-/issues/315 Bug extensions#315]) | ||
Line 440: | Line 530: | ||
* "Lorem ipsum" extension supports generating SVG2 text ([https://gitlab.com/inkscape/extensions/-/issues/201 Bug extensions#201]) | * "Lorem ipsum" extension supports generating SVG2 text ([https://gitlab.com/inkscape/extensions/-/issues/201 Bug extensions#201]) | ||
* "Lorem ipsum" extension: generated text has a more reasonable font size again ([https://gitlab.com/inkscape/extensions/-/issues/201 Bug extensions#201]) | * "Lorem ipsum" extension: generated text has a more reasonable font size again ([https://gitlab.com/inkscape/extensions/-/issues/201 Bug extensions#201]) | ||
* "Measure path" indicates the center of mass correctly again ([https://gitlab.com/inkscape/extensions/-/issues/171 Bug extensions#171]) | |||
* "Number nodes" no longer transforms the numbers it creates ([https://gitlab.com/inkscape/extensions/-/merge_requests/314 MR extensions#314]) | |||
* "Pattern along Path" produces correct results again ([https://gitlab.com/inkscape/extensions/-/merge_requests/312 MR extensions#312]) | |||
* "Scatter" produces correct results again (as long as the 'stretch spaces' option is checked, and no randomization is used; [https://gitlab.com/inkscape/extensions/-/issues/368 Bug extensions#368]) | |||
* "Scatter" option for duplicating paths removed ([https://gitlab.com/inkscape/extensions/-/issues/368 Bug extensions#368]) | |||
* "Scatter" respects z-order again ([https://gitlab.com/inkscape/extensions/-/issues/293 Bug extensions#293]) | |||
* "Randomize Color" extension no longer always uses red as a basis for the hue change ([https://gitlab.com/inkscape/extensions/-/issues/234 Bug extensions #234]) | * "Randomize Color" extension no longer always uses red as a basis for the hue change ([https://gitlab.com/inkscape/extensions/-/issues/234 Bug extensions #234]) | ||
* "Restack" extension uses the selected mechanism for changing the stacking order when reversing z-order and when using the 'angle' mode ([https://gitlab.com/inkscape/extensions/-/issues/45 Bug extensions#45]) | * "Restack" extension uses the selected mechanism for changing the stacking order when reversing z-order and when using the 'angle' mode ([https://gitlab.com/inkscape/extensions/-/issues/45 Bug extensions#45]) | ||
* "Rubberstretch" extension: the effect of the <code>Curve</code> parameter is larger again ([https://gitlab.com/inkscape/extensions/-/issues/263 Bug extensions#263]) | * "Rubberstretch" extension: the effect of the <code>Curve</code> parameter is larger again ([https://gitlab.com/inkscape/extensions/-/issues/263 Bug extensions#263]) | ||
==== Crashes ==== | ==== Crashes ==== <!--T:144--> | ||
<!--T:145--> | |||
* CSS classes with a dash don't make extensions crash anymore ([https://gitlab.com/inkscape/extensions/-/issues/317 Bug extensions#317]) | |||
* "Deep Ungroup" can deal with transformed clipped objects again ([https://gitlab.com/inkscape/extensions/-/issues/184 Bug extensions#184]) | |||
* "Embed Images" embeds linked SVG images in more cases now ([https://gitlab.com/inkscape/extensions/-/issues/283 Bug extensions#283], [https://gitlab.com/inkscape/extensions/-/issues/325 Bug extensions#325]) | |||
* "GCodetools" work again with Graffiti points ([https://gitlab.com/inkscape/extensions/-/issues/311 Bug extensions#311]) | |||
* "GCodetools" 'Area' tab can again be used to fill objects with concentric lines ([https://gitlab.com/inkscape/extensions/-/issues/296 Bug extensions#296]) | |||
* "Printing Marks" extension works again ([https://gitlab.com/inkscape/extensions/-/issues/313 Bug extensions#313]) | |||
* <code>Web ⯈ Javascript ⯈ Set/Transmit Attribute</code> extensions work again ([https://gitlab.com/inkscape/extensions/-/issues/270 Bug extensions#270]) | |||
* "Scatter" works again when the option "Pattern is vertical" (now: "Rotate pattern 90° clockwise") is used ([https://gitlab.com/inkscape/extensions/-/issues/295 Bug extensions#295]) | |||
* "Pattern along Path" no longer crashes with text objects in the pattern ([https://gitlab.com/inkscape/extensions/-/issues/124 Bug extensions#124]) | |||
* "Synfig export" works again without crashing ([https://gitlab.com/inkscape/extensions/-/issues/278 Bug extensions#278]) | * "Synfig export" works again without crashing ([https://gitlab.com/inkscape/extensions/-/issues/278 Bug extensions#278]) | ||
* "Voronoi Diagram" creation works again with automatic bounding box creation ([https://gitlab.com/inkscape/extensions/-/issues/242 Bug extensions#242]) | * "Voronoi Diagram" creation works again with automatic bounding box creation ([https://gitlab.com/inkscape/extensions/-/issues/242 Bug extensions#242]) | ||
=== <span id="extman">Extension Manager (Beta)</span> === | === <span id="extman">Extension Manager (Beta)</span> === <!--T:146--> | ||
<!--T:147--> | |||
A new extension was added to Inkscape, which allows users to access a repository containing '''community-vetted Python extensions''' on the inkscape.org website from inside the Inkscape program. | A new extension was added to Inkscape, which allows users to access a repository containing '''community-vetted Python extensions''' on the inkscape.org website from inside the Inkscape program. | ||
<!--T:148--> | |||
The feature is '''considered beta''' currently, but will improve mid-cycle as it is able to update itself by its own installation mechanism. | The feature is '''considered beta''' currently, but will improve mid-cycle as it is able to update itself by its own installation mechanism. | ||
<!--T:149--> | |||
It works by creating a virtual Python environment in the extensions subdirectory. Extensions are uploaded by their creators as zip files into the [https://inkscape.org/gallery/=extension/ Extensions gallery] on the website, and then need to undergo a review process by trusted community members who will then sign the uploads with their GPG signature. | It works by creating a virtual Python environment in the extensions subdirectory. Extensions are uploaded by their creators as zip files into the [https://inkscape.org/gallery/=extension/ Extensions gallery] on the website, and then need to undergo a review process by trusted community members who will then sign the uploads with their GPG signature. | ||
<!--T:150--> | |||
To ask for a review, extension developers are supposed to contact [https://chat.inkscape.org/channel/inkscape_extensions Inkscape's extensions team in the chat]. Some wait time is to be expected, so please be patient with your request. | To ask for a review, extension developers are supposed to contact [https://chat.inkscape.org/channel/inkscape_extensions Inkscape's extensions team in the chat]. Some wait time is to be expected, so please be patient with your request. | ||
<!--T:151--> | |||
Structure and requirements (beyond that they must comply with the community's [https://inkscape.org/community/coc/ Code of Conduct]) are not defined or documented yet, so be open to having to make changes to your files during the review. Find more information, updates about and known issues with the Extensions Manager [https://gitlab.com/inkscape/extras/extension-manager/ here]. | Structure and requirements (beyond that they must comply with the community's [https://inkscape.org/community/coc/ Code of Conduct]) are not defined or documented yet, so be open to having to make changes to your files during the review. Find more information, updates about and known issues with the Extensions Manager [https://gitlab.com/inkscape/extras/extension-manager/ here]. | ||
<!--T:152--> | |||
As a user, '''note that 100% security cannot be guaranteed'''. Use the new feature with care. | As a user, '''note that 100% security cannot be guaranteed'''. Use the new feature with care. | ||
<!--T:153--> | |||
On '''Windows''', the Extensions Manager comes as an '''optional installable component''' for the exe and msi packaging formats, so administrators can decide whether they want to allow their users to download user-contributed extensions from the internet. | On '''Windows''', the Extensions Manager comes as an '''optional installable component''' for the exe and msi packaging formats, so administrators can decide whether they want to allow their users to download user-contributed extensions from the internet. | ||
<!--T:154--> | |||
<gallery mode="packed" heights=250px> | <gallery mode="packed" heights=250px> | ||
File:Ext man 0.png|The Extension Manager is the last item in the Extensions menu | File:Ext man 0.png|The Extension Manager is the last item in the Extensions menu | ||
Line 478: | Line 586: | ||
</gallery> | </gallery> | ||
=== API changes for extension developers === | === API changes for extension developers === <!--T:155--> | ||
<!--T:156--> | |||
* '''Breaking change:''' Python 2 is no longer supported, '''extensions require at least Python 3.6''' ([https://gitlab.com/inkscape/extensions/-/issues/351 Bug extensions#351]) | * '''Breaking change:''' Python 2 is no longer supported, '''extensions require at least Python 3.6''' ([https://gitlab.com/inkscape/extensions/-/issues/351 Bug extensions#351]) | ||
* '''Breaking change:''' [https://inkscape.gitlab.io/extensions/documentation/inkex.elements._base.html#inkex.elements._base.BaseElement.description <code>Element.description()</code>] is now [https://inkscape.gitlab.io/extensions/documentation/inkex.elements._base.html#inkex.elements._base.BaseElement.desc <code>Element.desc</code>]. The new form now includes <code>Element.desc = "some value"</code> for setting the attribute, and [https://inkscape.gitlab.io/extensions/documentation/inkex.elements._base.html#inkex.elements._base.BaseElement.title <code>Element.title</code>], which works the same way as <code>desc</code> (only for the title/tooltip) and didn't exist before. | * '''Breaking change:''' [https://inkscape.gitlab.io/extensions/documentation/inkex.elements._base.html#inkex.elements._base.BaseElement.description <code>Element.description()</code>] is now [https://inkscape.gitlab.io/extensions/documentation/inkex.elements._base.html#inkex.elements._base.BaseElement.desc <code>Element.desc</code>]. The new form now includes <code>Element.desc = "some value"</code> for setting the attribute, and [https://inkscape.gitlab.io/extensions/documentation/inkex.elements._base.html#inkex.elements._base.BaseElement.title <code>Element.title</code>], which works the same way as <code>desc</code> (only for the title/tooltip) and didn't exist before. | ||
Line 491: | Line 600: | ||
** Multiple functions have been added that make it easier to handle transformations in extensions, so if you've been relying on doing those manually in your extension, you may like to check back to see if inkex supports them now (cross product, easier chaining of transforms, polar coordinates functions, | ** Multiple functions have been added that make it easier to handle transformations in extensions, so if you've been relying on doing those manually in your extension, you may like to check back to see if inkex supports them now (cross product, easier chaining of transforms, polar coordinates functions, | ||
<!--T:157--> | |||
If you were using [https://inkscape.gitlab.io/extensions/documentation/inkex.command.html#inkex.command.inkscape <code>inkex.command.inkscape()</code>], there should be no need to update for the latest Inkscape, it should just work. | If you were using [https://inkscape.gitlab.io/extensions/documentation/inkex.command.html#inkex.command.inkscape <code>inkex.command.inkscape()</code>], there should be no need to update for the latest Inkscape, it should just work. | ||
=== Behind the curtains === | === Behind the curtains === <!--T:158--> | ||
<!--T:159--> | |||
Many new tests have been added to the extensions code, so developers will more easily be able to know whether their code changes introduce bugs in extensions. | Many new tests have been added to the extensions code, so developers will more easily be able to know whether their code changes introduce bugs in extensions. | ||
== Command line == | == Command line == <!--T:160--> | ||
<!--T:161--> | |||
* The '''color mode''' of exported PNG files can now be set on the command line with <code>--export-png-color-mode</code> (options: <code>Gray_1|Gray_2|Gray_4|Gray_8|Gray_16|RGB_8|RGB_16|GrayAlpha_8|GrayAlpha_16|RGBA_8|RGBA_16</code>; [https://gitlab.com/inkscape/inkscape/-/merge_requests/2339 MR #2339]) | * The '''color mode''' of exported PNG files can now be set on the command line with <code>--export-png-color-mode</code> (options: <code>Gray_1|Gray_2|Gray_4|Gray_8|Gray_16|RGB_8|RGB_16|GrayAlpha_8|GrayAlpha_16|RGBA_8|RGBA_16</code>; [https://gitlab.com/inkscape/inkscape/-/merge_requests/2339 MR #2339]) | ||
* To export a file using arbitrary '''export formats provided by an extension''' of the 'output' type, one can use the new <code>--export-extension</code> parameter now ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2294 MR #2294 with more details]) | * To export a file using arbitrary '''export formats provided by an extension''' of the 'output' type, one can use the new <code>--export-extension</code> parameter now ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2294 MR #2294 with more details]) | ||
Line 511: | Line 623: | ||
** '''command line editing''' is now possible | ** '''command line editing''' is now possible | ||
== Behind the curtains == | == Behind the curtains == <!--T:162--> | ||
<!--T:163--> | |||
Inkscape developers have also worked on improving and evolving parts of Inkscape which are not directly visible to the users. Indirectly, these changes will also benefit the users, as they make it easier for developers to work with the project, and help them make fewer mistakes. | Inkscape developers have also worked on improving and evolving parts of Inkscape which are not directly visible to the users. Indirectly, these changes will also benefit the users, as they make it easier for developers to work with the project, and help them make fewer mistakes. | ||
* Documentation for developers was updated and improved continuously, helping developers better understand other people's code | <!--T:164--> | ||
* Outdated code was updated continuously, making it easier to handle the code moving forwards. This includes a continued effort to convert old C code to modern C++, removing dead code and rewriting parts of the code in a more modern way. | * '''Documentation for developers''' was updated and improved continuously, helping developers better understand other people's code | ||
* Code formatting was improved continuously, improving readability of the code | * '''Refactoring:''' Outdated code was updated continuously, making it easier to handle the code moving forwards. This includes a continued effort to convert old C code to modern C++, removing dead code and rewriting parts of the code in a more modern way. | ||
* Continuous integration was updated and improved continuously, ensuring that each code change will be tested automatically and can be reviewed by bug reporters before it is included into the main line code, also keeping up with changes in GitLab, AppVeyor and other infrastructure that is used by Inkscape | * '''Code formatting''' was improved continuously, improving readability of the code | ||
* Improvements were made to the build system, so Inkscape can be built on more Linux, Windows and macOS versions, keeping up with changes in software libraries that Inkscape depends upon | * '''Continuous integration''' was updated and improved continuously, ensuring that each code change will be tested automatically and can be reviewed by bug reporters before it is included into the main line code, also keeping up with changes in GitLab, AppVeyor and other infrastructure that is used by Inkscape | ||
* Many tests were added and improved, reducing the risk of accidental loss of functionality | * Improvements were made to the '''build system''', so Inkscape can be built on more Linux, Windows and macOS versions, keeping up with changes in software libraries that Inkscape depends upon | ||
* The conversion process from <code>verb</code>s to <code>action</code>s was continued | * Many '''tests''' were added and improved, reducing the risk of accidental loss of functionality | ||
* Running test versions on Windows was simplified by adding shortcuts to the top level folder: <code>Run Inkscape !.bat</code>, <code>Run Inkscape and create debug trace.bat</code>, <code>Run Inkscape with GTK Inspector.bat</code> ([https://gitlab.com/inkscape/inbox/-/issues/4615 Bug inbox#4615]) | * The '''conversion process from <code>verb</code>s to <code>action</code>s''' was continued | ||
* '''Running test versions on Windows''' was simplified by '''adding shortcuts''' to the top level folder: <code>Run Inkscape !.bat</code>, <code>Run Inkscape and create debug trace.bat</code>, <code>Run Inkscape with GTK Inspector.bat</code> ([https://gitlab.com/inkscape/inbox/-/issues/4615 Bug inbox#4615]) | |||
== Bug fixes == | == Bug fixes == <!--T:165--> | ||
=== Crash fixes === | === Crash fixes === <!--T:166--> | ||
<!--T:167--> | |||
Fix a crash … | Fix a crash … | ||
<!--T:168--> | |||
* when exporting a file containing an object clipped with a filtered object to PDF ([https://gitlab.com/inkscape/inkscape/-/issues/203] Bug #203) | * when exporting a file containing an object clipped with a filtered object to PDF ([https://gitlab.com/inkscape/inkscape/-/issues/203] Bug #203) | ||
* when deleting the <code>d</code> attribute in the XML editor ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2722 MR #2722]) | * when deleting the <code>d</code> attribute in the XML editor ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2722 MR #2722]) | ||
Line 557: | Line 673: | ||
* … and many more crashes | * … and many more crashes | ||
=== Other bug fixes === | === Other bug fixes === <!--T:169--> | ||
<!--T:170--> | |||
(affected functionality highlighted, so you can find 'your' bug more quickly) | |||
<!--T:171--> | |||
'''UI and General''' | |||
<!--T:172--> | |||
* The color selector's '''color wheel''' looks better now on HiDPI screens ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2416 MR #2416]) | |||
* '''Color slider''' no longer has a thin line going across it on HiDPI screens ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2733 MR #2733]) | |||
* The '''color indicator field''' in the bottom left corner of the window now uses a constant width and has been cleaned up a bit ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2400 MR #2400]) | |||
* Improved '''icon colors''', fixing multiple bugs for different Gtk themes and icon themes ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2845 MR #2845]) | |||
* You can now just '''click in the color wheel to select a color''' ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2428 MR #2428]) | |||
* The '''color picker''' works again in extension dialogs and other dialogs that are not the 'Fill and Stroke' dialog ([https://gitlab.com/inkscape/inkscape/-/issues/1026 Bug #1026]) | |||
* When '''rotating the canvas''', objects' handles rotate along with it now ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2334 MR #2334]) | |||
* Reverse order of '''z-order buttons''' to achieve more consistency ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2556 MR #2556]) | |||
* '''Icon''' for 'Unset paint' in the Fill & Stroke dialog was improved ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2770 MR #2770]) | |||
* The '''status bar''' updates correctly now when removing a filter ([https://gitlab.com/inkscape/inkscape/-/issues/2208 Bug #2208]) | |||
* The '''canvas colors''' update instantly now after activating / deactivating the color managed view ([https://gitlab.com/inkscape/inkscape/-/issues/1948 Bug #1948]) | |||
* '''Authors and translators''' of Inkscape are displayed in the 'About Inkscape' dialog again on Windows ([https://gitlab.com/inkscape/inkscape/-/issues/1592 Bug #1592]) | |||
* Parts of the '''user interface''' were empty after starting Inkscape ([https://gitlab.com/inkscape/inkscape/-/issues/1509 Bug #1509]) | |||
* When returning to a minimized Inkscape window from another program, the Inkscape '''main window is now focused''' instead of one of the floating dialogs ([https://gitlab.com/inkscape/inkscape/-/issues/1695 Bug #1695]) | |||
* Inkscape '''no longer asks twice''' whether you would like to save a file when trying to close it with <kbd>Ctrl+W</kbd> ([https://gitlab.com/inkscape/inkscape/-/issues/1943 Bug #1943]) | |||
* '''Number fields''' that lost the ability to understand unit identifiers entered behind the number (e.g. enter '10cm' in a field that uses mm) now again know what to do with them ([https://gitlab.com/inkscape/inkscape/-/issues/1282 Bug #1282]) | |||
* When right-clicking on a '''number entry field''', you'll no longer be able to choose among duplicated or invalid values ([https://gitlab.com/inkscape/inkscape/-/merge_requests/1446 MR #1446]) | |||
* The '''Auto palette''' now shows all custom swatches that exist in a document (not only newly added ones) and should update reliably ([https://gitlab.com/inkscape/inkscape/-/issues/2340 Bug #2340]) | |||
* Locked '''guides''' can no longer be deleted using <kbd>Del</kbd> ([https://gitlab.com/inkscape/inkscape/-/issues/1905 Bug #1905]) | |||
* The keyboard shortcuts displayed in the '''menus''' are now updated instantly when changing the keyboard shortcut map ([https://gitlab.com/inkscape/inkscape/-/issues/741 Bug #741]) | |||
* '''Lasso selection''' now uses a dashed border to improve visibility with different background colors ([https://gitlab.com/inkscape/inkscape/-/issues/1456 Bug #1456]) | |||
* Reading and updating information about available '''fonts''' is now faster ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2727 MR #2727]) | |||
* '''Autosave''' overwrites the correct autosaved files now when the maximum number of autosave files is reached ([https://gitlab.com/inkscape/inkscape/-/issues/1649 Bug #1649]) | |||
* The '''input mode indicator''' (needed for languages such as Chinese or Japanese) now appears at the text tool's cursor position again ([https://gitlab.com/inkscape/inkscape/-/issues/1009 Bug #1009]) | |||
* Changed the font in '''number entry fields''' from a monospaced one to using the tabular numbers feature ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2763 MR #2763]) | |||
* Wording and spelling improvements | |||
* Multiple memory leak fixes | |||
<!--T:173--> | |||
'''Specific Functionality''' | |||
<!--T:174--> | |||
* | * '''Paths''' no longer appear to move sometimes when undoing an edit to them ([https://gitlab.com/inkscape/inkscape/-/issues/1251 Bug #1251]) | ||
* <code>@import</code> statements in '''CSS style sheets''' are now processed in the correct order, so their styles are no longer overwritten unintentionally | |||
* Inkscape no longer freezes when '''opening a file''' that contains multiple style tags ([https://gitlab.com/inkscape/inkscape/-/issues/1755 Bug #1755]) | |||
* Fix of <code>feColorMatrix</code> '''filter primitive''' default rendering ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2424 MR #2424]) | |||
* Show color output for <code>feColorMatrix</code> with <code>in=SourceAlpha</code> ([https://gitlab.com/inkscape/inkscape/-/issues/1147 Bug #1147]) | |||
* Blurred objects can now have an additional '''filter''' or '''blend mode''' again ([https://gitlab.com/inkscape/inkscape/-/issues/2306 Bug #2306]) | |||
* Updating a '''custom swatch''''s color value now works again, even if you're not using the color sliders to do that ([https://gitlab.com/inkscape/inkscape/-/issues/188 Bug #188]) | |||
* ''''Last used style'''' now respects style changes caused by swapping fill and stroke ([https://gitlab.com/inkscape/inkscape/-/issues/1937 Bug #1937]) | |||
* ''''Last used style'''' no longer includes any filters ([https://gitlab.com/inkscape/inkscape/-/issues/1831 Bug #1831]) | |||
* When '''pasting a color hex code''' onto any selected object(s) with <kbd>Ctrl</kbd> + <kbd>V</kbd>, the fill color will now again change to the color indicated by the hex code ([https://gitlab.com/inkscape/inkscape/-/issues/2046 Bug #2046]) | |||
* Update behavior of ''''Selectors and CSS'''' dialog improved ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3136 MR #3136]) | |||
* @import statements in CSS sheets are now processed in the correct order, so their styles are no longer overwritten unintentionally | |||
* Inkscape no longer freezes when opening a file that contains multiple style tags ([https://gitlab.com/inkscape/inkscape/-/issues/1755 Bug #1755]) | |||
* Fix of feColorMatrix filter primitive default rendering ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2424 MR #2424]) | |||
* Show color output for feColorMatrix with in=SourceAlpha ([https://gitlab.com/inkscape/inkscape/-/issues/1147 Bug #1147]) | |||
* Blurred objects can now have an additional filter or blend mode again ([https://gitlab.com/inkscape/inkscape/-/issues/2306 Bug #2306]) | |||
* Updating a custom swatch's color value now works again, even if you're not using the color sliders to do that ([https://gitlab.com/inkscape/inkscape/-/issues/188 Bug #188]) | |||
* 'Last used style' now respects style changes caused by swapping fill and stroke ([https://gitlab.com/inkscape/inkscape/-/issues/1937 Bug #1937]) | |||
* 'Last used style' no longer includes any filters ([https://gitlab.com/inkscape/inkscape/-/issues/1831 Bug #1831]) | |||
* Update behavior of 'Selectors and CSS' dialog improved ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3136 MR #3136]) | |||
* Objects using some less common color codes for their fill no longer become black (unset paint) when transforming them in specific ways ([https://gitlab.com/inkscape/inkscape/-/issues/1651 Bug #1651]) | * Objects using some less common color codes for their fill no longer become black (unset paint) when transforming them in specific ways ([https://gitlab.com/inkscape/inkscape/-/issues/1651 Bug #1651]) | ||
* Markers can again be removed from rectangle objects ([https://gitlab.com/inkscape/inkscape/-/issues/1936 Bug #1936]) | * '''Markers''' can again be removed from rectangle objects ([https://gitlab.com/inkscape/inkscape/-/issues/1936 Bug #1936]) | ||
* | * When creating a '''marker''' from multiple selected objects, the z-order is now respected in the resulting marker (previously, it was the selection order that determined the z-order; [https://gitlab.com/inkscape/inkscape/-/merge_requests/2274 MR #2274]) | ||
* | * The 'no end marker' option has a symbolic picture now in the '''marker dropdowns''' in the Fill and Stroke dialog ([https://gitlab.com/inkscape/inkscape/-/issues/1841 Bug #1841]) | ||
* | * The 'Polka dots, large' and 'Polka dots, large white' '''patterns''' tile seamlessly again ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2772 MR #2772]) | ||
* Inkscape can now deal with '''scientific notation''' (e.g. "1.6e6") in style values ([https://gitlab.com/inkscape/inkscape/-/issues/1547 Bug #1547], [https://gitlab.com/inkscape/inkscape/-/issues/2189 #2189]) | |||
* | * Multiple fixes for ''''Stroke to path'''' command ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2410 MR #2410]) | ||
* | * <code>Path ⯈ Simplify</code> no longer removes '''class attributes''' ([https://gitlab.com/inkscape/inkscape/-/issues/2191 Bug #2191]) | ||
* | * Fix reversed buttons in '''"Arrange / Polar Coordinates"''' ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2561 MR 2561]) | ||
* | * Fix z-order rendering issue after '''ungrouping''' ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2452 MR #2452]) | ||
* | * '''Ungrouping''' no longer moves / scales various types of objects and styles (e.g. clones, offsets, patterns, gradients ...) ([https://gitlab.com/inkscape/inkscape/-/issues/706 Bug #706], [https://gitlab.com/inkscape/inkscape/-/merge_requests/2464 MR #2464]) | ||
* Comments in '''groups''' in an SVG's source code no longer cause Inkscape to invert z-order ([https://gitlab.com/inkscape/inkscape/-/issues/2011]) | |||
* | * Fix '''"Pop selected object out of group"''' when using Ctrl+Click [https://gitlab.com/inkscape/inkscape/-/merge_requests/2729 MR #2729]) | ||
* | * Fix '''copying mesh gradients''' to new document ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2362 MR #2362]) | ||
* | * The '''measurement tool''''s angle is now always displayed on the correct side ([https://gitlab.com/inkscape/inkscape/-/issues/2303 Bug #2303]) | ||
* The | * The previous measuring results of the '''measurement tool''' no longer jump away from their position when switching tools and then switching back to measuring ([https://gitlab.com/inkscape/inkscape/-/issues/2388 Bug #2388]) | ||
* | * Fix an issue with the ''''Roughen' LPE''' ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3062 MR #3062]) | ||
* | * Fix '''bounding box''' on combined LPEs (Rotate copies + Bend; [https://gitlab.com/inkscape/inkscape/-/merge_requests/2522 MR #2522]) | ||
* | * The ''''Mirror Symmetry' LPE''' now updates correctly when changing its values numerically ([https://gitlab.com/inkscape/inkscape/-/issues/2141 Bug #2141]) | ||
* | * The result of insetting an object using the ''''Offset' LPE''' now consists of a more reasonable number of nodes ([https://gitlab.com/inkscape/inbox/-/issues/4443 Bug #4443]) | ||
* | * Hid a ''''Mirror' LPE''' parameter of which nobody knew what it does ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2778 MR #2778]) | ||
* | * Multiple fixes related to various aspects of '''Live Path Effect transformations and copying''' | ||
* | * Restore '''performance''' when selecting an object with the Fill and Stroke dialog open ([https://gitlab.com/inkscape/inkscape/-/issues/1191 Bug #1191]) | ||
* | * '''Ellipses''' are now un-created and re-created (with <kbd>Ctrl</kbd> + <kbd>Z</kbd> / <kbd>Ctrl</kbd> + <kbd>Y</kbd>) correctly ([https://gitlab.com/inkscape/inkscape/-/issues/1488 Bug #1488]) | ||
* | * '''Undoing''' a path drawn with the Pen(-cil) tool using <code>Shape: (Bend) from clipboard</code> no longer requires two steps ([https://gitlab.com/inkscape/inkscape/-/issues/2204 Bug #2204]) | ||
* | * '''Processing Instructions''' and comments are no longer auto-deleted ([https://gitlab.com/inkscape/inkscape/-/issues/1050 Bug #1050]) | ||
* | * '''3D boxes''' don't jump around and scale unexpectedly when moving them ([https://gitlab.com/inkscape/inkscape/-/issues/2228 Bug #2228]) | ||
* | * '''Copy-pasting text-on-path''' no longer displaces or scales the text ([https://gitlab.com/inkscape/inkscape/-/issues/853 Bug #853]) | ||
* | * The 'optical size' axis works now for '''variable fonts''' ([https://gitlab.com/inkscape/inkscape/-/issues/1986 Bug #1986]) | ||
* New lines can now be added to flowed text using the text entry field in the '''Text and Font dialog''', and are no longer lost in certain circumstances ([https://gitlab.com/inkscape/inkscape/-/issues/1887 Bug #1887], [https://gitlab.com/inkscape/inkscape/-/issues/1891 #1891]) | |||
* | * Improvements to font selection and '''font loading''' speed | ||
* Multiple fixes for ''''Selectors and CSS'''' dialog ([https://gitlab.com/inkscape/inkscape/-/merge_requests/1681 MR #1681]) | |||
* | * '''Font features''' (e.g. ligatures) are now applied to the first glyph in a nested <code>tspan</code>, too ([https://gitlab.com/inkscape/inkscape/-/issues/1987 Bug #1987]) | ||
* | * '''Arabic text''' still looks correct now when parts of it have a different style (e.g. different color; [https://gitlab.com/inkscape/inkscape/-/issues/734 Bug #734]) | ||
* | * Many improvements to '''text rendering''' for non-Latin languages | ||
* | * Newly created text always uses the default '''text orientation''' again, even when created within a rotated (or otherwise transformed) group ([https://gitlab.com/inkscape/inkscape/-/issues/1767 Bug #1767]) | ||
* Sublayers can now be dragged and reordered in the '''Objects dialog''', just like any other item ([https://gitlab.com/inkscape/inkscape/-/issues/1247 Bug #1247]) | |||
* | |||
* | <!--T:175--> | ||
* | '''Export and Import''' | ||
* | |||
* | <!--T:176--> | ||
* When batch-exporting PNG images, the | * '''PDF/LaTeX export''' now places SVG2 texts correctly in the exported .tex file ([https://gitlab.com/inkscape/inkscape/-/issues/2300 Bug #2300]) | ||
* | * '''Tutorial files''' now open as templates, so you won't get an error message when trying to save the tutorial (to its installation location), but will instead be asked for the save location (https://gitlab.com/inkscape/inkscape/-/merge_requests/2354 MR #2354) | ||
* | * New arcs, chords and circle segments show up again in other programs than Inkscape ([https://gitlab.com/inkscape/inkscape/-/issues/2489 Bug #2489]) | ||
* | * Clipped objects now respect the '''antialiasing''' setting on export ([https://gitlab.com/inkscape/inkscape/-/issues/1921 Bug #1921]) | ||
* Inkscape no longer freezes when trying to '''import a PDF''' that uses multiple color spaces ([https://gitlab.com/inkscape/inkscape/-/issues/1878 Bug #1878]) | |||
* In '''embedded JavaScript''', Inkscape no longer messes with the contents of <code>xlink:href</code> ([https://gitlab.com/inkscape/inkscape/-/issues/1958 Bug #1958]) | |||
* When '''batch-exporting PNG images''', the export path selection is no longer greyed out (but only the directory portion of it will be used, plus the path IDs as file names) ([https://gitlab.com/inkscape/inkscape/-/issues/1894 Bug #1894]) | |||
* When '''batch-exporting PNG images''', the number of selected objects updates correctly now ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2829 MR #2829]) | |||
* The '''Plot extension''' works again on macOS Big Sur ([https://gitlab.com/inkscape/inbox/-/issues/4547 Bug inbox#4547]) | |||
<!--T:177--> | |||
'''Command Line''' | |||
<!--T:178--> | |||
* On the command line, paths with a dot in their name no longer cause exported files to be saved to the wrong place ([https://gitlab.com/inkscape/inkscape/-/issues/1712 Bug #1712]) | |||
* Changes '''output extensions''' make to the document no longer propagate to the actual document ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2755 MR #2755]) | |||
=== Even more bug fixes === | === Even more bug fixes === <!--T:179--> | ||
<!--T:180--> | |||
There were even more issues fixed than those listed above, but these probably only affect a small portion of users, or are relevant for development and packaging only. | There were even more issues fixed than those listed above, but these probably only affect a small portion of users, or are relevant for development and packaging only. | ||
<!--T:181--> | |||
For a complete list, visit [https://gitlab.com/inkscape/inkscape/-/milestones/2 our GitLab issue tracker] and see the [https://gitlab.com/inkscape/inkscape/-/commits/1.0.x commit history] (all changes since DATE until release date). | For a complete list, visit [https://gitlab.com/inkscape/inkscape/-/milestones/2 our GitLab issue tracker] and see the [https://gitlab.com/inkscape/inkscape/-/commits/1.0.x commit history] (all changes since DATE until release date). | ||
== Translations == | == Translations == <!--T:182--> | ||
<!--T:183--> | |||
The following UI translations received updates: | The following UI translations received updates: | ||
<!--T:184--> | |||
* Basque | * Basque | ||
* Brazilian Portuguese | * Brazilian Portuguese | ||
Line 673: | Line 815: | ||
* Latvian | * Latvian | ||
* Polish | * Polish | ||
* Portuguese | |||
* Simplified Chinese | * Simplified Chinese | ||
* Spanish | * Spanish | ||
Line 679: | Line 822: | ||
* Ukrainian | * Ukrainian | ||
<!--T:185--> | |||
The Windows installer translation was updated for: | The Windows installer translation was updated for: | ||
<!--T:186--> | |||
* Czech | * Czech | ||
<!--T:187--> | |||
The following documentation translations received updates: | The following documentation translations received updates: | ||
<!--T:188--> | |||
* German | * German | ||
* Hungarian | * Hungarian | ||
Line 690: | Line 837: | ||
* Traditional Chinese | * Traditional Chinese | ||
<!--T:189--> | |||
Additionally, time has been spent on improving translatability and adding hints for translators in various places. | Additionally, time has been spent on improving translatability and adding hints for translators in various places. | ||
=== Contributing to interface translations === | === Contributing to interface translations === <!--T:190--> | ||
<!--T:191--> | |||
Want to help with translations? [https://inkscape.org/contribute/translations/ Learn how to help!] | Want to help with translations? [https://inkscape.org/contribute/translations/ Learn how to help!] | ||
== Documentation == | == Documentation == <!--T:192--> | ||
* Some missing options were added to the man page (command line help) | <!--T:193--> | ||
* Some missing keyboard shortcuts were added to the keyboard shortcut reference | * Some missing options were added to the '''man page''' (command line help) | ||
* Some missing '''keyboard shortcuts''' were added to the keyboard shortcut reference | |||
* Many changes / updates were made 'under the hood' | |||
=== Contributing to documentation and documentation translation === | === Contributing to documentation and documentation translation === <!--T:194--> | ||
<!--T:195--> | |||
Contributions to the documentation translations, as well as improvements to its contents, are welcome at [https://gitlab.com/inkscape/inkscape-docs/documentation the inkscape-docs repository]. | Contributions to the documentation translations, as well as improvements to its contents, are welcome at [https://gitlab.com/inkscape/inkscape-docs/documentation the inkscape-docs repository]. | ||
== Important changes for packagers == | == Important changes for packagers == <!--T:196--> | ||
* Inkscape no longer depends on GtkSpell and ASpell but on GSpell for spell checking. | <!--T:197--> | ||
* lib2geom has been moved [https://gitlab.com/inkscape/lib2geom into its own git submodule] (like the extensions), a new release is available. | * Inkscape no longer depends on <code>GtkSpell</code> and <code>ASpell</code> but on '''<code>GSpell</code>''' for spell checking. | ||
* lcms2 is a mandatory dependency now | * '''<code>lib2geom</code>''' has been moved [https://gitlab.com/inkscape/lib2geom into its own git submodule] (like the extensions), a new release is available. | ||
* Inkscape now ships a /share/themes folder with two custom themes that are only suitable for use with Inkscape (as a git submodule) | * '''<code>lcms2</code>''' is a mandatory dependency now | ||
* Support for Python 2 has been dropped for Inkscape extensions | * <code>librevenge</code> has been common for years, dropped checks for its use with <code>libwpg</code>, <code>libvisio</code> and <code>libcdr</code> | ||
* checks for very old versions of <code>libwpg</code>, <code>libvisio</code>, <code>libcdr</code> removed | |||
* <code>gc</code>, <code>double-conv</code>, <code>readline</code>, and <code>lcms2</code> are detected with <code>pkg-config</code> | |||
* <code>iconv</code>, <code>intl</code> detected with <code>cmake</code>system ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2475 MR #2475]) | |||
* Inkscape now ships a <code>/share/themes</code> folder with two custom themes that are only suitable for use with Inkscape (as a git submodule) | |||
* Support for '''Python 2''' has been dropped for Inkscape extensions | |||
* <code>INKSCAPE_DATADIR</code> can be set to a different default value at build time ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2276 MR #2276]) | * <code>INKSCAPE_DATADIR</code> can be set to a different default value at build time ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2276 MR #2276]) | ||
* Support local lib2geom in install directory ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2327 MR #2327], [https://gitlab.com/inkscape/inkscape/-/merge_requests/2379 #2379]) | * Support local <code>lib2geom</code> in install directory ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2327 MR #2327], [https://gitlab.com/inkscape/inkscape/-/merge_requests/2379 #2379]) | ||
<!--T:198--> | |||
Please find the complete list of Inkscape's dependencies and their minimum versions at our Wiki page for [[Tracking_Dependencies|tracking dependencies]]. | Please find the complete list of Inkscape's dependencies and their minimum versions at our Wiki page for [[Tracking_Dependencies|tracking dependencies]]. | ||
== Known issues == | == Known issues == <!--T:199--> | ||
* To undock a dialog on Windows, it is currently necessary to drag it out of the Inkscape window ([https://gitlab.com/inkscape/inkscape/-/issues/2216 Bug #2216]) | <!--T:200--> | ||
* The option to quickly collapse a set of dialogs is currently not yet available. As a workaround, pressing F12 can be used to gain space on the canvas quickly. (https://gitlab.com/inkscape/inbox/-/issues/4676 Bug inbox#4676) | * To '''undock a dialog on Windows''', it is currently necessary to drag it out of the Inkscape window ([https://gitlab.com/inkscape/inkscape/-/issues/2216 Bug #2216]) | ||
* New docked notebooks can not be added on the canvas-facing side of another docked notebook ([https://gitlab.com/inkscape/inbox/-/issues/4915 Bug inbox#4915]) | * The option to '''quickly collapse a set of dialogs''' is currently not yet available. As a workaround, pressing F12 can be used to gain space on the canvas quickly. ([https://gitlab.com/inkscape/inbox/-/issues/4676 Bug inbox#4676]) | ||
* Spellchecking is currently broken on macOS. ([https://gitlab.com/inkscape/inkscape/-/issues/1496 | * New '''docked notebooks''' can not be added on the canvas-facing side of another docked notebook ([https://gitlab.com/inkscape/inbox/-/issues/4915 Bug inbox#4915]) | ||
* '''Spellchecking''' is currently broken '''on macOS'''. ([https://gitlab.com/inkscape/inkscape/-/issues/1496 Bug #1496]) | |||
* The new raster image export formats do not work with the batch export option | * The new raster image export formats do not work with the batch export option | ||
<!--T:201--> | |||
Many of Inkscape's old bug reports still need to be [https://alpha.inkscape.org/bug-migration/ tested and migrated to the new bug and feature request reporting page]. While some progress has already been made, we still need your help with that task. | Many of Inkscape's old bug reports still need to be [https://alpha.inkscape.org/bug-migration/ tested and migrated to the new bug and feature request reporting page]. While some progress has already been made, we still need your help with that task. | ||
<!--T:202--> | |||
All (migrated and new) open issues for the project are listed on [https://gitlab.com/groups/inkscape/-/issues GitLab]. If you have some time on your hands and can help fixing them, [https://chat.inkscape.org/channel/team_devel join us in the development chat] and let us tackle them together. | All (migrated and new) open issues for the project are listed on [https://gitlab.com/groups/inkscape/-/issues GitLab]. If you have some time on your hands and can help fixing them, [https://chat.inkscape.org/channel/team_devel join us in the development chat] and let us tackle them together. | ||
== Other releases == | == Other releases == <!--T:203--> | ||
<!--T:204--> | |||
{{:Release notes}} | {{:Release notes}} | ||
</translate> | </translate> |
Latest revision as of 11:48, 2 February 2022
Release highlights
Released on May 24, 2021
Inkscape 1.1 is the latest major Inkscape release that brings users many fresh new features and new functionality.
The most notable changes include:
- A Welcome dialog, where the look of Inkscape can be selected, and some choices for the new document's size or file to open are available
- A Command palette that opens when the ? key is pressed and that allows to search and use many functions without having to use a keyboard shortcut or going through the menus
- It is now possible to copy, cut and paste parts of paths with the Node tool
- The dialog docking system has been rewritten, which resolves many issues with Inkscape's docked dialogs and allows you to dock dialogs on either side of the screen
- New Outline Overlay mode that displays object outlines while also showing their real colors
- Preferences options are now easier to find by using the new search field
- It is no longer necessary to remember to click on 'Export' in the PNG Export dialog, as the exporting will already happen after the click on 'Save' in the file selection dialog.
- Export as JPG, TIFF, optimized PNG and WebP directly from Inkscape
- When pasting a copied object, Inkscape now pastes it directly on top of the currently selected object by default
- An extension for updating extensions and installing additional extensions, called the Extension Manager (currently in beta stage)
General user interface
Command palette
- Pressing ? will open the new Command palette.
- In the little overlay, a type-forward search allows you to find any available command to execute on the whole drawing or selection. The list of available commands is currently restricted to those commands that have already been converted to 'actions', as part of an ongoing effort. Additionally, it includes the option to import or open files from Inkscape's document usage history.
- Some commands allow you to indicate parameters. A little keyboard icon will show you when the program expects a parameter (such as an angle for rotation, or a fraction for scaling). Note that the unit that is used for parameters is usually 'px', not the display unit. Some parameters require a specific format (like a comma-separated list of values for moving). The format is often indicated in the description of the command, e.g. to align selected objects to the last selected one's left side, find the 'align objects' command, then type 'left last'.
- Some commands do nothing visible in the user interface (yet), as either
- they only work in conjunction with other commands, such as commands that change how a file is exported, or commands that export the file. These need to be entered in order, e.g.
export type
⯈ type 'png' ⯈ press Enter ⯈ press ? ⯈export file name
⯈ type a file name ⯈ press Enter ⯈ press ? ⯈export do
⯈ press Enter;export do
in this example can also be used repeatedly to export the updated image to the same file name) or - they produce output on the command line (like commands asking for coordinates of objects), which you will only see if you have started Inkscape from the command line.
- they only work in conjunction with other commands, such as commands that change how a file is exported, or commands that export the file. These need to be entered in order, e.g.
- Press Enter to execute any command.
- By pressing the ↑ (upwards arrow key), you enter the history mode, where you can choose between commands that you have already used.
- To close the palette, if not using any of the commands offered, you can press ? again, or just click on the canvas.
If a keyboard shortcut is available for the selected command, it will show up in the command palette (in the form that it is saved in the keyboard shortcut file).
In the settings, at Edit ⯈ Preferences ⯈ Interface: Command palette
, you can select some of the info you would like the palette to display. In addition to the translated action name, it can also show the English names of the commands and the corresponding command line argument name.
This feature was added by Google Summer of Code Student Abhay Raj Singh in 2020. You can learn more about the feature's development on GitLab or in Abhay's blog entry. (UX issue #31, MR #2072)
Paste on top of selection
When pasting an object from the clipboard onto the canvas, Inkscape will now by default paste it right above the currently selected object (Bug #1988, MR #2476, Usability test #65).
This feature can be disabled in Edit ⯈ Preferences ⯈ Behavior ⯈ Selecting: Paste on top of selection instead of layer-top
.
Paste text as SVG data
Plain text from editors will now be interpreted as an SVG document when pasted into Inkscape (and not currently editing a text object), so you can now open an SVG file in your text editor and copy and paste the whole file into Inkscape (Commit #14f53899, Known issues). This only works with complete SVG files, not with parts. This was originally a bug fix for copy-pasting SVG data from applications that do not use the correct mime type when copying their vector contents to the clipboard, but appears to have other potential uses, too.
Paste size
When the option to use the geometrical bounding box is selected in the preferences, the size of the geometrical bounding box will now be used for copying and pasting an object's size (MR #2243).
Canvas
Outline Overlay display mode
In this mode, a toned down view of the drawing (not click-sensitive) is shown behind the (click-sensitive) object outlines. The opacity of the original drawing in this view mode can be set in Edit ⯈ Preferences ⯈ Rendering: Outline overlay opacity
.
Handles
- Inkscape now uses vector-based handles, which are currently hardcoded (not SVG) (MR #2334)
- The maximum handle size has been increased, so users with HiDPI displays will be able to enlarge them to a more comfortable size from
Edit ⯈ Preferences ⯈ Interface: Handle size
- Rotation center handles have been made more visible
Guides
- Guide positions can now be defined with higher precision (5 digits after the decimal separator instead of 3) (MR #2951).
- Guides can no longer be moved using the Tweak or Spray tool, but only with the Node and Selector tools (Commit #ca7d46a6).
Tools
Calligraphy Tool
- The tool now supports units for the width, with a much-increased precision (up to three digits after the decimal separator, e.g. 0.005). The old, zoom-dependent width behavior is accessible with the unit '%' (MR #2449)
- The entry field for 'Mass' has been moved towards left (for LTR languages) on the tool's tool controls bar, emphasizing its importance (MR #2816)
Connector tool
- It's now possible to connect to objects that are on top of the object that the connector was started from (Bug #1115)
- Connection lines now update in real-time while objects are moved
Node tool
The node tool now allows to copy, cut and paste a selection of nodes. These nodes can be inserted into the original path, into a different path or they can be pasted as a completely new path (MR #2343).
Pen / Pencil Tool
The Pen and Pencil tools feature a new 'Scale' option to set the width of paths created with a 'Shape' option other than 'None' numerically (the handle that allows you to adjust the width with the node tool continues to be available).
Selector Tool
A new selection mode for the lasso/rubber-band selection was added, which can now select every object that is either within the box or that touches its boundaries. The mode can be activated by pressing the corresponding button in the Selector tool's tool controls bar. On canvas, the mode is visualized by changing the color of the selection box to a dashed red line while dragging (MR #2520).
Star and Polygon Tool
Stars created with the Star/Polygon tool can now have only two corners. This allows the creation of rhomboid/diamond shapes (MR #2044)
Text Tool
- Text-in-a-shape (aka flowed text) can now make use of justified text alignment (MR #1764)
- Highlight all shapes: When editing text-in-shape or text-on-path, all shapes are highlighted, not only the first (MR #2468) and the orientation / position of the shapes is shown correctly (e.g. display rotated rectangle as being rotated).
- Distances entered in the text tool's number fields can now exceed 100 units (new maximum is 1000 units; Bug #1639)
- When first opened, the font selection dropdown now does not contain any font samples. They are shown only when the dropdown expands for the second time. This is a workaround around the font dropdown not showing any scroll bars when opening it first and temporarily freezing Inkscape (MR #2546).
Dialogs
General
Docking
Dialogs can now be docked on the left side of the Inkscape window. They're now displayed as tabs, with optional label and icon. The dialog tabs can be combined to new floating docks. Tabs can be closed by middle mouse click, right-click and selecting to close, or by clicking on the x icon.
The previous option to minimize dialogs has been superseded by the new feature.
The work for this big code refactoring was undertaken by Google Summer of Code Student Valentin Ionita in 2020. You can learn more about his work on GitLab (technical documentation).
The dock layout is now remembered across Inkscape sessions (Bug #1422) and the dialogs' size is also remembered (Bug #2213)
When a user requests a dialog to open (e.g. with the keyboard shortcut, or by pressing a button), the dialog will now show a flashing animation, so it will be easier to see it (both when it is actually being opened and when it has already been open).
Design
Arrows on color sliders now have better visibility (MR #2427)
'About Inkscape' dialog
The Help ⯈ About Inkscape
dialog has been rebuilt from scratch with a larger window (and image) and a tabbed interface.
- The user-contributed 'About Screen' artwork is now displayed much larger, as it should be!
- Authors and translators are now featured on separate tabs, email addresses are no longer shown and the order of names is randomized (MR #2497).
- A new License tab offers a brief explanation of Inkscape licensing.
- All the tabs include calls to action or links to the official website for more information.
- The current version of Inkscape is displayed on a button. When clicked, the full version information is copied to the clipboard, so it can be used in bug reports, for example.
- In the bottom right corner, there is an additional small button with a little beetle on it. Clicking that button will copy extensive information about available software library versions, in addition to operating system and Inkscape version information.
Document Properties dialog
Many video formats are now available for selection in the 'Page' tab of the Document Properties dialog (MR #1314).
Fill and Stroke
- The stroke's width can now be set to Hairline in the dialog at
Object ⯈ Fill and stroke ⯈ Stroke Style
(as a unit). This type of stroke is always 1px wide, independent of the zoom level. The feature will hopefully one day be useful for laser cutting and plotting (MR #846)- Hairline strokes can (theoretically) be exported to file formats with native hairline support (PDF/PS), but this requires a code change in the Cairo software library, which has not been accepted (yet), so the PS/PDF hairline export feature will not yet be available in any official packages. If unavailable, a very thin line width will be used instead (1px at the "1:1 zoom" level of the output).
- In other SVG renderers, hairlines will be handled via non-scaling stroke with a stroke width of 1px.
- Export to PNG and rendering on canvas will use a line width of 1px.
- The Miter maximum has been increased to 100000 (Bug #1996)
- Stock markers use SVG 2.0 context-stroke to automatically take on the stroke color of the object (MR #2009). If SVG 1.1 compatibility is needed, the setting for marker colors in
Edit ⯈ Preferences ⯈ Input/Output ⯈ SVG export
can be activated and SVG 1.1 compatibility can be activated in the 'Save as' dialog.
Filter Editor dialog
When right-clicking on a filter in the filter list, there is an option called 'Select' now to select all objects which are using that filter.
Find/Replace dialog
It's now possible to also search in 'desc' and 'title' attributes of objects (MR #1310)
Legacy Gradient Editor dialog removed
The legacy gradient editor (a dialog that could previously be enabled in the preferences for the gradient tool) has been removed. A replacement may be added in a later version (MR #2015).
Preferences dialog
- The preferences dialog now features a search bar, which performs a recursive search over all the nested categories of settings:
- press
F3
orCtrl + G
for next result - press
Shift + F3
orCtrl + Shift+G
for previous result
- press
- In
Edit ⯈ Preferences ⯈ Rendering
, there is a new option toRedraw while editing
, which improves performance of redrawing with some faster CPUs ("Responsive", active by default, or "Conservative"). - In
Edit ⯈ Preferences ⯈ Behavior ⯈ Scrolling
, the setting Mouse wheel zooms by default has been removed. This setting can now be set by disabling the modifier 'Ctrl' for Canvas zoom, and enabling it for Vertical pan instead (see section about 'Customization' below for more information). - The Zoom correction factor in
Edit ⯈ Preferences ⯈ Interface
now works correctly for other units than mm and remembers values below 100%. - There is an option now in
Edit ⯈ Preferences ⯈ Interface: Show zoom percentage corrected by factor
to adjust the number shown in the Zoom field in the bottom right corner of the Inkscape window to match the real world scale. The new option is active by default, so that, after adjusting the factor for your monitor, at 100% zoom, your document page is as large on the screen as it is in reality. - In
Edit ⯈ Preferences ⯈ Interface: Cursor size
, the option to Enable cursor scaling allows users to work around too large and unsharp cursors in some cases (MR #2432) - Removed favorite languages from
Edit ⯈ Preferences ⯈ Spellcheck
, as they did not work properly. Language can still be selected in the Spellcheck dialog itself (MR #2527). - Added an option to
Edit ⯈ Preferences ⯈ Imported Images : Import : Store absolute filepath for linked images
, that allows you to decide whether you'd like to save the absolute path of a linked image in the file. This allows you to move the SVG file around on your disk with more confidence, but it also exposes your computer's file structure more, if you share the image with others (Bug #526).
Symbols dialog
Symbol search now also takes symbol name translations into account (Issue #1804)
Text and Font dialog
- Removed the 'Close' button and the icon on the 'Apply' button (MR #2523)
- Users can now customize the font sample text in the preferences for the Text tool (e.g. to include their own language's special characters; MR #2537)
Trace Bitmap dialog
- Following better UI guidelines, the 'OK' button was renamed to 'Apply' (Bug UX#1291)
- An option to optimize the result of 'Tracing pixelart' was added (Bug #1137)
'Welcome' dialog
A new Welcome and onboarding screen was added.
In its first tab, you can set up the theme for Inkscape, in the second tab, you will find links to our website, where you can learn how to support the project. The last tab gives you a choice between various document formats and recently used files.
To select a file/format to open, click on it and then use the Load
button. You can also double-click on any of the files and file format icons (faster). To open the default template, click on the 'New document' button.
The appearing of the dialog can be deactivated either by a checkbox in its last tab, or in Edit ⯈ Preferences ⯈ Windows: Miscellaneous
.
XML dialog
- When a text span is selected, it can be edited in a proper text entry field now (MR #1977)
- When a nested group is selected, that exact group can now also be moved around on-canvas (Bug #1266)
Filters
- A new "Fast Crop" filter can be found at
Filters ⯈ Fill and transparency ⯈ Fast Crop
. Adjust the handles with the node tool to crop to a rectangular region (MR #2767).
Live path effects
General
Automatic fill preservation for path effects
LPEs which render strokes as fills (Join Type
, Power Stroke
and Taper Stroke
) have been modified to automatically preserve the previous fill by creating a linked clone with the original fill color when applied to an object (MR #1969).
"Boolean Operations" LPE
- The path effect is no longer marked as experimental!
- Some operations that did not work reliably had to be removed (cut, cut inside, cut outside, MR #2810)
- Operands can now easily be selected and moved with the mouse.
- Improved stability
"Fill between many" LPE
A new item Fill between Paths has been added under the Path
menu to automatically create a linked fill path using the Fill between many path effect. The effect is created beneath the selected paths and then automatically selected to facilitate moving the path into the correct z-order and styling it as intended. For greater efficiency, a shortcut can also be assigned, using the Preferences dialog (MR #1973).
This is especially useful for filling variable-width paths created with the PowerStroke option (or other Live Path Effects that use the fill to emulate a stroke).
"Offset" LPE
- The Offset LPE's performance was improved for more complex shapes.
- Open paths can now have an offset that is not automatically closed.
"Slice" LPE (new)
This new path effect allows you to split an object into two (or more by stacking multiple LPEs), without destroying the original.
It works with groups, shapes, and paths. If you want to use it on text, you need to use the 'Clone' LPE and apply the 'Slice' LPE on this clone. It also allows changing styles for the resulting parts, because each part is a separate object (MR #2372)
"Taper Stroke" LPE
The 'Taper Stroke' LPE has been updated to include taper direction options (allowing the taper to run to one side of the path, instead of to the middle) and smoothing options for both ends of the path, allowing more interesting paths to be made in the effect.
In addition, Shift+click
ing on the on-canvas handles allows quickly alternates between the different possible taper shapes.
Import / Export
Import
- Inkscape can now recognize layers in SVG files exported from CorelDraw (MR #2046)
- When importing a DXF file, a new option for setting the text scale factor is available now (Bug extensions#321)
Export
PNG Export Dialog
- The default export area when nothing is selected is now 'Page'. This leads to the 'Custom' tab being initialized with the coordinates of the page, so it should be rarer to accidentally get an invalid export area of 0x0 px size. When deselecting an object, the export area mode is now set back to the one it had before 'Selection', which can be 'Page', 'Drawing' or 'Custom' (and not always 'Drawing')(MR #1587).
- The Export PNG Image dialog now exports the PNG as soon as the button
Export as
has been clicked and a file name was selected for the file. It's no longer necessary to explicitly click on Export after choosing a file name. Clicking onExport
will still be available to export to the file name that is currently set in the dialog (MR #2080). - Use the file name extensions '.jpg', '.webp' or '.tiff' in the PNG export dialog to open the corresponding export options and export to the selected file format. In the file chooser that opens after clicking on 'Export as', there is also a dropdown menu available to choose the file format. 'Optimized PNG' is available there as an additional option (as it uses the same file name extension, it's not possible to auto-detect). The export functionality is implemented using a Python extension of the new 'Raster Output' type.
Other export formats
- HPGL (for plotting): the speed can now be set for each Pen independently, using layer names (Bug extensions#277)
- GPL (Gimp palette): named custom swatch colors' names are now included in the resulting
.gpl
file (Commit extensions#2e08b0b)
Customization
Cursors
A set of SVG-based, themeable mouse cursors with HiDPI support were added.
These new cursors are coupled with the icon themes. The default set (hicolor theme) is stored in ~inkscape\share\inkscape\icons\hicolor\cursors
.
To override them with your personal cursors while keeping the selected theme, your user configuration directory needs to supply the following structure to Inkscape:
inkscape (this is your user preferences directory, its location depends on your operating system) ⤷ icons ⤷ <theme_id> ⤷ cursors ⤷ adjust_alpha.svg ⤷ adjust_hue.svg ⤷ adjust_lightness.svg ⤷ … ⤷ preferences.xml
More information can be found on the SVG Cursors page.
Shortcuts
- In
Edit ⯈ Preferences ⯈ Interface ⯈ Keyboard
, in the new Modifiers tab, you can customize keyboard shortcut modifiers for on-canvas mouse actions or disable the shortcut entirely (for example holding Ctrl for scaling while keeping the object's aspect ratio can be changed to Shift; MR #2070) - Keyboard shortcut files for Inkscape can now inherit from other keyboard shortcut files by using XInclude (MR #1150)
- Illustrator keyboard shortcut map has been updated to include a few more common and up-to-date shortcuts (Bug #2109, MR #2069)
Themes
- A more compact Minwaita theme (derived from Adwaita) has been added, with a light and a dark mode
- The win32 theme has been improved by adding some custom adjustments
- Many small tweaks and refinements in to Multicolor icon pack
macOS-specific Changes
- New Inkscape icon (Bug #2072)
- Visio files can be imported (Bug #2094)
- Breaking change: We can no longer bundle Ghostscript, effectively removing out of the box support for EPS and PS (MR #2608).
Learn how to work around this restriction.
Extensions
Features added
- "Bar code" extension now accepts tildes, too (Commit extensions#e096225)
- The extensions "Function Plotter" and "Parametric Curves" now support more mathematical functions and constants, and can even make use of the random() function (Commit extensions#70d53ae7)
- "Lorem ipsum" extension can now flow text into selected shapes, so the generated text changes along with any further changes of the shape, instead of only creating a text in the shape of the selection (Bug extensions#122)
Fixes
Bugs
- Path transformations now work more reliably (MR extensions#230, Bug extensions#255, Bug extensions#299, Bug extensions#343)
- Some older extensions were greyed out in the menu; now they can be run again (but might not work; Commit extensions#e5c1668)
- "3D Polyhedrons" are rendered now, even when the faces are supposed to be ordered by the location of their centroid (Bug extensions#262)
- "3D Polyhedrons" can be created from custom files again (Bug extensions#342)
- "Create Typography Canvas" includes the necessary guides again (Bug extensions#254)
- "Deep Ungroup" no longer scatters text and shape objects around (Bug extensions#340)
- "Draw Handles" extension draws the handles in the right places again, even if the object they belong to has been rotated or otherwise transformed (Bug extensions#335)
- "DXF import" now sets the colors correctly (Bug extensions#315)
- "Envelope" extension handles edge cases better now (MR extensions#234)
- "Export as Gimp Palette": Gradient colors are again included in exported .gpl files (Commit extensions#2e08b0b)
- "Export Optimized SVG" extension no longer accepts invalid values for the number of significant digits (Bug inbox#3579)
- "Extract images" extension: images end up in the correct folder again (Bug extensions#347)
- "GCodetools" no longer duplicate the drawing paths on export with certain cutting order settings (Bug extensions#220)
- "Lorem ipsum" extension supports generating SVG2 text (Bug extensions#201)
- "Lorem ipsum" extension: generated text has a more reasonable font size again (Bug extensions#201)
- "Measure path" indicates the center of mass correctly again (Bug extensions#171)
- "Number nodes" no longer transforms the numbers it creates (MR extensions#314)
- "Pattern along Path" produces correct results again (MR extensions#312)
- "Scatter" produces correct results again (as long as the 'stretch spaces' option is checked, and no randomization is used; Bug extensions#368)
- "Scatter" option for duplicating paths removed (Bug extensions#368)
- "Scatter" respects z-order again (Bug extensions#293)
- "Randomize Color" extension no longer always uses red as a basis for the hue change (Bug extensions #234)
- "Restack" extension uses the selected mechanism for changing the stacking order when reversing z-order and when using the 'angle' mode (Bug extensions#45)
- "Rubberstretch" extension: the effect of the
Curve
parameter is larger again (Bug extensions#263)
Crashes
- CSS classes with a dash don't make extensions crash anymore (Bug extensions#317)
- "Deep Ungroup" can deal with transformed clipped objects again (Bug extensions#184)
- "Embed Images" embeds linked SVG images in more cases now (Bug extensions#283, Bug extensions#325)
- "GCodetools" work again with Graffiti points (Bug extensions#311)
- "GCodetools" 'Area' tab can again be used to fill objects with concentric lines (Bug extensions#296)
- "Printing Marks" extension works again (Bug extensions#313)
Web ⯈ Javascript ⯈ Set/Transmit Attribute
extensions work again (Bug extensions#270)- "Scatter" works again when the option "Pattern is vertical" (now: "Rotate pattern 90° clockwise") is used (Bug extensions#295)
- "Pattern along Path" no longer crashes with text objects in the pattern (Bug extensions#124)
- "Synfig export" works again without crashing (Bug extensions#278)
- "Voronoi Diagram" creation works again with automatic bounding box creation (Bug extensions#242)
Extension Manager (Beta)
A new extension was added to Inkscape, which allows users to access a repository containing community-vetted Python extensions on the inkscape.org website from inside the Inkscape program.
The feature is considered beta currently, but will improve mid-cycle as it is able to update itself by its own installation mechanism.
It works by creating a virtual Python environment in the extensions subdirectory. Extensions are uploaded by their creators as zip files into the Extensions gallery on the website, and then need to undergo a review process by trusted community members who will then sign the uploads with their GPG signature.
To ask for a review, extension developers are supposed to contact Inkscape's extensions team in the chat. Some wait time is to be expected, so please be patient with your request.
Structure and requirements (beyond that they must comply with the community's Code of Conduct) are not defined or documented yet, so be open to having to make changes to your files during the review. Find more information, updates about and known issues with the Extensions Manager here.
As a user, note that 100% security cannot be guaranteed. Use the new feature with care.
On Windows, the Extensions Manager comes as an optional installable component for the exe and msi packaging formats, so administrators can decide whether they want to allow their users to download user-contributed extensions from the internet.
API changes for extension developers
- Breaking change: Python 2 is no longer supported, extensions require at least Python 3.6 (Bug extensions#351)
- Breaking change:
Element.description()
is nowElement.desc
. The new form now includesElement.desc = "some value"
for setting the attribute, andElement.title
, which works the same way asdesc
(only for the title/tooltip) and didn't exist before. - Element selections API has been improved, the API in 1.0 of using
self.svg.selected
is deprecated in favour of the newself.svg.selection
interface. The previous API will continue to work for the time being but should be updated to the new API. Selection is now a type ofElementList
which provides filtering, ordering and other generalised functionality. If you need an element list, for example to make a bounding box, this is the way to do it. - New:
Element.unit
,Element.unittouu()
,Element.uutounit()
andElement.add_unit()
Element.is_sensitive()
andElement.set_sensitive()
ExtensionClass.extra_nss = {}
can be set to add namespaces, e.g. in jessyInkExtension.get_resource(filename)
gets files from the extension's own code repository (e.g. an image to include in the dialog, an SVG template, a data file …)Extension.document_path()
andExtension.absolute_href()
can get a filename or location relative to the document's location (if it's saved)- Multiple functions have been added that make it easier to handle transformations in extensions, so if you've been relying on doing those manually in your extension, you may like to check back to see if inkex supports them now (cross product, easier chaining of transforms, polar coordinates functions,
If you were using inkex.command.inkscape()
, there should be no need to update for the latest Inkscape, it should just work.
Behind the curtains
Many new tests have been added to the extensions code, so developers will more easily be able to know whether their code changes introduce bugs in extensions.
Command line
- The color mode of exported PNG files can now be set on the command line with
--export-png-color-mode
(options:Gray_1|Gray_2|Gray_4|Gray_8|Gray_16|RGB_8|RGB_16|GrayAlpha_8|GrayAlpha_16|RGBA_8|RGBA_16
; MR #2339) - To export a file using arbitrary export formats provided by an extension of the 'output' type, one can use the new
--export-extension
parameter now (MR #2294 with more details) - The
--export-type
option now supports (MR #771):- exporting to multiple formats at once, e.g.
inkscape --export-type=png,pdf in.svg
- exporting a single input file to multiple export formats and rename them in the process (will produce out.png and out.pdf), e.g.
inkscape --export-type=png,pdf --export-file=out in.svg
- exporting multiple files to multiple export formats, e.g.
inkscape --export-type=png,pdf in1.svg in2.svg
- exporting to multiple formats at once, e.g.
- Added actions for aligning and distributing objects (MR #2472)
- Interactive shell mode (MR #1495):
- a history of commands is now remembered and can be accessed with the up and down arrow keys
- auto-completion of actions (at start of line) and filenames
- command line editing is now possible
Behind the curtains
Inkscape developers have also worked on improving and evolving parts of Inkscape which are not directly visible to the users. Indirectly, these changes will also benefit the users, as they make it easier for developers to work with the project, and help them make fewer mistakes.
- Documentation for developers was updated and improved continuously, helping developers better understand other people's code
- Refactoring: Outdated code was updated continuously, making it easier to handle the code moving forwards. This includes a continued effort to convert old C code to modern C++, removing dead code and rewriting parts of the code in a more modern way.
- Code formatting was improved continuously, improving readability of the code
- Continuous integration was updated and improved continuously, ensuring that each code change will be tested automatically and can be reviewed by bug reporters before it is included into the main line code, also keeping up with changes in GitLab, AppVeyor and other infrastructure that is used by Inkscape
- Improvements were made to the build system, so Inkscape can be built on more Linux, Windows and macOS versions, keeping up with changes in software libraries that Inkscape depends upon
- Many tests were added and improved, reducing the risk of accidental loss of functionality
- The conversion process from
verb
s toaction
s was continued - Running test versions on Windows was simplified by adding shortcuts to the top level folder:
Run Inkscape !.bat
,Run Inkscape and create debug trace.bat
,Run Inkscape with GTK Inspector.bat
(Bug inbox#4615)
Bug fixes
Crash fixes
Fix a crash …
- when exporting a file containing an object clipped with a filtered object to PDF ([1] Bug #203)
- when deleting the
d
attribute in the XML editor (MR #2722) - when zooming in on a heavily filtered object in large files (MR #2965)
- when clipping a raster image with a shape, using the setting to 'Put every clipped/masked object in its own group' (Bug #1912)
- when changing the document scale in files without a viewbox (Bug #2201)
- when rotating a rectangle slowly with snapping turned on (Bug #194
- when trying to use shapes with various Live Path Effects in Boolean operations (Bug #2321)
- when opening a file containing a group that uses a filter with large filter region (Bug #1786)
- when opening a file containing a linked SVG image with no height, width or viewbox (Bug #800)
- when opening a file that uses
currentColor
for the stop of a gradient (Bug #1568) - when trying to link or embed an invalid file (Bug #3951)
- when undoing the work of the Spray tool (Bug #1656)
- when importing a PDF file with special characters (like é or ä) in its name (Bug #1622)
- when importing a PDF file, which happened inconsistently (Bug #1729)
- when using extensions while an object without id attribute is selected (Bug inbox#4756)
- when removing a Live Path Effect (MR #3064)
- when undoing a node edit on an object with the PowerMask LPE (Bug #2149)
- when pasting the Corners Live Path Effect onto another object (Bug #2113)
- when using the node tool while adding the Corners LPE to an object (Bug #1940)
- when adding the Perspective LPE to a purely horizontal / vertical path (Bug #2185)
- when closing Inkscape while the Connector tool was drawing a connection (Bug #2031)
- when closing a file while the 3D box tool is active and then drawing a box in the next file (Bug #2002)
- when opening a trash file that could not be opened (MR #2780)
- when closing Inkscape after ungrouping a group that contains items with certain path effects (MR #2465)
- when closing an Inkscape window, if Inkscape was built with adress sanitizer support (MR #2528)
- … and many more crashes
Other bug fixes
(affected functionality highlighted, so you can find 'your' bug more quickly)
UI and General
- The color selector's color wheel looks better now on HiDPI screens (MR #2416)
- Color slider no longer has a thin line going across it on HiDPI screens (MR #2733)
- The color indicator field in the bottom left corner of the window now uses a constant width and has been cleaned up a bit (MR #2400)
- Improved icon colors, fixing multiple bugs for different Gtk themes and icon themes (MR #2845)
- You can now just click in the color wheel to select a color (MR #2428)
- The color picker works again in extension dialogs and other dialogs that are not the 'Fill and Stroke' dialog (Bug #1026)
- When rotating the canvas, objects' handles rotate along with it now (MR #2334)
- Reverse order of z-order buttons to achieve more consistency (MR #2556)
- Icon for 'Unset paint' in the Fill & Stroke dialog was improved (MR #2770)
- The status bar updates correctly now when removing a filter (Bug #2208)
- The canvas colors update instantly now after activating / deactivating the color managed view (Bug #1948)
- Authors and translators of Inkscape are displayed in the 'About Inkscape' dialog again on Windows (Bug #1592)
- Parts of the user interface were empty after starting Inkscape (Bug #1509)
- When returning to a minimized Inkscape window from another program, the Inkscape main window is now focused instead of one of the floating dialogs (Bug #1695)
- Inkscape no longer asks twice whether you would like to save a file when trying to close it with Ctrl+W (Bug #1943)
- Number fields that lost the ability to understand unit identifiers entered behind the number (e.g. enter '10cm' in a field that uses mm) now again know what to do with them (Bug #1282)
- When right-clicking on a number entry field, you'll no longer be able to choose among duplicated or invalid values (MR #1446)
- The Auto palette now shows all custom swatches that exist in a document (not only newly added ones) and should update reliably (Bug #2340)
- Locked guides can no longer be deleted using Del (Bug #1905)
- The keyboard shortcuts displayed in the menus are now updated instantly when changing the keyboard shortcut map (Bug #741)
- Lasso selection now uses a dashed border to improve visibility with different background colors (Bug #1456)
- Reading and updating information about available fonts is now faster (MR #2727)
- Autosave overwrites the correct autosaved files now when the maximum number of autosave files is reached (Bug #1649)
- The input mode indicator (needed for languages such as Chinese or Japanese) now appears at the text tool's cursor position again (Bug #1009)
- Changed the font in number entry fields from a monospaced one to using the tabular numbers feature (MR #2763)
- Wording and spelling improvements
- Multiple memory leak fixes
Specific Functionality
- Paths no longer appear to move sometimes when undoing an edit to them (Bug #1251)
@import
statements in CSS style sheets are now processed in the correct order, so their styles are no longer overwritten unintentionally- Inkscape no longer freezes when opening a file that contains multiple style tags (Bug #1755)
- Fix of
feColorMatrix
filter primitive default rendering (MR #2424) - Show color output for
feColorMatrix
within=SourceAlpha
(Bug #1147) - Blurred objects can now have an additional filter or blend mode again (Bug #2306)
- Updating a custom swatch's color value now works again, even if you're not using the color sliders to do that (Bug #188)
- 'Last used style' now respects style changes caused by swapping fill and stroke (Bug #1937)
- 'Last used style' no longer includes any filters (Bug #1831)
- When pasting a color hex code onto any selected object(s) with Ctrl + V, the fill color will now again change to the color indicated by the hex code (Bug #2046)
- Update behavior of 'Selectors and CSS' dialog improved (MR #3136)
- Objects using some less common color codes for their fill no longer become black (unset paint) when transforming them in specific ways (Bug #1651)
- Markers can again be removed from rectangle objects (Bug #1936)
- When creating a marker from multiple selected objects, the z-order is now respected in the resulting marker (previously, it was the selection order that determined the z-order; MR #2274)
- The 'no end marker' option has a symbolic picture now in the marker dropdowns in the Fill and Stroke dialog (Bug #1841)
- The 'Polka dots, large' and 'Polka dots, large white' patterns tile seamlessly again (MR #2772)
- Inkscape can now deal with scientific notation (e.g. "1.6e6") in style values (Bug #1547, #2189)
- Multiple fixes for 'Stroke to path' command (MR #2410)
Path ⯈ Simplify
no longer removes class attributes (Bug #2191)- Fix reversed buttons in "Arrange / Polar Coordinates" (MR 2561)
- Fix z-order rendering issue after ungrouping (MR #2452)
- Ungrouping no longer moves / scales various types of objects and styles (e.g. clones, offsets, patterns, gradients ...) (Bug #706, MR #2464)
- Comments in groups in an SVG's source code no longer cause Inkscape to invert z-order ([2])
- Fix "Pop selected object out of group" when using Ctrl+Click MR #2729)
- Fix copying mesh gradients to new document (MR #2362)
- The measurement tool's angle is now always displayed on the correct side (Bug #2303)
- The previous measuring results of the measurement tool no longer jump away from their position when switching tools and then switching back to measuring (Bug #2388)
- Fix an issue with the 'Roughen' LPE (MR #3062)
- Fix bounding box on combined LPEs (Rotate copies + Bend; MR #2522)
- The 'Mirror Symmetry' LPE now updates correctly when changing its values numerically (Bug #2141)
- The result of insetting an object using the 'Offset' LPE now consists of a more reasonable number of nodes (Bug #4443)
- Hid a 'Mirror' LPE parameter of which nobody knew what it does (MR #2778)
- Multiple fixes related to various aspects of Live Path Effect transformations and copying
- Restore performance when selecting an object with the Fill and Stroke dialog open (Bug #1191)
- Ellipses are now un-created and re-created (with Ctrl + Z / Ctrl + Y) correctly (Bug #1488)
- Undoing a path drawn with the Pen(-cil) tool using
Shape: (Bend) from clipboard
no longer requires two steps (Bug #2204) - Processing Instructions and comments are no longer auto-deleted (Bug #1050)
- 3D boxes don't jump around and scale unexpectedly when moving them (Bug #2228)
- Copy-pasting text-on-path no longer displaces or scales the text (Bug #853)
- The 'optical size' axis works now for variable fonts (Bug #1986)
- New lines can now be added to flowed text using the text entry field in the Text and Font dialog, and are no longer lost in certain circumstances (Bug #1887, #1891)
- Improvements to font selection and font loading speed
- Multiple fixes for 'Selectors and CSS' dialog (MR #1681)
- Font features (e.g. ligatures) are now applied to the first glyph in a nested
tspan
, too (Bug #1987) - Arabic text still looks correct now when parts of it have a different style (e.g. different color; Bug #734)
- Many improvements to text rendering for non-Latin languages
- Newly created text always uses the default text orientation again, even when created within a rotated (or otherwise transformed) group (Bug #1767)
- Sublayers can now be dragged and reordered in the Objects dialog, just like any other item (Bug #1247)
Export and Import
- PDF/LaTeX export now places SVG2 texts correctly in the exported .tex file (Bug #2300)
- Tutorial files now open as templates, so you won't get an error message when trying to save the tutorial (to its installation location), but will instead be asked for the save location (https://gitlab.com/inkscape/inkscape/-/merge_requests/2354 MR #2354)
- New arcs, chords and circle segments show up again in other programs than Inkscape (Bug #2489)
- Clipped objects now respect the antialiasing setting on export (Bug #1921)
- Inkscape no longer freezes when trying to import a PDF that uses multiple color spaces (Bug #1878)
- In embedded JavaScript, Inkscape no longer messes with the contents of
xlink:href
(Bug #1958) - When batch-exporting PNG images, the export path selection is no longer greyed out (but only the directory portion of it will be used, plus the path IDs as file names) (Bug #1894)
- When batch-exporting PNG images, the number of selected objects updates correctly now (MR #2829)
- The Plot extension works again on macOS Big Sur (Bug inbox#4547)
Command Line
- On the command line, paths with a dot in their name no longer cause exported files to be saved to the wrong place (Bug #1712)
- Changes output extensions make to the document no longer propagate to the actual document (MR #2755)
Even more bug fixes
There were even more issues fixed than those listed above, but these probably only affect a small portion of users, or are relevant for development and packaging only.
For a complete list, visit our GitLab issue tracker and see the commit history (all changes since DATE until release date).
Translations
The following UI translations received updates:
- Basque
- Brazilian Portuguese
- Bulgarian
- Catalan
- Croatian
- Czech
- Danish
- Dutch
- French
- German
- Hungarian
- Icelandic
- Italian
- Irish
- Korean
- Latvian
- Polish
- Portuguese
- Simplified Chinese
- Spanish
- Traditional Chinese
- Turkish
- Ukrainian
The Windows installer translation was updated for:
- Czech
The following documentation translations received updates:
- German
- Hungarian
- Serbian
- Traditional Chinese
Additionally, time has been spent on improving translatability and adding hints for translators in various places.
Contributing to interface translations
Want to help with translations? Learn how to help!
Documentation
- Some missing options were added to the man page (command line help)
- Some missing keyboard shortcuts were added to the keyboard shortcut reference
- Many changes / updates were made 'under the hood'
Contributing to documentation and documentation translation
Contributions to the documentation translations, as well as improvements to its contents, are welcome at the inkscape-docs repository.
Important changes for packagers
- Inkscape no longer depends on
GtkSpell
andASpell
but onGSpell
for spell checking. lib2geom
has been moved into its own git submodule (like the extensions), a new release is available.lcms2
is a mandatory dependency nowlibrevenge
has been common for years, dropped checks for its use withlibwpg
,libvisio
andlibcdr
- checks for very old versions of
libwpg
,libvisio
,libcdr
removed gc
,double-conv
,readline
, andlcms2
are detected withpkg-config
iconv
,intl
detected withcmake
system (MR #2475)- Inkscape now ships a
/share/themes
folder with two custom themes that are only suitable for use with Inkscape (as a git submodule) - Support for Python 2 has been dropped for Inkscape extensions
INKSCAPE_DATADIR
can be set to a different default value at build time (MR #2276)- Support local
lib2geom
in install directory (MR #2327, #2379)
Please find the complete list of Inkscape's dependencies and their minimum versions at our Wiki page for tracking dependencies.
Known issues
- To undock a dialog on Windows, it is currently necessary to drag it out of the Inkscape window (Bug #2216)
- The option to quickly collapse a set of dialogs is currently not yet available. As a workaround, pressing F12 can be used to gain space on the canvas quickly. (Bug inbox#4676)
- New docked notebooks can not be added on the canvas-facing side of another docked notebook (Bug inbox#4915)
- Spellchecking is currently broken on macOS. (Bug #1496)
- The new raster image export formats do not work with the batch export option
Many of Inkscape's old bug reports still need to be tested and migrated to the new bug and feature request reporting page. While some progress has already been made, we still need your help with that task.
All (migrated and new) open issues for the project are listed on GitLab. If you have some time on your hands and can help fixing them, join us in the development chat and let us tackle them together.
Other releases
- Inkscape 1.5 — development branch
- Inkscape 1.4 — current stable release branch
- Inkscape 1.3 (1.3.1, 1.3.2)
- Inkscape 1.2 (1.2.1, 1.2.2)
- Inkscape 1.1 (1.1.1, 1.1.2)
- Inkscape 1.0 (1.0.1, 1.0.2)
- Inkscape 0.92 (0.92.1, 0.92.2, 0.92.3, 0.92.4, 0.92.5)
- Inkscape 0.91
- Inkscape 0.48 (0.48.1, 0.48.2, 0.48.3, 0.48.4, 0.48.5)
- Inkscape 0.47
- Inkscape 0.46
- Inkscape 0.45
- Inkscape 0.44
- Inkscape 0.43
- Inkscape 0.42
- Inkscape 0.41
- Inkscape 0.40
- Inkscape 0.39
- Inkscape 0.38
- Inkscape 0.37
- Inkscape 0.36
- Inkscape 0.35