<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.inkscape.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pulsar17</id>
	<title>Inkscape Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.inkscape.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pulsar17"/>
	<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/Special:Contributions/Pulsar17"/>
	<updated>2026-05-18T20:42:05Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Inkscape&amp;diff=122771</id>
		<title>Inkscape</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Inkscape&amp;diff=122771"/>
		<updated>2024-04-24T09:04:28Z</updated>

		<summary type="html">&lt;p&gt;Pulsar17: Replace C++11 link with C++20&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a freeform area for Inkscape development and discussion. Curious about [[wiki syntax]]?&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;vertical-align: top;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width: 33%; background: #EEE; padding: 1em;&amp;quot; |&lt;br /&gt;
== Project Info ==&lt;br /&gt;
* [http://www.inkscape.org/ Inkscape Homepage]&lt;br /&gt;
* [[About Inkscape]]&lt;br /&gt;
* [[Features of Inkscape|Features]]&lt;br /&gt;
* [[FAQ]] — Frequently Asked Questions&lt;br /&gt;
* [[Supported operating systems]]&lt;br /&gt;
* [[Tools]] — Supporting Tools and Applications&lt;br /&gt;
* [[Galleries]]&lt;br /&gt;
* [[Inkscape coverage|Coverage]] — Awards, articles, presentations, books about Inkscape&lt;br /&gt;
* [[Inkscape popularity|Popularity]]&lt;br /&gt;
* [[Inkscape invariants|Inkscape's Mission]]&lt;br /&gt;
* [https://inkscape.org/en/community/ Communication] — How to reach us&lt;br /&gt;
* [[Announcement to Sodipodi]] — This started it all&lt;br /&gt;
* [[Branding]]&lt;br /&gt;
* [[Travel Reimbursement Policy]]&lt;br /&gt;
* [[Funded Project System Development]]&lt;br /&gt;
* [[:Category:Hackfest|Hackfests]]&lt;br /&gt;
** upcoming/proposed events:&lt;br /&gt;
** past events:&lt;br /&gt;
::: [[Hackfest2023_Bensberg|2023 Bensberg]]&lt;br /&gt;
::: [[Hackfest2019 SCALE|2019 Pasadena (SCALE)]], [[Hackfest2019 Saarbrücken|2019 Saarbrücken (LGM)]]&lt;br /&gt;
::: [[Hackfest2018|2018 Boston]], [[Hackfest2018 LGM|2018 Seville (LGM)]], [[Hackfest2018 Kiel|2018 Kiel]]&lt;br /&gt;
::: [[Hackfest2017|2017 Paris]]&lt;br /&gt;
::: [[Hackfest2016|2016 Leeds (LGM)]]&lt;br /&gt;
::: [[Hackfest2015|2015 Toronto (LGM)]]&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 33%; padding: 1em;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
== User Documentation ==&lt;br /&gt;
* [[Installing Inkscape|Installation]]&lt;br /&gt;
* [[International and Local Communities]]&lt;br /&gt;
* [[Inkscape glossary]]&lt;br /&gt;
* [[User manual information]] — Where to find the free Inkscape manual and how to contribute to it&lt;br /&gt;
* [http://inkscape.org/en/learn/tutorials/ Tutorials]&lt;br /&gt;
* [[Inkscape SVG vs. plain SVG]]&lt;br /&gt;
* [[Output format requirements]] — What's needed to save in some formats&lt;br /&gt;
* [[Extension requirements]] — What's needed to use some extensions (slightly outdated)&lt;br /&gt;
* [[Extension reference]] — What each extension does (slightly outdated)&lt;br /&gt;
* [[Connector tool tutorial]]&lt;br /&gt;
* [[Installing fonts]]&lt;br /&gt;
* [[Emergency save]] — Recovery in case Inkscape crashed&lt;br /&gt;
* [[Release notes]]&lt;br /&gt;
** ''[[Release notes/1.4|Inkscape 1.4]]'' &amp;amp;mdash; ''development branch''&lt;br /&gt;
** '''[[Release notes/1.3|Inkscape 1.3]]''' ([[Release notes/1.3.1|1.3.1]]) &amp;amp;mdash; ''current stable release branch''&lt;br /&gt;
** [[Release notes/1.2|Inkscape 1.2]] ([[Release notes/1.2.1|1.2.1]], [[Release notes/1.2.2|1.2.2]])&lt;br /&gt;
* [[Announcing Releases]] (slightly outdated)&lt;br /&gt;
* [[Release Process Debrief]] (slightly outdated)&lt;br /&gt;
* [[Tricks and tips]] — Miscellaneous advice, may be slightly outdated&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 33%; background: #EEE; padding: 1em;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
== Help Inkscape Without Coding ==&lt;br /&gt;
* [[Help wanted]]&lt;br /&gt;
* [[Bug management]]&lt;br /&gt;
** [[Projects#Bug_Triage]]&lt;br /&gt;
* [[Testing]]&lt;br /&gt;
** [[macOS alpha]]&lt;br /&gt;
* [[Translation information]]&lt;br /&gt;
* [[WebSite]]&lt;br /&gt;
* [[Inkscape Classes]]&lt;br /&gt;
* [[Conferences]]&lt;br /&gt;
* [[Fundraising Ideas]]&lt;br /&gt;
* [[Creating Inkscape distributions]] — How to build packages&lt;br /&gt;
* [[Stable branch updates]]&lt;br /&gt;
* [[Updating tracker items]]&lt;br /&gt;
* [[Tutorials and help]]&lt;br /&gt;
* [[How to start a page]] — How to use the wiki&lt;br /&gt;
* [[Creating screencasts]]&lt;br /&gt;
* [[About-Screen contest]]&lt;br /&gt;
* [[social media|Participate in social media]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-top: 1em; padding: .5em 1em 1em; border: 1px solid #62C012;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Developer Documentation ==&lt;br /&gt;
{| style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;vertical-align: top;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width: 50%; padding-right: 1em;&amp;quot; |&lt;br /&gt;
=== First Steps ===&lt;br /&gt;
* [[Working with Git]] — How to obtain the source code. A quick start on how to use our version control system.&lt;br /&gt;
* [[Compiling Inkscape]]&lt;br /&gt;
* [[Developer manual]] — Various important information, be sure to read this before coding&lt;br /&gt;
* [[Debugging Inkscape|Debugging]] — Random tips to help debug problems&lt;br /&gt;
* [[Janitorial tasks]] — Small tasks that need doing&lt;br /&gt;
* [[Doxygen documentation]]&lt;br /&gt;
* [[Working with CMake]] — Getting started with CMake coding for configuring and building Inkscape&lt;br /&gt;
&lt;br /&gt;
=== Developer tutorials ===&lt;br /&gt;
* [[Architectural overview]] — A high-level look at Inkscape&lt;br /&gt;
* [[Preferences subsystem]] — Creating and using preference values&lt;br /&gt;
&amp;lt;!-- * XML subsystem — How to manipulate the XML representation of a document&lt;br /&gt;
* Display subsystem — How to make things appear on the canvas&lt;br /&gt;
* Tools subsystem — How to create a new tool --&amp;gt;&lt;br /&gt;
* Extensions&lt;br /&gt;
** [[Extension subsystem]] — An overview of the functionality provided by extensions and the possible implementations&lt;br /&gt;
** [[Script extensions]] — Extend Inkscape easily using scripting languages (Python, Perl, …)&lt;br /&gt;
** [[Python modules for extensions]] — Some helpful routines for use in Python script extensions&lt;br /&gt;
** [[INX extension descriptor format]]&lt;br /&gt;
* [[Creating Live Path Effects]]&lt;br /&gt;
* [[Using libsigc++ signals]]&lt;br /&gt;
*[[Windows development on Linux]]&lt;br /&gt;
&lt;br /&gt;
=== User Interface Discussion===&lt;br /&gt;
*[[Interface translation]]&lt;br /&gt;
* [[Adding interface verbs]]&lt;br /&gt;
*[[Accessible graphics]]&lt;br /&gt;
* [[Object Manager]]&lt;br /&gt;
*[[Dialogs reorganization]]&lt;br /&gt;
*[[Modal interfaces]]&lt;br /&gt;
*[[Text usability]] — Text tool and dialog&lt;br /&gt;
*[[KeyboardShortcutsToDo]]&lt;br /&gt;
**[[Keyboard profiles]] — How you can help&lt;br /&gt;
*[[Statusbar API]]&lt;br /&gt;
* [[Animation-(Timeline)]]&lt;br /&gt;
*[[Free Desktop Graphic Suite]]&lt;br /&gt;
*[[Skeletal Strokes]] — Brushes, Strokes, Pressure Sensibility...&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 50%;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===Development Discussion === &lt;br /&gt;
*[[Roadmap]] — The main todo list&lt;br /&gt;
*[[Tracking Dependencies|Dependencies]] — What libs are needed to build Inkscape&lt;br /&gt;
*[[C++20]] — Which C++20 features can be used&lt;br /&gt;
*[[New feature proposals]]&lt;br /&gt;
* [[Extension architecture proposals]]&lt;br /&gt;
*[[Coding Style|Coding Style Discussion]]&lt;br /&gt;
*[[File types]]&lt;br /&gt;
*[[Application icons]] — Application + Interface&lt;br /&gt;
*[[Icons]]&lt;br /&gt;
*[[Color management]]&lt;br /&gt;
*[[Printing subsystem]]&lt;br /&gt;
*[[SVG Tiny Compliance]]&lt;br /&gt;
* [[SVG Test Suite Compliance]] — [[W3C]] full test suite&lt;br /&gt;
*[[CSS Support]]&lt;br /&gt;
*[[Google Summer of Code]]&lt;br /&gt;
* [[Improved Media Management]]&lt;br /&gt;
*[[UI Mockup Screenshots]]&lt;br /&gt;
* [[Swatch Book]]&lt;br /&gt;
*[[Tablet Dialog]]&lt;br /&gt;
*[[ViewBoxToDo]] — View box support info&lt;br /&gt;
* [[Caching]]&lt;br /&gt;
*[[Canvas Rendering Profiling]]&lt;br /&gt;
*[[UI and Document coordinates‎]]&lt;br /&gt;
* [[GtkMMification]] — Replace C boilerplate with gtkmm objects&lt;br /&gt;
*[[CMake Tasks]] — Converting the Inkscape build system to CMake&lt;br /&gt;
*[[Bug Reporting Workflow]] — Options for improving Inkscape bug workflow from user to developer&lt;br /&gt;
*[[1.0 Release Bug Fix List]] — List of bugs that need to be fixed for 1.0&lt;br /&gt;
*[[1.0 Release Planning]] — Roadmap and planning for 1.0 Release&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
*[[Inkscape-specific XML attributes]] — Documentation of attributes from Inkscape's XML namespace&lt;br /&gt;
*[[Environment variables]] — Overview of important environment variables that modify the behavior of Inkscape and its dependencies.&lt;br /&gt;
*[[Extension repository]] — An Internet central for Inkscape extensions&lt;br /&gt;
*[[Related programs]]&lt;br /&gt;
*[[Sponsors list]]&lt;br /&gt;
*[[Contracting Process]] &lt;br /&gt;
*[[Wiki Playground]]&lt;br /&gt;
&lt;br /&gt;
===[[Lib2geom]]===&lt;br /&gt;
*[[Lib2geom]]&lt;br /&gt;
*[[Working with 2Geom FAQ]] — Real-life questions answered about using 2Geom in real code&lt;br /&gt;
*[[Lib2geom py2geom]] — Python bindings to 2geom. With this you can use the power of 2geom in Python scripts.&lt;br /&gt;
&lt;br /&gt;
===Historical pages===&lt;br /&gt;
These pages are outdated, but linked here for posterity.&lt;br /&gt;
&lt;br /&gt;
*[[Working with Bazaar]] — Our former control version system, no longer used. See [[Working with Git]] for current instructions.&lt;br /&gt;
* [[Creating a new SPObject]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*&lt;br /&gt;
[[:Category:Wiki Attic|Wiki Attic]] — Pages that are no longer relevant but kept for historical value&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
[[Category:Top level categories]]&lt;/div&gt;</summary>
		<author><name>Pulsar17</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=C%2B%2B20&amp;diff=122770</id>
		<title>C++20</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=C%2B%2B20&amp;diff=122770"/>
		<updated>2024-04-23T18:19:44Z</updated>

		<summary type="html">&lt;p&gt;Pulsar17: Add back consteval static&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
See also [[C++11]], [[C++17]], [[C++23]].&lt;br /&gt;
&lt;br /&gt;
Some things that will be interesting to use once C++20 is common:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Feature                           !! Since !! Can use?                                    !! GCC    !! Apple Clang !! Comment&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;std::span&amp;lt;/code&amp;gt;            || C++20 || style=&amp;quot;background: lightgreen;&amp;quot; | from 1.4  || 10     || 11.0.3 || Handle buffers like standard library containers without risk of overflow.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;std::format&amp;lt;/code&amp;gt;          || C++20 || style=&amp;quot;background: pink;&amp;quot;       |   not yet || 13     || 15.3   || Better and more efficient formatting of strings. [https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0645r10.html Text Formatting]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;std::lerp&amp;lt;/code&amp;gt;            || C++20 || style=&amp;quot;background: lightgreen;&amp;quot; | from 1.4  ||  9     || 11.0.3 || Linear interpolation. (ui/tools/pencil-tool.cpp)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;std::bit_floor&amp;lt;/code&amp;gt;       || C++20 || style=&amp;quot;background: lightgreen;&amp;quot; | from 1.4  || 9/10   || 11.0.3/13.0.0 || Compute &amp;lt;code&amp;gt;floor(log2(x))&amp;lt;/code&amp;gt;. (helper/mathfns.h)&lt;br /&gt;
|-&lt;br /&gt;
| Concepts                          || C++20 ||                                   from 1.4? || 6/10   || 12.0.0 Partial || Safer templating. (ui/controller.h)&lt;br /&gt;
|-&lt;br /&gt;
| Coroutines                        || C++20 || style=&amp;quot;background: pink;&amp;quot; |         not yet || 10     || 10.0.1 Partial,&amp;lt;br/&amp;gt; 15.3 Full || Simpler asynchronous code. (trace/trace.cpp)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;std::make_unique_for_overwrite&amp;lt;/code&amp;gt;&lt;br /&gt;
                                    || C++20 || style=&amp;quot;background: pink;&amp;quot; |         not yet || 11     || 15.0.0 || Don't zero arrays allocated using std::make_unique. (util/pool.cpp)&lt;br /&gt;
|-&lt;br /&gt;
| Ranges                            || C++20 || style=&amp;quot;background: pink;&amp;quot; |         not yet ||        || ? || (ui/dialog/swatches.cpp)&lt;br /&gt;
|-&lt;br /&gt;
| [https://stackoverflow.com/a/60244416/5075760 Structural templates]&lt;br /&gt;
                                    || C++20 ||                                   from 1.4? ||        || Partial || Allow instances of arbitrary literal classes as template parameters. (display/drawing.cpp)&lt;br /&gt;
|-&lt;br /&gt;
| Mathematical Constants            || C++20 ||                                             || 10     || 12.0.5 || Constants like &amp;lt;code&amp;gt;std::numbers::pi&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| Heterogenous lookup in &amp;lt;code&amp;gt;std::unordered_map&amp;lt;/code&amp;gt;&lt;br /&gt;
                                    || C++20 || style=&amp;quot;background: pink;&amp;quot; |         not yet ||        ||        || Faster lookup, use of smart pointers as keys.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;consteval static&amp;lt;/code&amp;gt; member functions&lt;br /&gt;
|C++20&lt;br /&gt;
| style=&amp;quot;background: pink;&amp;quot; | not yet&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Guaranteed compile time evaluation of member functions (stronger than &amp;lt;code&amp;gt;constexpr&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
&lt;br /&gt;
* General: https://en.cppreference.com/w/Template:cpp/compiler_support/20&lt;br /&gt;
* Apple Clang: https://developer.apple.com/documentation/xcode-release-notes&lt;br /&gt;
&lt;br /&gt;
As of 27 March 2024, the CI runners for the various supported platforms are&lt;br /&gt;
* Linux:&lt;br /&gt;
** appimage:linux: GNU 13.2.0 (building on Ubuntu 23.10)&lt;br /&gt;
** inkscape:linux: Same as above&lt;br /&gt;
* Windows&lt;br /&gt;
** inkscape:windows:build: GNU 13.2.0&lt;br /&gt;
** inkscape:windows:dist: Same as above&lt;br /&gt;
* macOS:&lt;br /&gt;
** inkscape::macos:arm: Apple Clang 15.0.0&lt;br /&gt;
** inkscape:macos:x64: Apple Clang 13.0.0 (temporarily disabled since GTK4 port)&lt;br /&gt;
&lt;br /&gt;
We strive to support latest Debian stable and latest Ubuntu LTS. However, we had to break that promise since the GTK4 port, which requires gtkmm4 &amp;gt;= 4.14:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Distro                         || gcc    || clang  || gtkmm4&lt;br /&gt;
|-&lt;br /&gt;
| Debian 12 (Bookworm, stable)   || 12.2.0 || 15.0.6 || 4.8.3&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 22.04 (Jammy Jellyfish) || 12.3.0 || 15.0.7 || Not packaged!&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 23.04 (Lunar)           || 13.1.0 || 16.0.0 || 4.10.1&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 24.04 (Noble)           || 13.2.0 || 18.1.0 || 4.10.1 (???)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ubuntu users therefore have the following options:&lt;br /&gt;
&lt;br /&gt;
* Wait for Ubuntu 24.04, expected around 25 April 2024.&lt;br /&gt;
* Upgrade to Ubuntu 24.04 now.&lt;br /&gt;
* Upgrade to Ubuntu 23.10 and build gtkmm4 from source, as is currently done by CI.&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
Deprecated items that we still use:&lt;br /&gt;
* warning: implicit capture of ‘this’ via ‘[=]’ is deprecated in C++20 [-Wdeprecated] https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0806r2.html&lt;br /&gt;
* warning: bitwise operation between different enumeration types ‘Box3D::Axis’ and ‘Box3D::FrontOrRear’ is deprecated [-Wdeprecated-enum-enum-conversion]&lt;/div&gt;</summary>
		<author><name>Pulsar17</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=C%2B%2B20&amp;diff=122769</id>
		<title>C++20</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=C%2B%2B20&amp;diff=122769"/>
		<updated>2024-04-23T18:15:32Z</updated>

		<summary type="html">&lt;p&gt;Pulsar17: Undo revision 122768 by Pulsar17 (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
See also [[C++11]], [[C++17]], [[C++23]].&lt;br /&gt;
&lt;br /&gt;
Some things that will be interesting to use once C++20 is common:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Feature                           !! Since !! Can use?                                    !! GCC    !! Apple Clang !! Comment&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;std::span&amp;lt;/code&amp;gt;            || C++20 || style=&amp;quot;background: lightgreen;&amp;quot; | from 1.4  || 10     || 11.0.3 || Handle buffers like standard library containers without risk of overflow.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;std::format&amp;lt;/code&amp;gt;          || C++20 || style=&amp;quot;background: pink;&amp;quot;       |   not yet || 13     || 15.3   || Better and more efficient formatting of strings. [https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0645r10.html Text Formatting]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;std::lerp&amp;lt;/code&amp;gt;            || C++20 || style=&amp;quot;background: lightgreen;&amp;quot; | from 1.4  ||  9     || 11.0.3 || Linear interpolation. (ui/tools/pencil-tool.cpp)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;std::bit_floor&amp;lt;/code&amp;gt;       || C++20 || style=&amp;quot;background: lightgreen;&amp;quot; | from 1.4  || 9/10   || 11.0.3/13.0.0 || Compute &amp;lt;code&amp;gt;floor(log2(x))&amp;lt;/code&amp;gt;. (helper/mathfns.h)&lt;br /&gt;
|-&lt;br /&gt;
| Concepts                          || C++20 ||                                   from 1.4? || 6/10   || 12.0.0 Partial || Safer templating. (ui/controller.h)&lt;br /&gt;
|-&lt;br /&gt;
| Coroutines                        || C++20 || style=&amp;quot;background: pink;&amp;quot; |         not yet || 10     || 10.0.1 Partial,&amp;lt;br/&amp;gt; 15.3 Full || Simpler asynchronous code. (trace/trace.cpp)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;std::make_unique_for_overwrite&amp;lt;/code&amp;gt;&lt;br /&gt;
                                    || C++20 || style=&amp;quot;background: pink;&amp;quot; |         not yet || 11     || 15.0.0 || Don't zero arrays allocated using std::make_unique. (util/pool.cpp)&lt;br /&gt;
|-&lt;br /&gt;
| Ranges                            || C++20 || style=&amp;quot;background: pink;&amp;quot; |         not yet ||        || ? || (ui/dialog/swatches.cpp)&lt;br /&gt;
|-&lt;br /&gt;
| [https://stackoverflow.com/a/60244416/5075760 Structural templates]&lt;br /&gt;
                                    || C++20 ||                                   from 1.4? ||        || Partial || Allow instances of arbitrary literal classes as template parameters. (display/drawing.cpp)&lt;br /&gt;
|-&lt;br /&gt;
| Mathematical Constants            || C++20 ||                                             || 10     || 12.0.5 || Constants like &amp;lt;code&amp;gt;std::numbers::pi&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| Heterogenous lookup in &amp;lt;code&amp;gt;std::unordered_map&amp;lt;/code&amp;gt;&lt;br /&gt;
                                    || C++20 || style=&amp;quot;background: pink;&amp;quot; |         not yet ||        ||        || Faster lookup, use of smart pointers as keys.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
&lt;br /&gt;
* General: https://en.cppreference.com/w/Template:cpp/compiler_support/20&lt;br /&gt;
* Apple Clang: https://developer.apple.com/documentation/xcode-release-notes&lt;br /&gt;
&lt;br /&gt;
As of 27 March 2024, the CI runners for the various supported platforms are&lt;br /&gt;
* Linux:&lt;br /&gt;
** appimage:linux: GNU 13.2.0 (building on Ubuntu 23.10)&lt;br /&gt;
** inkscape:linux: Same as above&lt;br /&gt;
* Windows&lt;br /&gt;
** inkscape:windows:build: GNU 13.2.0&lt;br /&gt;
** inkscape:windows:dist: Same as above&lt;br /&gt;
* macOS:&lt;br /&gt;
** inkscape::macos:arm: Apple Clang 15.0.0&lt;br /&gt;
** inkscape:macos:x64: Apple Clang 13.0.0 (temporarily disabled since GTK4 port)&lt;br /&gt;
&lt;br /&gt;
We strive to support latest Debian stable and latest Ubuntu LTS. However, we had to break that promise since the GTK4 port, which requires gtkmm4 &amp;gt;= 4.14:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Distro                         || gcc    || clang  || gtkmm4&lt;br /&gt;
|-&lt;br /&gt;
| Debian 12 (Bookworm, stable)   || 12.2.0 || 15.0.6 || 4.8.3&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 22.04 (Jammy Jellyfish) || 12.3.0 || 15.0.7 || Not packaged!&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 23.04 (Lunar)           || 13.1.0 || 16.0.0 || 4.10.1&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 24.04 (Noble)           || 13.2.0 || 18.1.0 || 4.10.1 (???)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ubuntu users therefore have the following options:&lt;br /&gt;
&lt;br /&gt;
* Wait for Ubuntu 24.04, expected around 25 April 2024.&lt;br /&gt;
* Upgrade to Ubuntu 24.04 now.&lt;br /&gt;
* Upgrade to Ubuntu 23.10 and build gtkmm4 from source, as is currently done by CI.&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
Deprecated items that we still use:&lt;br /&gt;
* warning: implicit capture of ‘this’ via ‘[=]’ is deprecated in C++20 [-Wdeprecated] https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0806r2.html&lt;br /&gt;
* warning: bitwise operation between different enumeration types ‘Box3D::Axis’ and ‘Box3D::FrontOrRear’ is deprecated [-Wdeprecated-enum-enum-conversion]&lt;/div&gt;</summary>
		<author><name>Pulsar17</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=C%2B%2B20&amp;diff=122768</id>
		<title>C++20</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=C%2B%2B20&amp;diff=122768"/>
		<updated>2024-04-23T18:11:58Z</updated>

		<summary type="html">&lt;p&gt;Pulsar17: Add consteval static as an entry&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
See also [[C++11]], [[C++17]], [[C++23]].&lt;br /&gt;
&lt;br /&gt;
Some things that will be interesting to use once C++20 is common:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Feature                           !! Since !! Can use?                                    !! GCC    !! Apple Clang !! Comment&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;std::span&amp;lt;/code&amp;gt;            || C++20 || style=&amp;quot;background: lightgreen;&amp;quot; | from 1.4  || 10     || 11.0.3 || Handle buffers like standard library containers without risk of overflow.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;std::format&amp;lt;/code&amp;gt;          || C++20 || style=&amp;quot;background: pink;&amp;quot;       |   not yet || 13     || 15.3   || Better and more efficient formatting of strings. [https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0645r10.html Text Formatting]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;std::lerp&amp;lt;/code&amp;gt;            || C++20 || style=&amp;quot;background: lightgreen;&amp;quot; | from 1.4  ||  9     || 11.0.3 || Linear interpolation. (ui/tools/pencil-tool.cpp)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;std::bit_floor&amp;lt;/code&amp;gt;       || C++20 || style=&amp;quot;background: lightgreen;&amp;quot; | from 1.4  || 9/10   || 11.0.3/13.0.0 || Compute &amp;lt;code&amp;gt;floor(log2(x))&amp;lt;/code&amp;gt;. (helper/mathfns.h)&lt;br /&gt;
|-&lt;br /&gt;
| Concepts                          || C++20 ||                                   from 1.4? || 6/10   || 12.0.0 Partial || Safer templating. (ui/controller.h)&lt;br /&gt;
|-&lt;br /&gt;
| Coroutines                        || C++20 || style=&amp;quot;background: pink;&amp;quot; |         not yet || 10     || 10.0.1 Partial,&amp;lt;br/&amp;gt; 15.3 Full || Simpler asynchronous code. (trace/trace.cpp)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;std::make_unique_for_overwrite&amp;lt;/code&amp;gt;&lt;br /&gt;
                                    || C++20 || style=&amp;quot;background: pink;&amp;quot; |         not yet || 11     || 15.0.0 || Don't zero arrays allocated using std::make_unique. (util/pool.cpp)&lt;br /&gt;
|-&lt;br /&gt;
| Ranges                            || C++20 || style=&amp;quot;background: pink;&amp;quot; |         not yet ||        || ? || (ui/dialog/swatches.cpp)&lt;br /&gt;
|-&lt;br /&gt;
| [https://stackoverflow.com/a/60244416/5075760 Structural templates]&lt;br /&gt;
                                    || C++20 ||                                   from 1.4? ||        || Partial || Allow instances of arbitrary literal classes as template parameters. (display/drawing.cpp)&lt;br /&gt;
|-&lt;br /&gt;
| Mathematical Constants            || C++20 ||                                             || 10     || 12.0.5 || Constants like &amp;lt;code&amp;gt;std::numbers::pi&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| Heterogenous lookup in &amp;lt;code&amp;gt;std::unordered_map&amp;lt;/code&amp;gt;&lt;br /&gt;
                                    || C++20 || style=&amp;quot;background: pink;&amp;quot; |         not yet ||        ||        || Faster lookup, use of smart pointers as keys.|}References:&lt;br /&gt;
&lt;br /&gt;
* General: https://en.cppreference.com/w/Template:cpp/compi|-&lt;br /&gt;
|&amp;lt;code&amp;gt;consteval static&amp;lt;/code&amp;gt; member functions&lt;br /&gt;
|C++20&lt;br /&gt;
| style=&amp;quot;background: pink;&amp;quot; |not yet&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Guaranteed compile time evaluation of member functions (stronger than &amp;lt;code&amp;gt;constexpr&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
&lt;br /&gt;
*General: https://en.cppreference.com/w/Template:cpp/compiler_support/20&lt;br /&gt;
* Apple Clang: https://developer.apple.com/documentation/xcode-release-notes&lt;br /&gt;
&lt;br /&gt;
As of 27 March 2024, the CI runners for the various supported platforms are&lt;br /&gt;
*Linux:&lt;br /&gt;
**appimage:linux: GNU 13.2.0 (building on Ubuntu 23.10)&lt;br /&gt;
**inkscape:linux: Same as above&lt;br /&gt;
*Windows&lt;br /&gt;
**inkscape:windows:build: GNU 13.2.0&lt;br /&gt;
** inkscape:windows:dist: Same as above&lt;br /&gt;
*macOS:&lt;br /&gt;
**inkscape::macos:arm: Apple Clang 15.0.0&lt;br /&gt;
**inkscape:macos:x64: Apple Clang 13.0.0 (temporarily disabled since GTK4 port)&lt;br /&gt;
&lt;br /&gt;
We strive to support latest Debian stable and latest Ubuntu LTS. However, we had to break that promise since the GTK4 port, which requires gtkmm4 &amp;gt;= 4.14:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Distro|| gcc|| clang||gtkmm4&lt;br /&gt;
|-&lt;br /&gt;
|Debian 12 (Bookworm, stable)||12.2.0||15.0.6||4.8.3&lt;br /&gt;
|-&lt;br /&gt;
|Ubuntu 22.04 (Jammy Jellyfish) ||12.3.0 ||15.0.7 ||Not packaged!&lt;br /&gt;
|-&lt;br /&gt;
|Ubuntu 23.04 (Lunar)|| 13.1.0 || 16.0.0 ||4.10.1&lt;br /&gt;
|-&lt;br /&gt;
|Ubuntu 24.04 (Noble)||13.2.0||18.1.0|| 4.10.1 (???)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ubuntu users therefore have the following options:&lt;br /&gt;
&lt;br /&gt;
*Wait for Ubuntu 24.04, expected around 25 April 2024.&lt;br /&gt;
*Upgrade to Ubuntu 24.04 now.&lt;br /&gt;
*Upgrade to Ubuntu 23.10 and build gtkmm4 from source, as is currently done by CI.&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
Deprecated items that we still use:&lt;br /&gt;
*warning: implicit capture of ‘this’ via ‘[=]’ is deprecated in C++20 [-Wdeprecated] https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0806r2.html&lt;br /&gt;
*warning: bitwise operation between different enumeration types ‘Box3D::Axis’ and ‘Box3D::FrontOrRear’ is deprecated [-Wdeprecated-enum-enum-conversion]&lt;/div&gt;</summary>
		<author><name>Pulsar17</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/1.3&amp;diff=121909</id>
		<title>Release notes/1.3</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/1.3&amp;diff=121909"/>
		<updated>2022-08-13T10:56:19Z</updated>

		<summary type="html">&lt;p&gt;Pulsar17: Fix minor grammatical errors&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Box| '''These Release Notes are in Draft Status.'''&lt;br /&gt;
&lt;br /&gt;
Note: Not all animations work, due to Wiki bugs with resizing images. Release notes will be transferred to website, there animations will be working.&lt;br /&gt;
&lt;br /&gt;
Important Links:&lt;br /&gt;
* [https://gitlab.com/inkscape/inkscape/commits/master Commit History Main Program (starting from: xxx)]&lt;br /&gt;
* [https://gitlab.com/inkscape/extensions/-/commits/master Commit History Extensions (starting from: xxx)]&lt;br /&gt;
* [https://gitlab.com/inkscape/inkscape-docs/documentation/-/tree/master Commit History Documentation (starting from: xxx)]&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Box| Pending questions:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Release highlights ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--'''Released on May xx, 2023 '''--&amp;gt;&lt;br /&gt;
&amp;lt;!--'''Definitely not released yet.'''--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Pattern editor , Pattern canvas controls, and pattern performance&lt;br /&gt;
* '''and so much more!'''&lt;br /&gt;
&lt;br /&gt;
== General user interface ==&lt;br /&gt;
[[File:Indicators of used colors.png|thumb|indicators of used colors]]&lt;br /&gt;
Color palettes have indicator color of stroke and fill of selected object.&lt;br /&gt;
== Canvas ==&lt;br /&gt;
&lt;br /&gt;
Pressing F temporarily hides on-canvas overlays (transformation handles, grids, guides ...). This allows quick preview of final artwork without any distractions.&lt;br /&gt;
&lt;br /&gt;
https://gitlab.com/inkscape/inkscape/-/merge_requests/4395&lt;br /&gt;
&lt;br /&gt;
Added display overlay controls in top right corners. You need to have scrollbars enable to see it.&lt;br /&gt;
&lt;br /&gt;
[[File:Canvas overlays.png|399x399px]]&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
=== Node tool ===&lt;br /&gt;
Pattern editing on canvas is now easier you can click on any part of pattern and it will show you controls on that position. We also outline that shows you edges of pattern.&lt;br /&gt;
[[File:Inkscape xfsvsc2oY9.gif|none|thumb|editing pattern on canvas]]&lt;br /&gt;
&lt;br /&gt;
== Path Operations ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Masking / Clipping ==&lt;br /&gt;
&lt;br /&gt;
* A new option to '''preserve clips / masks when ungrouping''' objects has been added (&amp;lt;code&amp;gt;Edit → Preferences → Behavior → Clippaths and Masks: When ungroup, clip/mask is preserved in childrens&amp;lt;/code&amp;gt;). The option is active by default. This means that when you now ungroup a group that has been clipped, the elements inside it will inherit the clip. Previously, the clip was removed and everything became un-clipped. To go back to previous default behavior, deactivate this new option. ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3564 MR #3564]) --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dialogs ==&lt;br /&gt;
&lt;br /&gt;
=== Fill and stroke Dialog ===&lt;br /&gt;
New pattern editor was added in to UI. You can preview patterns change name,  size, rotation, offset, gaps and colors for some specific patterns. We also added collections of patterns  &amp;lt;code&amp;gt;~paint/pattern.svg&amp;lt;/code&amp;gt;  so its easier to be organized .  Since  this allows  having much more patterns preset we also added search function .&lt;br /&gt;
&lt;br /&gt;
=== Symbols ===&lt;br /&gt;
You can drag and drop symbols on canvas and they are going to be place where you dropped them &lt;br /&gt;
&lt;br /&gt;
https://gitlab.com/inkscape/inkscape/-/merge_requests/4666&lt;br /&gt;
&lt;br /&gt;
== Filters ==&lt;br /&gt;
&lt;br /&gt;
== Live path effects ==&lt;br /&gt;
&lt;br /&gt;
== Import / Export ==&lt;br /&gt;
&lt;br /&gt;
== Templates ==&lt;br /&gt;
&lt;br /&gt;
All template dialogs (Welcome screen, New from Template, Page tool default sizes) now use the same template sizes ([https://gitlab.com/inkscape/extensions/-/merge_requests/479] MR #479)&lt;br /&gt;
&lt;br /&gt;
== Customization / Theming ==&lt;br /&gt;
&lt;br /&gt;
== Other ==&lt;br /&gt;
&lt;br /&gt;
== macOS-specific Changes ==&lt;br /&gt;
&lt;br /&gt;
== Windows-specific Changes ==&lt;br /&gt;
&lt;br /&gt;
== Extensions ==&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
&lt;br /&gt;
==== General Extension Changes ====&lt;br /&gt;
&lt;br /&gt;
==== New Extensions ====&lt;br /&gt;
&lt;br /&gt;
==== Particular extensions ====&lt;br /&gt;
&lt;br /&gt;
=== Bugs fixed ===&lt;br /&gt;
&lt;br /&gt;
==== All extensions ====&lt;br /&gt;
&lt;br /&gt;
==== Particular extensions ====&lt;br /&gt;
&lt;br /&gt;
=== Extension Development ===&lt;br /&gt;
&lt;br /&gt;
==== API Changes for Third-Party Extension Developers ====&lt;br /&gt;
&lt;br /&gt;
==== Extension Development Documentation ====&lt;br /&gt;
&lt;br /&gt;
==== Under the hood ====&lt;br /&gt;
&lt;br /&gt;
== Command line ==&lt;br /&gt;
&lt;br /&gt;
== Behind the curtains ==&lt;br /&gt;
&lt;br /&gt;
== Notable bugfixes ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Crash fixes ===&lt;br /&gt;
&lt;br /&gt;
Fixed a crash that occurred …&lt;br /&gt;
&lt;br /&gt;
* when …&lt;br /&gt;
&lt;br /&gt;
=== Other bug fixes ===&lt;br /&gt;
&lt;br /&gt;
=== Even more bug fixes ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
For a complete list, visit [https://gitlab.com/inkscape/inkscape/-/issues?milestone_title=Inkscape+1.3 our GitLab issue tracker] and see the [https://gitlab.com/inkscape/inkscape/-/commits/1.3.x commit history].&lt;br /&gt;
&lt;br /&gt;
== Translations ==&lt;br /&gt;
&lt;br /&gt;
The following UI translations received updates:&lt;br /&gt;
&lt;br /&gt;
* … &lt;br /&gt;
&lt;br /&gt;
The Windows installer translation was updated for:&lt;br /&gt;
&lt;br /&gt;
* … &lt;br /&gt;
&lt;br /&gt;
The following documentation translations received updates:&lt;br /&gt;
&lt;br /&gt;
* … &lt;br /&gt;
&lt;br /&gt;
=== Contributing to interface translations ===&lt;br /&gt;
&lt;br /&gt;
Want to help with translations? [https://inkscape.org/contribute/translations/ Learn how to help!]&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
=== Contributing to documentation and documentation translation ===&lt;br /&gt;
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].&lt;br /&gt;
&lt;br /&gt;
== Website ==&lt;br /&gt;
&lt;br /&gt;
== Important changes for packagers ==&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
&lt;br /&gt;
== Other releases ==&lt;br /&gt;
&lt;br /&gt;
{{:Release notes}}&lt;/div&gt;</summary>
		<author><name>Pulsar17</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/1.2&amp;diff=120991</id>
		<title>Release notes/1.2</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/1.2&amp;diff=120991"/>
		<updated>2022-04-06T00:20:07Z</updated>

		<summary type="html">&lt;p&gt;Pulsar17: Fix minor grammatical errors&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
{{Box| '''These Release Notes are in Draft Status.'''&lt;br /&gt;
&lt;br /&gt;
Important Links:&lt;br /&gt;
* [https://gitlab.com/inkscape/inkscape/commits/master Commit History Main Program (starting from: xxx)]&lt;br /&gt;
* [https://gitlab.com/inkscape/extensions/-/commits/master Commit History Extensions (starting from: xxx)]&lt;br /&gt;
* [https://gitlab.com/inkscape/inkscape-docs/documentation/-/tree/master Commit History Documentation (starting from: xxx)]&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Box| Pending questions:&lt;br /&gt;
&lt;br /&gt;
* …&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Release highlights ==&lt;br /&gt;
&lt;br /&gt;
'''Definitely not released yet.'''&lt;br /&gt;
&lt;br /&gt;
* Inkscape documents can now hold '''multiple pages''', which are managed by the new '''[[#Page_tool|Page tool]]'''&lt;br /&gt;
* '''Editable [[#Markers|markers]] and [[#Custom_Dash_patterns|dash patterns]]'''&lt;br /&gt;
* '''[[#Layers_and_Objects_dialog|Layers and objects dialog merged]]'''&lt;br /&gt;
* '''[[#Alignment_and_Distribution_snapping|On-canvas alignment snapping]]'''&lt;br /&gt;
* '''[[#Selector_Tool|Selectable object origin for numerical scaling and moving]]'''&lt;br /&gt;
* '''[[#Align_and_distribute|All alignment options in a single dialog]]'''&lt;br /&gt;
* '''[[#Gradient_Editor_is_back|Gradient editing in the Fill and Stroke dialog]]'''&lt;br /&gt;
* '''[[#Export Dialog|Redesigned Export dialog with preview and ability to select objects/layers/pages and even multiple file formats to export to]]'''&lt;br /&gt;
* '''[[#Snapping|Snap settings redesign]]'''&lt;br /&gt;
*[[Release notes/1.2#SVG Font Editor|SVG Font Editor is easier to use]] &lt;br /&gt;
*[[Release notes/1.2#Tiling|New 'Tiling' Live Path effect for easy but powerful interactive pattern making]]  &lt;br /&gt;
* '''[[#Customization_.2F_Theming|Configurable Tool bar''', '''continuous icon scaling''' and '''many more new customization options]]'''&lt;br /&gt;
* '''Performance improvements''' for many parts of the interface and many different functions&lt;br /&gt;
*Lots of UI fixies and polish &lt;br /&gt;
* '''[[#Notable_bugfixes|Many crash &amp;amp; bug fixes]]'''&lt;br /&gt;
&lt;br /&gt;
== General user interface ==&lt;br /&gt;
&lt;br /&gt;
=== Color palette ===&lt;br /&gt;
&lt;br /&gt;
The overall look and options of the Color palette and the Swatches dialog got a massive overhaul ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2881 MR #2881]):&lt;br /&gt;
&lt;br /&gt;
* When switching the color palette, the switcher shows a colorful preview line for each palette&lt;br /&gt;
* Between 1 and 5 palette rows that can be displayed all at once, or scrolled through vertically / using the arrow buttons&lt;br /&gt;
* Improved and reliably working settings for padding, tile size and tile shape / auto-stretching&lt;br /&gt;
&lt;br /&gt;
[[File:Color pallet demo.gif|frame|center|Color palette layout options]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Status Bar ===&lt;br /&gt;
&lt;br /&gt;
* The layer selection drop-down has been replaced by a layer indicator. Clicking on the indicator opens the new [[#Layers_and_Objects_dialog|Layers and object dialog]]. This change improves Inkscape's performance for documents with many layers ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3648 MR #3648]).&lt;br /&gt;
* The status bar contents are now configurable, see [[#Bars_.2F_Toolbars|Customization section]].&lt;br /&gt;
*After you add more then one page you can switch active page with page navigator on right side of status bar &lt;br /&gt;
&lt;br /&gt;
=== Tool bar ===&lt;br /&gt;
&lt;br /&gt;
* The tool bar width can now be resized by dragging edge and wraps into multiple columns &lt;br /&gt;
* You can customize which tools will be part of the tool bar in the preferences, see [[#Bars_.2F_Toolbars|Customization section]]&lt;br /&gt;
&lt;br /&gt;
=== Command bar ===&lt;br /&gt;
We returned zoom commands back to the command bar&lt;br /&gt;
&lt;br /&gt;
=== Context menus ===&lt;br /&gt;
Thanks to Tavs work we have more contextual  right click menus for some objects on canvas and in Layers dialog. ( example: right clicking bitmap offers tracing bitmap and extracting image)&lt;br /&gt;
&lt;br /&gt;
=== Dithering ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[REVIEW before release with regards to available formats]&lt;br /&gt;
[TODO: add nicer/more obvious comparison image]&lt;br /&gt;
&lt;br /&gt;
Inkscape's gradients sometimes suffered from visible steps between colors, a phenomenon also known as '''gradient banding'''. Gradient banding is caused by the difference between how many different colors are available for the selected image file format and how many colors a human eye can discern. The effect becomes especially prominent when exporting a gradient that only spans a small color range to a high-resolution image. There just aren't enough colors available for a smooth transition.&lt;br /&gt;
&lt;br /&gt;
'''Dithering''' softens these steps '''by scattering pixels''' of the different adjacent colors along the gradient, a little bit like a blur.&lt;br /&gt;
&lt;br /&gt;
Dithering is now used both for '''Export of raster images''' as well as for '''displaying gradients on canvas'''([https://gitlab.com/inkscape/inkscape/-/merge_requests/3812 MR #3812]). This functionality requires a special version of Cairo, our rendering engine. This means that it will '''only be available in the pre-packaged builds''' (for '''macOS''', '''Windows''' and for the '''Linux AppImage'''). &lt;br /&gt;
&lt;br /&gt;
Dithering on canvas rendering can be turned off (for performance reasons) Preferences &amp;gt; Rendering &amp;gt; use dithering  &lt;br /&gt;
&lt;br /&gt;
Dithering does not fork on mesh gradients  &lt;br /&gt;
&lt;br /&gt;
For standard Linux package formats (deb, rpm, …), it depends upon your Linux distribution maintainers whether they will patch up the version of Cairo they want to distribute. We hope that this change will one day also be included in the official Cairo packages ([https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/24 Link to ongoing discussion]).&lt;br /&gt;
&lt;br /&gt;
[[File:Dithering_comparison.png|frame|center|Top: Gradient banding, bottom: dithered, smooth gradient]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Canvas ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Page shadow.png|thumb|823x823px|Page shadow ]]&lt;br /&gt;
&lt;br /&gt;
=== Page ===&lt;br /&gt;
&lt;br /&gt;
* The page shadow now has a more realistic, blurry, fade-out look ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3128 MR #3128]). &lt;br /&gt;
* Settings for the page background / decoration were refactored, see [[#Document_Properties|section about Document properties dialog]].&lt;br /&gt;
*Default color of page is white and page background is light gray to help better visuals what is page and what is outside of page&lt;br /&gt;
* Inkscape documents can now hold multiple pages! Learn more in the [[#Page_tool|section about the new Page tool]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Snapping ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Snap bar is now Snap popover ====&lt;br /&gt;
&lt;br /&gt;
[[File:Snapping popover .gif|frame|right|New snap settings layout]]&lt;br /&gt;
&lt;br /&gt;
The snap bar has been replaced with a new 'popover'-type dialog, which will unfold when you click on the little arrow symbol in the top right corner, next to the snap symbol.&lt;br /&gt;
Snap options now have always-visible descriptions, to make them easier to understand ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3323 MR #3323]).&lt;br /&gt;
&lt;br /&gt;
To activate / deactivate snapping globally, click on the snap symbol in the top right corner or press '''&amp;lt;kbd&amp;gt;%&amp;lt;/kbd&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
The popover dialog has two different modes:&lt;br /&gt;
* Simple: Only 3 options: snap bounding boxes and paths, activate / deactivate the new alignment snapping). This provides a simple preset for many use cases.&lt;br /&gt;
* Advanced: Gives the familiar granular control over every snapping option. Switching from 'Advanced' back to 'Simple' is not merely a visual change, but will reset snap settings to defaults.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Snapping preferences globalized ====&lt;br /&gt;
&lt;br /&gt;
Snap settings are no longer saved with the document, but are set globally for all documents in the preferences and in the snap popover dialog. &lt;br /&gt;
The option for enabling snapping in new documents has been removed, as it no longer makes sense.&lt;br /&gt;
&lt;br /&gt;
The options for snapping perpendicularly and tangentially to paths or guide lines have been moved from the document preferences to the snap popover to make them more discoverable.&lt;br /&gt;
The other snap options from the document settings dialog were removed. [TODO: check whether this is still true at the time of release]&amp;lt;!-- mostly moved into the global user preferences, and are now available in their Snapping section under &amp;lt;code&amp;gt;Edit → Preferences → Behavior → Snapping&amp;lt;/code&amp;gt; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Alignment and Distribution snapping  ====&lt;br /&gt;
&lt;br /&gt;
[[File:Snap-toolbar.png|frame|right|New alignment snapping options]]&lt;br /&gt;
&lt;br /&gt;
During Google Summer of Code 2021, GSOC student Parth Pant worked on adding on-canvas alignment and distribution snapping, with support of the mentors Thomas Holder and Marc Jeanmougin. &lt;br /&gt;
As a result, three new modes of on-canvas snapping have been added. These new modes make aligning and distributing objects a very easy drag-and-drop operation ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3294 MR #3294])..&lt;br /&gt;
&lt;br /&gt;
When on-canvas alignment is active, Inkscape will display horizontal or vertical temporary guide lines that indicate when the selected object can be aligned relative to another object on the canvas. It connects the points of the objects that are in alignment. &lt;br /&gt;
With distribution snapping, multiple objects close by are taken into account, making it possible to align objects in a grid, with very little effort.&lt;br /&gt;
&lt;br /&gt;
The temporary guide lines only appear while editing / moving objects on the canvas. Once a guide shows up, the movement of the selection is loosely constrained in the direction of the guide.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Alignment and distribution snapping also have their separately configurable snap tolerances which can be adjusted in &amp;lt;code&amp;gt;Document Properties → Snap&amp;lt;/code&amp;gt; [TODO: this option has not been moved to global preferences and is not available!]--&amp;gt;&lt;br /&gt;
Alignment and Distribution snapping guide lines display the distance(s) between objects as a little label per default. This can be disabled from &amp;lt;code&amp;gt;Edit → Preferences → Snapping: Show snap distance in case of alignment or distribution snap&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The 'Simple' mode of the snapping popover dialog allows you to simply activate or deactivate Alignment snapping. &lt;br /&gt;
The 'Advanced' mode gives you additional control by allowing you to en-/disable:&lt;br /&gt;
&lt;br /&gt;
'''Available additional options:'''&lt;br /&gt;
* '''Alignment Snapping''':  Tools and objects snap to position of other objects&lt;br /&gt;
*'''Self snapping''':  Alignment snapping for nodes in the same path while editing nodes or node handles.&lt;br /&gt;
* '''Distribution snapping''': Objects snap to same gap size as their neighbours&lt;br /&gt;
[[File:Self snapping.gif|frame|center|Snapping nodes in the same path]]&lt;br /&gt;
[[File:Aligment and distribution snapping exemple.gif|frame|center|Demo of alignment and distribution snapping]]&lt;br /&gt;
&lt;br /&gt;
=== Guides ===&lt;br /&gt;
&lt;br /&gt;
* The size of the handles is now adjustable in the Preferences via the existing setting &amp;lt;code&amp;gt;Interface → Handle size&amp;lt;/code&amp;gt;. Nonetheless, the guide handles react to this setting at half the rate of other handles; at large settings, the effective size of a guide handle is about half the size of an auto-smooth node. At the same time, a minimum size is enforced, equal to the previously hard-coded size. As a result of this mechanism, the handle is only enlarged when the &amp;lt;code&amp;gt;Handle size&amp;lt;/code&amp;gt; preference is set to a value of 7 or larger. Since the default value is 3, the size of guide handles does not change on new installs or for users on default settings.&lt;br /&gt;
* The handle now has a hitbox and reacts to mouse events in the same way as the guide line itself. This makes it easier to interact with the guide. Taken together, these two changes address [[/inkscape/inkscape/-/issues/3111|#3111 (closed)]].&lt;br /&gt;
* The colour of the handle is now the same as the colour of the guide, except when the guide is locked.&lt;br /&gt;
* When a guide is locked, its handle turns gray (and changes the shape to an &amp;quot;x&amp;quot;, as before).&lt;br /&gt;
* The handle is always correctly centered on the guide line. This change also fixes a similar positioning error that affected node handles.&lt;br /&gt;
* Guides have new default color&lt;br /&gt;
&lt;br /&gt;
Fixes [[/inkscape/inkscape/-/issues/2022|#2022 (closed)]]; Fixes [[/inkscape/inkscape/-/issues/2604|#2604 (closed)]]; Fixes [[/inkscape/inkscape/-/issues/3111|#3111 (closed)]];&lt;br /&gt;
&lt;br /&gt;
MR #[https://gitlab.com/inkscape/inkscape/-/merge_requests/3870 3870]&lt;br /&gt;
&lt;br /&gt;
=== Performance ===&lt;br /&gt;
&lt;br /&gt;
Performance for canvas rendering and on macOS has been investigated and significantly improved. Inkscape should be faster to render while panning and zooming now.&lt;br /&gt;
&lt;br /&gt;
[https://gitlab.com/inkscape/inkscape/-/merge_requests/3838 MR 3838]&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
=== Page tool === &lt;br /&gt;
&lt;br /&gt;
The new Page tool (lowest button in the tool bar) allows you to create multi-page Inkscape documents, and to import as well as export multi-page PDF documents. ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3486 MR #3486], [https://gitlab.com/inkscape/inkscape/-/merge_requests/3785 MR #3785], [https://gitlab.com/inkscape/inkscape/-/merge_requests/3821 MR #3821]). It supports overlapping pages and pages of different sizes in a single document.&lt;br /&gt;
&lt;br /&gt;
'''Tool usage:'''&lt;br /&gt;
* To '''create a new page''' either:&lt;br /&gt;
** click-and-drag on the canvas&lt;br /&gt;
** or click on the 'Create a new page' button in the tool controls&lt;br /&gt;
* To '''delete a page''', click on the page to select it, then click on the button &amp;lt;code&amp;gt;Delete selected page&amp;lt;/code&amp;gt; or use the &amp;lt;code&amp;gt;Del&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Backspace&amp;lt;/code&amp;gt; keys.&lt;br /&gt;
* To '''move a page''' on the canvas, click-and-drag it to the desired new position. If the option to &amp;lt;code&amp;gt;Move overlapping objects&amp;lt;/code&amp;gt; is active, this will also move any objects that touch the page along with it.&lt;br /&gt;
* To '''change a page's size''':&lt;br /&gt;
** click on a page whose size you want to change to select it, then drag the square-shaped handle in its bottom right corner&lt;br /&gt;
** click on the page, and then choose one of the predefined sizes in the page size dropdown, or enter your size values for the 'Custom' option, by typing them into the field in the form of &amp;lt;code&amp;gt;10cm x 15cm&amp;lt;/code&amp;gt;&lt;br /&gt;
* To '''fit a page''' to:&lt;br /&gt;
** the size of '''the drawing''': make sure to have no object selected before you switch to the Page tool. Then select a page by clicking on it, then click on the button 'Fit page to drawing or selection' in the tool controls&lt;br /&gt;
** '''a selected object''': first select the object(s) with the selection tool, then switch to the Page tool, click on a page to select it, then press the the button 'Fit page to drawing or selection' in the tool controls&lt;br /&gt;
* To '''add a label''' to your page, select the page by clicking on it, then enter a name or label for it into the text field in the page tool's tool controls. Labels are always visible, no matter which tool is currently selected.&lt;br /&gt;
* To '''export a multi-page PDF''' file, use &amp;lt;code&amp;gt;File → Save a copy … → PDF&amp;lt;/code&amp;gt;. This will automatically include all pages.&lt;br /&gt;
* To '''open or import a multi-page PDF or AI (pdf-based)''' file, use &amp;lt;code&amp;gt;File → Open/Import → select file name → choose to import 'All' pages&amp;lt;/code&amp;gt; [Known issue: 'import' moves content of some pages to some far out place in the drawing]&lt;br /&gt;
*You can navigate pages with  page navigator on that will show up in right down corner of status bar&lt;br /&gt;
&lt;br /&gt;
''Note: Multi-page SVG files are an Inkscape-specific concept. Web browsers will only display the first page of your document, which corresponds to the 'viewbox' area of the SVG file.''&lt;br /&gt;
&lt;br /&gt;
[TODO: needs gif!]&lt;br /&gt;
&lt;br /&gt;
=== Selector Tool ===&lt;br /&gt;
&lt;br /&gt;
The tool now allows to '''set the origin of the selection''' for precise numerical positioning:&lt;br /&gt;
&lt;br /&gt;
# '''Click''' on one of the 9 object handles to select your desired origin for the scaling, '''or select and then drag''' the middle handle to the desired position&lt;br /&gt;
# A '''small red circle with lines''' now indicates the new origin and the '''x/y position''' in the tool controls will adjust to the new origin.&lt;br /&gt;
# Now '''edit the x, y, width or height values''' to move and scale your object using the new origin ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2700 MR #2700])&lt;br /&gt;
#Shift click on origin reset original position of origin&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery style=&amp;quot;border: 1px solid #c8ccd1;padding: 3px;background-color: #f8f9fa;&amp;quot; mode=&amp;quot;packed&amp;quot; heights=350px&amp;gt;&lt;br /&gt;
File:Change origin of selection.gif|Changing the origin for scaling numerically&lt;br /&gt;
File:Change origin to TOP right.gif|Changing the origin to move one corner to a specified coordinate&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Text Tool ===&lt;br /&gt;
&lt;br /&gt;
* '''Kerning options''' are now symbolized by a '''button''' between the subscript and text direction selectors. Clicking on it will open a so-called pop-over, where all previously available options can be found. This change saves space in the Text tool's toolbar.&lt;br /&gt;
* '''Negative kerning''' values can now be as little as &amp;lt;code&amp;gt;-1000&amp;lt;/code&amp;gt; (previously -100), making them symmetrical to their positive counterparts ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2569 MR #2569], [https://gitlab.com/inkscape/inkscape/-/merge_requests/3434 MR #3434])&lt;br /&gt;
* '''Padding''': Text that is flowed into a shape and standard flowed text now have an '''additional square-shaped handle''' in the top right corner. Move the handle to adjust the text padding inside the frame ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2769 MR #2769]) &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;'''[Currently broken]'''&amp;lt;/span&amp;gt;&lt;br /&gt;
* '''Exclusion zones''': Text can now '''flow around one or more movable objects''' &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;'''[Currently broken]'''&amp;lt;/span&amp;gt;: &lt;br /&gt;
*# Select all object(s) (use only shapes and paths on the same object hierarchy level as the text; no groups / clones / images supported) and the text.&lt;br /&gt;
*# Set the exclusion zone by going to &amp;lt;code&amp;gt;Text → Set subtraction frames&amp;lt;/code&amp;gt;.&lt;br /&gt;
*# Now you can move the exclusion objects around or edit their shape, and the text will adjust automatically.&lt;br /&gt;
*# If you want to change the exclusion zones again at a later point, repeat the process with all objects that the text should flow around.&lt;br /&gt;
Background info: &lt;br /&gt;
''SVG 2.0 flowed text allows for &amp;lt;code&amp;gt;shape-padding&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;shape-subtract&amp;lt;/code&amp;gt; attributes. &amp;lt;code&amp;gt;shape-padding&amp;lt;/code&amp;gt; lets the text flow into a shape and leave some space between its edges and w where the text will start to flow. &amp;lt;code&amp;gt;shape-subtract&amp;lt;/code&amp;gt; subtracts shapes with margin, so text can flow around other objects in the scene. These attributes were supported in Inkscape 1.0, but not exposed to the user. This version of Inkscape includes both an adjustable on-canvas knot for changing the padding as well as a Text menu item for setting text subtraction properties with a further knot to adjust it's margins.''&lt;br /&gt;
&lt;br /&gt;
[See merge request for animated gifs to add here]&lt;br /&gt;
&lt;br /&gt;
=== Gradient Tool ===&lt;br /&gt;
We Added New control in to  &amp;lt;code&amp;gt;'''Preferences → Gradient Tool'''&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;Auto delete gradients that are not used&amp;lt;/code&amp;gt; This is turned on my default. This setting  prevents gradients that are not used on any object to stay in gradient library  and this prevents gradients to fill up library. This is not a new behavior  we just added ability to turn it off .&lt;br /&gt;
&lt;br /&gt;
== Path Operations ==&lt;br /&gt;
[[File:Split.gif|thumb|330x330px]]&lt;br /&gt;
* New '''Split path''' operation, available from &amp;lt;code&amp;gt;'''Path → Split path'''&amp;lt;/code&amp;gt;:&amp;lt;br /&amp;gt;The function separates a path object that consists of multiple subpaths into a set of path objects that 'belong together'. This means that parts of a path that have holes in them are kept as whole objects. The function works by splitting up a path into non-intersecting bits, keeping intersecting bits together. &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;''Example'': A path that consists of a word, like 'Inkscape' will be split into 8 parts, one for each letter. With the familiar 'Break apart' function, there would be 12 parts, because of the holes in the letters that would be split off as their own objects, too  ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3738 MR #3738]).&lt;br /&gt;
&amp;lt;!-- * On-Canvas Boolean operations [TODO: fill in if merged, seems to have low probability, lots of work to be done] https://gitlab.com/inkscape/inkscape/-/merge_requests/3357 Osama Ahmad with mentors Thomas Holder, Marc Jeanmougin, Martin Owens --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dialogs ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Inkscape PyFNUY7fCi.gif|thumb|455x455px]]&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
&lt;br /&gt;
* A mini-menu (downward pointing arrow symbol) was added into the title bar of every multi-dialog panel (also called 'notebook'). You can use it to close the current tab, to undock it, or to close the whole panel. It also shows a list of available dialogs, sorted by purpose, allowing you to open them with a click (([https://gitlab.com/inkscape/inkscape/-/merge_requests/3728 MR #3728]) [TODO: screenshot ]&lt;br /&gt;
* Open dialogs are now less costly for performance, because they do not update when it's not needed ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3369 MR #3369]), or when they are hidden ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3761 MR #3761])&lt;br /&gt;
* Docking zones now expand and flash slowly when a dialog is dragged close to them. This makes it easier to see where docking is possible ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3729 MR #3729])&lt;br /&gt;
* The text labels of docked dialogs are now more responsive to the width of dialog ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3627 MR #3627])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Align and distribute ===&lt;br /&gt;
&lt;br /&gt;
* The formerly separate &amp;lt;code&amp;gt;Arrange&amp;lt;/code&amp;gt; dialog is now '''integrated''' with the &amp;lt;code&amp;gt;Align and Distribute&amp;lt;/code&amp;gt; dialog. With its '''three tabs''', more '''user-friendly names''' and some '''small visual tweaks''', the dialog now holds everything that is needed for aligning, distributing and arranging objects in your drawing ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3382 MR #3382], [https://gitlab.com/inkscape/inkscape/-/merge_requests/3667 MR #3667]).&lt;br /&gt;
* The icons inside this dialog are now smaller. &lt;br /&gt;
* Node  alignment and distribution is no longer shown on first run Just when you use node editing tool&lt;br /&gt;
[[File:Inkscape R6cB6sFN07.gif|center|frame|All alignment and distribution options in a single dialog]]&lt;br /&gt;
[TODO: needs re record with small icons]&lt;br /&gt;
&lt;br /&gt;
=== Document Properties ===&lt;br /&gt;
&lt;br /&gt;
The 'Snapping' tab was removed in favor of a global snapping preference, see [[#Snapping|Snapping section]]. &lt;br /&gt;
&lt;br /&gt;
The first tab of the Document properties dialog was refactored thoroughly to make it easier to use:&lt;br /&gt;
&lt;br /&gt;
* It's now labelled 'Display' instead of 'Page'&lt;br /&gt;
* The long list of different document formats is now available from a dropdown&lt;br /&gt;
* There is a preview available of the page format and colors [TODO: needs screenshot]&lt;br /&gt;
* The page area(s) in a document can now have a different color than the underlying 'desk' area [TODO: mention in highlights?]&lt;br /&gt;
* The other options have been rearranged to look tidier&lt;br /&gt;
* The option to add margins to a document when resizing it is currently unavailable [TODO: hopefully get that back before the release]&lt;br /&gt;
&lt;br /&gt;
([https://gitlab.com/inkscape/inkscape/-/merge_requests/3700 MR #3700]).&lt;br /&gt;
&lt;br /&gt;
([https://gitlab.com/inkscape/inkscape/-/merge_requests/3400/ MR #3400], [https://gitlab.com/inkscape/inkscape/-/merge_requests/3403 MR #3403])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fill and Stroke dialog ===&lt;br /&gt;
==== Color selector ====&lt;br /&gt;
&lt;br /&gt;
[[File:HSLuv_color_picker.png|thumb|200px|HSLuv color picker mode]]&lt;br /&gt;
* The more intuitive HSL mode (hue, saturation, lightness) is now the default mode of the color selector. &lt;br /&gt;
* All color selection modes (e.g. HSL, HSV, RGB, CMYK, CMS, HSLuv) have been moved into drop-down menu, with icons. You can get the old, tabbed look back by disabling the option in &amp;lt;code&amp;gt;Edit → Preferences → Interface: Use compact color selector mode switch&amp;lt;/code&amp;gt; ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3443 MR #3443]).&lt;br /&gt;
* New: '''HSLuv mode''' added for color picker. This mode lets you more intuitively select optically similar saturation of different hues ([https://en.wikipedia.org/wiki/HSLuv Wikipedia]).&lt;br /&gt;
*Color wheel is not separate mode anymore but dropdown(toggle?) above color sliders (HSL, HSV, HSLuv)&lt;br /&gt;
&lt;br /&gt;
==== Gradient Editor is back ====&lt;br /&gt;
&lt;br /&gt;
A replacement for the [https://wiki.inkscape.org/wiki/index.php?title=Release_notes/1.1#Legacy_Gradient_Editor_dialog_removed|lost gradient editor] was added to the Fill and Stroke dialog ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2688 MR #2688], [https://gitlab.com/inkscape/ux/-/issues/67 Bug ux#67]).&lt;br /&gt;
&lt;br /&gt;
This allows you to add, edit and delete gradient stops directly in the 'Fill and Stroke' dialog again:&lt;br /&gt;
&lt;br /&gt;
* to '''add''' a new stop, '''double click''' on the gradient preview&lt;br /&gt;
* to '''move''' a stop, '''click and drag''' it along the gradient preview or enter the stop offset numerically for more precision&lt;br /&gt;
* to '''remove''' a stop, click on it to '''select it, then press the &amp;lt;code&amp;gt;Del&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Backspace&amp;lt;/code&amp;gt; key'''&lt;br /&gt;
* The Gradient tool toolbar options `repeat mode`, `reverse gradient direction`, a gradient selection library and a list of all stops have been added here, too, so all the options pertaining to gradients are in easy reach.&lt;br /&gt;
*we added a preference to auto delete non used gradients. previously, inkscape deletes the non used gradients automatically. now, we made this optional so that, users can preserve those gradients in SVG file. https://gitlab.com/inkscape/inkscape/-/merge_requests/3897&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[File:Gradient editor adding stops.gif|frame|Changing gradient stop color, moving it, adding a new stop]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[File:Gradient editor - repete.gif|frame|Inverting the gradient's direction and changing its repeat mode]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[File:Adding and removing stops in to list.gif|frame|Another way to add, edit and delete single stops is to use the list of gradient stops. Users can add stops by clicking on the &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; button, and can delete them by clicking on the &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; button.]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[File:Gradients Library.gif|frame|With the new gradient selection dropdown, users can duplicate gradients by clicking on the &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; button.]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[File:First and last node offset.gif|frame|Users can offset (move) the first and last stops of a gradient. The color beyond the last/first gradient stop is uniformly that of the last/first stop.]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Markers ====&lt;br /&gt;
&lt;br /&gt;
The markers drop down list has been replaced by a little dialog that displays all available markers in a grid, and even allows you to edit the selected marker! This project was undertaken by GSOC student Rachana Podaralla with the mentors Michael Kowalski, Marc Jeanmougin and Martin Owens ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3394 MR #3394], [https://gitlab.com/inkscape/inkscape/-/merge_requests/3420 MR #3420]).&lt;br /&gt;
&lt;br /&gt;
When clicking on the drop down for the start, middle or end markers, you will see the following:&lt;br /&gt;
* a list of markers used in the current document at the top&lt;br /&gt;
* below that, a list of all default available markers, which also contains some fun new markers!&lt;br /&gt;
* at the bottom, the 'Edit' section, with:&lt;br /&gt;
** A preview of how the marker will look&lt;br /&gt;
** some number fields to change the size of the marker (keep the lock on to scale proportionally)&lt;br /&gt;
** an option to scale the markers when the stroke width is changed&lt;br /&gt;
** options for changing the marker direction&lt;br /&gt;
** the option to change the marker's angle and to have that angle fixed&lt;br /&gt;
** marker offsetting options&lt;br /&gt;
** a button to enable editing of markers (rotate, scale, move) on the canvas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[File:Working with new markers.gif|frame|Adding and editing markers with the new dialog]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[File:Edit markers on canvas.gif|frame|Editing markers directly on the canvas]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TODO: record new animation where rotation is also presented&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Custom Dash patterns ====&lt;br /&gt;
&lt;br /&gt;
To '''choose your own dash pattern''', select '''Custom''' in the dash pattern drop-down menu. This will make '''a new text field''' show up where you can add your new custom dash pattern '''by typing in numbers'''. Each number corresponds to the length of a dash or a gap. It always starts with a dash, and when it reaches the end, it will continue with the first number again, for the next gap or dash. So if you enter an even number of numbers, e.g. '1 1 4.5 4.5' the pattern will be 'dot - short gap - dash - long gap' and then repeat again, and for an uneven number of numbers, the pattern will be inverted when the first 'set' ends. &lt;br /&gt;
&lt;br /&gt;
On the canvas, you can watch how your object changes when you change the custom dash pattern numbers.[[File:Inkscape yrHv1frJlF.gif|none|frame]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Before after caps.png|thumb|339x339px]]&lt;br /&gt;
&lt;br /&gt;
==== Other small changes ====&lt;br /&gt;
&lt;br /&gt;
Line cap and line join order buttons have been reordered, so they match vertically ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3402 MR #3402]).&lt;br /&gt;
=== Layers and Objects dialog ===&lt;br /&gt;
&lt;br /&gt;
A new dialog was created that merges the functionality of the familiar 'Layers' and 'Objects' dialogs, with better performance ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2466 MR #2466], [https://gitlab.com/inkscape/inkscape/-/merge_requests/3635 MR #3635], [https://gitlab.com/inkscape/inkscape/-/merge_requests/2466 MR #2466], [https://gitlab.com/inkscape/inkscape/-/merge_requests/3741 MR #3741], [https://gitlab.com/inkscape/inkscape/-/merge_requests/3597 MR #3597], [https://gitlab.com/inkscape/inkscape/-/merge_requests/3645 MR #3645]).&lt;br /&gt;
&lt;br /&gt;
It is available from both the 'Layers' and the 'Objects' menu and offers the following functionality:&lt;br /&gt;
&lt;br /&gt;
* a button to toggle between 'Layers' and 'Objects' view&lt;br /&gt;
* a list of all layers and objects in the drawing, featuring new icons for the different object types&lt;br /&gt;
* 8 alternating default colors for layers and the objects in them:&lt;br /&gt;
** these colors are used for drawing the paths in the respective layers&lt;br /&gt;
** the colors can be set (in case they clash with your theme, or you cannot see the paths that you draw) in the file &amp;lt;code&amp;gt;share/inkscape/ui/highlight-colors.css&amp;lt;/code&amp;gt; in your Inkscape directory&lt;br /&gt;
* layer and object colors can be customized for each layer/object on its own, by clicking on the vertical color bar at the end of each line&lt;br /&gt;
* tiny mask and scissor symbols indicate that a clip or mask is applied to an object&lt;br /&gt;
* object and layer names (label, not id) can be changed after a double-click on the current name&lt;br /&gt;
* icons for locking and hiding a layer/object light up when you hover over the layer's row:&lt;br /&gt;
** click to hide/unhide, lock/unlock, Shift+click to hide/lock other items [TODO: check whether 'on same level' would apply, doesn't work currently]&lt;br /&gt;
* holding Alt while hovering over an object in the dialog will highlight that object on canvas&lt;br /&gt;
* layers as well as objects can be multi-selected&lt;br /&gt;
* the context (right-click) menu for layers provides options to move, delete, rename the current layer, to lock/hide all/other/the current layers, to add a new layer and to convert a layer to a group&lt;br /&gt;
* the context menu for objects provides the same options as it would when you right-click on the object on canvas&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
&lt;br /&gt;
* the (partially hidden) setting for path colors in the preferences file is no longer respected. Adjust the style.css file as a workaround. &lt;br /&gt;
* the dialog no longer offers the options to change opacity, blur or blend mode. Use the Fill and Stroke dialog as a workaround.&lt;br /&gt;
* the type-forward search to filter for objects is no longer available. For objects, use the Search and Replace dialog as a workaround, for layers there is currently no replacement.&lt;br /&gt;
&lt;br /&gt;
[TODO: needs a picture]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Preferences ===&lt;br /&gt;
[[File:Require restart.png|frame]]&lt;br /&gt;
* The preferences zoom ruler now respects your theme's look ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3450 MR #3450])&lt;br /&gt;
* An option to make '''&amp;lt;code&amp;gt;Select same&amp;lt;/code&amp;gt;''' behave like &amp;lt;code&amp;gt;Select all&amp;lt;/code&amp;gt; with respect to whether it selects objects only in the current layer or in all layers was added to &amp;lt;code&amp;gt;Edit → Preferences → Behavior → Selecting&amp;lt;/code&amp;gt; ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2832 MR #2832])&lt;br /&gt;
*Preferences that require restarting inkscape to take a effect have a small icon next to  it &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== SVG Font Editor ===&lt;br /&gt;
&lt;br /&gt;
With lots of user feedback, the Font Editor workflow has been updated with better previews, better performance and a higher degree of organization.&lt;br /&gt;
&lt;br /&gt;
These changes result in a new recommended workflow:&lt;br /&gt;
&lt;br /&gt;
# Open the typography template from &amp;lt;code&amp;gt;File &amp;gt; New from Template&amp;lt;/code&amp;gt; or use &amp;lt;code&amp;gt;Extensions &amp;gt; Typography &amp;gt; 1 - Setup Typography canvas&amp;lt;/code&amp;gt; to load a suitable template into Inkscape.&lt;br /&gt;
# Open the SVG Font Editor dialog&lt;br /&gt;
# Select a name for your new font, using the + icon in the top right corner of the dialog&lt;br /&gt;
# Adjust the horizontal advance and the major font metrics to your liking&lt;br /&gt;
# Switch to the &amp;lt;code&amp;gt;Glyphs&amp;lt;/code&amp;gt; tab of the dialog&lt;br /&gt;
# Click &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; to add your first letter/glyph/character to the list. You can also click the button repeatedly to automatically create a list of commonly used font characters, from &amp;lt;code&amp;gt;Space&amp;lt;/code&amp;gt; to common special characters, numbers and then upper case and lower case letters A to Z, and then even more special characters after that.&lt;br /&gt;
# If you like to, switch from list preview to grid preview in the bottom right corner.&lt;br /&gt;
# Select one of the lines / blocks in the glyphs list.&lt;br /&gt;
# Click on &amp;lt;code&amp;gt;Edit&amp;lt;/code&amp;gt;. This will: &lt;br /&gt;
#* Create a new layer for the selected glyph (if there isn't one yet) and activate that layer.&lt;br /&gt;
#* Hide all other layers&lt;br /&gt;
# Now draw your letter/number/… in the new layer&lt;br /&gt;
# Make sure it's a single path (e.g. do &amp;lt;code&amp;gt;Path &amp;gt; Union&amp;lt;/code&amp;gt;)&lt;br /&gt;
# Keep it selected, and click on &amp;lt;code&amp;gt;Get curves&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Continue selecting glyphs from the list, adding / editing them and turning them into SVG font characters until your font is complete.&lt;br /&gt;
# In the last tab, &amp;lt;code&amp;gt;Kerning&amp;lt;/code&amp;gt;, you can select two different glyphs from the two dropdown lists, to adjust the default distance between them. &lt;br /&gt;
## After you've selected them, click on &amp;lt;code&amp;gt;Add pair&amp;lt;/code&amp;gt;.&lt;br /&gt;
## Now adjust the distance between them. In addition to the preview that shows just these two glyphs, you can also make use of the sample text to see how it will look in a sentence.&lt;br /&gt;
## Continue adjusting letter distances until you're happy with the result.&lt;br /&gt;
# Save your file as Inkscape SVG, and open it with another program (e.g. FontForge) to be able to convert that SVG font into a ttf or otf font.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The workflow is based upon the following SVG Font Editor dialog improvements:&lt;br /&gt;
&lt;br /&gt;
* '''speed improvements''': Inkscape can now handle fonts with thousands of glyphs!&lt;br /&gt;
* '''automatic glyph generation''': adding a new glyph creates a new entry and populates its unicode string, based upon the previously defined glyph (next in unicode order)&lt;br /&gt;
* '''glyph management''': glyph editing action creates glyph-specific layers to keep glyphs organized&lt;br /&gt;
* '''grid glyph view''': offers a larger preview than a list&lt;br /&gt;
&lt;br /&gt;
==== anothere small fixes and improvements: ====&lt;br /&gt;
*# Edit operation to work for fonts without label (created by FontForge)&lt;br /&gt;
*# Add button to set up &amp;quot;typography&amp;quot; canvas taking font dimensions into account&lt;br /&gt;
&lt;br /&gt;
[TODO: needs screenshot]&lt;br /&gt;
([https://gitlab.com/inkscape/inkscape/-/merge_requests/3381 MR #3381], [https://gitlab.com/inkscape/inkscape/-/merge_requests/3396 MR #3396], [https://gitlab.com/inkscape/inkscape/-/merge_requests/3552 MR #3552], [https://gitlab.com/inkscape/inkscape/-/merge_requests/3628 MR #3628] [https://gitlab.com/inkscape/inkscape/-/merge_requests/3916 3916])&lt;br /&gt;
&lt;br /&gt;
=== Swatches ===&lt;br /&gt;
&lt;br /&gt;
The Swatches dialog uses the same improved settings as [[#Color_palette|the color palette]].&lt;br /&gt;
[[File:Inkscape GK3kLW1E2O.gif|none|frame]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Text and Font dialog ===&lt;br /&gt;
&lt;br /&gt;
The dialog's width has been reduced, so it won't take up excessive amounts of space when docked ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3314 MR #3314]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Trace Bitmap ===&lt;br /&gt;
&lt;br /&gt;
The '''Trace Bitmap''' dialog received a few UI updates and some more polish ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3405 MR #3405]):&lt;br /&gt;
&lt;br /&gt;
* The '''preview auto-updates''' more reliably and shows a better preview image.&lt;br /&gt;
*3 tabs ( Single scan (colo), Multicolor , Pixel art)&lt;br /&gt;
* The '''preview location''' now adjusts to the dialog's format: if it is wider than tall, it moves to the right side, and if it is taller than wide, the preview appears at the bottom of the dialog.&lt;br /&gt;
* The number entry fields are now accompanied by '''draggable sliders''' for easier tweaking of values.&lt;br /&gt;
[[File:Inkscape haeFSZbdHk.gif|none|frame]]&lt;br /&gt;
[[File:Ezgif.com-gif-maker (24).gif|none|frame]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Transform dialog ===&lt;br /&gt;
&lt;br /&gt;
We cleaned up this dialog, reduced width and added explanation for matrix transformations ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3363 MR #3363])&lt;br /&gt;
&lt;br /&gt;
== Filters ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Live path effects ==&lt;br /&gt;
[[File:Select satelit.png|right|Select path with LPE that is responsible for the existence of this object|thumb|333x333px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you have an object selected that was created by the Live Path Effect of another object, you can now quickly '''find the responsible LPE object''' by clicking on '''the new button''' at the bottom of the Live Path Effects dialog. This is very useful for all Live Path effects that create dependent objects which can be selected independently, like the new &amp;lt;code&amp;gt;Copies LPE&amp;lt;/code&amp;gt;, the &amp;lt;code&amp;gt;Boolean Operations LPE&amp;lt;/code&amp;gt;, the &amp;lt;code&amp;gt;Rotate Copies LPE&amp;lt;/code&amp;gt; and many more ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3479 MR #3479]).&lt;br /&gt;
&lt;br /&gt;
=== Tiling ===&lt;br /&gt;
&lt;br /&gt;
[[File:Copie LPE.gif|frame|right|The new Tiling LPE]]&lt;br /&gt;
&lt;br /&gt;
Internally, we call this the ''\'Tiled Clones dialog on steroids\''' - interactive tiling, using a huge range of different tiling types, setting the distance between objects numerically, changing scale, location, rotation per row / column, add more rows and columns on the fly. This can be used to quickly copy large numbers of objects non destructively and to create interesting grids and patterns and variations quickly ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3814 MR #3814]).&lt;br /&gt;
&lt;br /&gt;
Features:&lt;br /&gt;
&lt;br /&gt;
* Cloning of objects in rows and columns&lt;br /&gt;
* Custom gap controls in X and Y axis, units control and 2 modes:&lt;br /&gt;
** Uniform Gaps&lt;br /&gt;
** Random gaps&lt;br /&gt;
* Offset of every other rows and columns&lt;br /&gt;
* 16 different mirroring modes&lt;br /&gt;
* Blending modes of scaling (5 modes + mirroring)&lt;br /&gt;
** Blend size from top to bottom&lt;br /&gt;
** Blend size from Left to Right&lt;br /&gt;
** Blend  size in Z pattern (top left original  bottom right  new size)&lt;br /&gt;
** Uniform scaling&lt;br /&gt;
** Random Scaling&lt;br /&gt;
* Blending modes of change (5 modes + mirroring)&lt;br /&gt;
** Blend rotation from top to bottom&lt;br /&gt;
** Blend rotation from Left to Right&lt;br /&gt;
** Blend rotation in Z pattern (top left original  bottom right  new size)&lt;br /&gt;
** Uniform rotation&lt;br /&gt;
** Random rotation&lt;br /&gt;
* Shrinking of gaps - Useful for transformation blending and currently does not work with rotation &lt;br /&gt;
* Custom styling of clones (splitting elements)&lt;br /&gt;
** Linking style - Useful for overlapping stacking of objects, gradients and patterns fills&lt;br /&gt;
&lt;br /&gt;
=== Rotate copies ===&lt;br /&gt;
new improvements:&lt;br /&gt;
*Custom styling of clones&lt;br /&gt;
*Linking style (for making gradients and patterns on fills work)&lt;br /&gt;
&lt;br /&gt;
=== Offset ===&lt;br /&gt;
We improved performance while dragging knot on canvas&lt;br /&gt;
&lt;br /&gt;
== Import / Export ==&lt;br /&gt;
&lt;br /&gt;
=== Export Dialog ===&lt;br /&gt;
[TODO:fill in ] &lt;br /&gt;
&lt;br /&gt;
Anshudhar Kumar Singh with mentors Michael Kowalski, Ted Gould, Tavmjong Bah  and finished By Martin Owens&lt;br /&gt;
&lt;br /&gt;
We re-named This dialog from &amp;lt;code&amp;gt;Export PNG image&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;'''Export'''&amp;lt;/code&amp;gt;  to reflect new abilities of this dialog.  &lt;br /&gt;
&lt;br /&gt;
Features:&lt;br /&gt;
&lt;br /&gt;
* Ability to export images in to multiple Raster formats: '''PNG, Jpeg, WebP, Tiff''' but also Vector formates:'''Svg, Inkscape SVG, PDF'''&lt;br /&gt;
* The export dialog can export to *'''any'''* raster extension marked as a raster extension in it's INX file.  THEN if you check the extra setting in the preferences &amp;lt;code&amp;gt;Edit → Preferences → Input/Output → show all outputs in Export dialog&amp;lt;/code&amp;gt; , It will show all extensions, raster and not. So you may export to DXF, LaTex or whatever else you have available.&lt;br /&gt;
* Single Image has 4 modes:&lt;br /&gt;
# '''Document''' - will export all objects in the documents (basically ignores page)&lt;br /&gt;
# '''Page''' - will export what is exactly in a active page (with exact size of page)&lt;br /&gt;
# '''Selection''' -  will export area of objects that are selected (use checkbox export selection only if you wan just selected objects)&lt;br /&gt;
# '''Custom''' - You can manually define are  you want to export from top left corner to bottom right corner&lt;br /&gt;
* Bach export that allows you to export parts of the document in to separate files formats and sizes&lt;br /&gt;
* Bach export will use names of the objects as a names of files&lt;br /&gt;
* Bach export has 4 modes: &lt;br /&gt;
# '''Selection''' - will export objects (pro tip: group object that belong in to single file)&lt;br /&gt;
# '''Layers''' - will export  all layers&lt;br /&gt;
# '''Pages''' - will export content o pages (new feature )&lt;br /&gt;
* You can add multiple formats/ versions by clicking button &amp;lt;code&amp;gt;'''Add export'''&amp;lt;/code&amp;gt;. this is useful because you can export many files with single click.&lt;br /&gt;
* Changing '''DPI''' control size of images (pixel resolution) (90 is default if you want 2x resolution set it to 180 etc)&lt;br /&gt;
* '''Suffix''' adds text at the end of the file name&lt;br /&gt;
*You can remove objects from selection you un-checking the object in a preview list&lt;br /&gt;
* Checkbox &amp;lt;code&amp;gt;'''export selection only'''&amp;lt;/code&amp;gt; if you want export just selected objects (ei: not object under or over objects). This is useful for exporting game assets or parts of the designs for website&lt;br /&gt;
* Interactive Preview of export&lt;br /&gt;
* Cleaned UP and simplified UI&lt;br /&gt;
[TODO: Add images / Videos]&lt;br /&gt;
&lt;br /&gt;
MR [https://gitlab.com/inkscape/inkscape/-/merge_requests/3825 3825]&lt;br /&gt;
&lt;br /&gt;
== Customization / Theming ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== General User Interface ===&lt;br /&gt;
&lt;br /&gt;
* The font size in the user interface can be adjusted at &amp;lt;code&amp;gt;Edit → Preferences → Interface → Theming: Font scale&amp;lt;/code&amp;gt; ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3690 MR #3690])&lt;br /&gt;
* The &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; buttons for number entry fields are now smaller. If you prefer the old, wider buttons, they can be turned on again by disabling &amp;lt;code&amp;gt;'''Preferences → Interface :  Use narrow number entry boxes''' &amp;lt;/code&amp;gt;. ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3358 MR #3358])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bars / Toolbars ===&lt;br /&gt;
&lt;br /&gt;
* You can now hide elements from the status bar (style indicator, layer indicator, mouse coordinates, canvas rotation) at &amp;lt;code&amp;gt;Edit → Preferences → Interface: Status bar&amp;lt;/code&amp;gt; ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3445 MR #3445])&lt;br /&gt;
* You can now hide tools from the tool bar at &amp;lt;code&amp;gt;Edit → Preferences → Interface → Toolbars: Toolbars&amp;lt;/code&amp;gt; ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3515 MR #3515])&lt;br /&gt;
*You can resize toolbar so icons are in more them one column by dragging on edge [ this does not get saved after restart :(]&lt;br /&gt;
[[File:X5pWfteMzW.gif|border]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cursors ===&lt;br /&gt;
&lt;br /&gt;
* The drop shadow is now optional for mouse cursors. You can turn it off in &amp;lt;code&amp;gt;Edit → Preferences → Interface → Mouse cursors: Show drop shadow&amp;lt;/code&amp;gt; ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3352 MR #3352]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Icons ===&lt;br /&gt;
&lt;br /&gt;
* Multiple icons in the Multicolor icons set got small retouches and other improvements to readability or contrast, e.g. the green color is now a little brighter when using a dark theme, to improve contrast. &lt;br /&gt;
*  Cursors and icons in Multicolor icon theme for the Bézier tool and the Calligraphy tool in the tool bar now use the same imagery &lt;br /&gt;
* &amp;lt;code&amp;gt;Align and distribute&amp;lt;/code&amp;gt; icons are now smaller, some were redesigned to fit in to 16x16 grid. &lt;br /&gt;
* The icon sizes for the tool bar and the control / tool controls bar can now be adjusted smoothly on a continuous scale from from 100% to 300% in &amp;lt;code&amp;gt;Edit → Preferences → Interface → Toolbars: Toolbox icon size / Control bar icon size&amp;lt;/code&amp;gt;. Changing the size no longer requires a restart.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Themes ===&lt;br /&gt;
&lt;br /&gt;
* A contrast slider was added for fine tuning the selected theme's colors at &amp;lt;code&amp;gt;Edit → Preferences → Interface → Theming: Contrast&amp;lt;/code&amp;gt; ([https://gitlab.com/inkscape/inkscape/-/merge_requests/906 MR #906])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=packed heights=550px&amp;gt;&lt;br /&gt;
File:Contrast slider.gif|The contrast slider allows to fine-tune the theme's colors&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== macOS-specific Changes ==&lt;br /&gt;
&lt;br /&gt;
The minimum operating system version supported is now macOS 10.13. (The prior version, Inkscape 1.1.x, supported macOS 10.11 and newer.)&lt;br /&gt;
&lt;br /&gt;
On macOS, enable all special menu items in the application menu and hide them from other menus ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3767 MR #3767])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Windows-specific Changes ==&lt;br /&gt;
&lt;br /&gt;
Modifier keys now work with pen input ([https://gitlab.com/freedesktop-sdk/mirrors/gnome/gtk/-/commit/46c12b2c922d5592cedd29624cbf3be6b4411084 Commit #46c12b])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Extensions ==&lt;br /&gt;
Complete as of 2022/03/19. &lt;br /&gt;
&lt;br /&gt;
TODO: If the renaming of extensions for 1.2 goes through, change the names in the text below.&lt;br /&gt;
&lt;br /&gt;
=== Features added ===&lt;br /&gt;
&lt;br /&gt;
==== All extensions ====&lt;br /&gt;
&lt;br /&gt;
* Extension have now better support for documents with CSS styles and inherited styles. This functionality is enabled for all bundled extensions. If you want to use this functionality in an extension you maintain, see [https://inkscape.gitlab.io/extensions/documentation/authors/update1.2.html#new-style-api New Style API].&lt;br /&gt;
*A GUI API (based on [https://pypi.org/project/gtkme/ gtkme]) has been added, so extensions can now ship GTK-based user interfaces ([https://gitlab.com/inkscape/extensions/-/merge_requests/421 MR extensions#421], [https://gitlab.com/inkscape/extensions/-/merge_requests/450 MR extensions#450], [https://gitlab.com/inkscape/extensions/-/merge_requests/465 MR extensions#465]).&lt;br /&gt;
*Allow export extensions to specify that they are only to be listed in &amp;amp;quot;Export as&amp;amp;quot; ([https://gitlab.com/inkscape/extensions/-/merge_requests/371 MR extensions#371], [https://gitlab.com/inkscape/inkscape/-/merge_requests/3600 MR#3600]).&lt;br /&gt;
*Color extensions can now process in RGBA space, previously only separate processing of color and opacity was possible (MR [https://gitlab.com/inkscape/extensions/-/merge_requests/392 extensions#392]).&lt;br /&gt;
*The path conversion for arcs and stars have been added, so when extensions create these objects, they are rendered in a browser as well and can be processed further by the same extension. ([https://gitlab.com/inkscape/extensions/-/merge_requests/387 MR extensions#387], [https://gitlab.com/inkscape/extensions/-/issues/240 Issue extensions#240]).&lt;br /&gt;
*API functions for the new [[Release notes/1.2#Page tool|multipage feature]] have been added ([https://gitlab.com/inkscape/extensions/-/merge_requests/399 MR extensions#499]).&lt;br /&gt;
&lt;br /&gt;
==== Particular extensions ====&lt;br /&gt;
&lt;br /&gt;
* In the '''Add nodes''' extension, you can now choose the unit of the segment length ([https://gitlab.com/inkscape/extensions/-/merge_requests/346 MR extensions#346], [https://gitlab.com/inkscape/extensions/-/issues/127 Issue extensions#127]).&lt;br /&gt;
*The Color tab of the '''Calendar''' now uses the color widget instead of asking for Hex values ([https://gitlab.com/inkscape/extensions/-/merge_requests/355 MR extensions#355], [https://gitlab.com/inkscape/extensions/-/issues/396 Issue extensions#396]).&lt;br /&gt;
*The new '''Clipart Importer''' extension allows to search and download SVG resources from the Internet ([https://gitlab.com/inkscape/extensions/-/merge_requests/441 MR extensions#441]).&lt;br /&gt;
*The new '''Document &amp;gt; Process Illustrator SVG...''' extension assists with importing Adobe Illustrator documents with layers and the correct scale ([https://gitlab.com/inkscape/extensions/-/merge_requests/351 MR extensions#351], [https://gitlab.com/inkscape/extensions/-/merge_requests/414 MR extensions#414]).&lt;br /&gt;
*A large portion of the '''DXF Import''' extension has been rewritten to support more DXF features ([https://gitlab.com/inkscape/extensions/-/merge_requests/357 MR extensions#357]).&lt;br /&gt;
*The '''Extract image''' extension has been improved and works with multiple images now. You can now enter a base filename; if none is entered, the ids of the selected images are used as filename. You can also choose whether the embedded image data should be replaced by a link to the exported file ([https://gitlab.com/inkscape/extensions/-/merge_requests/461 MR extensions#461], [https://gitlab.com/inkscape/extensions/-/issues/167 Issue extensions#167]).&lt;br /&gt;
*The '''Extrude''' extension has been rewritten ([https://gitlab.com/inkscape/extensions/-/merge_requests/386 MR extensions#386]). It includes a new mode, &amp;amp;quot;Snug&amp;amp;quot;, where The boundary of the extruded rectangle follows the source paths. Extrude now handles paths with multiple subpaths and doesn't require conversion of rects, circles to path anymore ([https://gitlab.com/inkscape/extensions/-/issues/190 Issue extensions#190]). The extruded shapes are inserted in between the two selected elements, which is more useful in practice than the previous behavior, i.e. inserting after the first selected element.[[File:Modes of the Extrude extension.png|center|thumb|400x400px|The modes of the Extrude extension. A new mode, &amp;quot;Snug&amp;quot;, has been added for Inkscape 1.2.]]&lt;br /&gt;
* The '''Formula (pdflatex)''' equation has been made more user-friendly. It now features a font size selector, a field to specify preamble contents, better support for scaled documents and better error messages on compile errors ([https://gitlab.com/inkscape/extensions/-/merge_requests/453 MR extensions#453]). &lt;br /&gt;
*The '''Frame''' extension has been rewritten and now supports additional options, such as elliptical frames, offset frame and putting the fill below the object ([https://gitlab.com/inkscape/extensions/-/merge_requests/430 MR extensions#430], [https://gitlab.com/inkscape/extensions/-/issues/214 Issue extensions#214]).&lt;br /&gt;
*The '''Guides Creator''' extension, apart from supporting multi-page documents, now also features an option that suppresses duplicated guides and alternating margins for even and odd pages ([https://gitlab.com/inkscape/extensions/-/merge_requests/424 MR extensions#424]) .&lt;br /&gt;
*The '''Motion''' extension now has an option to take the extrude color and opacity from the selected path ([https://gitlab.com/inkscape/extensions/-/merge_requests/317 MR extensions#317]).&lt;br /&gt;
*The following extensions now adapt to '''multi-page documents''': Document Info ([https://gitlab.com/inkscape/extensions/-/merge_requests/401 MR extensions#401]), Guides creator ([https://gitlab.com/inkscape/extensions/-/merge_requests/424 MR extensions#424]) '''.'''&lt;br /&gt;
*The '''Split text''' extension has been rewritten and now supports manual kerning ([https://gitlab.com/inkscape/extensions/-/issues/142 Issue extensions#142]) and SVG2 flowed text ([https://gitlab.com/inkscape/extensions/-/issues/257 Issue extensions#257]) ([https://gitlab.com/inkscape/extensions/-/merge_requests/326 MR extensions#326]).&lt;br /&gt;
*The fileformat of '''Synfig Export''' has been updated to &amp;amp;gt; 1.4.0 ([https://gitlab.com/inkscape/extensions/-/merge_requests/299 MR extensions#299]).&lt;br /&gt;
*'''QRCodes''' with a maximum size of 177x177 can now be created, which allows to encode up to about 2 standard pages of text. Instead of the well-known black rectangular tiles, the extension can now also tile clones of a selected object ([https://gitlab.com/inkscape/extensions/-/merge_requests/394 MR extensions#394], [https://gitlab.com/inkscape/extensions/-/issues/150 Issue extensions#150]).&lt;br /&gt;
&lt;br /&gt;
=== Bugs fixed ===&lt;br /&gt;
&lt;br /&gt;
==== All extensions ====&lt;br /&gt;
&lt;br /&gt;
* Unit conversions are more consistent now ([https://gitlab.com/inkscape/extensions/-/merge_requests/329 MR extensions#329]), and several bugs pertaining to misinterpretation of units have been fixed.&lt;br /&gt;
*Extensions that query properties of paths with multiple subpaths now get more correct results if that path uses relative path commands ([https://gitlab.com/inkscape/extensions/-/merge_requests/438 MR extensions#438], [https://gitlab.com/inkscape/extensions/-/issues/450 Issue extensions#450]).&lt;br /&gt;
* When extensions set an element to &amp;quot;insensitive&amp;quot;, this change is honored by Inkscape ([https://gitlab.com/inkscape/extensions/-/commit/d5282bd2341d24bc53cec02aed81e2f3ee6c6050 commit extensions#d5282bd2])&lt;br /&gt;
* The defaults of parameters are now identical in inx files and in the command line interface of the extensions. ([https://gitlab.com/inkscape/extensions/-/merge_requests/325 MR extensions#325])&lt;br /&gt;
* Gradients whose stop positions are given in percentages are now handled ([https://gitlab.com/inkscape/extensions/-/merge_requests/374 MR extensions#374])&lt;br /&gt;
* Hide the console window on Windows when calling external utilities ([https://gitlab.com/inkscape/extensions/-/merge_requests/407 MR extensions#407], [https://gitlab.com/inkscape/extensions/-/issues/244 Issue extensions#244])&lt;br /&gt;
*The &amp;lt;code&amp;gt;BaseElement.duplicate()&amp;lt;/code&amp;gt; function now makes sure that the duplicated element and its children have unique IDs ([https://gitlab.com/inkscape/extensions/-/merge_requests/426 MR extensions#426], [https://gitlab.com/inkscape/extensions/-/issues/379 Issue extensions#379]).&lt;br /&gt;
*The &amp;quot;Reverse Path&amp;quot; method now returns correct results for paths with multiple subpaths ([https://gitlab.com/inkscape/extensions/-/merge_requests/427 MR extension#427], [https://gitlab.com/inkscape/extensions/-/issues/445 Issue extensions#445]).&lt;br /&gt;
*A bug parsing color components of 1 (1.0, 100%) has been fixed. &amp;lt;code&amp;gt;&amp;quot;1.0&amp;quot;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.0&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;quot;100%&amp;quot;&amp;lt;/code&amp;gt; are treated as &amp;lt;code&amp;gt;255&amp;lt;/code&amp;gt;, while &amp;lt;code&amp;gt;&amp;quot;1&amp;quot;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; are treated as &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; ([https://gitlab.com/inkscape/extensions/-/merge_requests/456 MR extensions#456], [https://gitlab.com/inkscape/extensions/-/issues/402 Issue extensions#402]).&lt;br /&gt;
*Several small fixes that makes working with paths and clones more predictable and robust ([https://gitlab.com/inkscape/extensions/-/merge_requests/433 MR extensions#433])&lt;br /&gt;
*Small changes improving parameter description ([https://gitlab.com/inkscape/extensions/-/merge_requests/452 MR extensions#452], [https://gitlab.com/inkscape/extensions/-/issues/452 Issue extensions#452])&lt;br /&gt;
&lt;br /&gt;
==== Particular extensions ====&lt;br /&gt;
&lt;br /&gt;
* In the '''Add nodes''' extension, closed paths were previously changed to open paths, and an erroneous node was added ([https://gitlab.com/inkscape/extensions/-/merge_requests/336 MR extensions#336], [https://gitlab.com/inkscape/extensions/-/issues/209 Issue extensions#209]). Other and third-party extension will probably profit from the underlying bugfix as well.&lt;br /&gt;
*The live preview of the '''Calendar''' extension now works ([https://gitlab.com/inkscape/extensions/-/merge_requests/394 MR extensions#394]).&lt;br /&gt;
*Multiple bugs in the '''DXF import''' extension were fixed, such as a loss of layering information ([https://gitlab.com/inkscape/extensions/-/merge_requests/410 MR extensions#410], [https://gitlab.com/inkscape/extensions/-/issues/377 Issue extensions#377]), and import of inserted blocks that have been rotated and flipped ([https://gitlab.com/inkscape/extensions/-/merge_requests/411 MR extensions#411]), extruded elements and multiline text ([https://gitlab.com/inkscape/extensions/-/merge_requests/432 MR extension#432], [https://gitlab.com/inkscape/extensions/-/issues/286 Issue extensions#286]). An incorrect unit in the documentation has been exchanged ([https://gitlab.com/inkscape/extensions/-/merge_requests/358 MR extensions #358]).&lt;br /&gt;
* When using the '''DXF Outline (R12)''' export, elements in nested groups are now exported correctly ([https://gitlab.com/inkscape/extensions/-/merge_requests/347/ MR extensions#347], [https://gitlab.com/inkscape/extensions/-/issues/382 Issue extensions#382]). It also doesn't include (invisible) paths contained in clips and masks anymore ([https://gitlab.com/inkscape/extensions/-/merge_requests/440 MR extensions#440], [https://gitlab.com/inkscape/extensions/-/issues/381 Issue extensions#381]) and documents are exported with the correct scale when scale is different than 1 ([https://gitlab.com/inkscape/extensions/-/merge_requests/466 MR extensions#466], [https://gitlab.com/inkscape/extensions/-/issues/443 Issue extensions#443])&lt;br /&gt;
*The '''DXF14 export''' now shows a better error message in case of a very, very deeply nested SVG document ([https://gitlab.com/inkscape/extensions/-/merge_requests/442 MR extensions#442], [https://gitlab.com/inkscape/extensions/-/issues/360 Issue extensions#360]). Also a warning message regarding the Robo-Master spline option has been added ([https://gitlab.com/inkscape/extensions/-/merge_requests/439 MR extensions#439], [https://gitlab.com/inkscape/extensions/-/issues/225 Issue extensions#225]).&lt;br /&gt;
*A crash in the '''Embed image''' extension has been fixed, in which images were erroneously determined as missing by the extension ([https://gitlab.com/inkscape/extensions/-/merge_requests/461 MR extensions#461], [https://gitlab.com/inkscape/extensions/-/issues/441 Issue extensions#441]).&lt;br /&gt;
*The '''Extensions Manager''' is now shipped with Inkscape and doesn't download itself automatically anymore ([https://gitlab.com/inkscape/extensions/-/merge_requests/421 MR extensions#421]).&lt;br /&gt;
*On Windows, the '''Extract image''' extension now correctly links the extracted files ([https://gitlab.com/inkscape/extensions/-/merge_requests/461 MR extensions#461]).&lt;br /&gt;
*The slicing positions in the '''Guillotine''' extension are now correct, they were previously off following the flip of the y axis in Inkscape 1.0 ([https://gitlab.com/inkscape/extensions/-/merge_requests/334 MR extensions#334], [https://gitlab.com/inkscape/extensions/-/issues/269 Issue extensions#269]).&lt;br /&gt;
*In '''GCodetools''', multiple crashes have been fixed ([https://gitlab.com/inkscape/extensions/-/merge_requests/335 MR extensions#335], [https://gitlab.com/inkscape/extensions/-/issues/312 Issue extensions#312]; [https://gitlab.com/inkscape/extensions/-/merge_requests/307 MR extensions#307], [https://gitlab.com/inkscape/extensions/-/issues/322 Issue extensions#322]; [https://gitlab.com/inkscape/extensions/-/merge_requests/388 MR extensions#388], [https://gitlab.com/inkscape/extensions/-/issues/276 Issue extensions#276]), however this module is currently unmaintained and in need of attention. Contributions are highly welcome! For this reason, the module has been given it's own repository ([https://gitlab.com/inkscape/extensions/-/merge_requests/402 MR extensions#402]).&lt;br /&gt;
*The Hue Level in the '''HSL Adjust''' extension how has a range of 360 ([https://gitlab.com/inkscape/extensions/-/merge_requests/400 MR extensions#400])&lt;br /&gt;
*The '''HTML5 canvas export''' now works better with non-Inkscape SVG documents ([https://gitlab.com/inkscape/extensions/-/merge_requests/467 MR extensions#467]). Exported files also now have correct output for closed paths and objects with transparency ([https://gitlab.com/inkscape/extensions/-/merge_requests/345 MR extensions#345], [https://gitlab.com/inkscape/extensions/-/issues/332 Issue extensions#332]).&lt;br /&gt;
*The '''Interpolate extensions''' (Interpolate and interpolate attribute) have been completely rewritten and multiple issues have been fixed ([https://gitlab.com/inkscape/extensions/-/merge_requests/240 MR extensions#240]).&lt;br /&gt;
*The '''JPEG export''' previously converted a transparent background to black ([https://gitlab.com/inkscape/extensions/-/issues/366 Issue extensions#366]). Now, the document background color is used ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3994 MR #3994]). This also affects the other Raster export extensions. Additionally, the JPEG export now works with even larger resolutions ([https://gitlab.com/inkscape/inbox/-/issues/6522 Issue inbox#6522], [https://gitlab.com/inkscape/extensions/-/merge_requests/445 MR extensions#445]).&lt;br /&gt;
*Several bugs in the '''Formula (pdflatex)''' extension have been fixed,  such as incorrect insertion position ([https://gitlab.com/inkscape/extensions/-/issues/339 Issue extensions#339]) and random character substitution in documents with many formulae ([https://gitlab.com/inkscape/extensions/-/merge_requests/453 MR extensions#453]). The extension now also works on Windows if the user name is longer than 8 characters ([https://gitlab.com/inkscape/extensions/-/merge_requests/448 MR extensions#448], [https://gitlab.com/inkscape/extensions/-/issues/287 Issue extensions#287]). &lt;br /&gt;
*A bug in the rotation sense of the '''Lindenmayer''' extension has been fixed ([https://gitlab.com/inkscape/extensions/-/merge_requests/437 MR extensions#437], [https://bugs.launchpad.net/inkscape/+bug/1094627 LP issue 1094627])&lt;br /&gt;
*The '''Motion''' extension now gives better results for paths with multiple closed subpaths ([https://gitlab.com/inkscape/extensions/-/issues/266 Issue extensions#266]) and when the selected element is part of a transformed group. ([https://gitlab.com/inkscape/extensions/-/merge_requests/317 MR extensions#317]).&lt;br /&gt;
*The '''Optimized PNG export''' doesn't crash anymore when running it with default parameters ([https://gitlab.com/inkscape/extensions/-/merge_requests/463 MR extensions#463], [https://gitlab.com/inkscape/extensions/-/issues/395 Issue extensions#395])&lt;br /&gt;
*A useless warning message when using '''Optimized SVG''' output was removed ([https://gitlab.com/inkscape/extensions/-/merge_requests/368 MR extensions#368] , [https://gitlab.com/inkscape/extensions/-/issues/428 Issue extensions#428])&lt;br /&gt;
*The '''Pixel snap''' extension now aligns objects to the coordinate system starting at the top left of the page. The previous behavior, snapping them to a grid aligned with the page bottom, can be activated in the settings ([https://gitlab.com/inkscape/extensions/-/merge_requests/429 MR extensions#429], [https://gitlab.com/inkscape/extensions/-/issues/264 Issue extensions#264]). A bug related to inconsistent unit conversion has been fixed as well.&lt;br /&gt;
*Several bugs in the '''PostScript (PS) / EPS import''' have been adressed: It now handles file names with non-latin characters ([https://gitlab.com/inkscape/extensions/-/merge_requests/408 MR extensions#408], [https://gitlab.com/inkscape/extensions/-/issues/281 Issue extensions#281]) on Windows and doesn't rotate the image anymore if the majority of the text is not oriented left-to-right ([https://gitlab.com/inkscape/extensions/-/merge_requests/457 MR extensions#457] and [https://gitlab.com/inkscape/extensions/-/issues/258 Issue extensions#258]). Also a clearer error message is shown for invalid PS/EPS files ([https://gitlab.com/inkscape/extensions/-/merge_requests/454 MR extensions#454], [https://gitlab.com/inkscape/extensions/-/issues/404 Issue extensions#404])&lt;br /&gt;
*In the '''Randomize Colors''', shapes with unset opacity are not ignored anymore ([https://gitlab.com/inkscape/extensions/-/merge_requests/331 MR extensions#331] [https://gitlab.com/inkscape/extensions/-/issues/236 Issue extensions#236]).&lt;br /&gt;
*A crash in the '''Render Polyhedron''' extension when attempting to render a custom object defined by its edges has been fixed ([https://gitlab.com/inkscape/extensions/-/merge_requests/390 MR extensions#390] , [https://gitlab.com/inkscape/extensions/-/issues/408 Issue extensions#408]).&lt;br /&gt;
&lt;br /&gt;
* The '''Replace Color''' extension now processes colors in RGBA space ([https://gitlab.com/inkscape/extensions/-/merge_requests/392 Issue extensions#392], [https://gitlab.com/inkscape/extensions/-/issues/419 Issue extensions#419]).&lt;br /&gt;
*The &amp;quot;Tangential Offset&amp;quot; parameter of the '''Scatter''' extension is now a percentage of the pattern width, and an issue with nested groups has been resolved ([https://gitlab.com/inkscape/extensions/-/merge_requests/327 MR extensions#327]). Another issue where the spacing was off when using the &amp;quot;stretch&amp;quot; mode has also been fixed ([https://gitlab.com/inkscape/extensions/-/merge_requests/327 MR extensions#327]).&lt;br /&gt;
*The '''Synfig export''' now exports objects that are not paths (such as rects, texts, circles) correctly again ([https://gitlab.com/inkscape/extensions/-/issues/198 Issue extensions#198]); and paths with multiple subpaths are converted correctly ([https://gitlab.com/inkscape/extensions/-/issues/197 Issue extensions#197]) ([https://gitlab.com/inkscape/extensions/-/merge_requests/462 MR extensions#462]).&lt;br /&gt;
*The '''TIFF export''' now also works on Linux ([https://gitlab.com/inkscape/extensions/-/merge_requests/458 MR extensions#458], [https://gitlab.com/inkscape/extensions/-/issues/422 Issue extensions#422])&lt;br /&gt;
*In the '''Visualize Path''' extensions '''Measure Path''' and '''Number Nodes''', the results are now correct also when the parent of the selected object is transformed ([https://gitlab.com/inkscape/extensions/-/merge_requests/314 MR extensions#314], [https://gitlab.com/inkscape/extensions/-/issues/171 Issue extensions#171]).&lt;br /&gt;
*A crash in the '''Voronoi Diagram''' extension when applied to non-Inkscape documents has been fixed ([https://gitlab.com/inkscape/extensions/-/merge_requests/313 MR extensions#313], [https://gitlab.com/inkscape/extensions/-/issues/222 Issue extensions#222]), and the output is now correct independent of the document unit ([https://gitlab.com/inkscape/extensions/-/issues/403 Issue extensions#403], [https://gitlab.com/inkscape/extensions/-/merge_requests/382 MR extensions#382]).&lt;br /&gt;
*The '''Webslicer''' extension now correctly cleans up its temporary files ([https://gitlab.com/inkscape/extensions/-/merge_requests/436 MR extensions#436]) &lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
* All the documentation from the Wiki and the Gitlab project wiki has been '''[https://inkscape.gitlab.io/extensions/documentation/ compiled in a single place]'''. ([https://gitlab.com/inkscape/extensions/-/merge_requests/443 MR extensions#443], [https://gitlab.com/inkscape/extensions/-/merge_requests/451 MR extensions#451])&lt;br /&gt;
* The '''tutorials for extension authors''' have been improved. ([https://gitlab.com/inkscape/extensions/-/merge_requests/443 MR extensions#443])&lt;br /&gt;
* '''Versioning information''' is now contained in the documentation. This shows extensions authors in which Inkscape version new API functionality was added or deprecated. ([https://gitlab.com/inkscape/extensions/-/merge_requests/443 MR extensions#443])&lt;br /&gt;
* The API documentation has been updated into the familiar ReadTheDocs layout ([https://gitlab.com/inkscape/extensions/-/merge_requests/310 MR extensions#310]) and is now generated with a newer version of Sphinx ([https://gitlab.com/inkscape/extensions/-/commit/edf232209494107c9f33ccc6f101726a7fd73adb Commit extensions#edf23220]).&lt;br /&gt;
*Fix some small mistakes in the documentation ([https://gitlab.com/inkscape/extensions/-/merge_requests/324 MR extensions#324])&lt;br /&gt;
=== Behind the curtains ===&lt;br /&gt;
* Various upgrades to the testing library [https://gitlab.com/inkscape/extensions/-/merge_requests/332 MR extensions#332], [https://gitlab.com/inkscape/extensions/-/merge_requests/383 MR extensions#383] now make it easier to test extensions automatically. Our test suite is now continuously running on Python 3.7-3.10 ([https://gitlab.com/inkscape/extensions/-/merge_requests/370 MR extensions#370]) on Linux as well as Python 3.8 on Windows ([https://gitlab.com/inkscape/extensions/-/merge_requests/404 MR extensions#404]).&lt;br /&gt;
*Added issue template ([https://gitlab.com/inkscape/extensions/-/merge_requests/377 MR extensions#377]) and merge request template ([https://gitlab.com/inkscape/extensions/-/merge_requests/416 MR extensions#416]) to communicate more effectively.&lt;br /&gt;
*inkex can be installed via &amp;lt;code&amp;gt;pip&amp;lt;/code&amp;gt; by providing the url of a pipeline artifact, even in forks ([https://gitlab.com/inkscape/extensions/-/merge_requests/353 MR extensions#353]).&lt;br /&gt;
*Added Python &amp;lt;code&amp;gt;appdirs&amp;lt;/code&amp;gt; dependency ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3568 MR #3568]) [Is this a bug fix?]&lt;br /&gt;
*The code formatting of the extensions repository has been made consistent ([https://gitlab.com/inkscape/extensions/-/merge_requests/418 MR extensions#418]). This enables contributors to think less about formatting and more about what matters.&lt;br /&gt;
*Improvements to code quality ([https://gitlab.com/inkscape/extensions/-/merge_requests/419 MR extensions#419], [https://gitlab.com/inkscape/extensions/-/merge_requests/422 MR extensions#422], [https://gitlab.com/inkscape/extensions/-/merge_requests/423 MR extensions#423], [https://gitlab.com/inkscape/extensions/-/merge_requests/428 MR extensions#428]) and clearer communication of it ([https://gitlab.com/inkscape/extensions/-/merge_requests/420 MR extensions#420]).&lt;br /&gt;
*A dependency management system, [https://python-poetry.org/ poetry], has been introduced ([https://gitlab.com/inkscape/extensions/-/merge_requests/446 MR extensions#446]). This provides packagers with the necessary information which versions of python modules the extensions are currently tested against.&lt;br /&gt;
*The deprecated &amp;lt;code&amp;gt;inkex.py&amp;lt;/code&amp;gt; file has been removed ([https://gitlab.com/inkscape/extensions/-/merge_requests/460 MR extensions#460]) since it's interfering with the new dependency manager.&lt;br /&gt;
*The localization of the extensions has been improved ([https://gitlab.com/inkscape/extensions/-/merge_requests/425 MR extensions#425]).&lt;br /&gt;
*It is now possible to use ngettext and pgettext in extensions for better translations ([https://gitlab.com/inkscape/extensions/-/merge_requests/459 MR extensions#459]).&lt;br /&gt;
== Command line ==&lt;br /&gt;
&lt;br /&gt;
* 'verbs' have been removed. All verbs are available as 'actions' now (see [[#Behind_the_curtains|below]] for more context)([https://gitlab.com/inkscape/inkscape/-/merge_requests/3884 MR #3884], [https://gitlab.com/inkscape/inkscape/-/merge_requests/3880 MR #3880], [https://gitlab.com/inkscape/inkscape/-/merge_requests/3874 MR #3874]).&lt;br /&gt;
* A new action for scaling by a factor has been added, it replaces the previous one, which is now called 'grow' ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3880 MR #3880]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Behind the curtains ==&lt;br /&gt;
&lt;br /&gt;
* '''Gio::Actions''': The old 'verbs' were converted to 'actions'. This work was done to prepare for migrating to Gtk4. It also makes it possible to reach them all '''from the commands palette''', to assign keyboard shortcuts them and to use them on the command line. A big part of this work was done by Google Summer of Code student SUSHANT A.A. with the mentors Alexander Valavanis, Ted Gould and Tavmjong Bah.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Symbols ===&lt;br /&gt;
Add support for x, y, width and height SVG2 attributes on &amp;lt;symbol&amp;gt;.&lt;br /&gt;
Follows logic of &amp;lt;svg&amp;gt; element, which already supported these attributes ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3828 MR #3828])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Notable bugfixes ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Crash fixes ===&lt;br /&gt;
&lt;br /&gt;
* Check knot still exists before updating ([https://gitlab.com/inkscape/inkscape/-/merge_requests/717 MR #717])&lt;br /&gt;
* Masive collection of crash fixes related to number of LPE (copy, stampe, duplicate) ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3479 MR #3479])&lt;br /&gt;
* Action after grouping 3D boxes crash Fix ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3698 MR #3698])&lt;br /&gt;
* Fix for crashing of inkscape while Quitting ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3681 MR #3681])&lt;br /&gt;
* Fix crash due to invalid or malformed direct-action string ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3663 MR #3663])&lt;br /&gt;
* Bezier curve tool Backspace crash ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3715 MR #3715])&lt;br /&gt;
* Fix crash scrolling across line height units ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3541 MR #3541])&lt;br /&gt;
* Fix adding a path effect to symbol causes crash ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3520 MR #3520])&lt;br /&gt;
* Fix drag-and-drop svgs, stops crash ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3710 MR #3710])&lt;br /&gt;
* Handle two items in spray tool's single path mode ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3470 MR #3470])&lt;br /&gt;
* Icon preview crash ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3439 MR #3439])&lt;br /&gt;
* Prevents crashing during 3D box import ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3592 MR #3592])&lt;br /&gt;
* Fill between Paths LPE crash on selecting ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3801 MR #3801])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Other bug fixes ===&lt;br /&gt;
&lt;br /&gt;
* Inkscape no longer slows down when using grids and havign the Document Properties dialog open on macOS&lt;br /&gt;
* Calligraphy tool: use correct tool tilt direction ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3782 MR #3782], [https://gitlab.com/inkscape/inkscape/-/issues/1692 Bug #1692])&lt;br /&gt;
* duplicated gradeint does not get deleted ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3361 MR #3361])&lt;br /&gt;
* Last line in paragraph is not justified anymore ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3780 MR #3780])&lt;br /&gt;
* Fix #1034 - Recursively flatten css style when copying ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3656 MR #3656])&lt;br /&gt;
* new boolean operation algorithm ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3724 MR #3724])&lt;br /&gt;
* Respect mouse down before mouse move coordinates (WIN) ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3735 MR #3735])&lt;br /&gt;
* Remove mandatory break from end of paragraphs, added in Pango 1.49 ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3630 MR #3630])&lt;br /&gt;
* Fix: Subsequent font changes to words in the same textbox now apply ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3631 MR #3631])&lt;br /&gt;
* Fix numpad input for unimode in text tool ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3689 MR #3689])&lt;br /&gt;
* Restore refresh of units trackers ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3665 MR #3665])&lt;br /&gt;
* Fix find and replace if text has description, nested tspans ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3551 MR #3551])&lt;br /&gt;
* all canvas knots should have same size and be controlled form preferences ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3679 MR #3679], [https://gitlab.com/inkscape/inkscape/-/merge_requests/3699 MR #3699])&lt;br /&gt;
* Fix multiline vertical text positioning in browsers ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3537 MR #3537])&lt;br /&gt;
* Stop changing line height when units change ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3544 MR #3544])&lt;br /&gt;
* Fix Clone Tiler menu item, action mismatch ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3650 MR #3650])&lt;br /&gt;
* fix: Cannot quit Inkscape on macOS Big Sur from welcome screen (MAC) ([https://gitlab.com/inkscape/inkscape/-/issues/2762 MR #2762])&lt;br /&gt;
* Fix: Position of flowed text no longer applies extra transforms on text ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3695 MR #3695])&lt;br /&gt;
* Fix default value for saturate in color matrix filter ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3626 MR #3626])&lt;br /&gt;
* nodes widget no longer appears on startup in align and distribute dialog ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3677 MR #3677])&lt;br /&gt;
* fixes #2621. Clicking on fill/stroke in the status bar now reopens the dialog if it is hidden ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3754 MR #3754])&lt;br /&gt;
* Fix KP_2,4,6,8 shortcuts for rect tool ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3773 MR #3773])&lt;br /&gt;
* Transform handle modifiers are now displayed on status bar ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3809 MR #3809])&lt;br /&gt;
* Perspective/envelope LPE now works on objects with 0 width or height . (edge cases for single line stroke) ([https://gitlab.com/inkscape/inkscape/-/merge_requests/2712 MR #2712])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Even more bug fixes ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
For a complete list, visit [https://gitlab.com/inkscape/inkscape/-/issues?milestone_title=Inkscape+1.2 our GitLab issue tracker] and see the [https://gitlab.com/inkscape/inkscape/-/commits/1.2.x commit history].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Translations ==&lt;br /&gt;
&lt;br /&gt;
The following UI translations received updates:&lt;br /&gt;
&lt;br /&gt;
* …&lt;br /&gt;
&lt;br /&gt;
The Windows installer translation was updated for [2021-03-03]:&lt;br /&gt;
&lt;br /&gt;
* …&lt;br /&gt;
&lt;br /&gt;
The following documentation translations received updates:&lt;br /&gt;
&lt;br /&gt;
* …&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Contributing to interface translations ===&lt;br /&gt;
&lt;br /&gt;
Want to help with translations? [https://inkscape.org/contribute/translations/ Learn how to help!]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
* …&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Contributing to documentation and documentation translation ===&lt;br /&gt;
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].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Website ==&lt;br /&gt;
&lt;br /&gt;
[TODO: update if merged]&lt;br /&gt;
Ishaan Arora with mentors Thomas Holder, Martin Owens &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Important changes for packagers ==&lt;br /&gt;
&lt;br /&gt;
* New dependency on &amp;lt;code&amp;gt;python-cssselect&amp;lt;/code&amp;gt; added which is required for usage of Inkscape extensions ([https://gitlab.com/inkscape/inkscape/-/merge_requests/3239 MR #3239])&lt;br /&gt;
* As Python &amp;lt;code&amp;gt;distutils&amp;lt;/code&amp;gt; are now deprecated, they have been replaced by &amp;lt;code&amp;gt;python3-packaging&amp;lt;/code&amp;gt; ([https://gitlab.com/inkscape/extensions/-/merge_requests/368 MR extensions#368])&lt;br /&gt;
* Dithering for gradients (see [[#Dithering|Dithering section]]) is available with a build flag (&amp;lt;code&amp;gt;-DWITH_INTERNAL_CAIRO=ON&amp;lt;/code&amp;gt;), which causes Cairo to be patched for dithering during the build process. Please find more information in [https://gitlab.com/inkscape/inkscape/-/merge_requests/3812 MR #3812].&lt;br /&gt;
* The extension that imports images from the internet requires the Python cachecontrol module&lt;br /&gt;
&lt;br /&gt;
== Important changes for extension authors ==&lt;br /&gt;
''Main Article: [[Updating your Extension for 1.2]]''&lt;br /&gt;
&lt;br /&gt;
A lot of additional features have been added to inkex, including a new Style API, a new Units API, support for multipage documents and more.&lt;br /&gt;
&lt;br /&gt;
Although there are no breaking changes in this release, some methods have been deprecated. &lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
&lt;br /&gt;
* Gradient editing [as of 2022-01-24]:&lt;br /&gt;
** If you convert your gradient to swatch, the gradient editor cannot be used for editing it anymore.&lt;br /&gt;
** Canvas stops and gradient editor stops highlighting will stop working in some cases.&lt;br /&gt;
** Inkscape crashes on close, and creates a backup file. Preferences are saved properly.&lt;br /&gt;
** Outline overlay mode does not work within page area.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Other releases ==&lt;br /&gt;
&lt;br /&gt;
{{:Release notes}}&lt;/div&gt;</summary>
		<author><name>Pulsar17</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Inkscape_Extensions&amp;diff=120984</id>
		<title>Inkscape Extensions</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Inkscape_Extensions&amp;diff=120984"/>
		<updated>2022-03-13T16:22:26Z</updated>

		<summary type="html">&lt;p&gt;Pulsar17: Move page to Nextcloud and add relevant links.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contained a comprehensive list of all extensions that were known to work around 2018. The list has been archived on Inkscape's Nextcloud instance [https://office.inkscape.org/nextcloud/index.php/s/T8DX6fz2N3BocjF here]. To search for extensions, use the Inkscape website's [https://inkscape.org/gallery/=extension/ Extensions gallery] or the new Extension Manager available in Inkscape 1.2 and later by going to &amp;lt;code&amp;gt;Extensions&amp;lt;/code&amp;gt; &amp;gt; &amp;lt;code&amp;gt;Manage Extensions&amp;lt;/code&amp;gt;  (internally it uses the gallery to search for extensions). The extensions' documentation itself has been moved to the [https://inkscape.gitlab.io/extensions/documentation/authors/index.html documentation of the extensions repository.]&lt;br /&gt;
&lt;br /&gt;
[[Category:Extensions]]&lt;/div&gt;</summary>
		<author><name>Pulsar17</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Python_modules_for_extensions&amp;diff=120981</id>
		<title>Python modules for extensions</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Python_modules_for_extensions&amp;diff=120981"/>
		<updated>2022-03-10T22:06:59Z</updated>

		<summary type="html">&lt;p&gt;Pulsar17: Use better language&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Extensions]]&lt;br /&gt;
&lt;br /&gt;
This page contained API documentation for various modules in inkex. A more complete API documentation is available in the [https://inkscape.gitlab.io/extensions/documentation/source/index.html documentation of the extensions repository.]&lt;/div&gt;</summary>
		<author><name>Pulsar17</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=ZINK_Filetype&amp;diff=120980</id>
		<title>ZINK Filetype</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=ZINK_Filetype&amp;diff=120980"/>
		<updated>2022-03-10T21:50:07Z</updated>

		<summary type="html">&lt;p&gt;Pulsar17: Mark page as outdated.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{outdated}}&lt;br /&gt;
&lt;br /&gt;
== ZINK Filetype ==&lt;br /&gt;
=== Documentation and specs ===&lt;br /&gt;
&lt;br /&gt;
==== About ====&lt;br /&gt;
The ZINK filetype is currently implemented as input and output extensions for Inkscape. When these extensions are installed the user is able save and open .zink files. A Zink file contains a normal Inkskape svg-file including all linked images. This makes it possible to easily share/publish Inkcape documents with NO BROKEN IMAGES. &lt;br /&gt;
&lt;br /&gt;
The zink filetype is packed using the zlib modules from python, so it is actually just a zip archive with the extension .zink. If you rename is you can open it with any zip extracter.&lt;br /&gt;
&lt;br /&gt;
At this moment a zink file contains the following:&lt;br /&gt;
* content.svg&lt;br /&gt;
* images in gif, png or jpg&lt;br /&gt;
&lt;br /&gt;
The first addition will be a version file so we can garantee backwards compatibility in the future. In the future there maybe some other additions like a manifest file or some directory lay-out. &lt;br /&gt;
&lt;br /&gt;
==== TODO ====&lt;br /&gt;
# Make the current extension work on Inkscape CVS in mac os x and windows&lt;br /&gt;
# Add file containing zink version number for future backwards compatibility.&lt;br /&gt;
# Write documentation and specs at this page and keep up to date. &lt;br /&gt;
# Implement a proper temp directory solution with the help of other inkscape programmers&lt;br /&gt;
# Investigate howto reinplement all functionallity in c++ using the existing inkjar code.&lt;br /&gt;
==== Download ====&lt;br /&gt;
As these extensions are not (yet) in CVS i've put them on our webserver. Download them here:&lt;br /&gt;
http://facility.lingewoud.nl/hacks/inkscape_save_and_open_as_zink/&lt;br /&gt;
&lt;br /&gt;
==== Install ====&lt;br /&gt;
If you have inkscape 0.43 or lower you must also install a newer version of inkex.py in your extension folder.  Get this from the same download location or from inkscape CVS.&lt;br /&gt;
&lt;br /&gt;
If you want to install the extensions in your home directory (~/.inkscape/extensions/) also place a copy of inkex.py here&lt;br /&gt;
&lt;br /&gt;
==== Problems on windows ====&lt;br /&gt;
On windows its not possible yet to open zink files. Saving to a zink file works. I'm trying to fix this but help is welcome &lt;br /&gt;
&lt;br /&gt;
==== Problems on Mac OS X ====&lt;br /&gt;
The extensions do not work yet on the Mac OS X version. I don't exactly know why. Help is welcome.&lt;br /&gt;
&lt;br /&gt;
==== Problems on other platforms ====&lt;br /&gt;
Please inform me about it.&lt;br /&gt;
&lt;br /&gt;
==== Suggestions ====&lt;br /&gt;
If you have suggestions please mail them to the inkscape dev-mailing list.&lt;/div&gt;</summary>
		<author><name>Pulsar17</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=ExtensionPackageHOWTO&amp;diff=120979</id>
		<title>ExtensionPackageHOWTO</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=ExtensionPackageHOWTO&amp;diff=120979"/>
		<updated>2022-03-10T21:39:09Z</updated>

		<summary type="html">&lt;p&gt;Pulsar17: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{outdated}}&lt;br /&gt;
&lt;br /&gt;
== Packages as Extensions: a HOWTO ==&lt;br /&gt;
&lt;br /&gt;
This page will teach you how to create and distribute one or more extensions that rely on a package.&lt;br /&gt;
&lt;br /&gt;
Start by creating a root folder to contain your package and extensions i.e.  play-svg&lt;br /&gt;
&lt;br /&gt;
You must make a package out of any modules you have.  Add all of the modules into one folder inside the root directory i.e. play-svg/playsvg and create a package from those modules.  If you do not know how to create a python package, follow the instrctions here: [http://www.network-theory.co.uk/docs/pytut/Packages.html].&lt;br /&gt;
&lt;br /&gt;
Secondly, you must create the necessary .inx descriptor and .py Effect object that use your package.  Make sure to use the full path name when importing into your Effect object file i.e.  Place the .inx and .py files for the extensions in a folder inside the root folder &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import playsvg.path&lt;br /&gt;
OR&lt;br /&gt;
from playsvg import path&lt;br /&gt;
OR&lt;br /&gt;
from playsvg.path import * &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use python distutils to create a setup.py script that will install your package onto the users system so that the libraries will always be available to python regardless of your current working directory.  The setup script should reside in the root folder, in this case play-svg/  The user documentation of python distutils [http://docs.python.org/dist/ here].&lt;br /&gt;
&lt;br /&gt;
An example of a setup.py script here&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env python&lt;br /&gt;
from distutils.core import setup&lt;br /&gt;
import os&lt;br /&gt;
import glob&lt;br /&gt;
dataFiles = []&lt;br /&gt;
if os.name == &amp;quot;posix&amp;quot;:&lt;br /&gt;
    print &amp;quot;Inkscape extensions will be automatically installed on this Linux-based system&amp;quot;&lt;br /&gt;
    dataFiles.append((&amp;quot;/usr/share/inkscape/extensions/&amp;quot;, [i for i in glob.glob(os.path.join(&amp;quot;inkex&amp;quot;, &amp;quot;*.*&amp;quot;))] ))&lt;br /&gt;
else:&lt;br /&gt;
    print &amp;quot;You are not running Linux, therefore you must install Inkscape extensions manually by copying files in the inkex directory to the Inkscape extensions directory on your system&amp;quot;&lt;br /&gt;
setup(name='playsvg',&lt;br /&gt;
      version='0.2',&lt;br /&gt;
      description='playsvg: making graphical programming as easy as py',&lt;br /&gt;
      author='playful_geometr',&lt;br /&gt;
      author_email='justinbarca@gmail.com',&lt;br /&gt;
      url='http://sourceforge.net/projects/play-svg/',&lt;br /&gt;
      packages=['playsvg'],&lt;br /&gt;
      data_files=dataFiles&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This setup script will install the python libraries onto your system.  It will also install the Inkscape extensions, but only for Linux systems.  Help is needed to figure out how to discover where the extensions reside in other operating systems, particularly Windows and MacOSX.  Users of Windows and MacOSX will have to manually move .inx and .py extensions files to the required directory.&lt;br /&gt;
&lt;br /&gt;
An example of a MANIFEST.in file here:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
include *.txt&lt;br /&gt;
recursive-include inkex *.inx *.py&lt;br /&gt;
recursive-include scripts *.py&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Editing this file is required to ensure that all of the files that are not a part of the package you create will be copied into your distribution.  In this case, the scripts folder contains a set of example scripts that use the package modules, extraneous to the installation of the extension(s) but useful to developers that might use the libraries in their own python coding. &lt;br /&gt;
&lt;br /&gt;
These examples for creating a sdist of your python code were taken from [http://sourceforge.net/projects/play-svg pLAySVG], a set of libraries for the generation and manipulation of SVG in a simple Object-Oriented fashion.  You can take a look at the code for a full example of a distributed Inkscape extension based on a package. &lt;br /&gt;
&lt;br /&gt;
To create a distribution, a compressed file containing all of the files for your extension, including the setup script, go to a terminal, change the working directory to be the root folder, and then type:&lt;br /&gt;
&amp;lt;pre&amp;gt;python setup.py sdist --formats zip,gztar&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will create both a .zip and .gz file containing all of the code needed to install your extensions.  &lt;br /&gt;
&lt;br /&gt;
From there, the user needs to extract the files in the archive, run the setup script in the root directory like such &lt;br /&gt;
&amp;lt;pre&amp;gt;python setup.py install&amp;lt;/pre&amp;gt;&lt;br /&gt;
and, if they're not using Linux, move all of the files in the inkex directory to the necessary Inkscape extensions folder.  &lt;br /&gt;
&lt;br /&gt;
Voila, there you have it, distributing Inkscape extensions as packages is as easy as py...&lt;/div&gt;</summary>
		<author><name>Pulsar17</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Generating_objects_from_extensions&amp;diff=120978</id>
		<title>Generating objects from extensions</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Generating_objects_from_extensions&amp;diff=120978"/>
		<updated>2022-03-10T21:33:38Z</updated>

		<summary type="html">&lt;p&gt;Pulsar17: Mark page as outdated.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{outdated}}&lt;br /&gt;
If you need an extension to generate an object in Inkscape, there are many tools that already exist to help you. &amp;lt;tt&amp;gt;inkex.py&amp;lt;/tt&amp;gt; is the most notable, as this provides the routines to insert the SVG element into the XML tree of the SVG document, for more info on these is available at [[Python modules for extensions]].&lt;br /&gt;
&lt;br /&gt;
There is currently no universal set of tools to allow a single function to be called, because different extension have different attibutes for thir objects. For example, the barcode extension merely needs a black rectangle with no stroke, but another may need a way to set the stroke width, dashes and opacity. Thus, it is often best to write your own subroutine for generating your objects.&lt;br /&gt;
&lt;br /&gt;
==A simple example==&lt;br /&gt;
Let's look at a simple Python function for drawing a black rectangle:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SVG element generation routine&lt;br /&gt;
def draw_SVG_square((w,h), (x,y), parent):&lt;br /&gt;
&lt;br /&gt;
    style = {   'stroke'        : 'none',&lt;br /&gt;
                'stroke-width'  : '1',&lt;br /&gt;
                'fill'          : '#000000'&lt;br /&gt;
            }&lt;br /&gt;
                &lt;br /&gt;
    attribs = {&lt;br /&gt;
        'style'     : simplestyle.formatStyle(style),&lt;br /&gt;
        'height'    : str(h),&lt;br /&gt;
        'width'     : str(w),&lt;br /&gt;
        'x'         : str(x),&lt;br /&gt;
        'y'         : str(y)&lt;br /&gt;
            }&lt;br /&gt;
    circ = inkex.etree.SubElement(parent, inkex.addNS('rect','svg'), attribs )&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first thing to notice is that all the attributes of the object are stored in a dictionary format, with everything being a string. This means you have to convert all your parameters to strings if appropriate (like the &amp;lt;tt&amp;gt;height&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;width&amp;lt;/tt&amp;gt; attributes).&lt;br /&gt;
&lt;br /&gt;
Next, all the style attributes (colours, widths, fonts, etc) are put together in SVG under &amp;lt;tt&amp;gt;style&amp;lt;/tt&amp;gt;. To generate this string, there exists a helper function &amp;lt;tt&amp;gt;simplestyle.formatStyle()&amp;lt;/tt&amp;gt;. You simply feed this function a dictionary of the styles you want, just like the attributes. You can then use this directly as the style attribute.&lt;br /&gt;
&lt;br /&gt;
The next thing to see is how to add the element to the XML tree. &amp;lt;tt&amp;gt;inkex.py&amp;lt;/tt&amp;gt; has the function to do this using the LXML parser. This needs to be given the &amp;quot;parent&amp;quot; of the object (we'll come back to this), the &amp;quot;type&amp;quot; of the object, and the attributes of the object.&lt;br /&gt;
&lt;br /&gt;
The type of the object is in the &amp;lt;tt&amp;gt;svg&amp;lt;/tt&amp;gt; namespace, which means it begins &amp;lt;tt&amp;gt;svg:&amp;lt;/tt&amp;gt; (for a rectangle, it is &amp;lt;tt&amp;gt;svg:rect&amp;lt;/tt&amp;gt;). LXML cannot parse colons, so we use the &amp;lt;tt&amp;gt;inkex.addNS&amp;lt;/tt&amp;gt; to prepend the namespace.&lt;br /&gt;
&lt;br /&gt;
The attributes of the object just needs to be passed the dictionary &amp;lt;tt&amp;gt;attribs&amp;lt;/tt&amp;gt; we made earlier.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;parent&amp;quot; of the object is the containing element. This is usually a group or a layer. This will be passed in by the calling function, and we will see it in action later.&lt;br /&gt;
&lt;br /&gt;
When this function is run with the right parameters, the rectangle will be added to the SVG document.&lt;br /&gt;
&lt;br /&gt;
==Getting the parent==&lt;br /&gt;
&lt;br /&gt;
Finding the parent is easy: you can just pass in the current layer from the &amp;lt;tt&amp;gt;self&amp;lt;/tt&amp;gt; object if you like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
parent = self.current_layer&lt;br /&gt;
draw_SVG_square((1,1), (0,0), parent)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will just plonk the rectangle into the document, centred on the origin.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can create a group much like any other object:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
centre = self.view_center   #Put in in the centre of the current view&lt;br /&gt;
grp_transform = 'translate' + str( centre )&lt;br /&gt;
&lt;br /&gt;
grp_name = 'Group Name'&lt;br /&gt;
grp_attribs = {inkex.addNS('label','inkscape'):grp_name,&lt;br /&gt;
                           'transform':grp_transform }&lt;br /&gt;
grp = inkex.etree.SubElement(self.current_layer, 'g', grp_attribs)#the group to put everything in&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
By the way, any object can be assigned a name as we did there, which is often helpful when generating many objects:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
inkex.addNS('label','inkscape') : name&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
By setting the transform as &amp;lt;tt&amp;gt;self.view_center&amp;lt;/tt&amp;gt;, we made sure the origin of the group is in the centre of the current view of the document. We will come back to transforms later.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;grp&amp;lt;/tt&amp;gt; object can now be used as a parent for the rectangle:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
draw_SVG_square((1,1), (0,0), grp)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will draw a 1×1 black square in the center of the view.&lt;br /&gt;
&lt;br /&gt;
==Transforms==&lt;br /&gt;
&lt;br /&gt;
It is easy to transform an object: just supply a string like the folllowing as the &amp;lt;tt&amp;gt;transform&amp;lt;/tt&amp;gt; attribute of the element:&lt;br /&gt;
*&amp;lt;tt&amp;gt;trans = 'translate(10,10)'&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;trans = 'translate(10,10) rotate(10)'&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;trans = 'skewX(-1)'&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Available commands: &amp;lt;tt&amp;gt;translate, scale, rotate, skewX, skewY, matrix&amp;lt;/tt&amp;gt;. The transforms are composed in left-right order (i.e. the translate comes first in the second example).&lt;br /&gt;
&lt;br /&gt;
==More Examples==&lt;br /&gt;
&lt;br /&gt;
===Ellipses===&lt;br /&gt;
&lt;br /&gt;
Ellipses are actually path elements, but Inkscape generates the nodes automatically if you feed it the correct attributes in the Sodipodi namespace. The vital ones are &amp;lt;tt&amp;gt;rx, ry, cx, cy&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ellipses require some attributes in the &amp;lt;tt&amp;gt;sodipodi:&amp;lt;/tt&amp;gt; namespace, so we also use the &amp;lt;tt&amp;gt;addNS()&amp;lt;/tt&amp;gt; function in the attribute dictionary:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
def draw_SVG_ellipse((rx, ry), (cx, cy), parent, start_end=0,2*pi),transform='' ):&lt;br /&gt;
&lt;br /&gt;
    style = {   'stroke'        : '#000000',&lt;br /&gt;
                'stroke-width'  : '1',&lt;br /&gt;
                'fill'          : 'none'            }&lt;br /&gt;
    ell_attribs = {'style':simplestyle.formatStyle(style),&lt;br /&gt;
        inkex.addNS('cx','sodipodi')        :str(cx),&lt;br /&gt;
        inkex.addNS('cy','sodipodi')        :str(cy),&lt;br /&gt;
        inkex.addNS('rx','sodipodi')        :str(rx),&lt;br /&gt;
        inkex.addNS('ry','sodipodi')        :str(ry),&lt;br /&gt;
        inkex.addNS('start','sodipodi')     :str(start_end[0]),&lt;br /&gt;
        inkex.addNS('end','sodipodi')       :str(start_end[1]),&lt;br /&gt;
        inkex.addNS('open','sodipodi')      :'true',    #all ellipse sectors we will draw are open&lt;br /&gt;
        inkex.addNS('type','sodipodi')      :'arc',&lt;br /&gt;
        'transform'                         :transform&lt;br /&gt;
        &lt;br /&gt;
            }&lt;br /&gt;
    ell = inkex.etree.SubElement(parent, inkex.addNS('path','svg'), ell_attribs )&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will draw an open arc, with a black stroke of width 1 and no fill. The transform here can be passed in from outside.&lt;br /&gt;
&lt;br /&gt;
If in doubt about the right attribute name and format, just check a similar object in the XML viewer in Inkscape.&lt;br /&gt;
&lt;br /&gt;
===Line Segment ===&lt;br /&gt;
&lt;br /&gt;
Paths can be quite tricky to get the hang of if you don't know the meaning of the letters. Read the SVG specification for a full list.&lt;br /&gt;
&lt;br /&gt;
Here, the style information has been passed in from outside the function.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#draw an SVG line segment between the given (raw) points&lt;br /&gt;
def draw_SVG_line( (x1, y1), (x2, y2), style, name, parent):&lt;br /&gt;
    line_style   = { 'stroke': style.l_col,&lt;br /&gt;
                     'stroke-width':str(style.l_th),&lt;br /&gt;
                     'fill': style.l_fill&lt;br /&gt;
                   }&lt;br /&gt;
&lt;br /&gt;
    line_attribs = {'style' : simplestyle.formatStyle(line_style),&lt;br /&gt;
                    inkex.addNS('label','inkscape') : name,&lt;br /&gt;
                    'd' : 'M '+str(x1)+','+str(y1)+' L '+str(x2)+','+str(y2)}&lt;br /&gt;
&lt;br /&gt;
    line = inkex.etree.SubElement(parent, inkex.addNS('path','svg'), line_attribs )&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;br /&gt;
[[Category:Extensions]]&lt;/div&gt;</summary>
		<author><name>Pulsar17</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Notes_On_Units_Handling_in_Extensions_in_0.91&amp;diff=120977</id>
		<title>Notes On Units Handling in Extensions in 0.91</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Notes_On_Units_Handling_in_Extensions_in_0.91&amp;diff=120977"/>
		<updated>2022-03-10T21:19:28Z</updated>

		<summary type="html">&lt;p&gt;Pulsar17: Prevent search engines from indexing this page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Since the release of Inkscape 0.48.4 there has been a fundamental change made in the scaling of length variables in Inkscape. The [http://www.w3.org/TR/SVG11/coords.html#ViewBoxAttribute &amp;lt;code&amp;gt;viewBox&amp;lt;/code&amp;gt;] attribute has been introduced as a standard feature of all files, and its size is determined by the units that are chosen for the variable &amp;lt;code&amp;gt;inkscape:document-units&amp;lt;/code&amp;gt; (see dialog ''Document Properties: Default Units''). In the Python extensions this has led to the requirement that units of length variables must be explicitly taken into account, otherwise they will not scale correctly when changing the ''Default Units'' (see [https://bugs.launchpad.net/inkscape/+bug/1240455 Bug 1240455]). Previously this type of scaling was done with a call to &amp;lt;code&amp;gt;inkex.unittouu()&amp;lt;/code&amp;gt;, the new syntax for this call is &amp;lt;code&amp;gt;self.unittouu()&amp;lt;/code&amp;gt;. Attached is a list of situations in which you may need to do this type of scaling, to convert to document units:&lt;br /&gt;
&lt;br /&gt;
# When reading the document height/width (see [http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/view/head:/share/extensions/dxf_outlines.py dxf_outlines.py], [http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/revision/12722#share/extensions/dxf_outlines.py r12722])&lt;br /&gt;
# When reading any .inx file input variable that has units of length (see [http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/view/head:/share/extensions/grid_cartesian.py grid_cartesian.py], [http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/revision/13007#share/extensions/grid_cartesian.py r13007])&lt;br /&gt;
# When specifying a stroke-width or font-size in a style attribute (see [http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/view/head:/share/extensions/split.py split.py], [http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/revision/12722#share/extensions/split.py r12722]; [http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/view/head:/share/extensions/render_gears.py render_gears.py] [http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/revision/12722#share/extensions/render_gears.py r12722], [http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/revision/13001#share/extensions/render_gears.py r13001], [http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/revision/13036#share/extensions/render_gears.py r13036])&lt;br /&gt;
# For multiple items in a group, it may be more efficient to scale the group with a transform, rather than scaling individual objects (see [http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/view/head:/share/extensions/render_barcode.py render_barcode.py], [http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/revision/13015#share/extensions/render_barcode.py r13015]).&lt;br /&gt;
# Remember that console commands like &amp;lt;code&amp;gt;inkscape --query-all&amp;lt;/code&amp;gt;, to query the bbox, return pixels regardless of the document units, so they will need to be converted (see [http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/view/head:/share/extensions/dimension.py dimension.py], [http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/revision/13028#share/extensions/dimension.py r13028]).&lt;br /&gt;
# Remember that guides, which are in the &amp;lt;code&amp;gt;sodipodi:namedview&amp;lt;/code&amp;gt; section, are not affected by document units, so they do not need to be scaled (see [http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/view/head:/share/extensions/guides_creator.py guides_creator.py], [http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/revision/12722#share/extensions/guides_creator.py r12722], [http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/revision/13007#share/extensions/guides_creator.py r13007]).&lt;br /&gt;
# If you are creating new classes unique to your application, you may need to provide a mechanism to allow your new class to continue to access &amp;lt;code&amp;gt;unittouu()&amp;lt;/code&amp;gt; (see [http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/view/head:/share/extensions/ink2canvas.py ink2canvas.py], [http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/revision/12722#share/extensions/ink2canvas.py r12722], [http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/revision/13027#share/extensions/ink2canvas.py r13027]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Original version of the notes by Alvin Penner: [https://bugs.launchpad.net/inkscape/+bug/1240455/+attachment/4041646/+files/scaling.txt scaling.txt] (see comments 31-34 in [https://bugs.launchpad.net/inkscape/+bug/1240455 Bug 1240455])&lt;br /&gt;
&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
__NOINDEX__&lt;/div&gt;</summary>
		<author><name>Pulsar17</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Python_modules_for_extensions&amp;diff=120976</id>
		<title>Python modules for extensions</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Python_modules_for_extensions&amp;diff=120976"/>
		<updated>2022-03-10T20:58:23Z</updated>

		<summary type="html">&lt;p&gt;Pulsar17: Move documentation.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Extensions]]&lt;br /&gt;
&lt;br /&gt;
The API documentation for inkex has been moved to the [https://inkscape.gitlab.io/extensions/documentation/source/index.html documentation of the extensions repository.]&lt;/div&gt;</summary>
		<author><name>Pulsar17</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Tips_For_Python_Script_Extensions&amp;diff=120975</id>
		<title>Tips For Python Script Extensions</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Tips_For_Python_Script_Extensions&amp;diff=120975"/>
		<updated>2022-03-10T20:50:35Z</updated>

		<summary type="html">&lt;p&gt;Pulsar17: Move documentation.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The documentation for writing new extensions has been moved to the [https://inkscape.gitlab.io/extensions/documentation/authors/index.html documentation of the extensions repository.]&lt;/div&gt;</summary>
		<author><name>Pulsar17</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Extensions&amp;diff=120974</id>
		<title>Extensions</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Extensions&amp;diff=120974"/>
		<updated>2022-03-10T20:42:56Z</updated>

		<summary type="html">&lt;p&gt;Pulsar17: Move documentation.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The documentation for writing new extensions has been moved to the [https://inkscape.gitlab.io/extensions/documentation/authors/index.html documentation of the extensions repository.]&lt;/div&gt;</summary>
		<author><name>Pulsar17</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Tracking_Dependencies&amp;diff=120970</id>
		<title>Tracking Dependencies</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Tracking_Dependencies&amp;diff=120970"/>
		<updated>2022-03-09T17:41:31Z</updated>

		<summary type="html">&lt;p&gt;Pulsar17: Clarify the rules regarding distro support and provide an example.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Compilers ==&lt;br /&gt;
&lt;br /&gt;
Version 1.0 requires a C++11 compiler.&lt;br /&gt;
Version 1.1 requires a C++17 compiler.&lt;br /&gt;
&lt;br /&gt;
See [[c++11]] and [[c++17]].&lt;br /&gt;
&lt;br /&gt;
== Libs ==&lt;br /&gt;
&lt;br /&gt;
C++ bindings are not included, since their required versions match those of the C counterparts.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Library&lt;br /&gt;
! v 0.92&lt;br /&gt;
! v 1.0&lt;br /&gt;
! v 1.1&lt;br /&gt;
! v 1.2&lt;br /&gt;
! master&lt;br /&gt;
|-&lt;br /&gt;
| Boehm-GC&lt;br /&gt;
| 7.2&lt;br /&gt;
| 7.2&lt;br /&gt;
| 7.2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Cairo&lt;br /&gt;
| 1.14&lt;br /&gt;
| 1.14 (1.15.4 required for PDF links)&lt;br /&gt;
| 1.16*&lt;br /&gt;
| 1.16&lt;br /&gt;
| 1.16&lt;br /&gt;
|-&lt;br /&gt;
| double-conversion [https://github.com/google/double-conversion]&amp;lt;br/&amp;gt;''(lib2geom dependency)''&lt;br /&gt;
| ''(not required)''&lt;br /&gt;
| any&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| FreeType&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 2.9* (Required for Variable fonts)&lt;br /&gt;
| 2.9&lt;br /&gt;
| 2.9&lt;br /&gt;
|-&lt;br /&gt;
| GDL&lt;br /&gt;
| N/A&amp;lt;br /&amp;gt;(3.4)&lt;br /&gt;
| 3.4&lt;br /&gt;
| Not Used&lt;br /&gt;
| Not Used&lt;br /&gt;
|-&lt;br /&gt;
| Glib&lt;br /&gt;
| 2.28&lt;br /&gt;
| 2.48&lt;br /&gt;
| 2.56 or 2.62*&lt;br /&gt;
| 2.64&lt;br /&gt;
| 2.64&lt;br /&gt;
|-&lt;br /&gt;
| GTK+&lt;br /&gt;
| 2.24&amp;lt;br /&amp;gt;(3.8)&lt;br /&gt;
| 3.22&lt;br /&gt;
| 3.24*&lt;br /&gt;
| 3.24&lt;br /&gt;
| 3.24&lt;br /&gt;
|-&lt;br /&gt;
| GNU Scientific Library&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| HarfBuzz&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| 2.2*&lt;br /&gt;
| 2.6&lt;br /&gt;
| 2.6&lt;br /&gt;
|-&lt;br /&gt;
| libsigc++&lt;br /&gt;
| ''2.0.12*''&lt;br /&gt;
| ''2.0.12*''&lt;br /&gt;
| ''2.0.12*''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| libSoup&lt;br /&gt;
| ''(not required)''&lt;br /&gt;
| (any)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| libpotrace&lt;br /&gt;
| ''(not required)''&lt;br /&gt;
| (any)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| libxml&lt;br /&gt;
| ''2.6.11*''&lt;br /&gt;
| ''2.6.11*''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| libxslt&lt;br /&gt;
| ''1.0.15*''&lt;br /&gt;
| ''1.0.15*''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| lcms&lt;br /&gt;
| 1.13&lt;br /&gt;
| 2.2&lt;br /&gt;
| 2.2 (2.9*)&lt;br /&gt;
| 2.9*&lt;br /&gt;
| 2.9*&lt;br /&gt;
|-&lt;br /&gt;
| Pango&lt;br /&gt;
| 1.24&lt;br /&gt;
| 1.24 (1.41.1 required for variable fonts)&lt;br /&gt;
| 1.42*&lt;br /&gt;
| 1.44&lt;br /&gt;
| 1.44 (HarfBuzz shaping)&lt;br /&gt;
|-&lt;br /&gt;
| Poppler&lt;br /&gt;
| 0.20.0&lt;br /&gt;
| 0.20.0&lt;br /&gt;
| 0.29 (0.71*)&lt;br /&gt;
| 0.29 (0.71*)&lt;br /&gt;
| 0.71*&lt;br /&gt;
|-&lt;br /&gt;
| [https://formulae.brew.sh/formula/gtk-mac-integration gtk-mac-integration]&amp;lt;br&amp;gt;[https://www.macports.org/ports.php?by=library&amp;amp;substr=gtk-osx-application-gtk3 gtk-osx-application-gtk3]&lt;br /&gt;
| N/A&lt;br /&gt;
| 2.0.8 ([[CompilingMacOsX|macOS only]])&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''* Tentative dependency''&lt;br /&gt;
&lt;br /&gt;
* Pango 1.42.2 requires Harfbuzz 1.4.2&lt;br /&gt;
* Pango 1.44.0 requires Glib 2.59.2 and Harfbuzz 2.0. 1.44 exposes hb_font directly.&lt;br /&gt;
* Pango 1.45.1 requires Glib 2.60&lt;br /&gt;
* Pango 1.48.4 has vertical upright marks fix.&lt;br /&gt;
&lt;br /&gt;
== Distros ==&lt;br /&gt;
&lt;br /&gt;
Note: This table is not relevant to (non-fink) MacOS X, where we ship the desired version with Inkscape.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Inkscape&amp;quot; column is default or distro version / oldest that builds - latest that builds. If no latest is given then that means trunk is expected to build on the given platform.&lt;br /&gt;
&lt;br /&gt;
e.g. for a distro that ships with 0.48 but should support building of trunk you might get:&lt;br /&gt;
 0.48 / 0.47-&lt;br /&gt;
&lt;br /&gt;
'''General rules:'''&lt;br /&gt;
* Support latest Debian Stable (as of feature freeze) [https://www.debian.org/distrib/packages Debian packages]&lt;br /&gt;
* Support latest Ubuntu LTS (as of feature freeze) [https://packages.ubuntu.com/ Ubuntu packages]&lt;br /&gt;
**e.g. Considering Inkscape 1.2, the latest Ubuntu LTS at '''feature freeze time''' (around February 2022) would have been Ubuntu 20.04. The latest LTS at release time (around May 2022), though, will be Ubuntu 22.04.  Therefore, according to the rule, we should support Ubuntu 20.04 LTS as the minimum version.&lt;br /&gt;
* Support last CentOS/Redhat (as best effort).&lt;br /&gt;
* Support last two Fedora releases (as of feature freeze) [https://packages.fedoraproject.org/ Fedora packages]&lt;br /&gt;
* Don't break ''point'' releases.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Distro&lt;br /&gt;
! Inkscape&lt;br /&gt;
! gcc&lt;br /&gt;
! clang&lt;br /&gt;
! cairo&lt;br /&gt;
! cairomm&lt;br /&gt;
! freetype&lt;br /&gt;
! glib&lt;br /&gt;
! glibmm&lt;br /&gt;
! gtk+&lt;br /&gt;
! gtkmm&lt;br /&gt;
! harfbuzz&lt;br /&gt;
! pango&lt;br /&gt;
! poppler&lt;br /&gt;
! gdl&lt;br /&gt;
! lcms2&lt;br /&gt;
! libsigc++&lt;br /&gt;
! libgc &amp;lt;!-- Fedora rpm: gc --&amp;gt;&lt;br /&gt;
! libsoup&lt;br /&gt;
|-&lt;br /&gt;
| Windows MSYS2 (2021-04-14)&amp;lt;br/&amp;gt;([https://github.com/Alexpux/MINGW-packages mingw-w64 packages] from MSYS2 project)&lt;br /&gt;
  &amp;lt;!-- see http://quodlibet.duckdns.org/msys2/base for list of latest package versions --&amp;gt;&lt;br /&gt;
| 1.0.2&lt;br /&gt;
| 10.2.0&lt;br /&gt;
| 11.0.0&lt;br /&gt;
| 1.17.4&lt;br /&gt;
| 1.12.2&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 2.68.1&lt;br /&gt;
| 2.66.0&lt;br /&gt;
| 3.24.27&lt;br /&gt;
| 3.24.3&lt;br /&gt;
| 2.8.0&lt;br /&gt;
| 1.48.4&lt;br /&gt;
| 20.12.1&lt;br /&gt;
| 3.34.0&lt;br /&gt;
| 2.12&lt;br /&gt;
| 2.10.6&lt;br /&gt;
| 8.0.4 &amp;lt;!-- mingw-w64-gc --&amp;gt;&lt;br /&gt;
| 2.72.0&lt;br /&gt;
|-&lt;br /&gt;
| Debian 10 (Buster, &amp;lt;i&amp;gt;oldstable&amp;lt;/i&amp;gt;) &amp;lt;small&amp;gt;EOL 2024-06&amp;lt;/small&amp;gt;&lt;br /&gt;
| 0.92.4 (1.0.2)&lt;br /&gt;
| 8.3.0&lt;br /&gt;
| 7.0&lt;br /&gt;
| 1.16&lt;br /&gt;
| 1.12.2&lt;br /&gt;
| 2.9.1&lt;br /&gt;
| 2.58.3&lt;br /&gt;
| 2.58.0&lt;br /&gt;
| 2.24.32&amp;lt;br /&amp;gt;3.24.5&lt;br /&gt;
| 2.24.5&amp;lt;br /&amp;gt;3.24.0&lt;br /&gt;
| 2.3.1&lt;br /&gt;
| 1.42.4&lt;br /&gt;
| 0.71.0&lt;br /&gt;
| 3.28.0&lt;br /&gt;
| 2.9&lt;br /&gt;
| 2.10.1&lt;br /&gt;
| 7.6.4&lt;br /&gt;
| 2.64.2&lt;br /&gt;
|-&lt;br /&gt;
| Debian 11 (Bullseye, stable) &amp;lt;small&amp;gt;EOL 2026&amp;lt;/small&amp;gt;&lt;br /&gt;
| 1.0.2&lt;br /&gt;
| 10.2.1&lt;br /&gt;
| 11.0&lt;br /&gt;
| 1.16&lt;br /&gt;
| 1.12.2&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 2.66.8&lt;br /&gt;
| 2.64.2&lt;br /&gt;
| 3.24.24&lt;br /&gt;
| 3.24.2&lt;br /&gt;
| 2.7.4&lt;br /&gt;
| 1.46.2&lt;br /&gt;
| 20.09.0&lt;br /&gt;
| 3.34.0&lt;br /&gt;
| 2.12&lt;br /&gt;
| 2.10.4&lt;br /&gt;
| 8.0.4&lt;br /&gt;
| 2.72.0&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:Violet;&amp;quot;|(RHEL) / CentOS 8.1 &amp;lt;small&amp;gt;EOFS 2024-05&amp;lt;/small&amp;gt;&amp;lt;br/&amp;gt;Based on Centros 8.1 package list&lt;br /&gt;
| 0.92.3&lt;br /&gt;
| 8.3.1&lt;br /&gt;
| 8.0.1&lt;br /&gt;
| 1.15.12&lt;br /&gt;
| 1.12.0&lt;br /&gt;
| 2.8.14&lt;br /&gt;
| 2.56.4&lt;br /&gt;
| 2.56.0&lt;br /&gt;
| 2.24.32&amp;lt;br /&amp;gt;3.22.30&lt;br /&gt;
| 2.24.5&amp;lt;br /&amp;gt;3.22.2&lt;br /&gt;
| 1.7.5&lt;br /&gt;
| 1.42.4&lt;br /&gt;
| 0.66.0&lt;br /&gt;
| style=&amp;quot;background:Violet;&amp;quot;|?&lt;br /&gt;
| 2.9&lt;br /&gt;
| 2.10.0&lt;br /&gt;
| 7.6.4&lt;br /&gt;
| 2.62.3&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 20.04 LTS (Focal Fossa) &amp;lt;small&amp;gt;EOL 2025-04&amp;lt;/small&amp;gt;&lt;br /&gt;
| 0.92.5&lt;br /&gt;
| 10&lt;br /&gt;
| 10&lt;br /&gt;
| 1.16&lt;br /&gt;
| 1.12.2&lt;br /&gt;
| 2.10.1&lt;br /&gt;
| 2.64.1&lt;br /&gt;
| 2.64.2&lt;br /&gt;
| 2.24.32&amp;lt;br /&amp;gt;3.24.17&lt;br /&gt;
| 2.24.5&amp;lt;br /&amp;gt;3.24.2&lt;br /&gt;
| 2.6.4&lt;br /&gt;
| 1.44.7&lt;br /&gt;
| 0.86.1&lt;br /&gt;
| 3.34.0&lt;br /&gt;
| 2.9.4&lt;br /&gt;
| 2.10.2&lt;br /&gt;
| 10&lt;br /&gt;
| 2.70.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Legend&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:Orange;&amp;quot;| Inkscape 1.0.x unsupported&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background:Violet;&amp;quot;| GTK+ 3 builds unsupported&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Agreed to at Saarbrücken hackfest.&lt;br /&gt;
&lt;br /&gt;
== Getting and Installing Source packages ==&lt;br /&gt;
&lt;br /&gt;
See [https://inkscape.org/develop/getting-started/ Getting Started]&lt;br /&gt;
&lt;br /&gt;
== Optional Dependencies ==&lt;br /&gt;
&lt;br /&gt;
Inkscape will still compile without these, but some features may be missing if they are absent during compilation:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Library&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Needed for&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Default&lt;br /&gt;
|-&lt;br /&gt;
|aspell&lt;br /&gt;
|Dictionaries for spell checking&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|libcdr&lt;br /&gt;
|Open Corel Draw files&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|gettext/msgformat&lt;br /&gt;
|Translation support&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|gtest/gmock&lt;br /&gt;
|Automatted testing&lt;br /&gt;
|Off&lt;br /&gt;
|-&lt;br /&gt;
|gspell&lt;br /&gt;
|Spell checking&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|imagemagick&lt;br /&gt;
|Bitmap editing extensions, bitmap import resolution&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|jpeg&lt;br /&gt;
|jpeg import?&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|OpenMP&lt;br /&gt;
|Multi-threaded filter rendering&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|scour&lt;br /&gt;
|Save as Optimized SVG&lt;br /&gt;
|(not needed during compiling, Python)&lt;br /&gt;
|-&lt;br /&gt;
|libvisio&lt;br /&gt;
|Open Visio Files, use Visio stencils&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|libwpg&lt;br /&gt;
|Open WordPerfect Graphics&lt;br /&gt;
|On&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:About Inkscape]]&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Pulsar17</name></author>
	</entry>
</feed>