<?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=Neon22</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=Neon22"/>
	<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/Special:Contributions/Neon22"/>
	<updated>2026-04-07T15:12:29Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Updating_your_Extension_for_1.0&amp;diff=118630</id>
		<title>Updating your Extension for 1.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Updating_your_Extension_for_1.0&amp;diff=118630"/>
		<updated>2020-08-20T10:18:48Z</updated>

		<summary type="html">&lt;p&gt;Neon22: optiongroup updates for clarity&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a preliminary and incomplete list of actions to take for updating Python extensions for Inkscape 1.0:&lt;br /&gt;
&lt;br /&gt;
== Adjusting folder structure ==&lt;br /&gt;
&lt;br /&gt;
For easier extension 'installation' by users and for having a better overview about the installed extensions, you can now put extensions into their own subfolders of the &amp;lt;code&amp;gt;extensions&amp;lt;/code&amp;gt; directory. This is optional.&lt;br /&gt;
&lt;br /&gt;
When specifying the command in the .inx file, you can use the new parameter 'location'.&lt;br /&gt;
&lt;br /&gt;
* If you set &amp;lt;code&amp;gt;location=&amp;quot;extensions&amp;quot;&amp;lt;/code&amp;gt; (de-facto default in 0.92.x), it will assume the path is relative to either user or system extensions folder.&lt;br /&gt;
* If it's &amp;lt;code&amp;gt;location=&amp;quot;inx&amp;quot;&amp;lt;/code&amp;gt; (new and recommended in 1.0), it will assume the path is relative to the .inx file location. &lt;br /&gt;
&lt;br /&gt;
An extension that uses the following snippet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
    &amp;lt;command location=&amp;quot;inx&amp;quot; interpreter=&amp;quot;python&amp;quot;&amp;gt;hello.py&amp;lt;/command&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
can be put into any subfolder in &amp;lt;code&amp;gt;extensions&amp;lt;/code&amp;gt; or into the &amp;lt;code&amp;gt;extensions&amp;lt;/code&amp;gt; folder itself, as long as the file &amp;lt;code&amp;gt;hello.py&amp;lt;/code&amp;gt; is in that same folder, at the same hierarchy level.&lt;br /&gt;
&lt;br /&gt;
The old parameter &amp;lt;code&amp;gt;reldir&amp;lt;/code&amp;gt; is deprecated. It is recommended to use Unix style path separators (i.e. &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;), if your script file is located in a nested subdirectory (should be a very rare case).&lt;br /&gt;
&lt;br /&gt;
== Updating *.inx files ==&lt;br /&gt;
&lt;br /&gt;
=== Remove dependency listings ===&lt;br /&gt;
&lt;br /&gt;
Remove the dependency listings for the following modules:&lt;br /&gt;
&lt;br /&gt;
* bezmisc.py&lt;br /&gt;
* coloreffect.py&lt;br /&gt;
* cspsubdiv.py&lt;br /&gt;
* cubicsuperpath.py&lt;br /&gt;
* ffgeom.py&lt;br /&gt;
* inkex.py (removal not strictly required)&lt;br /&gt;
* pathmodifier.py&lt;br /&gt;
* simplepath.py&lt;br /&gt;
* simplestyle.py&lt;br /&gt;
* simpletransform.py&lt;br /&gt;
* more?&lt;br /&gt;
&lt;br /&gt;
This change is backwards compatible (as long as the user has a fully functioning Inkscape installation).&lt;br /&gt;
Not removing these will result in the extension not being selectable (disabled and greyed out) in Inkscape 1.0 or higher.&lt;br /&gt;
&lt;br /&gt;
=== Changes to parameter definitions ===&lt;br /&gt;
&lt;br /&gt;
There are also some updates to the parameter definitions in .inx files. While these are intended to be backwards compatible to 0.92, you may wish to review the changes below:&lt;br /&gt;
&lt;br /&gt;
* '''Underscores''' in inx parameter tags and attributes for translation '''can be dropped''' entirely. Use &amp;lt;code&amp;gt;translatable=&amp;quot;no&amp;quot;&amp;lt;/code&amp;gt; to make an item (e.g. a unit name) untranslatable.&lt;br /&gt;
* &amp;lt;code&amp;gt;boolean&amp;lt;/code&amp;gt; can be renamed to &amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;param type=&amp;quot;enum&amp;quot; /&amp;gt;&amp;lt;/code&amp;gt; is deprecated, instead use optiongroups. Remember to rename &amp;lt;code&amp;gt;&amp;lt;item&amp;gt;&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;&amp;lt;option&amp;gt;&amp;lt;/code&amp;gt; when replacing.&lt;br /&gt;
* In optiongroups &amp;lt;code&amp;gt;appearance=&amp;quot;minimal&amp;quot;&amp;lt;/code&amp;gt; is deprecated.&lt;br /&gt;
** In optiongroups you can now define dropdown selections (comboboxes) and radio buttons.&lt;br /&gt;
** i.e. &amp;lt;code&amp;gt;&amp;lt;param type=&amp;quot;optiongroup&amp;quot; appearance=&amp;quot;combo&amp;quot; /&amp;gt;&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;&amp;lt;param type=&amp;quot;optiongroup&amp;quot; appearance=&amp;quot;radio&amp;quot; /&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Choosing files / folders with &amp;lt;code&amp;gt;&amp;lt;param type=&amp;quot;path&amp;quot; /&amp;gt;&amp;lt;/code&amp;gt; (these return the path as a string to the Python script):&lt;br /&gt;
** Files:&lt;br /&gt;
*** Choose a file, with file type restriction (optional): &amp;lt;code&amp;gt;&amp;lt;param name=&amp;quot;my_file&amp;quot; type=&amp;quot;path&amp;quot; mode=&amp;quot;file&amp;quot; filetypes=&amp;quot;png,jpg&amp;quot; gui-text=&amp;quot;A file:&amp;quot;&amp;gt;my/path/to/file.png&amp;lt;/param&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*** Choose multiple files (file type restriction possible, too): &amp;lt;code&amp;gt;&amp;lt;param name=&amp;quot;my_files&amp;quot; type=&amp;quot;path&amp;quot; mode=&amp;quot;files&amp;quot; gui-text=&amp;quot;Multiple files:&amp;quot;&amp;gt;my/path/to/file.png&amp;lt;/param&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*** Create a new file: &amp;lt;code&amp;gt;&amp;lt;param name=&amp;quot;my_new_file&amp;quot; type=&amp;quot;path&amp;quot; mode=&amp;quot;file_new&amp;quot; filetypes=&amp;quot;png&amp;quot; gui-text=&amp;quot;A new file:&amp;quot;&amp;gt;my/path/to/file.png&amp;lt;/param&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
** Folders:&lt;br /&gt;
*** Choose a folder: &amp;lt;code&amp;gt;&amp;lt;param name=&amp;quot;my_folder&amp;quot; type=&amp;quot;path&amp;quot; mode=&amp;quot;folder&amp;quot; gui-text=&amp;quot;A folder:&amp;quot;&amp;gt;my/path/&amp;lt;/param&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*** Choose multiple folders: &amp;lt;code&amp;gt;&amp;lt;param name=&amp;quot;my_folders&amp;quot; type=&amp;quot;path&amp;quot; mode=&amp;quot;folders&amp;quot; gui-text=&amp;quot;Folders:&amp;quot;&amp;gt;my/path/&amp;lt;/param&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*** Create a new folder: &amp;lt;code&amp;gt;&amp;lt;param name=&amp;quot;my_new_folder&amp;quot; type=&amp;quot;path&amp;quot; mode=&amp;quot;folder_new&amp;quot;  filetypes=&amp;quot;png&amp;quot; gui-text=&amp;quot;A new folder:&amp;quot;&amp;gt;my/path/&amp;lt;/param&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Color choosers: make them more compact with &amp;lt;code&amp;gt;appearance=&amp;quot;colorbutton&amp;quot;&amp;lt;/code&amp;gt; for parameters of type &amp;lt;code&amp;gt;color&amp;lt;/code&amp;gt;&lt;br /&gt;
* Multiline text entry fields are available with &amp;lt;code&amp;gt;appearance=&amp;quot;multiline&amp;quot;&amp;lt;/code&amp;gt; for parameters of type &amp;lt;code&amp;gt;string&amp;lt;/code&amp;gt;&lt;br /&gt;
* The following new widgets (static, do not need to be read in by the .py file's option parser anymore):&lt;br /&gt;
** &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt;: (&amp;lt;code&amp;gt;&amp;lt;label&amp;gt;Some text&amp;lt;/label&amp;gt;&amp;lt;/code&amp;gt;), replaces parameters of type &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; (which never really were parameters in the actual sense), optionally with &amp;lt;code&amp;gt;appearance=&amp;quot;header&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
** &amp;lt;code&amp;gt;hbox&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;vbox&amp;lt;/code&amp;gt;: for layouting purposes (allow to pack child widgets into horizontally/vertically oriented boxes)&lt;br /&gt;
** &amp;lt;code&amp;gt;&amp;lt;spacer/&amp;gt;&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;&amp;lt;separator/&amp;gt;&amp;lt;/code&amp;gt;: which add a variable space or separating line between child widgets.&lt;br /&gt;
** &amp;lt;code&amp;gt;&amp;lt;image&amp;gt;my_image.svg&amp;lt;/image&amp;gt;&amp;lt;/code&amp;gt;: which allows to display an image in the extension UI&lt;br /&gt;
&lt;br /&gt;
Example file with many of the new features (click on Expand on the right to show, requires an image in the extensions directory with the correct name):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;inkscape-extension xmlns=&amp;quot;http://www.inkscape.org/namespace/inkscape/extension&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;Layout Demo&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;id&amp;gt;org.inkscape.test.layout_demo&amp;lt;/id&amp;gt;&lt;br /&gt;
    &amp;lt;dependency type=&amp;quot;executable&amp;quot; location=&amp;quot;extensions&amp;quot;&amp;gt;pathmodifier.py&amp;lt;/dependency&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;hbox&amp;gt;&lt;br /&gt;
        &amp;lt;vbox&amp;gt;&lt;br /&gt;
            &amp;lt;label appearance=&amp;quot;header&amp;quot;&amp;gt;Multiple vboxes packed into an hbox&amp;lt;/label&amp;gt;&lt;br /&gt;
            &amp;lt;hbox&amp;gt;&lt;br /&gt;
                &amp;lt;vbox&amp;gt;&lt;br /&gt;
                    &amp;lt;label&amp;gt;Vertical stack&amp;lt;/label&amp;gt;&lt;br /&gt;
                    &amp;lt;param name=&amp;quot;param_bool&amp;quot; type=&amp;quot;bool&amp;quot; gui-text=&amp;quot;Boolean&amp;quot;&amp;gt;true&amp;lt;/param&amp;gt;&lt;br /&gt;
                    &amp;lt;param name=&amp;quot;param_int&amp;quot; type=&amp;quot;int&amp;quot; gui-text=&amp;quot;Int:&amp;quot; &amp;gt;12345&amp;lt;/param&amp;gt;&lt;br /&gt;
                    &amp;lt;param name=&amp;quot;param_float&amp;quot; type=&amp;quot;float&amp;quot; gui-text=&amp;quot;Float:&amp;quot;&amp;gt;1.2345&amp;lt;/param&amp;gt;&lt;br /&gt;
                    &amp;lt;param name=&amp;quot;param_color&amp;quot; type=&amp;quot;color&amp;quot; appearance=&amp;quot;colorbutton&amp;quot; gui-text=&amp;quot;Color:&amp;quot;&amp;gt;0x12345678&amp;lt;/param&amp;gt;&lt;br /&gt;
                &amp;lt;/vbox&amp;gt;&lt;br /&gt;
                &amp;lt;spacer /&amp;gt;&lt;br /&gt;
                &amp;lt;vbox&amp;gt;&lt;br /&gt;
                    &amp;lt;label&amp;gt;Vertical stack with separators&amp;lt;/label&amp;gt;&lt;br /&gt;
                    &amp;lt;param name=&amp;quot;param_string&amp;quot; type=&amp;quot;string&amp;quot; gui-text=&amp;quot;Single line string:&amp;quot;&amp;gt;a string value&amp;lt;/param&amp;gt;&lt;br /&gt;
                    &amp;lt;separator&amp;gt;&amp;lt;/separator&amp;gt;&lt;br /&gt;
                    &amp;lt;param name=&amp;quot;param_string_empty&amp;quot; type=&amp;quot;string&amp;quot; gui-text=&amp;quot;Empty single line:&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;br /&gt;
                    &amp;lt;separator&amp;gt;&amp;lt;/separator&amp;gt;&lt;br /&gt;
                    &amp;lt;param name=&amp;quot;param_string_multiline&amp;quot; type=&amp;quot;string&amp;quot; appearance=&amp;quot;multiline&amp;quot; gui-text=&amp;quot;Multiline string:&amp;quot;&amp;gt;a\nmultiline\nstring\nvalue&amp;lt;/param&amp;gt;&lt;br /&gt;
                &amp;lt;/vbox&amp;gt;&lt;br /&gt;
                &amp;lt;spacer /&amp;gt;&lt;br /&gt;
                &amp;lt;vbox&amp;gt;&lt;br /&gt;
                    &amp;lt;label&amp;gt;Vertical stack with spacers&amp;lt;/label&amp;gt;&lt;br /&gt;
                    &amp;lt;param name=&amp;quot;param_file_new&amp;quot; type=&amp;quot;path&amp;quot; mode=&amp;quot;file_new&amp;quot;  filetypes=&amp;quot;png&amp;quot; gui-text=&amp;quot;A new file:&amp;quot;&amp;gt;my/path/to/file.png&amp;lt;/param&amp;gt;&lt;br /&gt;
                    &amp;lt;spacer /&amp;gt;&lt;br /&gt;
                    &amp;lt;param name=&amp;quot;param_file&amp;quot; type=&amp;quot;path&amp;quot; mode=&amp;quot;file&amp;quot; filetypes=&amp;quot;png,jpg&amp;quot; gui-text=&amp;quot;A file:&amp;quot;&amp;gt;my/path/to/file.png&amp;lt;/param&amp;gt;&lt;br /&gt;
                    &amp;lt;spacer /&amp;gt;&lt;br /&gt;
                    &amp;lt;param name=&amp;quot;param_files&amp;quot; type=&amp;quot;path&amp;quot; mode=&amp;quot;files&amp;quot; gui-text=&amp;quot;Multiple files:&amp;quot;&amp;gt;my/path/to/file.png&amp;lt;/param&amp;gt;&lt;br /&gt;
                    &amp;lt;spacer /&amp;gt;&lt;br /&gt;
                    &lt;br /&gt;
                &amp;lt;/vbox&amp;gt;&lt;br /&gt;
                &amp;lt;spacer /&amp;gt;&lt;br /&gt;
                &amp;lt;vbox&amp;gt;&lt;br /&gt;
                    &amp;lt;label&amp;gt;Vertical stack with expanding spacer&amp;lt;/label&amp;gt;&lt;br /&gt;
                    &amp;lt;spacer size=&amp;quot;expand&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;param name=&amp;quot;param_folder&amp;quot; type=&amp;quot;path&amp;quot; mode=&amp;quot;folder&amp;quot; gui-text=&amp;quot;A folder:&amp;quot;&amp;gt;my/path/&amp;lt;/param&amp;gt;&lt;br /&gt;
                    &amp;lt;param name=&amp;quot;param_folders&amp;quot; type=&amp;quot;path&amp;quot; mode=&amp;quot;folders&amp;quot; gui-text=&amp;quot;Folders:&amp;quot;&amp;gt;my/path/to/file.png&amp;lt;/param&amp;gt;&lt;br /&gt;
                    &amp;lt;param name=&amp;quot;param_folder_new&amp;quot; type=&amp;quot;path&amp;quot; mode=&amp;quot;folder_new&amp;quot; gui-text=&amp;quot;A new folder:&amp;quot;&amp;gt;my/path/&amp;lt;/param&amp;gt;&lt;br /&gt;
                &amp;lt;/vbox&amp;gt;&lt;br /&gt;
                &amp;lt;spacer /&amp;gt;&lt;br /&gt;
                &amp;lt;vbox&amp;gt;&lt;br /&gt;
                  &amp;lt;label appearance=&amp;quot;header&amp;quot;&amp;gt;An image!&amp;lt;/label&amp;gt;&lt;br /&gt;
                  &amp;lt;image&amp;gt;ink_icon.svg&amp;lt;/image&amp;gt;&lt;br /&gt;
                  &amp;lt;spacer /&amp;gt;&lt;br /&gt;
                  &amp;lt;label appearance=&amp;quot;header&amp;quot; indent=&amp;quot;1&amp;quot;&amp;gt;Indented header&amp;lt;/label&amp;gt;&lt;br /&gt;
                  &amp;lt;spacer /&amp;gt;&lt;br /&gt;
                  &amp;lt;label&amp;gt;For details please refer to&amp;lt;/label&amp;gt;&lt;br /&gt;
                  &amp;lt;label appearance=&amp;quot;url&amp;quot; indent=&amp;quot;1&amp;quot;&amp;gt;https://clickable.url&amp;lt;/label&amp;gt;&lt;br /&gt;
                &amp;lt;/vbox&amp;gt;&lt;br /&gt;
            &amp;lt;/hbox&amp;gt;&lt;br /&gt;
        &amp;lt;/vbox&amp;gt;&lt;br /&gt;
    &amp;lt;/hbox&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;effect needs-live-preview=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;object-type&amp;gt;all&amp;lt;/object-type&amp;gt;&lt;br /&gt;
        &amp;lt;effects-menu&amp;gt;&lt;br /&gt;
            &amp;lt;submenu _name=&amp;quot;Test&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/effects-menu&amp;gt;&lt;br /&gt;
    &amp;lt;/effect&amp;gt;&lt;br /&gt;
    &amp;lt;script&amp;gt;&lt;br /&gt;
        &amp;lt;command reldir=&amp;quot;extensions&amp;quot; interpreter=&amp;quot;python&amp;quot;&amp;gt;do_nothing.py&amp;lt;/command&amp;gt;&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/inkscape-extension&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Updating *.py files ==&lt;br /&gt;
&lt;br /&gt;
=== Collecting the options of the extension ===&lt;br /&gt;
&lt;br /&gt;
# Instead of &amp;lt;code&amp;gt;inkex.Effect.OptionParser.add_option&amp;lt;/code&amp;gt;, your extension should now use &amp;lt;code&amp;gt;inkex.Effect.arg_parser.add_argument&amp;lt;/code&amp;gt;.&lt;br /&gt;
# The 'type' option now works with variables instead of strings. Use &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;&amp;quot;int&amp;quot;&amp;lt;/code&amp;gt; (same for float,...).&lt;br /&gt;
# The 'inkbool' type is now &amp;lt;code&amp;gt;inkex.Boolean&amp;lt;/code&amp;gt;.&lt;br /&gt;
# &amp;lt;code&amp;gt;action=&amp;quot;store&amp;quot;&amp;lt;/code&amp;gt; can be removed.&lt;br /&gt;
&lt;br /&gt;
These changes are not backwards compatible. The old options will still work, but are deprecated and should no longer be used when you develop your extension for Inkscape 1.0 or higher.&lt;br /&gt;
&lt;br /&gt;
=== Replace specific functions ===&lt;br /&gt;
&lt;br /&gt;
When the .inx file is valid and not greyed out (meaning: a dependency is missing), you can start building the .py file up again.&lt;br /&gt;
&lt;br /&gt;
In the Inkscape extensions refactoring process for Inkscape 1.0, many inkex functions have been removed, or renamed, or moved, or options have changed. Wherever possible, Inkscape will try to replace the old function by the new one, and will give you a deprecation warning, with instructions what to replace them by.&lt;br /&gt;
&lt;br /&gt;
E.g. &amp;lt;code&amp;gt;inkex.Effect.selected&amp;lt;/code&amp;gt; is replaced by &amp;lt;code&amp;gt;inkex.Effect.svg.selected&amp;lt;/code&amp;gt; - however, most replacements do not follow this naming scheme translation.&lt;br /&gt;
&lt;br /&gt;
These changes are not backwards compatible.&lt;br /&gt;
&lt;br /&gt;
'''The full Python API documentation is available on [https://inkscape.gitlab.io/extensions/documentation/ GitLab].'''&lt;br /&gt;
&lt;br /&gt;
=== Python 3 / Python 2 compatibility ===&lt;br /&gt;
&lt;br /&gt;
Test your extension with both Python 2 and Python 3, if you want it to work for as many users as possible. With the updated extensions, Inkscape does no longer require Python 2, so some users will probably be using Python 3, and may no longer have Python 2 installed on their system. See [[Extension_Interpreters]] for how to set the Python version for your extension in the preferences file (for testing).&lt;br /&gt;
&lt;br /&gt;
== Getting your extension added to Inkscape's stock extensions ==&lt;br /&gt;
&lt;br /&gt;
Inkscape now has a [https://gitlab.com/inkscape/extensions separate repository for its Python extensions], which is included into Inkscape proper by using a Git submodule.&lt;br /&gt;
&lt;br /&gt;
=== Writing tests ===&lt;br /&gt;
&lt;br /&gt;
Previously Inkscape didn't require any unit testing for code. You should now write test code, if you expect your module to be included into the Inkscape extensions repository and included in the shipped Inkscape release. In this case, a test suite file should be made in the tests directory for your extension. It should test each aspect of your extension and exercise all assumptions.&lt;br /&gt;
&lt;br /&gt;
If you are writing a standalone extension that users will install themselves, there is no strict requirement for tests. But having them will greatly improve your code and your ability to upgrade the code later. You can have tests in your own folders and use the extension's setup.py as a harness to run them (a setup.py file is also useful for installing your python code as a non-inkscape related python module, which might be useful too). See Python documentation for creating packages.&lt;br /&gt;
&lt;br /&gt;
=== Documenting your extension ===&lt;br /&gt;
&lt;br /&gt;
== Docstrings ==&lt;br /&gt;
&lt;br /&gt;
Include docstrings in your extension, so documentation can be built from them automatically (see [https://inkscape.gitlab.io/extensions/documentation/ inkex API documentation]) collects the inline documentation comments into a single document.&lt;br /&gt;
&lt;br /&gt;
== Submitting your extension for inclusion ==&lt;br /&gt;
&lt;br /&gt;
Visit https://gitlab.com/inkscape/extensions, fork the repository, and create a merge request on GitLab.&lt;br /&gt;
&lt;br /&gt;
[[Category:Extensions]]&lt;/div&gt;</summary>
		<author><name>Neon22</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Script_extensions&amp;diff=104676</id>
		<title>Script extensions</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Script_extensions&amp;diff=104676"/>
		<updated>2017-02-26T22:19:07Z</updated>

		<summary type="html">&lt;p&gt;Neon22: added verb discovery line&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[Note: This page concerns using scripting languages to create new Inkscape functionality.  To access Inkscape functionality from scripting languages (i.e. to script Inkscape), see the Inkscape man page (especially in the development version or v0.46 or later, which provide --select and --verb options), or see the work in the src/extension/script directory of Inkscape source.]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Traditional Unix scripts can be used to extend Inkscape's functionality. Such programs read a stream of data on standard input, transform the data in some way, and then write the modified data to standard output. This is an easy way to expand Inkscape and provide custom functionality without learning the internals of Inkscape. Libraries for reading and writing SVG data exist for many programming languages, and most provide support for XML.  This tutorial describes the &amp;quot;ins and outs&amp;quot; of writing one of these scripts and making it work with Inkscape's core functionality.&lt;br /&gt;
&lt;br /&gt;
== Script functions ==&lt;br /&gt;
&lt;br /&gt;
There are three kinds of functions that can be added with a script:&lt;br /&gt;
&lt;br /&gt;
* Input, providing translation from a file format to SVG&lt;br /&gt;
* Output, providing translation from SVG to a format&lt;br /&gt;
* Effect, taking in SVG, changing it, and then outputting SVG&lt;br /&gt;
&lt;br /&gt;
While all of these are very similar in the scripting interface, there are slight differences between them.&lt;br /&gt;
&lt;br /&gt;
== Interaction ==&lt;br /&gt;
&lt;br /&gt;
It is important for a script author to understand how Inkscape and scripts communicate.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
(interpreter)? your_script (--param=value)* /path/to/input[[/SVGfile]] | inkscape&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inkscape runs your script (optionally with an interpreter) passing it any number of parameters in long gnu style. The final argument is the name of the temporary svg file your script should read. After processing, the script should return the modified svg file to inkscape on STDOUT.&lt;br /&gt;
&lt;br /&gt;
== Important Tips ==&lt;br /&gt;
&lt;br /&gt;
* Receive the inkscape arguments.&lt;br /&gt;
* Clear temp files if it creates one.&lt;br /&gt;
* Write full changed SVG to the default output.&lt;br /&gt;
* Don't break an &amp;lt;code&amp;gt;xml:space=&amp;quot;preserve&amp;quot;&amp;lt;/code&amp;gt; area.&lt;br /&gt;
* Send error text to the error output and help the user.&lt;br /&gt;
&lt;br /&gt;
== Extension description file ==&lt;br /&gt;
&lt;br /&gt;
In order for Inkscape to make use of an external script or program, you must describe that script to Inkscape using an INX file. See the inkscape share directory for examples.&lt;br /&gt;
&lt;br /&gt;
The INX file allows you to:&lt;br /&gt;
* Define the script file and other dependencies.&lt;br /&gt;
* List all parameters and their types (to generate an input dialog window).&lt;br /&gt;
* Mark dialog window text for translation.&lt;br /&gt;
* Define an Inkscape menu entry.&lt;br /&gt;
* Chain extensions.&lt;br /&gt;
&lt;br /&gt;
See [[INX extension descriptor format]] for help creating an INX file.&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
The INX file describes which parameters the extension needs. Inkscape will prompt the user with a UI to fill out these parameters before the extension is called. Each parameter will be passed to the script as &amp;lt;code&amp;gt;--paramname=paramvalue&amp;lt;/code&amp;gt;. Specify the script file to be run with the &amp;lt;code&amp;gt;&amp;lt;command&amp;gt;&amp;lt;/code&amp;gt; tag.&lt;br /&gt;
&lt;br /&gt;
For example, if you have described a string parameter with name &amp;lt;code&amp;gt;string1&amp;lt;/code&amp;gt; in the INX file, Inkscape will present a textbox to the user. When the user fills in &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; and presses Apply, it will pass &amp;lt;code&amp;gt;--string1=&amp;quot;text&amp;quot;&amp;lt;/code&amp;gt; to the script.&lt;br /&gt;
&lt;br /&gt;
There are several types of parameters that can be requested by the INX description:&lt;br /&gt;
&lt;br /&gt;
* String (textbox)&lt;br /&gt;
* Boolean (checkbox)&lt;br /&gt;
* Int (numeric textbox)&lt;br /&gt;
* Float (numeric textbox)&lt;br /&gt;
* Enum (drop down selection list)&lt;br /&gt;
* Option group (radio buttons)&lt;br /&gt;
* Notebook (pages/tabs)&lt;br /&gt;
* Description (not a parameter, provides static text)&lt;br /&gt;
&lt;br /&gt;
For a detailed description of all parameters and input controls, see [[INX Parameters]].&lt;br /&gt;
&lt;br /&gt;
== Verbs interface and the id tag ==&lt;br /&gt;
When you define your extension you will have name and id tags at the top of the INX file.&lt;br /&gt;
The id tag is used for two purposes:&lt;br /&gt;
&lt;br /&gt;
* as an identifier in the config file so the most recently used parameter values are stored and recalled each time the extension is run.&lt;br /&gt;
* as the identifier for the verbs interface so your extension can be run from the command line.&lt;br /&gt;
&lt;br /&gt;
Inkscape can be called from the command line and the extension can be run using this interface.&lt;br /&gt;
&lt;br /&gt;
E.g. Assuming the id in your extension was &amp;lt;code&amp;gt;&amp;lt;id&amp;gt;foo.github.my_extension&amp;lt;/id&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;inkscape --verb foo.github.my_extension&amp;lt;/code&amp;gt; will open Inkscape and open the dialog to your extension..&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;inkscape --verb foo.github.my_extension.noprefs&amp;lt;/code&amp;gt; will open inkscape and run the dialog with the last set values.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;inkscape --verb ZoomPage --verb foo.github.my_extension&amp;lt;/code&amp;gt; will open inkscape, Zoom full page, and open the dialog to your extension.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;inkscape --verb ZoomPage --verb-list&amp;lt;/code&amp;gt;  will show you the available verbs.&lt;br /&gt;
&lt;br /&gt;
== Installing ==&lt;br /&gt;
&lt;br /&gt;
Installing is as simple as copying the script (unless it resides in your path) and its INX file to the inkscape/share/extensions ($HOME/.config/inkscape/extensions) directory. (If you install a script in your home directory be sure to copy the dependencies.)&lt;br /&gt;
&lt;br /&gt;
If you are looking to use scripts that have already been written, the most difficult part will likely be the installation. Since scripts are  separate programs they may have any number of dependencies that are not included with inkscape. Currently, the best way to find missing dependencies is by reading the error messages produced by running the script from the command line.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[Generating_objects_from_extensions]]. How to use a script to generate actual objects inside SVG documents.&lt;br /&gt;
&lt;br /&gt;
*[[PythonEffectTutorial]]&lt;br /&gt;
&lt;br /&gt;
*[[Tips For Python Script Extensions]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;br /&gt;
[[Category:Extensions]]&lt;/div&gt;</summary>
		<author><name>Neon22</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Script_extensions&amp;diff=104671</id>
		<title>Script extensions</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Script_extensions&amp;diff=104671"/>
		<updated>2017-02-26T22:11:54Z</updated>

		<summary type="html">&lt;p&gt;Neon22: Added Verbs and id tag section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[Note: This page concerns using scripting languages to create new Inkscape functionality.  To access Inkscape functionality from scripting languages (i.e. to script Inkscape), see the Inkscape man page (especially in the development version or v0.46 or later, which provide --select and --verb options), or see the work in the src/extension/script directory of Inkscape source.]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Traditional Unix scripts can be used to extend Inkscape's functionality. Such programs read a stream of data on standard input, transform the data in some way, and then write the modified data to standard output. This is an easy way to expand Inkscape and provide custom functionality without learning the internals of Inkscape. Libraries for reading and writing SVG data exist for many programming languages, and most provide support for XML.  This tutorial describes the &amp;quot;ins and outs&amp;quot; of writing one of these scripts and making it work with Inkscape's core functionality.&lt;br /&gt;
&lt;br /&gt;
== Script functions ==&lt;br /&gt;
&lt;br /&gt;
There are three kinds of functions that can be added with a script:&lt;br /&gt;
&lt;br /&gt;
* Input, providing translation from a file format to SVG&lt;br /&gt;
* Output, providing translation from SVG to a format&lt;br /&gt;
* Effect, taking in SVG, changing it, and then outputting SVG&lt;br /&gt;
&lt;br /&gt;
While all of these are very similar in the scripting interface, there are slight differences between them.&lt;br /&gt;
&lt;br /&gt;
== Interaction ==&lt;br /&gt;
&lt;br /&gt;
It is important for a script author to understand how Inkscape and scripts communicate.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
(interpreter)? your_script (--param=value)* /path/to/input[[/SVGfile]] | inkscape&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inkscape runs your script (optionally with an interpreter) passing it any number of parameters in long gnu style. The final argument is the name of the temporary svg file your script should read. After processing, the script should return the modified svg file to inkscape on STDOUT.&lt;br /&gt;
&lt;br /&gt;
== Important Tips ==&lt;br /&gt;
&lt;br /&gt;
* Receive the inkscape arguments.&lt;br /&gt;
* Clear temp files if it creates one.&lt;br /&gt;
* Write full changed SVG to the default output.&lt;br /&gt;
* Don't break an &amp;lt;code&amp;gt;xml:space=&amp;quot;preserve&amp;quot;&amp;lt;/code&amp;gt; area.&lt;br /&gt;
* Send error text to the error output and help the user.&lt;br /&gt;
&lt;br /&gt;
== Extension description file ==&lt;br /&gt;
&lt;br /&gt;
In order for Inkscape to make use of an external script or program, you must describe that script to Inkscape using an INX file. See the inkscape share directory for examples.&lt;br /&gt;
&lt;br /&gt;
The INX file allows you to:&lt;br /&gt;
* Define the script file and other dependencies.&lt;br /&gt;
* List all parameters and their types (to generate an input dialog window).&lt;br /&gt;
* Mark dialog window text for translation.&lt;br /&gt;
* Define an Inkscape menu entry.&lt;br /&gt;
* Chain extensions.&lt;br /&gt;
&lt;br /&gt;
See [[INX extension descriptor format]] for help creating an INX file.&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
The INX file describes which parameters the extension needs. Inkscape will prompt the user with a UI to fill out these parameters before the extension is called. Each parameter will be passed to the script as &amp;lt;code&amp;gt;--paramname=paramvalue&amp;lt;/code&amp;gt;. Specify the script file to be run with the &amp;lt;code&amp;gt;&amp;lt;command&amp;gt;&amp;lt;/code&amp;gt; tag.&lt;br /&gt;
&lt;br /&gt;
For example, if you have described a string parameter with name &amp;lt;code&amp;gt;string1&amp;lt;/code&amp;gt; in the INX file, Inkscape will present a textbox to the user. When the user fills in &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; and presses Apply, it will pass &amp;lt;code&amp;gt;--string1=&amp;quot;text&amp;quot;&amp;lt;/code&amp;gt; to the script.&lt;br /&gt;
&lt;br /&gt;
There are several types of parameters that can be requested by the INX description:&lt;br /&gt;
&lt;br /&gt;
* String (textbox)&lt;br /&gt;
* Boolean (checkbox)&lt;br /&gt;
* Int (numeric textbox)&lt;br /&gt;
* Float (numeric textbox)&lt;br /&gt;
* Enum (drop down selection list)&lt;br /&gt;
* Option group (radio buttons)&lt;br /&gt;
* Notebook (pages/tabs)&lt;br /&gt;
* Description (not a parameter, provides static text)&lt;br /&gt;
&lt;br /&gt;
For a detailed description of all parameters and input controls, see [[INX Parameters]].&lt;br /&gt;
&lt;br /&gt;
== Verbs interface and the id tag ==&lt;br /&gt;
When you define your extension you will have name and id tags at the top of the INX file.&lt;br /&gt;
The id tag is used for two purposes:&lt;br /&gt;
&lt;br /&gt;
* as an identifier in the config file so the most recently used parameter values are stored and recalled each time the extension is run.&lt;br /&gt;
* as the identifier for the verbs interface so your extension can be run from the command line.&lt;br /&gt;
&lt;br /&gt;
Inkscape can be called from the command line and the extension can be run using this interface.&lt;br /&gt;
&lt;br /&gt;
E.g. Assuming the id in your extension was &amp;lt;code&amp;gt;&amp;lt;id&amp;gt;foo.github.my_extension&amp;lt;/id&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;inkscape --verb foo.github.my_extension&amp;lt;/code&amp;gt; will open Inkscape and open the dialog to your extension..&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;inkscape --verb foo.github.my_extension.noprefs&amp;lt;/code&amp;gt; will open inkscape and run the dialog with the last set values.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;inkscape --verb ZoomPage --verb foo.github.my_extension&amp;lt;/code&amp;gt; will open inkscape, Zoom full page, and open the dialog to your extension.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installing ==&lt;br /&gt;
&lt;br /&gt;
Installing is as simple as copying the script (unless it resides in your path) and its INX file to the inkscape/share/extensions ($HOME/.config/inkscape/extensions) directory. (If you install a script in your home directory be sure to copy the dependencies.)&lt;br /&gt;
&lt;br /&gt;
If you are looking to use scripts that have already been written, the most difficult part will likely be the installation. Since scripts are  separate programs they may have any number of dependencies that are not included with inkscape. Currently, the best way to find missing dependencies is by reading the error messages produced by running the script from the command line.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
*[[Generating_objects_from_extensions]]. How to use a script to generate actual objects inside SVG documents.&lt;br /&gt;
&lt;br /&gt;
*[[PythonEffectTutorial]]&lt;br /&gt;
&lt;br /&gt;
*[[Tips For Python Script Extensions]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;br /&gt;
[[Category:Extensions]]&lt;/div&gt;</summary>
		<author><name>Neon22</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Inkscape_Extensions&amp;diff=100016</id>
		<title>Inkscape Extensions</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Inkscape_Extensions&amp;diff=100016"/>
		<updated>2016-06-14T12:07:39Z</updated>

		<summary type="html">&lt;p&gt;Neon22: remove duplicate&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a working list of all known ''external'' Inkscape extensions, with a link to where it can be downloaded.  It's part of a project to have all or as many extensions as possible available on the website (https://inkscape.org/en/download/addons/).  So it will be changing over time.  Note that it does Not include the extensions listed on this page http://wiki.inkscape.org/wiki/index.php/Extension_repository.&lt;br /&gt;
&lt;br /&gt;
If anyone knows of extensions which are not on either list, please let us know.  (You can contact me [http://forum.inkscapecommunity.com/index.php?action=contact here].)&lt;br /&gt;
&lt;br /&gt;
Fyi, ~suv's list is here:  https://gist.github.com/su-v/9965739&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;color: black; width: 100%;&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 15%;&amp;quot;|&lt;br /&gt;
'''Name'''&lt;br /&gt;
| style=&amp;quot;width: 50%;&amp;quot;|&lt;br /&gt;
'''Links'''&lt;br /&gt;
| style=&amp;quot;width: 35%;&amp;quot;|&lt;br /&gt;
'''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
|Draw Lab Equipment||https://github.com/jcaude/SVGMapping/tree/master/inkscape/extensions||has known unit issue, no license&lt;br /&gt;
|-&lt;br /&gt;
|Reselect Multiple Objects (Add classes)||http://www.inkscapeforum.com/viewtopic.php?f=5&amp;amp;t=18483&amp;amp;p=69760#p69752||Adds CSS classes to and removes them from selected objects, works great in 0.91. GPLv2+. Author: Mark Crutch&lt;br /&gt;
|-&lt;br /&gt;
|Bezier Envelope Extension||https://github.com/shlomif/Bezier-Envelope-for-Inkscape||Works in 0.91, deforms an object to fit into a curved envelope (the default extension ignores curves), GPLv2+, Shlomi is not the original author.&lt;br /&gt;
|-&lt;br /&gt;
|PSD Import||http://pernsteiner.org/inkscape/psd_import/&lt;br /&gt;
|-&lt;br /&gt;
|PDF/CMYK Exporter||http://wiki.inkscape.org/wiki/index.php/ExportPDFCMYK||doesn't work in 0.91&lt;br /&gt;
|-&lt;br /&gt;
|PDF/TIFF CMYK Export||http://wiki.softwarelivre.org/InkscapeBrasil/ExportarPDFCMYK&amp;lt;br /&amp;gt;http://wiki.softwarelivre.org/InkscapeBrasil/ExportarTIFFCMYK||neither works in 0.91&lt;br /&gt;
|-&lt;br /&gt;
|Inkscape OutputPRO||http://jonata.org/inkscape/outputpro/&amp;lt;br /&amp;gt;http://www.inkscapeforum.com/viewtopic.php?f=11&amp;amp;t=5943&amp;amp;start=25#p45043||under development&lt;br /&gt;
|-&lt;br /&gt;
|Inkscape Guide Tools||https://github.com/sambody/inkscape-guide-tools||GPLv2, works very well in 0.91 - creates margin guides, grid guides, centered guides and can also remove either horizontal, vertical or angled guides&lt;br /&gt;
|-&lt;br /&gt;
|Tabbed Boxmaker||http://www.inkscapeforum.com/viewtopic.php?p=38785&lt;br /&gt;
|-&lt;br /&gt;
|Image Aligner||https://bitbucket.org/matyilona/imagealigner&amp;lt;br /&amp;gt;http://www.inkscapeforum.com/viewtopic.php?f=31&amp;amp;t=19207&lt;br /&gt;
|-&lt;br /&gt;
|InkTan||https://github.com/Rhysun/inkTan||Draws tangents between two circles. Does not draw tangents between ellipses (despite the error message telling something different). Works in 0.91, GPLv3+.&lt;br /&gt;
|-&lt;br /&gt;
|Convert to SVG Font||http://myscrappinginspiration.blogspot.no/2015/01/extension-to-simplify-font-creating.html&lt;br /&gt;
|-&lt;br /&gt;
|Remove Redundant Lines||https://bugs.launchpad.net/inkscape/+bug/521988/+attachment/1144117/+files/removeredundant.inx&amp;lt;br /&amp;gt;https://bugs.launchpad.net/inkscape/+bug/521988/+attachment/1150930/+files/removeredundant.py||works in 0.91&lt;br /&gt;
|-&lt;br /&gt;
|Multiple Pages||http://sourceforge.net/projects/inkscape-pages/&lt;br /&gt;
|-&lt;br /&gt;
|Export Node Coordinates||http://www.inkscapeforum.com/viewtopic.php?f=5&amp;amp;t=8826||doesn't work in 0.91&lt;br /&gt;
|-&lt;br /&gt;
|InkPACKING||https://github.com/Moini/inkpacking&amp;lt;br /&amp;gt;http://www.inkscapeforum.com/viewtopic.php?p=75710#p75710||works in 0.91, GPLv2&lt;br /&gt;
|-&lt;br /&gt;
|SVG 2 Embroidery||http://svg2embr.wasbo.net/index.php&lt;br /&gt;
|-&lt;br /&gt;
|Nice Charts||https://github.com/Florianjw/NiceCharts||works in 0.91, included in 0.92&lt;br /&gt;
|-&lt;br /&gt;
|Sheet Metal Cone||https://github.com/quirxi/SheetMetalCone/&amp;lt;br /&amp;gt;http://www.quirxi.net/code/python/sheet_metal_cone/overview.html|| already uploaded&lt;br /&gt;
|-&lt;br /&gt;
|Multiple Difference||https://github.com/ryanlerch/inkscape-extension-multiple-difference||strange behaviour (creates a new document, users need to copy the items back into their document), improved version is Multi-Bool extension&lt;br /&gt;
|-&lt;br /&gt;
|Inkscape Animation||https://github.com/ray-hplus/inkscape-animation||[https://github.com/Moini/inkscape-animation Fixed for 0.91 on Linux], not tested on Windows, no licence, author contacted.&lt;br /&gt;
|-&lt;br /&gt;
|Batch Export||https://github.com/ray-hplus/inkscape-batch-export&lt;br /&gt;
|-&lt;br /&gt;
|Tabbed Boxes Living Hinge||http://www.reidb.net/LaserLivingHinges.html&lt;br /&gt;
|-&lt;br /&gt;
|Fix Broken Multi-Line Text||https://github.com/chelobaka/fix-text-lines&lt;br /&gt;
|-&lt;br /&gt;
|Multi-Bool||https://github.com/Moini/inkscape-extensions-multi-bool||already uploaded&lt;br /&gt;
|-&lt;br /&gt;
|Boxmaker||http://hackaday.com/2012/07/26/box-maker-extension-for-inkscape/&lt;br /&gt;
|-&lt;br /&gt;
|Hershey Text||http://www.evilmadscientist.com/2011/hershey-text-an-inkscape-extension-for-engraving-fonts/||included in 0.91&lt;br /&gt;
|-&lt;br /&gt;
|Inkscape to PovRay||http://www.arakne.es/en/dessign/3d/inkscape-svg2pov-exporting-svg-files-to-povray/&amp;lt;br /&amp;gt;https://inkscape.org/en/gallery/item/4442/#c446&lt;br /&gt;
|-&lt;br /&gt;
|Shapes||http://www.arakne.es/en/dessign/inkscape-python-extension-shapes/&amp;lt;br /&amp;gt;https://inkscape.org/en/gallery/item/4436/&lt;br /&gt;
|-&lt;br /&gt;
|Tables||http://sourceforge.net/projects/inkscape-tables/&lt;br /&gt;
|-&lt;br /&gt;
|Inkscape to OpenSCAD Converter v6||http://www.thingiverse.com/thing:25036&lt;br /&gt;
|-&lt;br /&gt;
|Font4OpenSCAD||http://www.thingiverse.com/thing:50444&lt;br /&gt;
|-&lt;br /&gt;
|Write.SCAD||http://www.thingiverse.com/thing:16193&lt;br /&gt;
|-&lt;br /&gt;
|The EggBot Extensions||http://wiki.evilmadscientist.com/The_Eggbot_Extensions&lt;br /&gt;
|-&lt;br /&gt;
|InkCut||http://inkcut.sourceforge.net/ and https://sourceforge.net/projects/inkcut/&lt;br /&gt;
|-&lt;br /&gt;
|Set ViewBox||http://pernsteiner.org/inkscape/viewbox/||can be set via document properties in 0.92&lt;br /&gt;
|-&lt;br /&gt;
|JPG Export||https://github.com/giacmir/Inkscape-JPEG-export-extension||works in 0.91&lt;br /&gt;
|-&lt;br /&gt;
|Render Living Hinge||http://wiki.lvl1.org/Inkscape_Extension_to_Render_a_Living_Hinge&amp;lt;br /&amp;gt;https://github.com/drphonon/Inkscape_LivingHinge&lt;br /&gt;
|-&lt;br /&gt;
|Optical Rotary Encoder Discs||http://www.dgkelectronics.com/inkscape-extension-for-creating-optical-rotary-encoder-discs/&amp;lt;br /&amp;gt;https://github.com/Hyvok/Inkscape-rotary-encoder-disk-generator&lt;br /&gt;
|-&lt;br /&gt;
|Embroidery||https://github.com/stesie/inkscape-embroidery||not working on ubuntu 12.04 with inkscape 0.48.3.1&lt;br /&gt;
|-&lt;br /&gt;
|Hyphenation||http://thottingal.in/blog/2009/10/03/inkscape-hyphenation-extension/&amp;lt;br /&amp;gt;https://github.com/santhoshtr/inkscape-hyphenation&lt;br /&gt;
|-&lt;br /&gt;
|Laser Engraver||http://www.instructables.com/id/Pocket-laser-engraver/step7/Getting-the-software-ready/&amp;lt;br /&amp;gt;http://www.slackersdelight.com/instructables/laserengraver.zip&lt;br /&gt;
|-&lt;br /&gt;
|Colorblindness||http://kaioa.com/node/91||Filter to simulate colorblindness available in 0.92&lt;br /&gt;
|-&lt;br /&gt;
|Scour||http://www.codedread.com/scour/||already included in Inkscape 0.91 and previous versions as Save as -&amp;gt; Optimized SVG&lt;br /&gt;
|-&lt;br /&gt;
|Bobbin Lace||http://web.uvic.ca/~vmi/laceTools/Inkscape1/inkscape1.html&lt;br /&gt;
|-&lt;br /&gt;
|Polyhedra Nets||http://www.fabhub.net/entry.php?27-Polyhedra-addiction&amp;amp;goto=next&lt;br /&gt;
|-&lt;br /&gt;
|GIF Animate||https://mccormick.cx/news/entries/inkscape-animation&lt;br /&gt;
|-&lt;br /&gt;
|DeviantART||http://doctormo.org/2011/05/19/deviantart-plugins-released/||doesn't work yet&lt;br /&gt;
|-&lt;br /&gt;
|9 Patch||https://inkscapeninepatch.codeplex.com/&lt;br /&gt;
|-&lt;br /&gt;
|Linerider||http://recusantmind.50webs.com/&lt;br /&gt;
|-&lt;br /&gt;
|Scale Generator||https://github.com/cskulkarni/inkscapescalegenerator&lt;br /&gt;
|-&lt;br /&gt;
|Scale Generator||https://github.com/pulsar256/inkscapescalegenerator&lt;br /&gt;
|-&lt;br /&gt;
|Render Scale||https://github.com/brathering82/inkscape&lt;br /&gt;
|-&lt;br /&gt;
|XIA||http://xia.dane.ac-versailles.fr/index_en.html||already on extensions page&lt;br /&gt;
|-&lt;br /&gt;
|Plasma Rename||http://notmart.org/index.php/Graphics/Easier_Plasma_themes_creation&lt;br /&gt;
|-&lt;br /&gt;
|Bullets||https://ongardie.net/blog/inkscape-bullets/&lt;br /&gt;
|-&lt;br /&gt;
|Placeholder||https://github.com/Xaviju/inkscape-placeholder||already on extensions page&lt;br /&gt;
|-&lt;br /&gt;
|Gear and Sproket Profiles||https://github.com/attoparsec/inkscape-extensions&lt;br /&gt;
|-&lt;br /&gt;
|Kabeja DXF Import Filter||http://kabeja.sourceforge.net/docs/projects/inkscape.html||Java extn&lt;br /&gt;
|-&lt;br /&gt;
|Raster2Laser Gcode Generator||https://github.com/305engineering/Inkscape&lt;br /&gt;
|-&lt;br /&gt;
|Countersheet||https://github.com/lifelike/countersheetsextension&amp;lt;br /&amp;gt;https://boardgamegeek.com/thread/299033/inkscape-extensions-boardgame-development&lt;br /&gt;
|-&lt;br /&gt;
|Hexmap||https://github.com/lifelike/hexmapextension&amp;lt;br /&amp;gt;https://boardgamegeek.com/thread/299033/inkscape-extensions-boardgame-development&lt;br /&gt;
|-&lt;br /&gt;
|Embed and Crop||http://cellbio.emory.edu/bnanes/svg-embed-and-crop/&amp;lt;br /&amp;gt;https://github.com/bnanes/svg-embed-and-crop||Java extn&lt;br /&gt;
|-&lt;br /&gt;
|WaterColorBot||http://wiki.evilmadscientist.com/WaterColorBot and http://watercolorbot.com/&lt;br /&gt;
|-&lt;br /&gt;
|Unicorn||http://www.thingiverse.com/thing:5986&amp;lt;br /&amp;gt;https://github.com/martymcguire/inkscape-unicorn&lt;br /&gt;
|-&lt;br /&gt;
|Big Blue Saw DXF Export||http://www.bigbluesaw.com/saw/big-blue-saw-blog/general-updates/big-blue-saws-dxf-export-for-inkscape.html&lt;br /&gt;
|-&lt;br /&gt;
|List Fonts||https://tamentis.com/hacks/inkscape/&lt;br /&gt;
|-&lt;br /&gt;
|Shirt Waist||http://www.taumeta.org/?page_id=247&lt;br /&gt;
|-&lt;br /&gt;
|Remove Guides||http://screencasters.heathenx.org/blog/2009/06/09/inkscape-extension-remove-guides/comment-page-1/&lt;br /&gt;
|-&lt;br /&gt;
|Speleo3||https://github.com/speleo3/inkscape-speleo&lt;br /&gt;
|-&lt;br /&gt;
|3D to SVG||http://www.thomas-holder.de/projects/3dtosvg/&lt;br /&gt;
|-&lt;br /&gt;
|Skencil Import||http://www.filewatcher.com/d/openSUSE/x86_64/Productivity/Graphics/Vector%20Editors/inkscape-extensions-skencil-0.48.1-5.1.x86_64.rpm.11242.html&lt;br /&gt;
|-&lt;br /&gt;
|RealScale||https://github.com/Moini/inkscape-realscale-extension/||works in 0.91, already uploaded&lt;br /&gt;
|-&lt;br /&gt;
|Better DXF Output||http://www.bobcookdev.com/inkscape/inkscape-dxf.html&lt;br /&gt;
|-&lt;br /&gt;
|Better Better DXF Output||http://tim.cexx.org/?p=590&lt;br /&gt;
|-&lt;br /&gt;
|Inkscape-Silhouette||https://github.com/fablabnbg/inkscape-silhouette&lt;br /&gt;
|-&lt;br /&gt;
|THLaser||https://github.com/lansing-makers-network/thlaser-inkscape-plugin&amp;lt;br /&amp;gt;https://github.com/parogers/thlaser&lt;br /&gt;
|-&lt;br /&gt;
|Android Export||https://github.com/ChristianBecker/inkscape-android-export&lt;br /&gt;
|-&lt;br /&gt;
|Android Export||https://github.com/headsortailsgames/androidexport||might be same as above?&lt;br /&gt;
|-&lt;br /&gt;
|Ink2Canvas||https://github.com/hacktoon/ink2canvas&lt;br /&gt;
|-&lt;br /&gt;
|OpenSCAD Polygon Output||https://github.com/martymcguire/inkscape-openscad-poly&lt;br /&gt;
|-&lt;br /&gt;
|Layer Slicer||https://github.com/mattharrison/Inkscape-Slicer-Extension&lt;br /&gt;
|-&lt;br /&gt;
|SVGO||https://github.com/juanfran/svgo-inkscape&lt;br /&gt;
|-&lt;br /&gt;
|Spine Exporter||https://github.com/kbristow/InkscapeSpineExporter&lt;br /&gt;
|-&lt;br /&gt;
|Spine Exporter||https://github.com/jleclanche/inkscape-spine-exporter&lt;br /&gt;
|-&lt;br /&gt;
|Boxmaker||https://github.com/hellerbarde/inkscape-boxmaker||should be considered a fork of the original BoxMaker at http://www.keppel.demon.co.uk/111000/111000.html &lt;br /&gt;
|-&lt;br /&gt;
|Mockup Machine||https://github.com/keinerweiss/InkscapeMockupMachine&lt;br /&gt;
|-&lt;br /&gt;
|MrBeam||https://github.com/mrbeam/mrbeam-inkscape-ext&lt;br /&gt;
|-&lt;br /&gt;
|Onionskin||https://github.com/lingo/inkscape_onionskin&lt;br /&gt;
|-&lt;br /&gt;
|Checkerboards||https://github.com/jeffkayser/inkscape-checkerboard&lt;br /&gt;
|-&lt;br /&gt;
|Rack Gear||https://github.com/braingram/inkscape_rack_gear&lt;br /&gt;
|-&lt;br /&gt;
|Write TeX||https://github.com/wanglongqi/WriteTeX&lt;br /&gt;
|-&lt;br /&gt;
|KM Laser Bundle||https://github.com/KnoxMakers/KM-Laser&lt;br /&gt;
|-&lt;br /&gt;
|Measure All Paths||https://github.com/dustinandrews/InkscapeExtensions&lt;br /&gt;
|-&lt;br /&gt;
|InkMerge||https://github.com/bitterjug/inkmerge&lt;br /&gt;
|-&lt;br /&gt;
|Connect the Dots||https://github.com/HereticPilgrim/inkscape-connectthedots&lt;br /&gt;
|-&lt;br /&gt;
|Grids||https://github.com/cds4/inkscape-grids&lt;br /&gt;
|-&lt;br /&gt;
|OpenSCAD-DXF-Exporter||https://github.com/brad/Inkscape-OpenSCAD-DXF-Export&amp;lt;br /&amp;gt;http://www.thingiverse.com/thing:14221&lt;br /&gt;
|-&lt;br /&gt;
|SVG2SIF||https://github.com/nikitakit/svg2sif||historical - no longer needed since Inkscape natively exports SIF now&lt;br /&gt;
|-&lt;br /&gt;
|SVG2CSS||https://github.com/shogo82148/svg2css&lt;br /&gt;
|-&lt;br /&gt;
|Multiscale||https://github.com/bcbnz/inkscape-multiscale&lt;br /&gt;
|-&lt;br /&gt;
|Inkscape Navigator||https://github.com/kaleidos/inkscape-navigator&lt;br /&gt;
|-&lt;br /&gt;
|Multi-Page PDF Export||https://github.com/wvengen/inkscape-addons/tree/master/extensions&lt;br /&gt;
|-&lt;br /&gt;
|Bansai||https://github.com/larscwallin/bansai&lt;br /&gt;
|-&lt;br /&gt;
|Export to Roland CutStudio||https://github.com/mgmax/inkscape-roland-cutstudio&lt;br /&gt;
|-&lt;br /&gt;
|Modela Engravers||https://github.com/matthewbeckler/modela_inkscape_extension&lt;br /&gt;
|-&lt;br /&gt;
|FabLab Extensions||https://github.com/bumblebeefr/fablab-inkscape-plugins&lt;br /&gt;
|-&lt;br /&gt;
|Isometric Projection||https://github.com/jdhoek/inkscape-isometric-projection&lt;br /&gt;
|-&lt;br /&gt;
|Laser Plugin for Attractor Makerspace||https://github.com/attraktorhh/inkscape_laserplugin&lt;br /&gt;
|-&lt;br /&gt;
|Apply Transforms||https://github.com/Klowner/inkscape-applytransforms&lt;br /&gt;
|-&lt;br /&gt;
|Grid Strip Creator||https://github.com/fablabnbg/inkscape-gridstripcreator&lt;br /&gt;
|-&lt;br /&gt;
|Guides Creator||https://github.com/Ale-/inkscape-gs&lt;br /&gt;
|-&lt;br /&gt;
|Label Annotations||https://github.com/davidosterberg/inkscape-label&lt;br /&gt;
|-&lt;br /&gt;
|Compute Centroids||https://github.com/thedatachef/inkscape-centroid&lt;br /&gt;
|-&lt;br /&gt;
|Underline Text||https://github.com/mcjohnalds/inkscape-underlinetext&lt;br /&gt;
|-&lt;br /&gt;
|Tabbed Boxmaker||https://github.com/paulh-rnd/TabbedBoxMaker||one of several boxmaker extns, not sure how many are duplicates&lt;br /&gt;
|-&lt;br /&gt;
|Generator||https://github.com/galou/inkscape_generator||similar to http://wiki.inkscape.org/wiki/index.php/Extension_repository#Generator&lt;br /&gt;
|-&lt;br /&gt;
|QR Codes||https://github.com/alawibaba/inkscape-qrcode||needs to be compared with updated, included QR-Code generator in 0.92&lt;br /&gt;
|-&lt;br /&gt;
|Dimensioning||https://github.com/Rutzmoser/inkscape_dimensioning&lt;br /&gt;
|-&lt;br /&gt;
|SphereBot Gcode||https://github.com/firebovine/inkscape-spherebot&amp;lt;br /&amp;gt;http://www.thingiverse.com/thing:7656||modified version of Unicorn extension (https://github.com/martymcguire/inkscape-unicorn)&lt;br /&gt;
|-&lt;br /&gt;
|Cricut Pre-Processor||https://github.com/mdtopham/inkscape_cricut&lt;br /&gt;
|-&lt;br /&gt;
|TCNC||https://github.com/utlco/tcnc&lt;br /&gt;
|-&lt;br /&gt;
|GIMP PSD||https://github.com/junichi11/gimp_psd&lt;br /&gt;
|-&lt;br /&gt;
|Inkscape2JSON||https://github.com/shanadeshana/Inkscape2JSON&lt;br /&gt;
|-&lt;br /&gt;
|SVG2tikz||https://github.com/kjellmf/svg2tikz||might be same as https://github.com/Alwnikrotikz/inkscape2tikz and maybe this?? https://github.com/halamalala/inkscape2tikz&lt;br /&gt;
|-&lt;br /&gt;
|EuroRack Panel Designer||https://github.com/THX2112/Eurorack-Panel-Designer&lt;br /&gt;
|-&lt;br /&gt;
|Elliptical Box Maker||https://github.com/BvdP/elliptical-box-maker&lt;br /&gt;
|-&lt;br /&gt;
|Render Globe||https://github.com/hoday/InkscapeRenderGlobeExtension&lt;br /&gt;
|-&lt;br /&gt;
|Ctrl-Cut||https://github.com/Metalab/ctrl-cut-inkscape&lt;br /&gt;
|-&lt;br /&gt;
|Android Icon Export||https://github.com/kokufu/inkscape-android-icons-export&lt;br /&gt;
|-&lt;br /&gt;
|Uke Chord Dictionary||https://github.com/marcosfeijoo/inkscape-uke-chord-dictionary&lt;br /&gt;
|-&lt;br /&gt;
|Uke Chord Maker||https://github.com/marcosfeijoo/inkscape-uke-chord-maker&lt;br /&gt;
|-&lt;br /&gt;
|Glue||https://github.com/mrsalo/inkscape_glue_extension&lt;br /&gt;
|-&lt;br /&gt;
|Import Grace (ARG)||https://github.com/patrickbwarren/inkscape-grace-import&lt;br /&gt;
|-&lt;br /&gt;
|Kerf Correction||https://github.com/braingram/inkscape_kerf_correction&lt;br /&gt;
|-&lt;br /&gt;
|Custom Iterator||https://github.com/sgmanohar/inkscape_custom_iterator&lt;br /&gt;
|-&lt;br /&gt;
|Pattern Extnsions||https://github.com/lis-epfl/inkscape_pattern_extensions&lt;br /&gt;
|-&lt;br /&gt;
|LaserCut Designs||https://github.com/zerjillo/laserCutInkscapeExtensions&lt;br /&gt;
|-&lt;br /&gt;
|LaserCut DXF||https://github.com/MakeICT/inkscape-lasercut-dxf&lt;br /&gt;
|-&lt;br /&gt;
|Batch Effect||https://github.com/jturner314/inkscape-batch-effect&lt;br /&gt;
|-&lt;br /&gt;
|Chord Box Maker||https://github.com/marcosfeijoo/inkscape-chord-box-maker&lt;br /&gt;
|-&lt;br /&gt;
|Animation||https://github.com/nathanjent/inkscape-animation-extension&amp;lt;br /&amp;gt;https://github.com/savra57/inkscape-animation-extension||several extensions in 1&lt;br /&gt;
|-&lt;br /&gt;
|Drawer Cabinet Maker||https://github.com/ThoreMehr/inkscape-DrawerCabinetMaker&lt;br /&gt;
|-&lt;br /&gt;
|Due Laser||https://github.com/justdue/Plugin-inkscape&lt;br /&gt;
|-&lt;br /&gt;
|Batch Export PNG, SVG||https://github.com/ray-hplus/inkscape-batch-export&lt;br /&gt;
|-&lt;br /&gt;
|Formaker Laser||https://github.com/TobiasBodewig/Inkscape-FormakerLaser-Plugin&lt;br /&gt;
|-&lt;br /&gt;
|Laser Engraver Gcode||https://github.com/ringo2k/laserengraverInkscapeplugin&lt;br /&gt;
|-&lt;br /&gt;
|Slider Electrodes Generator||https://github.com/henningpohl/Inkscape-Slider-Electrode-Generator&lt;br /&gt;
|-&lt;br /&gt;
|Export Survex SVX||https://github.com/patrickbwarren/inkscape-survex-export&lt;br /&gt;
|-&lt;br /&gt;
|Chain Paths||https://github.com/fablabnbg/inkscape-chain-paths&lt;br /&gt;
|-&lt;br /&gt;
|Laser Cut Sequence||https://github.com/L0laapk3/inkscape-laser-sequence-extension&lt;br /&gt;
|-&lt;br /&gt;
|Deep Ungroup||https://github.com/cw/inkscape-ungroup-deep&lt;br /&gt;
|-&lt;br /&gt;
|Text Generator||https://github.com/Xaviju/inkscape-text-generator||WIP&lt;br /&gt;
|-&lt;br /&gt;
|Link SVG||https://github.com/fsantini/inkscape_LinkSVG&lt;br /&gt;
|-&lt;br /&gt;
|Proto Ready||https://github.com/droid001/ProtoReady&lt;br /&gt;
|-&lt;br /&gt;
|InkSlides||https://github.com/rainwoodman/inkslides&lt;br /&gt;
|-&lt;br /&gt;
|XeTexText||https://github.com/virrapax/XeTexText&lt;br /&gt;
|-&lt;br /&gt;
|Armature||https://github.com/brianbv/armature&lt;br /&gt;
|-&lt;br /&gt;
|InkFlex||https://github.com/gamecide/inkflex&lt;br /&gt;
|-&lt;br /&gt;
|DXF2SVG||https://github.com/duckinator/dxf2svg&lt;br /&gt;
|-&lt;br /&gt;
|DXF2SVG||https://github.com/mduggan/dxf2svg||might be the same as above, not sure&lt;br /&gt;
|-&lt;br /&gt;
|OpenTabbedBoxMaker||https://github.com/ThoreMehr/inkscape-OpenTabbedBoxMaker&lt;br /&gt;
|-&lt;br /&gt;
|SVG Slice||https://github.com/lee-b/svgslice&lt;br /&gt;
|-&lt;br /&gt;
|Extract Elements||https://github.com/larscwallin/ExtractElements&lt;br /&gt;
|-&lt;br /&gt;
|Ink2SCAD||https://github.com/nickthecoder/ink2scad&lt;br /&gt;
|-&lt;br /&gt;
|Cubify||https://github.com/Phidelux/Cubify&lt;br /&gt;
|-&lt;br /&gt;
|Path AutoNotch||https://github.com/BvdP/path_autonotch&lt;br /&gt;
|-&lt;br /&gt;
|Patterns||https://github.com/kirchner/patterns||sewing patterns&lt;br /&gt;
|-&lt;br /&gt;
|InkCutter||https://github.com/slandis/InkCutter&lt;br /&gt;
|-&lt;br /&gt;
|Gdadin||https://github.com/Alpt/gdadin&lt;br /&gt;
|-&lt;br /&gt;
|SVG2SCAD||https://github.com/Spiritdude/SVG2SCAD&lt;br /&gt;
|-&lt;br /&gt;
|Gradient Stop||https://github.com/etiennelaurin/gradient_stop&lt;br /&gt;
|-&lt;br /&gt;
|Inkex SVG Guitar Chord||https://github.com/pablus/Inkex_svgGuitarChord&lt;br /&gt;
|-&lt;br /&gt;
|Hardy Hershey Text||https://github.com/HardRainbow/Hardy-Hershey-Text&lt;br /&gt;
|-&lt;br /&gt;
|Create Sketch Layer||https://github.com/larscwallin/CreateSketchLayerINX&lt;br /&gt;
|-&lt;br /&gt;
|SVG Presenter - InsertMovie||https://github.com/mmpi/SvgPresenter/tree/master/inkscapeExtensions&lt;br /&gt;
|-&lt;br /&gt;
|CloneAlongPath||https://github.com/esuarezsantana/clonealongpath&lt;br /&gt;
|-&lt;br /&gt;
|Ink2SmartCanvas||https://github.com/CWBudde/Ink2SmartCanvas&lt;br /&gt;
|-&lt;br /&gt;
|UUID Labeller||https://github.com/cfobel/uuid_labeller&lt;br /&gt;
|-&lt;br /&gt;
|InkData Table||https://github.com/adamlabadorf/inkdatatable&lt;br /&gt;
|-&lt;br /&gt;
|Paths2OpenSCAD||https://github.com/d0d63/paths2openscad&lt;br /&gt;
|-&lt;br /&gt;
|EggBot Extensions for Egg Duino||https://github.com/bartebor/eggbot_extensions&lt;br /&gt;
|-&lt;br /&gt;
|HeightMapMaker||https://github.com/gebhardtkevin/HeightMapMaker&lt;br /&gt;
|-&lt;br /&gt;
|Heidengrave||https://github.com/johnerlandsson/Heidengrave&lt;br /&gt;
|-&lt;br /&gt;
|Split||https://github.com/hacktoon/split&lt;br /&gt;
|-&lt;br /&gt;
|Triangulate||https://github.com/nicolaromano/triangulate&lt;br /&gt;
|-&lt;br /&gt;
|Render Axis||https://github.com/nicolaromano/render_axis&lt;br /&gt;
|-&lt;br /&gt;
|Fibonacci Pattern||https://github.com/mostekcm/beautyfullday_fibonaccipattern&lt;br /&gt;
|-&lt;br /&gt;
|LaserEngraverFor3DPrinter||https://github.com/roboticseq/laserengraverFor3DPrinter&lt;br /&gt;
|-&lt;br /&gt;
|PDF2Pub||https://github.com/lchamon/pdf2pub&lt;br /&gt;
|-&lt;br /&gt;
|PreCut||https://github.com/starshipfactory/precut&lt;br /&gt;
|-&lt;br /&gt;
|Box4Robot||https://github.com/1i7/box4robot&lt;br /&gt;
|-&lt;br /&gt;
|J-Tech-Photonics-Laser-Tool||https://github.com/A-Metaphysical-Drama/J-Tech-Photonics-Laser-Tool&lt;br /&gt;
|-&lt;br /&gt;
|InkSyntax||https://github.com/etlapale/inksyntax&lt;br /&gt;
|-&lt;br /&gt;
|Delete Above||https://github.com/glvnst/delete_above&lt;br /&gt;
|-&lt;br /&gt;
|P2p2json||https://github.com/lifelike/p2p2json&lt;br /&gt;
|-&lt;br /&gt;
|Frustifier||https://github.com/kitschysynq/frustifier&lt;br /&gt;
|-&lt;br /&gt;
|Shelves (CNC)||https://github.com/BvdP/shelves&lt;br /&gt;
|-&lt;br /&gt;
|Figure Digitizer Extensions||https://github.com/ToreAad/FigureDigitizer&lt;br /&gt;
|-&lt;br /&gt;
|Export Layer Combinations||https://github.com/fluffware/export_layer_combinations&lt;br /&gt;
|-&lt;br /&gt;
|Embroidery||https://github.com/garfieldkass/embroidery&lt;br /&gt;
|-&lt;br /&gt;
|Hotwire||https://github.com/florianfesti/hotwire&lt;br /&gt;
|-&lt;br /&gt;
|CSV Output||https://github.com/tbekolay/csv_output&lt;br /&gt;
|-&lt;br /&gt;
|Tabbed Intersections||https://github.com/dsysko/tabbed_intersections&lt;br /&gt;
|-&lt;br /&gt;
|Destructive Clip||https://github.com/funnypolynomial/DestructiveClip&lt;br /&gt;
|-&lt;br /&gt;
|Ink2FXL||https://github.com/pettarin/ink2fxl&lt;br /&gt;
|-&lt;br /&gt;
|InkImpress||https://github.com/rools32/InkImpress||JessyInk fork&lt;br /&gt;
|-&lt;br /&gt;
|przerabiator||https://github.com/mazakodron/przerabiator||non-English, unable to translate&lt;br /&gt;
|-&lt;br /&gt;
|Fabric.js Components||https://github.com/hers-belgrade/fabric.js_components&lt;br /&gt;
|-&lt;br /&gt;
|rePresent||https://github.com/JensBee/rePresent&lt;br /&gt;
|-&lt;br /&gt;
|Dopplemaker||https://github.com/lisjump/dopplemaker&lt;br /&gt;
|-&lt;br /&gt;
|Pyjagrid||https://github.com/yannlossouarn/Pyjagrid&lt;br /&gt;
|-&lt;br /&gt;
|Centerline Trace||https://github.com/fablabnbg/inkscape-centerline-trace&lt;br /&gt;
|-&lt;br /&gt;
|ExportPresentation||https://github.com/fbianco/InkscapeExportPresentation&lt;br /&gt;
|-&lt;br /&gt;
|Views||https://github.com/patricktoohey/InkscapeExtensions/tree/master/Views&lt;br /&gt;
|-&lt;br /&gt;
|Prune Gradients||https://github.com/patricktoohey/InkscapeExtensions/tree/master/Cleanup&lt;br /&gt;
|-&lt;br /&gt;
|Animation||https://github.com/pedrosacramento/inkscape-animation&lt;br /&gt;
|-&lt;br /&gt;
|Dots||https://github.com/Neon22/inkscape_extensions&lt;br /&gt;
|-&lt;br /&gt;
|Zoetrope||https://github.com/Neon22/inkscape-Zoetrope||already uploaded&lt;br /&gt;
|-&lt;br /&gt;
|Bobbinlace||https://github.com/d-bl/inkscape-bobbinlace||several extns&lt;br /&gt;
|-&lt;br /&gt;
|Gcode||https://github.com/jstenback/inkscape-gcode&lt;br /&gt;
|-&lt;br /&gt;
|I Learn and Play||https://github.com/robvandenbogaard/I-learn-and-play-Inkscape&lt;br /&gt;
|-&lt;br /&gt;
|3D Open SCAD||https://github.com/tdasse/gdesign-inkscape||several&lt;br /&gt;
|-&lt;br /&gt;
|Sudoku||https://github.com/neocogent/inkscape-sudoku&lt;br /&gt;
|-&lt;br /&gt;
|ChartScape||https://github.com/caiosba/inkscape-chartscape&lt;br /&gt;
|-&lt;br /&gt;
|PHN Output||https://github.com/tatt61880/phn_output&lt;br /&gt;
|-&lt;br /&gt;
|Visicut||https://github.com/aur-archive/inkscape-extension-visicut&lt;br /&gt;
|-&lt;br /&gt;
|Replace Font||https://github.com/oaa36/inkscape-replace-font&lt;br /&gt;
|-&lt;br /&gt;
|LiveLink||https://github.com/livelink/livelink-inkscape-extensions&lt;br /&gt;
|-&lt;br /&gt;
|Grid-Maker||https://github.com/sambody/inkscape-grid-maker&lt;br /&gt;
|-&lt;br /&gt;
|Musical Scale Generator||https://github.com/piroxiljin/inkscape-music-scale-generator||original from googlecode repo&lt;br /&gt;
|-&lt;br /&gt;
|Musical Scale Generator||https://github.com/triAlexIljin/inkscape-music-scale-generator|| out of date - useabove&lt;br /&gt;
|-&lt;br /&gt;
|SVG2JPG||https://github.com/sepastian/inkscape-svg2jpg&lt;br /&gt;
|-&lt;br /&gt;
|VC1520||https://github.com/nanoflite/inkscape-VC1520&lt;br /&gt;
|-&lt;br /&gt;
|Laser Engraver||https://github.com/FlexiLee/laserengraver&lt;br /&gt;
|-&lt;br /&gt;
|PlotInk||https://github.com/evil-mad/plotink||helpers for EggBot extns&lt;br /&gt;
|-&lt;br /&gt;
|EqTexSVG||https://github.com/julienvitard/eqtexsvg&lt;br /&gt;
|-&lt;br /&gt;
|Tileset-Tools||https://github.com/PatrickKennedy/tileset-tools&lt;br /&gt;
|-&lt;br /&gt;
|Fibonacci Pattern||https://sourceforge.net/projects/fibonacci-pattern-inkscape-ext/||might be same as Fibonacci Pattern further above?&lt;br /&gt;
|-&lt;br /&gt;
|TimInk||https://sourceforge.net/projects/timink/&lt;br /&gt;
|-&lt;br /&gt;
|InkPlot||https://sourceforge.net/projects/inkplot/&lt;br /&gt;
|-&lt;br /&gt;
|sVgLE||https://sourceforge.net/projects/svgle1/&lt;br /&gt;
|-&lt;br /&gt;
|Shape Creator||http://inkscapeextensionshapecreator.sourceforge.net/&lt;br /&gt;
|-&lt;br /&gt;
|Python Iterator||http://inkscapepythoni.sourceforge.net/&lt;br /&gt;
|-&lt;br /&gt;
|QML Exporter||http://qmlexporter.sourceforge.net/&lt;br /&gt;
|-&lt;br /&gt;
|O-Scape||http://o-scape.sourceforge.net/&lt;br /&gt;
|-&lt;br /&gt;
|Wirecutter||http://sourceforge.net/projects/wirecutter-inkscape-plugin&lt;br /&gt;
|-&lt;br /&gt;
|not sure?||http://www.inkscapeforum.com/viewtopic.php?p=89409#p89409||just noticed this on a forum - seems to be an improved version, but I'm not sure which extension it improves&lt;br /&gt;
|-&lt;br /&gt;
|O-Scape||http://www.nopesport.com/news/1343-o-scape-free-orienteering-mapping-software and https://sourceforge.net/projects/o-scape/||it's said to work with 0.48, extension set for mapping for orienteering&lt;br /&gt;
|-&lt;br /&gt;
|||The following seem to be &amp;quot;personal&amp;quot; extensions.&amp;lt;br /&amp;gt;It's not clear whether they are made for wide use or not, or whether they work or not.&amp;lt;br /&amp;gt;Or they may duplicate others in this list.&lt;br /&gt;
|-&lt;br /&gt;
|||https://github.com/scottkirkwood/scott-inkscape&lt;br /&gt;
|-&lt;br /&gt;
|||https://github.com/ghoreishi75/scott-inkscape&lt;br /&gt;
|-&lt;br /&gt;
|||https://github.com/tophsic/inkscape-extensions&lt;br /&gt;
|-&lt;br /&gt;
|||https://github.com/pmosakowski/inkscape-extensions&lt;br /&gt;
|-&lt;br /&gt;
|||https://github.com/twitwi/inkscape-extension-set&lt;br /&gt;
|-&lt;br /&gt;
|||https://github.com/Metaphore/inkscape-mtphr-extensions&lt;br /&gt;
|-&lt;br /&gt;
|Scale to Size||https://github.com/vovythevov/inskcape_extensions&lt;br /&gt;
|-&lt;br /&gt;
|||The following are questionable.  They either call themselves extensions (or plugins)&amp;lt;br /&amp;gt; but don't have INX files, or they're in a language I can't read.&amp;lt;br /&amp;gt;One claims to be a repository of extensions but is empty.&amp;lt;br /&amp;gt;But I thought worth a mention, just in case.  You can decide :-)&lt;br /&gt;
|-&lt;br /&gt;
|VIM Insert||https://github.com/Bercio/vim-inkscape-insert&lt;br /&gt;
|-&lt;br /&gt;
|||https://github.com/boris-r-v/inksa||all in Russian (I think)&lt;br /&gt;
|-&lt;br /&gt;
|TlxGDL||http://tlxgdl.sourceforge.net/&lt;br /&gt;
|-&lt;br /&gt;
|InkStuff||https://sourceforge.net/projects/inkstuff/&lt;br /&gt;
|-&lt;br /&gt;
|SAGE-SCADA Animation Graphic Editor||https://sourceforge.net/projects/sage-scada/&lt;br /&gt;
|-&lt;br /&gt;
|||&lt;br /&gt;
|-&lt;br /&gt;
|||&lt;br /&gt;
|-&lt;br /&gt;
|||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Neon22</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Inkscape_Extensions&amp;diff=100011</id>
		<title>Inkscape Extensions</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Inkscape_Extensions&amp;diff=100011"/>
		<updated>2016-06-14T12:05:15Z</updated>

		<summary type="html">&lt;p&gt;Neon22: musical scale note&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a working list of all known ''external'' Inkscape extensions, with a link to where it can be downloaded.  It's part of a project to have all or as many extensions as possible available on the website (https://inkscape.org/en/download/addons/).  So it will be changing over time.  Note that it does Not include the extensions listed on this page http://wiki.inkscape.org/wiki/index.php/Extension_repository.&lt;br /&gt;
&lt;br /&gt;
If anyone knows of extensions which are not on either list, please let us know.  (You can contact me [http://forum.inkscapecommunity.com/index.php?action=contact here].)&lt;br /&gt;
&lt;br /&gt;
Fyi, ~suv's list is here:  https://gist.github.com/su-v/9965739&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;color: black; width: 100%;&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 15%;&amp;quot;|&lt;br /&gt;
'''Name'''&lt;br /&gt;
| style=&amp;quot;width: 50%;&amp;quot;|&lt;br /&gt;
'''Links'''&lt;br /&gt;
| style=&amp;quot;width: 35%;&amp;quot;|&lt;br /&gt;
'''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
|Draw Lab Equipment||https://github.com/jcaude/SVGMapping/tree/master/inkscape/extensions||has known unit issue, no license&lt;br /&gt;
|-&lt;br /&gt;
|Reselect Multiple Objects (Add classes)||http://www.inkscapeforum.com/viewtopic.php?f=5&amp;amp;t=18483&amp;amp;p=69760#p69752||Adds CSS classes to and removes them from selected objects, works great in 0.91. GPLv2+. Author: Mark Crutch&lt;br /&gt;
|-&lt;br /&gt;
|Bezier Envelope Extension||https://github.com/shlomif/Bezier-Envelope-for-Inkscape||Works in 0.91, deforms an object to fit into a curved envelope (the default extension ignores curves), GPLv2+, Shlomi is not the original author.&lt;br /&gt;
|-&lt;br /&gt;
|PSD Import||http://pernsteiner.org/inkscape/psd_import/&lt;br /&gt;
|-&lt;br /&gt;
|PDF/CMYK Exporter||http://wiki.inkscape.org/wiki/index.php/ExportPDFCMYK||doesn't work in 0.91&lt;br /&gt;
|-&lt;br /&gt;
|PDF/TIFF CMYK Export||http://wiki.softwarelivre.org/InkscapeBrasil/ExportarPDFCMYK&amp;lt;br /&amp;gt;http://wiki.softwarelivre.org/InkscapeBrasil/ExportarTIFFCMYK||neither works in 0.91&lt;br /&gt;
|-&lt;br /&gt;
|Inkscape OutputPRO||http://jonata.org/inkscape/outputpro/&amp;lt;br /&amp;gt;http://www.inkscapeforum.com/viewtopic.php?f=11&amp;amp;t=5943&amp;amp;start=25#p45043||under development&lt;br /&gt;
|-&lt;br /&gt;
|Inkscape Guide Tools||https://github.com/sambody/inkscape-guide-tools||GPLv2, works very well in 0.91 - creates margin guides, grid guides, centered guides and can also remove either horizontal, vertical or angled guides&lt;br /&gt;
|-&lt;br /&gt;
|Tabbed Boxmaker||http://www.inkscapeforum.com/viewtopic.php?p=38785&lt;br /&gt;
|-&lt;br /&gt;
|Image Aligner||https://bitbucket.org/matyilona/imagealigner&amp;lt;br /&amp;gt;http://www.inkscapeforum.com/viewtopic.php?f=31&amp;amp;t=19207&lt;br /&gt;
|-&lt;br /&gt;
|InkTan||https://github.com/Rhysun/inkTan||Draws tangents between two circles. Does not draw tangents between ellipses (despite the error message telling something different). Works in 0.91, GPLv3+.&lt;br /&gt;
|-&lt;br /&gt;
|Convert to SVG Font||http://myscrappinginspiration.blogspot.no/2015/01/extension-to-simplify-font-creating.html&lt;br /&gt;
|-&lt;br /&gt;
|Remove Redundant Lines||https://bugs.launchpad.net/inkscape/+bug/521988/+attachment/1144117/+files/removeredundant.inx&amp;lt;br /&amp;gt;https://bugs.launchpad.net/inkscape/+bug/521988/+attachment/1150930/+files/removeredundant.py||works in 0.91&lt;br /&gt;
|-&lt;br /&gt;
|Multiple Pages||http://sourceforge.net/projects/inkscape-pages/&lt;br /&gt;
|-&lt;br /&gt;
|Export Node Coordinates||http://www.inkscapeforum.com/viewtopic.php?f=5&amp;amp;t=8826||doesn't work in 0.91&lt;br /&gt;
|-&lt;br /&gt;
|InkPACKING||https://github.com/Moini/inkpacking&amp;lt;br /&amp;gt;http://www.inkscapeforum.com/viewtopic.php?p=75710#p75710||works in 0.91, GPLv2&lt;br /&gt;
|-&lt;br /&gt;
|SVG 2 Embroidery||http://svg2embr.wasbo.net/index.php&lt;br /&gt;
|-&lt;br /&gt;
|Nice Charts||https://github.com/Florianjw/NiceCharts||works in 0.91, included in 0.92&lt;br /&gt;
|-&lt;br /&gt;
|Sheet Metal Cone||https://github.com/quirxi/SheetMetalCone/&amp;lt;br /&amp;gt;http://www.quirxi.net/code/python/sheet_metal_cone/overview.html|| already uploaded&lt;br /&gt;
|-&lt;br /&gt;
|Multiple Difference||https://github.com/ryanlerch/inkscape-extension-multiple-difference||strange behaviour (creates a new document, users need to copy the items back into their document), improved version is Multi-Bool extension&lt;br /&gt;
|-&lt;br /&gt;
|Inkscape Animation||https://github.com/ray-hplus/inkscape-animation||[https://github.com/Moini/inkscape-animation Fixed for 0.91 on Linux], not tested on Windows, no licence, author contacted.&lt;br /&gt;
|-&lt;br /&gt;
|Batch Export||https://github.com/ray-hplus/inkscape-batch-export&lt;br /&gt;
|-&lt;br /&gt;
|Tabbed Boxes Living Hinge||http://www.reidb.net/LaserLivingHinges.html&lt;br /&gt;
|-&lt;br /&gt;
|Fix Broken Multi-Line Text||https://github.com/chelobaka/fix-text-lines&lt;br /&gt;
|-&lt;br /&gt;
|Multi-Bool||https://github.com/Moini/inkscape-extensions-multi-bool||already uploaded&lt;br /&gt;
|-&lt;br /&gt;
|Boxmaker||http://hackaday.com/2012/07/26/box-maker-extension-for-inkscape/&lt;br /&gt;
|-&lt;br /&gt;
|Hershey Text||http://www.evilmadscientist.com/2011/hershey-text-an-inkscape-extension-for-engraving-fonts/||included in 0.91&lt;br /&gt;
|-&lt;br /&gt;
|Inkscape to PovRay||http://www.arakne.es/en/dessign/3d/inkscape-svg2pov-exporting-svg-files-to-povray/&amp;lt;br /&amp;gt;https://inkscape.org/en/gallery/item/4442/#c446&lt;br /&gt;
|-&lt;br /&gt;
|Shapes||http://www.arakne.es/en/dessign/inkscape-python-extension-shapes/&amp;lt;br /&amp;gt;https://inkscape.org/en/gallery/item/4436/&lt;br /&gt;
|-&lt;br /&gt;
|Tables||http://sourceforge.net/projects/inkscape-tables/&lt;br /&gt;
|-&lt;br /&gt;
|Inkscape to OpenSCAD Converter v6||http://www.thingiverse.com/thing:25036&lt;br /&gt;
|-&lt;br /&gt;
|Font4OpenSCAD||http://www.thingiverse.com/thing:50444&lt;br /&gt;
|-&lt;br /&gt;
|Write.SCAD||http://www.thingiverse.com/thing:16193&lt;br /&gt;
|-&lt;br /&gt;
|The EggBot Extensions||http://wiki.evilmadscientist.com/The_Eggbot_Extensions&lt;br /&gt;
|-&lt;br /&gt;
|InkCut||http://inkcut.sourceforge.net/ and https://sourceforge.net/projects/inkcut/&lt;br /&gt;
|-&lt;br /&gt;
|Set ViewBox||http://pernsteiner.org/inkscape/viewbox/||can be set via document properties in 0.92&lt;br /&gt;
|-&lt;br /&gt;
|JPG Export||https://github.com/giacmir/Inkscape-JPEG-export-extension||works in 0.91&lt;br /&gt;
|-&lt;br /&gt;
|Render Living Hinge||http://wiki.lvl1.org/Inkscape_Extension_to_Render_a_Living_Hinge&amp;lt;br /&amp;gt;https://github.com/drphonon/Inkscape_LivingHinge&lt;br /&gt;
|-&lt;br /&gt;
|Optical Rotary Encoder Discs||http://www.dgkelectronics.com/inkscape-extension-for-creating-optical-rotary-encoder-discs/&amp;lt;br /&amp;gt;https://github.com/Hyvok/Inkscape-rotary-encoder-disk-generator&lt;br /&gt;
|-&lt;br /&gt;
|Embroidery||https://github.com/stesie/inkscape-embroidery||not working on ubuntu 12.04 with inkscape 0.48.3.1&lt;br /&gt;
|-&lt;br /&gt;
|Hyphenation||http://thottingal.in/blog/2009/10/03/inkscape-hyphenation-extension/&amp;lt;br /&amp;gt;https://github.com/santhoshtr/inkscape-hyphenation&lt;br /&gt;
|-&lt;br /&gt;
|Laser Engraver||http://www.instructables.com/id/Pocket-laser-engraver/step7/Getting-the-software-ready/&amp;lt;br /&amp;gt;http://www.slackersdelight.com/instructables/laserengraver.zip&lt;br /&gt;
|-&lt;br /&gt;
|Colorblindness||http://kaioa.com/node/91||Filter to simulate colorblindness available in 0.92&lt;br /&gt;
|-&lt;br /&gt;
|Scour||http://www.codedread.com/scour/||already included in Inkscape 0.91 and previous versions as Save as -&amp;gt; Optimized SVG&lt;br /&gt;
|-&lt;br /&gt;
|Bobbin Lace||http://web.uvic.ca/~vmi/laceTools/Inkscape1/inkscape1.html&lt;br /&gt;
|-&lt;br /&gt;
|Polyhedra Nets||http://www.fabhub.net/entry.php?27-Polyhedra-addiction&amp;amp;goto=next&lt;br /&gt;
|-&lt;br /&gt;
|GIF Animate||https://mccormick.cx/news/entries/inkscape-animation&lt;br /&gt;
|-&lt;br /&gt;
|DeviantART||http://doctormo.org/2011/05/19/deviantart-plugins-released/||doesn't work yet&lt;br /&gt;
|-&lt;br /&gt;
|9 Patch||https://inkscapeninepatch.codeplex.com/&lt;br /&gt;
|-&lt;br /&gt;
|Linerider||http://recusantmind.50webs.com/&lt;br /&gt;
|-&lt;br /&gt;
|Scale Generator||https://github.com/cskulkarni/inkscapescalegenerator&lt;br /&gt;
|-&lt;br /&gt;
|Scale Generator||https://github.com/pulsar256/inkscapescalegenerator&lt;br /&gt;
|-&lt;br /&gt;
|Render Scale||https://github.com/brathering82/inkscape&lt;br /&gt;
|-&lt;br /&gt;
|XIA||http://xia.dane.ac-versailles.fr/index_en.html||already on extensions page&lt;br /&gt;
|-&lt;br /&gt;
|Plasma Rename||http://notmart.org/index.php/Graphics/Easier_Plasma_themes_creation&lt;br /&gt;
|-&lt;br /&gt;
|Bullets||https://ongardie.net/blog/inkscape-bullets/&lt;br /&gt;
|-&lt;br /&gt;
|Placeholder||https://github.com/Xaviju/inkscape-placeholder||already on extensions page&lt;br /&gt;
|-&lt;br /&gt;
|Gear and Sproket Profiles||https://github.com/attoparsec/inkscape-extensions&lt;br /&gt;
|-&lt;br /&gt;
|Kabeja DXF Import Filter||http://kabeja.sourceforge.net/docs/projects/inkscape.html||Java extn&lt;br /&gt;
|-&lt;br /&gt;
|Raster2Laser Gcode Generator||https://github.com/305engineering/Inkscape&lt;br /&gt;
|-&lt;br /&gt;
|Countersheet||https://github.com/lifelike/countersheetsextension&amp;lt;br /&amp;gt;https://boardgamegeek.com/thread/299033/inkscape-extensions-boardgame-development&lt;br /&gt;
|-&lt;br /&gt;
|Hexmap||https://github.com/lifelike/hexmapextension&amp;lt;br /&amp;gt;https://boardgamegeek.com/thread/299033/inkscape-extensions-boardgame-development&lt;br /&gt;
|-&lt;br /&gt;
|Embed and Crop||http://cellbio.emory.edu/bnanes/svg-embed-and-crop/&amp;lt;br /&amp;gt;https://github.com/bnanes/svg-embed-and-crop||Java extn&lt;br /&gt;
|-&lt;br /&gt;
|WaterColorBot||http://wiki.evilmadscientist.com/WaterColorBot and http://watercolorbot.com/&lt;br /&gt;
|-&lt;br /&gt;
|Unicorn||http://www.thingiverse.com/thing:5986&amp;lt;br /&amp;gt;https://github.com/martymcguire/inkscape-unicorn&lt;br /&gt;
|-&lt;br /&gt;
|Big Blue Saw DXF Export||http://www.bigbluesaw.com/saw/big-blue-saw-blog/general-updates/big-blue-saws-dxf-export-for-inkscape.html&lt;br /&gt;
|-&lt;br /&gt;
|List Fonts||https://tamentis.com/hacks/inkscape/&lt;br /&gt;
|-&lt;br /&gt;
|Shirt Waist||http://www.taumeta.org/?page_id=247&lt;br /&gt;
|-&lt;br /&gt;
|Remove Guides||http://screencasters.heathenx.org/blog/2009/06/09/inkscape-extension-remove-guides/comment-page-1/&lt;br /&gt;
|-&lt;br /&gt;
|Speleo3||https://github.com/speleo3/inkscape-speleo&lt;br /&gt;
|-&lt;br /&gt;
|3D to SVG||http://www.thomas-holder.de/projects/3dtosvg/&lt;br /&gt;
|-&lt;br /&gt;
|Skencil Import||http://www.filewatcher.com/d/openSUSE/x86_64/Productivity/Graphics/Vector%20Editors/inkscape-extensions-skencil-0.48.1-5.1.x86_64.rpm.11242.html&lt;br /&gt;
|-&lt;br /&gt;
|RealScale||https://github.com/Moini/inkscape-realscale-extension/||works in 0.91, already uploaded&lt;br /&gt;
|-&lt;br /&gt;
|Better DXF Output||http://www.bobcookdev.com/inkscape/inkscape-dxf.html&lt;br /&gt;
|-&lt;br /&gt;
|Better Better DXF Output||http://tim.cexx.org/?p=590&lt;br /&gt;
|-&lt;br /&gt;
|Inkscape-Silhouette||https://github.com/fablabnbg/inkscape-silhouette&lt;br /&gt;
|-&lt;br /&gt;
|THLaser||https://github.com/lansing-makers-network/thlaser-inkscape-plugin&amp;lt;br /&amp;gt;https://github.com/parogers/thlaser&lt;br /&gt;
|-&lt;br /&gt;
|Android Export||https://github.com/ChristianBecker/inkscape-android-export&lt;br /&gt;
|-&lt;br /&gt;
|Android Export||https://github.com/headsortailsgames/androidexport||might be same as above?&lt;br /&gt;
|-&lt;br /&gt;
|Ink2Canvas||https://github.com/hacktoon/ink2canvas&lt;br /&gt;
|-&lt;br /&gt;
|OpenSCAD Polygon Output||https://github.com/martymcguire/inkscape-openscad-poly&lt;br /&gt;
|-&lt;br /&gt;
|Layer Slicer||https://github.com/mattharrison/Inkscape-Slicer-Extension&lt;br /&gt;
|-&lt;br /&gt;
|SVGO||https://github.com/juanfran/svgo-inkscape&lt;br /&gt;
|-&lt;br /&gt;
|Spine Exporter||https://github.com/kbristow/InkscapeSpineExporter&lt;br /&gt;
|-&lt;br /&gt;
|Spine Exporter||https://github.com/jleclanche/inkscape-spine-exporter&lt;br /&gt;
|-&lt;br /&gt;
|Boxmaker||https://github.com/hellerbarde/inkscape-boxmaker||should be considered a fork of the original BoxMaker at http://www.keppel.demon.co.uk/111000/111000.html &lt;br /&gt;
|-&lt;br /&gt;
|Mockup Machine||https://github.com/keinerweiss/InkscapeMockupMachine&lt;br /&gt;
|-&lt;br /&gt;
|MrBeam||https://github.com/mrbeam/mrbeam-inkscape-ext&lt;br /&gt;
|-&lt;br /&gt;
|Onionskin||https://github.com/lingo/inkscape_onionskin&lt;br /&gt;
|-&lt;br /&gt;
|Checkerboards||https://github.com/jeffkayser/inkscape-checkerboard&lt;br /&gt;
|-&lt;br /&gt;
|Rack Gear||https://github.com/braingram/inkscape_rack_gear&lt;br /&gt;
|-&lt;br /&gt;
|Write TeX||https://github.com/wanglongqi/WriteTeX&lt;br /&gt;
|-&lt;br /&gt;
|KM Laser Bundle||https://github.com/KnoxMakers/KM-Laser&lt;br /&gt;
|-&lt;br /&gt;
|Measure All Paths||https://github.com/dustinandrews/InkscapeExtensions&lt;br /&gt;
|-&lt;br /&gt;
|InkMerge||https://github.com/bitterjug/inkmerge&lt;br /&gt;
|-&lt;br /&gt;
|Connect the Dots||https://github.com/HereticPilgrim/inkscape-connectthedots&lt;br /&gt;
|-&lt;br /&gt;
|Grids||https://github.com/cds4/inkscape-grids&lt;br /&gt;
|-&lt;br /&gt;
|OpenSCAD-DXF-Exporter||https://github.com/brad/Inkscape-OpenSCAD-DXF-Export&amp;lt;br /&amp;gt;http://www.thingiverse.com/thing:14221&lt;br /&gt;
|-&lt;br /&gt;
|SVG2SIF||https://github.com/nikitakit/svg2sif||historical - no longer needed since Inkscape natively exports SIF now&lt;br /&gt;
|-&lt;br /&gt;
|SVG2CSS||https://github.com/shogo82148/svg2css&lt;br /&gt;
|-&lt;br /&gt;
|Multiscale||https://github.com/bcbnz/inkscape-multiscale&lt;br /&gt;
|-&lt;br /&gt;
|Inkscape Navigator||https://github.com/kaleidos/inkscape-navigator&lt;br /&gt;
|-&lt;br /&gt;
|Multi-Page PDF Export||https://github.com/wvengen/inkscape-addons/tree/master/extensions&lt;br /&gt;
|-&lt;br /&gt;
|Bansai||https://github.com/larscwallin/bansai&lt;br /&gt;
|-&lt;br /&gt;
|Export to Roland CutStudio||https://github.com/mgmax/inkscape-roland-cutstudio&lt;br /&gt;
|-&lt;br /&gt;
|Modela Engravers||https://github.com/matthewbeckler/modela_inkscape_extension&lt;br /&gt;
|-&lt;br /&gt;
|FabLab Extensions||https://github.com/bumblebeefr/fablab-inkscape-plugins&lt;br /&gt;
|-&lt;br /&gt;
|Isometric Projection||https://github.com/jdhoek/inkscape-isometric-projection&lt;br /&gt;
|-&lt;br /&gt;
|Laser Plugin for Attractor Makerspace||https://github.com/attraktorhh/inkscape_laserplugin&lt;br /&gt;
|-&lt;br /&gt;
|Apply Transforms||https://github.com/Klowner/inkscape-applytransforms&lt;br /&gt;
|-&lt;br /&gt;
|Grid Strip Creator||https://github.com/fablabnbg/inkscape-gridstripcreator&lt;br /&gt;
|-&lt;br /&gt;
|Guides Creator||https://github.com/Ale-/inkscape-gs&lt;br /&gt;
|-&lt;br /&gt;
|Label Annotations||https://github.com/davidosterberg/inkscape-label&lt;br /&gt;
|-&lt;br /&gt;
|Compute Centroids||https://github.com/thedatachef/inkscape-centroid&lt;br /&gt;
|-&lt;br /&gt;
|Underline Text||https://github.com/mcjohnalds/inkscape-underlinetext&lt;br /&gt;
|-&lt;br /&gt;
|Tabbed Boxmaker||https://github.com/paulh-rnd/TabbedBoxMaker||one of several boxmaker extns, not sure how many are duplicates&lt;br /&gt;
|-&lt;br /&gt;
|Generator||https://github.com/galou/inkscape_generator||similar to http://wiki.inkscape.org/wiki/index.php/Extension_repository#Generator&lt;br /&gt;
|-&lt;br /&gt;
|QR Codes||https://github.com/alawibaba/inkscape-qrcode||needs to be compared with updated, included QR-Code generator in 0.92&lt;br /&gt;
|-&lt;br /&gt;
|Dimensioning||https://github.com/Rutzmoser/inkscape_dimensioning&lt;br /&gt;
|-&lt;br /&gt;
|SphereBot Gcode||https://github.com/firebovine/inkscape-spherebot&amp;lt;br /&amp;gt;http://www.thingiverse.com/thing:7656||modified version of Unicorn extension (https://github.com/martymcguire/inkscape-unicorn)&lt;br /&gt;
|-&lt;br /&gt;
|Cricut Pre-Processor||https://github.com/mdtopham/inkscape_cricut&lt;br /&gt;
|-&lt;br /&gt;
|TCNC||https://github.com/utlco/tcnc&lt;br /&gt;
|-&lt;br /&gt;
|GIMP PSD||https://github.com/junichi11/gimp_psd&lt;br /&gt;
|-&lt;br /&gt;
|Inkscape2JSON||https://github.com/shanadeshana/Inkscape2JSON&lt;br /&gt;
|-&lt;br /&gt;
|SVG2tikz||https://github.com/kjellmf/svg2tikz||might be same as https://github.com/Alwnikrotikz/inkscape2tikz and maybe this?? https://github.com/halamalala/inkscape2tikz&lt;br /&gt;
|-&lt;br /&gt;
|EuroRack Panel Designer||https://github.com/THX2112/Eurorack-Panel-Designer&lt;br /&gt;
|-&lt;br /&gt;
|Elliptical Box Maker||https://github.com/BvdP/elliptical-box-maker&lt;br /&gt;
|-&lt;br /&gt;
|Render Globe||https://github.com/hoday/InkscapeRenderGlobeExtension&lt;br /&gt;
|-&lt;br /&gt;
|Ctrl-Cut||https://github.com/Metalab/ctrl-cut-inkscape&lt;br /&gt;
|-&lt;br /&gt;
|Android Icon Export||https://github.com/kokufu/inkscape-android-icons-export&lt;br /&gt;
|-&lt;br /&gt;
|Uke Chord Dictionary||https://github.com/marcosfeijoo/inkscape-uke-chord-dictionary&lt;br /&gt;
|-&lt;br /&gt;
|Uke Chord Maker||https://github.com/marcosfeijoo/inkscape-uke-chord-maker&lt;br /&gt;
|-&lt;br /&gt;
|Glue||https://github.com/mrsalo/inkscape_glue_extension&lt;br /&gt;
|-&lt;br /&gt;
|Import Grace (ARG)||https://github.com/patrickbwarren/inkscape-grace-import&lt;br /&gt;
|-&lt;br /&gt;
|Kerf Correction||https://github.com/braingram/inkscape_kerf_correction&lt;br /&gt;
|-&lt;br /&gt;
|Custom Iterator||https://github.com/sgmanohar/inkscape_custom_iterator&lt;br /&gt;
|-&lt;br /&gt;
|Pattern Extnsions||https://github.com/lis-epfl/inkscape_pattern_extensions&lt;br /&gt;
|-&lt;br /&gt;
|LaserCut Designs||https://github.com/zerjillo/laserCutInkscapeExtensions&lt;br /&gt;
|-&lt;br /&gt;
|LaserCut DXF||https://github.com/MakeICT/inkscape-lasercut-dxf&lt;br /&gt;
|-&lt;br /&gt;
|Bezier-Envelope||https://github.com/shlomif/Bezier-Envelope-for-Inkscape&lt;br /&gt;
|-&lt;br /&gt;
|Batch Effect||https://github.com/jturner314/inkscape-batch-effect&lt;br /&gt;
|-&lt;br /&gt;
|Chord Box Maker||https://github.com/marcosfeijoo/inkscape-chord-box-maker&lt;br /&gt;
|-&lt;br /&gt;
|Animation||https://github.com/nathanjent/inkscape-animation-extension&amp;lt;br /&amp;gt;https://github.com/savra57/inkscape-animation-extension||several extensions in 1&lt;br /&gt;
|-&lt;br /&gt;
|Drawer Cabinet Maker||https://github.com/ThoreMehr/inkscape-DrawerCabinetMaker&lt;br /&gt;
|-&lt;br /&gt;
|Due Laser||https://github.com/justdue/Plugin-inkscape&lt;br /&gt;
|-&lt;br /&gt;
|Batch Export PNG, SVG||https://github.com/ray-hplus/inkscape-batch-export&lt;br /&gt;
|-&lt;br /&gt;
|Formaker Laser||https://github.com/TobiasBodewig/Inkscape-FormakerLaser-Plugin&lt;br /&gt;
|-&lt;br /&gt;
|Laser Engraver Gcode||https://github.com/ringo2k/laserengraverInkscapeplugin&lt;br /&gt;
|-&lt;br /&gt;
|Slider Electrodes Generator||https://github.com/henningpohl/Inkscape-Slider-Electrode-Generator&lt;br /&gt;
|-&lt;br /&gt;
|Export Survex SVX||https://github.com/patrickbwarren/inkscape-survex-export&lt;br /&gt;
|-&lt;br /&gt;
|Chain Paths||https://github.com/fablabnbg/inkscape-chain-paths&lt;br /&gt;
|-&lt;br /&gt;
|Laser Cut Sequence||https://github.com/L0laapk3/inkscape-laser-sequence-extension&lt;br /&gt;
|-&lt;br /&gt;
|Deep Ungroup||https://github.com/cw/inkscape-ungroup-deep&lt;br /&gt;
|-&lt;br /&gt;
|Text Generator||https://github.com/Xaviju/inkscape-text-generator||WIP&lt;br /&gt;
|-&lt;br /&gt;
|Link SVG||https://github.com/fsantini/inkscape_LinkSVG&lt;br /&gt;
|-&lt;br /&gt;
|Proto Ready||https://github.com/droid001/ProtoReady&lt;br /&gt;
|-&lt;br /&gt;
|InkSlides||https://github.com/rainwoodman/inkslides&lt;br /&gt;
|-&lt;br /&gt;
|XeTexText||https://github.com/virrapax/XeTexText&lt;br /&gt;
|-&lt;br /&gt;
|Armature||https://github.com/brianbv/armature&lt;br /&gt;
|-&lt;br /&gt;
|InkFlex||https://github.com/gamecide/inkflex&lt;br /&gt;
|-&lt;br /&gt;
|DXF2SVG||https://github.com/duckinator/dxf2svg&lt;br /&gt;
|-&lt;br /&gt;
|DXF2SVG||https://github.com/mduggan/dxf2svg||might be the same as above, not sure&lt;br /&gt;
|-&lt;br /&gt;
|OpenTabbedBoxMaker||https://github.com/ThoreMehr/inkscape-OpenTabbedBoxMaker&lt;br /&gt;
|-&lt;br /&gt;
|SVG Slice||https://github.com/lee-b/svgslice&lt;br /&gt;
|-&lt;br /&gt;
|Extract Elements||https://github.com/larscwallin/ExtractElements&lt;br /&gt;
|-&lt;br /&gt;
|Ink2SCAD||https://github.com/nickthecoder/ink2scad&lt;br /&gt;
|-&lt;br /&gt;
|Cubify||https://github.com/Phidelux/Cubify&lt;br /&gt;
|-&lt;br /&gt;
|Path AutoNotch||https://github.com/BvdP/path_autonotch&lt;br /&gt;
|-&lt;br /&gt;
|Patterns||https://github.com/kirchner/patterns||sewing patterns&lt;br /&gt;
|-&lt;br /&gt;
|InkCutter||https://github.com/slandis/InkCutter&lt;br /&gt;
|-&lt;br /&gt;
|Gdadin||https://github.com/Alpt/gdadin&lt;br /&gt;
|-&lt;br /&gt;
|SVG2SCAD||https://github.com/Spiritdude/SVG2SCAD&lt;br /&gt;
|-&lt;br /&gt;
|Gradient Stop||https://github.com/etiennelaurin/gradient_stop&lt;br /&gt;
|-&lt;br /&gt;
|Inkex SVG Guitar Chord||https://github.com/pablus/Inkex_svgGuitarChord&lt;br /&gt;
|-&lt;br /&gt;
|Hardy Hershey Text||https://github.com/HardRainbow/Hardy-Hershey-Text&lt;br /&gt;
|-&lt;br /&gt;
|Create Sketch Layer||https://github.com/larscwallin/CreateSketchLayerINX&lt;br /&gt;
|-&lt;br /&gt;
|SVG Presenter - InsertMovie||https://github.com/mmpi/SvgPresenter/tree/master/inkscapeExtensions&lt;br /&gt;
|-&lt;br /&gt;
|CloneAlongPath||https://github.com/esuarezsantana/clonealongpath&lt;br /&gt;
|-&lt;br /&gt;
|Ink2SmartCanvas||https://github.com/CWBudde/Ink2SmartCanvas&lt;br /&gt;
|-&lt;br /&gt;
|UUID Labeller||https://github.com/cfobel/uuid_labeller&lt;br /&gt;
|-&lt;br /&gt;
|InkData Table||https://github.com/adamlabadorf/inkdatatable&lt;br /&gt;
|-&lt;br /&gt;
|Paths2OpenSCAD||https://github.com/d0d63/paths2openscad&lt;br /&gt;
|-&lt;br /&gt;
|EggBot Extensions for Egg Duino||https://github.com/bartebor/eggbot_extensions&lt;br /&gt;
|-&lt;br /&gt;
|HeightMapMaker||https://github.com/gebhardtkevin/HeightMapMaker&lt;br /&gt;
|-&lt;br /&gt;
|Heidengrave||https://github.com/johnerlandsson/Heidengrave&lt;br /&gt;
|-&lt;br /&gt;
|Split||https://github.com/hacktoon/split&lt;br /&gt;
|-&lt;br /&gt;
|Triangulate||https://github.com/nicolaromano/triangulate&lt;br /&gt;
|-&lt;br /&gt;
|Render Axis||https://github.com/nicolaromano/render_axis&lt;br /&gt;
|-&lt;br /&gt;
|Fibonacci Pattern||https://github.com/mostekcm/beautyfullday_fibonaccipattern&lt;br /&gt;
|-&lt;br /&gt;
|LaserEngraverFor3DPrinter||https://github.com/roboticseq/laserengraverFor3DPrinter&lt;br /&gt;
|-&lt;br /&gt;
|PDF2Pub||https://github.com/lchamon/pdf2pub&lt;br /&gt;
|-&lt;br /&gt;
|PreCut||https://github.com/starshipfactory/precut&lt;br /&gt;
|-&lt;br /&gt;
|Box4Robot||https://github.com/1i7/box4robot&lt;br /&gt;
|-&lt;br /&gt;
|J-Tech-Photonics-Laser-Tool||https://github.com/A-Metaphysical-Drama/J-Tech-Photonics-Laser-Tool&lt;br /&gt;
|-&lt;br /&gt;
|InkSyntax||https://github.com/etlapale/inksyntax&lt;br /&gt;
|-&lt;br /&gt;
|Delete Above||https://github.com/glvnst/delete_above&lt;br /&gt;
|-&lt;br /&gt;
|P2p2json||https://github.com/lifelike/p2p2json&lt;br /&gt;
|-&lt;br /&gt;
|Frustifier||https://github.com/kitschysynq/frustifier&lt;br /&gt;
|-&lt;br /&gt;
|Shelves (CNC)||https://github.com/BvdP/shelves&lt;br /&gt;
|-&lt;br /&gt;
|Figure Digitizer Extensions||https://github.com/ToreAad/FigureDigitizer&lt;br /&gt;
|-&lt;br /&gt;
|Export Layer Combinations||https://github.com/fluffware/export_layer_combinations&lt;br /&gt;
|-&lt;br /&gt;
|Embroidery||https://github.com/garfieldkass/embroidery&lt;br /&gt;
|-&lt;br /&gt;
|Hotwire||https://github.com/florianfesti/hotwire&lt;br /&gt;
|-&lt;br /&gt;
|CSV Output||https://github.com/tbekolay/csv_output&lt;br /&gt;
|-&lt;br /&gt;
|Tabbed Intersections||https://github.com/dsysko/tabbed_intersections&lt;br /&gt;
|-&lt;br /&gt;
|Destructive Clip||https://github.com/funnypolynomial/DestructiveClip&lt;br /&gt;
|-&lt;br /&gt;
|Ink2FXL||https://github.com/pettarin/ink2fxl&lt;br /&gt;
|-&lt;br /&gt;
|InkImpress||https://github.com/rools32/InkImpress||JessyInk fork&lt;br /&gt;
|-&lt;br /&gt;
|przerabiator||https://github.com/mazakodron/przerabiator||non-English, unable to translate&lt;br /&gt;
|-&lt;br /&gt;
|Fabric.js Components||https://github.com/hers-belgrade/fabric.js_components&lt;br /&gt;
|-&lt;br /&gt;
|rePresent||https://github.com/JensBee/rePresent&lt;br /&gt;
|-&lt;br /&gt;
|Dopplemaker||https://github.com/lisjump/dopplemaker&lt;br /&gt;
|-&lt;br /&gt;
|Pyjagrid||https://github.com/yannlossouarn/Pyjagrid&lt;br /&gt;
|-&lt;br /&gt;
|Centerline Trace||https://github.com/fablabnbg/inkscape-centerline-trace&lt;br /&gt;
|-&lt;br /&gt;
|ExportPresentation||https://github.com/fbianco/InkscapeExportPresentation&lt;br /&gt;
|-&lt;br /&gt;
|Views||https://github.com/patricktoohey/InkscapeExtensions/tree/master/Views&lt;br /&gt;
|-&lt;br /&gt;
|Prune Gradients||https://github.com/patricktoohey/InkscapeExtensions/tree/master/Cleanup&lt;br /&gt;
|-&lt;br /&gt;
|Animation||https://github.com/pedrosacramento/inkscape-animation&lt;br /&gt;
|-&lt;br /&gt;
|Dots||https://github.com/Neon22/inkscape_extensions&lt;br /&gt;
|-&lt;br /&gt;
|Zoetrope||https://github.com/Neon22/inkscape-Zoetrope||already uploaded&lt;br /&gt;
|-&lt;br /&gt;
|Bobbinlace||https://github.com/d-bl/inkscape-bobbinlace||several extns&lt;br /&gt;
|-&lt;br /&gt;
|Gcode||https://github.com/jstenback/inkscape-gcode&lt;br /&gt;
|-&lt;br /&gt;
|I Learn and Play||https://github.com/robvandenbogaard/I-learn-and-play-Inkscape&lt;br /&gt;
|-&lt;br /&gt;
|3D Open SCAD||https://github.com/tdasse/gdesign-inkscape||several&lt;br /&gt;
|-&lt;br /&gt;
|Sudoku||https://github.com/neocogent/inkscape-sudoku&lt;br /&gt;
|-&lt;br /&gt;
|ChartScape||https://github.com/caiosba/inkscape-chartscape&lt;br /&gt;
|-&lt;br /&gt;
|PHN Output||https://github.com/tatt61880/phn_output&lt;br /&gt;
|-&lt;br /&gt;
|Visicut||https://github.com/aur-archive/inkscape-extension-visicut&lt;br /&gt;
|-&lt;br /&gt;
|Replace Font||https://github.com/oaa36/inkscape-replace-font&lt;br /&gt;
|-&lt;br /&gt;
|LiveLink||https://github.com/livelink/livelink-inkscape-extensions&lt;br /&gt;
|-&lt;br /&gt;
|Grid-Maker||https://github.com/sambody/inkscape-grid-maker&lt;br /&gt;
|-&lt;br /&gt;
|Musical Scale Generator||https://github.com/piroxiljin/inkscape-music-scale-generator||original from googlecode repo&lt;br /&gt;
|-&lt;br /&gt;
|Musical Scale Generator||https://github.com/triAlexIljin/inkscape-music-scale-generator|| out of date - useabove&lt;br /&gt;
|-&lt;br /&gt;
|SVG2JPG||https://github.com/sepastian/inkscape-svg2jpg&lt;br /&gt;
|-&lt;br /&gt;
|VC1520||https://github.com/nanoflite/inkscape-VC1520&lt;br /&gt;
|-&lt;br /&gt;
|Laser Engraver||https://github.com/FlexiLee/laserengraver&lt;br /&gt;
|-&lt;br /&gt;
|PlotInk||https://github.com/evil-mad/plotink||helpers for EggBot extns&lt;br /&gt;
|-&lt;br /&gt;
|EqTexSVG||https://github.com/julienvitard/eqtexsvg&lt;br /&gt;
|-&lt;br /&gt;
|Tileset-Tools||https://github.com/PatrickKennedy/tileset-tools&lt;br /&gt;
|-&lt;br /&gt;
|Fibonacci Pattern||https://sourceforge.net/projects/fibonacci-pattern-inkscape-ext/||might be same as Fibonacci Pattern further above?&lt;br /&gt;
|-&lt;br /&gt;
|TimInk||https://sourceforge.net/projects/timink/&lt;br /&gt;
|-&lt;br /&gt;
|InkPlot||https://sourceforge.net/projects/inkplot/&lt;br /&gt;
|-&lt;br /&gt;
|sVgLE||https://sourceforge.net/projects/svgle1/&lt;br /&gt;
|-&lt;br /&gt;
|Shape Creator||http://inkscapeextensionshapecreator.sourceforge.net/&lt;br /&gt;
|-&lt;br /&gt;
|Python Iterator||http://inkscapepythoni.sourceforge.net/&lt;br /&gt;
|-&lt;br /&gt;
|QML Exporter||http://qmlexporter.sourceforge.net/&lt;br /&gt;
|-&lt;br /&gt;
|O-Scape||http://o-scape.sourceforge.net/&lt;br /&gt;
|-&lt;br /&gt;
|Wirecutter||http://sourceforge.net/projects/wirecutter-inkscape-plugin&lt;br /&gt;
|-&lt;br /&gt;
|not sure?||http://www.inkscapeforum.com/viewtopic.php?p=89409#p89409||just noticed this on a forum - seems to be an improved version, but I'm not sure which extension it improves&lt;br /&gt;
|-&lt;br /&gt;
|O-Scape||http://www.nopesport.com/news/1343-o-scape-free-orienteering-mapping-software and https://sourceforge.net/projects/o-scape/||it's said to work with 0.48, extension set for mapping for orienteering&lt;br /&gt;
|-&lt;br /&gt;
|||The following seem to be &amp;quot;personal&amp;quot; extensions.&amp;lt;br /&amp;gt;It's not clear whether they are made for wide use or not, or whether they work or not.&amp;lt;br /&amp;gt;Or they may duplicate others in this list.&lt;br /&gt;
|-&lt;br /&gt;
|||https://github.com/scottkirkwood/scott-inkscape&lt;br /&gt;
|-&lt;br /&gt;
|||https://github.com/ghoreishi75/scott-inkscape&lt;br /&gt;
|-&lt;br /&gt;
|||https://github.com/tophsic/inkscape-extensions&lt;br /&gt;
|-&lt;br /&gt;
|||https://github.com/pmosakowski/inkscape-extensions&lt;br /&gt;
|-&lt;br /&gt;
|||https://github.com/twitwi/inkscape-extension-set&lt;br /&gt;
|-&lt;br /&gt;
|||https://github.com/Metaphore/inkscape-mtphr-extensions&lt;br /&gt;
|-&lt;br /&gt;
|Scale to Size||https://github.com/vovythevov/inskcape_extensions&lt;br /&gt;
|-&lt;br /&gt;
|||The following are questionable.  They either call themselves extensions (or plugins)&amp;lt;br /&amp;gt; but don't have INX files, or they're in a language I can't read.&amp;lt;br /&amp;gt;One claims to be a repository of extensions but is empty.&amp;lt;br /&amp;gt;But I thought worth a mention, just in case.  You can decide :-)&lt;br /&gt;
|-&lt;br /&gt;
|VIM Insert||https://github.com/Bercio/vim-inkscape-insert&lt;br /&gt;
|-&lt;br /&gt;
|||https://github.com/boris-r-v/inksa||all in Russian (I think)&lt;br /&gt;
|-&lt;br /&gt;
|TlxGDL||http://tlxgdl.sourceforge.net/&lt;br /&gt;
|-&lt;br /&gt;
|InkStuff||https://sourceforge.net/projects/inkstuff/&lt;br /&gt;
|-&lt;br /&gt;
|SAGE-SCADA Animation Graphic Editor||https://sourceforge.net/projects/sage-scada/&lt;br /&gt;
|-&lt;br /&gt;
|||&lt;br /&gt;
|-&lt;br /&gt;
|||&lt;br /&gt;
|-&lt;br /&gt;
|||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Neon22</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Extensions:_INX_widgets_and_parameters&amp;diff=99341</id>
		<title>Extensions: INX widgets and parameters</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Extensions:_INX_widgets_and_parameters&amp;diff=99341"/>
		<updated>2016-05-05T06:22:13Z</updated>

		<summary type="html">&lt;p&gt;Neon22: difference between Enum and option group&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here you will find the different parameter elements you may use in your .inx files (Inkscape Extensions)&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Use parameter elements to capture user input for further use by a script. The basic structure of the element is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;param name=&amp;quot;some_name&amp;quot; type=&amp;quot;some_type&amp;quot;&amp;gt;default value&amp;lt;/param&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default value is the value that is shown in the input control the first time the user opens the dialog window. Inkscape automatically displays the values used last time when the dialog window is opened again.&lt;br /&gt;
&lt;br /&gt;
== Common attributes ==&lt;br /&gt;
=== Type ===&lt;br /&gt;
The &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; attribute determines the type of the parameter (possible values are &amp;lt;code&amp;gt;boolean, int, float, string, enum, optiongroup, color, notebook, description&amp;lt;/code&amp;gt;), see the extensive description of [[#Available types|available types]] below.&lt;br /&gt;
&lt;br /&gt;
=== Name ===&lt;br /&gt;
The value of the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; attribute is used as an identifier of the parameter. It has to be unique since the value of this attribute is used to save and transmit parameter values internally!&lt;br /&gt;
&lt;br /&gt;
=== gui-text ===&lt;br /&gt;
Label of the parameter.&lt;br /&gt;
&lt;br /&gt;
To enable translations for this string use the underscore variant (&amp;lt;code&amp;gt;_gui-text&amp;lt;/code&amp;gt;, see [[#Localization of parameters|localization of parameters]] below for details).&lt;br /&gt;
&lt;br /&gt;
=== gui-description ===&lt;br /&gt;
Tooltip of the parameter, which is shown when the user hovers the mouse cursor over the active area of the parameter in question.&lt;br /&gt;
&lt;br /&gt;
To enable translations for this string use the underscore variant (&amp;lt;code&amp;gt;_gui-description &amp;lt;/code&amp;gt;, see [[#Localization of parameters|localization of parameters]] below for details).&lt;br /&gt;
&lt;br /&gt;
=== gui-hidden ===&lt;br /&gt;
If the value is set to &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; the parameter is hidden from the GUI (default to false).&lt;br /&gt;
&lt;br /&gt;
== Available types ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Type&lt;br /&gt;
! Description / Code&lt;br /&gt;
! Result&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! boolean&lt;br /&gt;
|Creates a checkbox input to set a '''boolean value'''. Set the default value to &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;param name=&amp;quot;name&amp;quot; type=&amp;quot;boolean&amp;quot; gui-text=&amp;quot;Some label text&amp;quot;&amp;gt;false&amp;lt;/param&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|[[File:INX_sample-boolean.png]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! int&lt;br /&gt;
|Creates a textbox input to enter an '''integer number'''. Limit the input range with the &amp;lt;code&amp;gt;min&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;max&amp;lt;/code&amp;gt; attributes. (Default: &amp;lt;code&amp;gt;min=&amp;quot;0&amp;quot;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;max=&amp;quot;10&amp;quot;&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;param name=&amp;quot;name&amp;quot; type=&amp;quot;int&amp;quot; min=&amp;quot;1&amp;quot; max=&amp;quot;100&amp;quot; gui-text=&amp;quot;Some label text&amp;quot;&amp;gt;1&amp;lt;/param&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use the attribute &amp;lt;code&amp;gt;appearance=&amp;quot;full&amp;quot;&amp;lt;/code&amp;gt; to create a slider with which the integer value can be adjusted dynamically over the full range.&lt;br /&gt;
|[[File:INX_sample-int.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:INX_sample-int_full.png|240px]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! float&lt;br /&gt;
|Creates a textbox input to enter a '''floating point number'''. Limit the input range with the &amp;lt;code&amp;gt;min&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;max&amp;lt;/code&amp;gt; attributes; set the number of decimal places with the &amp;lt;code&amp;gt;precision&amp;lt;/code&amp;gt; attribute. (Default: &amp;lt;code&amp;gt;min=&amp;quot;0&amp;quot;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;max=&amp;quot;10&amp;quot;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;precision=&amp;quot;1&amp;quot;&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;param name=&amp;quot;name&amp;quot; type=&amp;quot;float&amp;quot; precision=&amp;quot;3&amp;quot; min=&amp;quot;0&amp;quot; max=&amp;quot;9999&amp;quot; &lt;br /&gt;
gui-text=&amp;quot;Some label text&amp;quot;&amp;gt;1.234&amp;lt;/param&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use the attribute &amp;lt;code&amp;gt;appearance=&amp;quot;full&amp;quot;&amp;lt;/code&amp;gt; to create a slider with which the floating point value can be adjusted dynamically over the full range.&lt;br /&gt;
|[[File:INX_sample-float.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:INX_sample-float_full.png|240px]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! string&lt;br /&gt;
|Creates a textbox input to enter a '''character string'''. Limit the number of characters the user is allowed to enter with the &amp;lt;code&amp;gt;max_length&amp;lt;/code&amp;gt; attribute. (Default: no limit)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;param name=&amp;quot;name&amp;quot; type=&amp;quot;string&amp;quot; gui-text=&amp;quot;Some text label&amp;quot;&amp;gt;Some default text&amp;lt;/param&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|[[File:INX_sample-string.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! enum&lt;br /&gt;
|Creates a drop-down list from which '''one predefined value''' can be chosen. The different choices are created with &amp;lt;code&amp;gt;&amp;lt;item&amp;gt;&amp;lt;/code&amp;gt; elements. The first &amp;lt;code&amp;gt;&amp;lt;item&amp;gt;&amp;lt;/code&amp;gt; is selected by default.&lt;br /&gt;
The '''returned value''' for &amp;lt;code&amp;gt;enum&amp;lt;/code&amp;gt; type parameters is the value of the &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; attribute of the selected &amp;lt;code&amp;gt;&amp;lt;item&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;param name=&amp;quot;name&amp;quot; type=&amp;quot;enum&amp;quot; gui-text=&amp;quot;Some label text&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;item value=&amp;quot;1&amp;quot;&amp;gt;First option&amp;lt;/item&amp;gt;&lt;br /&gt;
   &amp;lt;item value=&amp;quot;2&amp;quot;&amp;gt;Second option&amp;lt;/item&amp;gt;&lt;br /&gt;
&amp;lt;/param&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|[[File:INX_sample-enum.png]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! optiongroup&lt;br /&gt;
|Creates a set of radio buttons from which '''one predefined value''' can be chosen. The different choices are created with &amp;lt;code&amp;gt;&amp;lt;option&amp;gt;&amp;lt;/code&amp;gt; elements. The first &amp;lt;code&amp;gt;&amp;lt;option&amp;gt;&amp;lt;/code&amp;gt; is selected by default.&lt;br /&gt;
The '''returned value''' for &amp;lt;code&amp;gt;optiongroup&amp;lt;/code&amp;gt; type parameters is the value of the &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; attribute of the selected &amp;lt;code&amp;gt;&amp;lt;option&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;param name=&amp;quot;name&amp;quot; type=&amp;quot;optiongroup&amp;quot;&lt;br /&gt;
gui-text=&amp;quot;Some label text&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;First option&amp;lt;/option&amp;gt;&lt;br /&gt;
   &amp;lt;option value=&amp;quot;2&amp;quot;&amp;gt;Second option&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;/param&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set the attribute &amp;lt;code&amp;gt;appearance=&amp;quot;minimal&amp;quot;&amp;lt;/code&amp;gt; to display a drop-down list instead of radio buttons.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;small&amp;gt;''The option group will occupy the minimum space on the right hand side of the dialog. Versus the Enum, which expands to fill available space.''&amp;lt;/small&amp;gt;&lt;br /&gt;
|[[File:INX_sample-optiongroup.png]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[[File:INX_sample-optiongroup-minimal.png]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! color&lt;br /&gt;
|Creates a control to select a '''color value'''.&lt;br /&gt;
The '''returned value''' is an RGBA-value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;param name=&amp;quot;name&amp;quot; type=&amp;quot;color&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|[[File:INX_sample-color.png]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! notebook&lt;br /&gt;
|Creates a set of pages (aka tab control). The user can switch between individual pages, each page can contain an arbitrary set of other parameters. Individual pages are created with the &amp;lt;code&amp;gt;&amp;lt;page&amp;gt;&amp;lt;/code&amp;gt; element.&lt;br /&gt;
The '''returned value''' for &amp;lt;code&amp;gt;notebook&amp;lt;/code&amp;gt; type parameters is the value of the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; attribute of the selected &amp;lt;code&amp;gt;&amp;lt;page&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;param name=&amp;quot;name&amp;quot; type=&amp;quot;notebook&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;page name=&amp;quot;page_1&amp;quot; gui-text=&amp;quot;First page&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;param&amp;gt;...&amp;lt;/param&amp;gt;&lt;br /&gt;
    &amp;lt;/page&amp;gt;&lt;br /&gt;
    &amp;lt;page name=&amp;quot;page_2&amp;quot; gui-text=&amp;quot;Second page&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;param&amp;gt;...&amp;lt;/param&amp;gt;&lt;br /&gt;
    &amp;lt;/page&amp;gt;&lt;br /&gt;
&amp;lt;/param&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|[[File:INX_sample-notebook.png]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! description&lt;br /&gt;
|Creates a text element. Specifying the attribute &amp;lt;code&amp;gt;xml:space=&amp;quot;preserve&amp;quot;&amp;lt;/code&amp;gt; preserves whitespace in the text content  of the description and enables multiline text.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;param name=&amp;quot;name&amp;quot; type=&amp;quot;description&amp;quot;&amp;gt;Some text here.&amp;lt;/param&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When additionally setting the attribute &amp;lt;code&amp;gt;appearance=&amp;quot;header&amp;quot;&amp;lt;/code&amp;gt; the text is styled as a heading and can be used as another possibility to group parameters.&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;param name=&amp;quot;name&amp;quot; type=&amp;quot;description&amp;quot; appearance=&amp;quot;header&amp;quot;&amp;gt;Header&amp;lt;/param&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; type parameters are purely informational (they do not return any value). They are intended to be used to provide additional information / help on other parameters (Consider using the &amp;lt;code&amp;gt;gui-description&amp;lt;/code&amp;gt; attribute for short help texts that are specific to a single parameter, though).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|[[File:INX_sample-description.png]]&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;default appearance&amp;lt;/small&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:INX_sample-description_header.png]]&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;with &amp;lt;code&amp;gt;appearance=&amp;quot;header&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Localization of parameters ==&lt;br /&gt;
&lt;br /&gt;
To mark parameters to be included into the translation files (this is done automatically during the build process) there exist special variants of all relevant attributes and tag names that start with an underscore.&lt;br /&gt;
&lt;br /&gt;
* Labels and tooltips can be marked for translation by simply using the attribute names &amp;lt;code&amp;gt;_gui-text&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;_gui-description&amp;lt;/code&amp;gt; instead of their counterparts without underscore.&lt;br /&gt;
* For &amp;lt;code&amp;gt;&amp;lt;item&amp;gt;&amp;lt;/code&amp;gt;s and &amp;lt;code&amp;gt;&amp;lt;option&amp;gt;&amp;lt;/code&amp;gt;s (both of which do not use the attributes just explained) add an underscore to the tag name itself:&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&amp;lt;_item value=&amp;quot;1&amp;quot;&amp;gt;Localized item name&amp;lt;/_item&amp;gt;&amp;lt;/code&amp;gt; and&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&amp;lt;_option value=&amp;quot;1&amp;quot;&amp;gt;Localized option name&amp;lt;/_option&amp;gt;&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
* Also for &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; type (and ''only'' for &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; type!) parameters an underscore is added to the tag name itself:&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&amp;lt;_param type=&amp;quot;description&amp;quot;&amp;gt;Localized text here.&amp;lt;/_param&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;br /&gt;
[[Category:Extensions]]&lt;/div&gt;</summary>
		<author><name>Neon22</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Hackfest2016_Topics&amp;diff=98956</id>
		<title>Hackfest2016 Topics</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Hackfest2016_Topics&amp;diff=98956"/>
		<updated>2016-03-31T23:46:31Z</updated>

		<summary type="html">&lt;p&gt;Neon22: /* Discussions */  add extensions roadmap&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Please add topics you would like to discuss or work you would like to see done at the hackfest.&lt;br /&gt;
&lt;br /&gt;
Other pages: [[Hackfest2016]], [[Hackfest2016 Attendees]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Agenda ==&lt;br /&gt;
&lt;br /&gt;
# Introductions&lt;br /&gt;
# Create Agenda&lt;br /&gt;
# Hacking:&lt;br /&gt;
## Tackle GTK3 flickering bug.&lt;br /&gt;
## Fix rendering artifacts due to tiling (and feTile rendering).&lt;br /&gt;
## Selection - boost multiindex (GSoC project?)&lt;br /&gt;
# Infrastructure:&lt;br /&gt;
## Mailing lists off Sourceforge&lt;br /&gt;
## Git&lt;br /&gt;
## CI&lt;br /&gt;
# Bugs&lt;br /&gt;
# Performance&lt;br /&gt;
# Code Review&lt;br /&gt;
# Code Documentation&lt;br /&gt;
# Roadmap Review&lt;br /&gt;
# Accessibility&lt;br /&gt;
&lt;br /&gt;
== Work pages ==&lt;br /&gt;
&lt;br /&gt;
* [[Killing Livarot]]&lt;br /&gt;
* Coordinate System flip&lt;br /&gt;
* [[Working with CMake]]&lt;br /&gt;
* [[CMake Tasks]]&lt;br /&gt;
&lt;br /&gt;
== Discussions ==&lt;br /&gt;
&lt;br /&gt;
# Fundraising&lt;br /&gt;
## Sponsorship rewards&lt;br /&gt;
# Roadmap&lt;br /&gt;
# Gtk3&lt;br /&gt;
# C++11&lt;br /&gt;
# Refactoring&lt;br /&gt;
# Testing - Switch to Google test&lt;br /&gt;
# Plugins&lt;br /&gt;
# 2Geom Maintenance&lt;br /&gt;
# Hardware Acceleration&lt;br /&gt;
# Community Development&lt;br /&gt;
# Release Process&lt;br /&gt;
# Best route(roadmap) to enabling extensions to have more ability. E.g. Boolean ops. Via Dbus, Python API, ...&lt;/div&gt;</summary>
		<author><name>Neon22</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Extension_repository&amp;diff=97201</id>
		<title>Extension repository</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Extension_repository&amp;diff=97201"/>
		<updated>2015-10-05T10:05:32Z</updated>

		<summary type="html">&lt;p&gt;Neon22: Added Improved Gears&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It would be very useful to have a central Internet repository for Inkscape extensions, in a similar manner to Firefox. This way, Inkscape could update installed extensions from the web site, with no need for the user to know if an extension was updated.&lt;br /&gt;
&lt;br /&gt;
== Extensions ==&lt;br /&gt;
&lt;br /&gt;
===[https://github.com/jnweiger/inkscape-gears-dev ImprovedGears]===&lt;br /&gt;
Greatly improved Gears extension including racks, rings, offsets, metric sizes.&lt;br /&gt;
&lt;br /&gt;
===[https://github.com/Neon22/inkscape-jigsaw InkscapeJigsaw]===&lt;br /&gt;
Create an NxM Jigsaw with randomisation, curve control, a surround and backboard. Optimised for minimal cuts.&lt;br /&gt;
&lt;br /&gt;
===[https://github.com/Neon22/inkscape-LasercutBox InkscapeLasertcutBox]===&lt;br /&gt;
A tabbed box script with kerf adjustment for lasercutters. Minimal packing or perfect fit. Dimples for pressure fit of some materials.&lt;br /&gt;
&lt;br /&gt;
===[[ExtrudeEffect]]===&lt;br /&gt;
Extrude polygons to &amp;quot;3d&amp;quot;, also make &amp;quot;string art&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===[http://wiki.colivre.net/Aurium/InkscapeCalendarShellScript InkscapeCalendarShellScript]===&lt;br /&gt;
Creating calendars sucks or is impractical if you do not have something that automates the process of putting the days organized in blocks of months for you. To format manually is easy, but this extension can help you on this, too. BASH script, works for Win32 with Cygwin.&lt;br /&gt;
&lt;br /&gt;
===[http://wiki.colivre.net/Aurium/InkscapeAreaCuter InkscapeAreaCutter]===&lt;br /&gt;
For web designers. Slice your site design into .png images. (pt_BR)&lt;br /&gt;
&lt;br /&gt;
===[http://www.julienvitard.eu/ EQTeXSVG]===&lt;br /&gt;
Convert an inline LATEX equation into SVG path using Python.&lt;br /&gt;
&lt;br /&gt;
===[http://www.kono.cis.iwate-u.ac.jp/~arakit/inkscape/inklatex.html InkLaTeX]===&lt;br /&gt;
Insert LaTeX text or equations into Inkscape.&lt;br /&gt;
&lt;br /&gt;
===[http://www.iki.fi/pav/software/textext/ TexText]===&lt;br /&gt;
Embed re-editable LaTeX objects into SVG drawings.&lt;br /&gt;
&lt;br /&gt;
===[http://math.univ-lille1.fr/~barraud/Inkscape/pathdeform/ PathDeform]===&lt;br /&gt;
Bend a path according to another one. &lt;br /&gt;
N.B. This extension was added to Inkscape 0.45 as &amp;quot;Pattern along Path&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===[http://www.inkbar.lineaire.net/ InkBar]===&lt;br /&gt;
Create EAN13 bar codes.&lt;br /&gt;
&lt;br /&gt;
===[http://technoargia.free.fr/swftools/ SWF output]===&lt;br /&gt;
Save drawings as SWF. Updated version (compatible with Inkscape 0.48) ist available on [https://gist.github.com/frederik-elwert/1a46f82fce5d3deb7842 GitHub].&lt;br /&gt;
&lt;br /&gt;
===[http://wiki.colivre.net/Aurium/Puff Puff]===&lt;br /&gt;
Fluffs elements! :D&lt;br /&gt;
&lt;br /&gt;
===[http://www.colivre.coop.br/Aurium/InkSudoku Sudoku Generator]===&lt;br /&gt;
Generates a Sudoku square with its solution (''in a small square if you want'').&lt;br /&gt;
&lt;br /&gt;
===[[CalligraphedOutlineFill]]===&lt;br /&gt;
Helps to fill in the inside area of shapes drawn with the Calligraphy tool.&lt;br /&gt;
&lt;br /&gt;
===[http://edlab.die.unipd.it/Site4.html SlotStar]===&lt;br /&gt;
Helps to draw the star of slot of a winding of an electrical machine&lt;br /&gt;
&lt;br /&gt;
===[http://richard.henwood.googlepages.com/inkscapelatexextension inkscapeLatexExtension]===&lt;br /&gt;
Extract text in an SVG drawing to a LaTeX picture environment.&lt;br /&gt;
&lt;br /&gt;
===[http://saws.googlecode.com s.a.w.s]===&lt;br /&gt;
Export an SVG as valid XHTML/CSS files.&lt;br /&gt;
&lt;br /&gt;
===[http://www.colivre.coop.br/Aurium/InkscapeGenerator Generator]===&lt;br /&gt;
Replace text and data to automatically generate files (as PDF, PS, JPG, etc...), based on an SVG template and a data file. ''e.g.'', a CSV file&lt;br /&gt;
&lt;br /&gt;
===[http://code.google.com/p/inkscape2tikz/ TikZ exporter]===&lt;br /&gt;
Export SVG paths as TikZ/PGF code for use with LaTeX.  &lt;br /&gt;
&lt;br /&gt;
===[[FindMatch]]===&lt;br /&gt;
Looks for paths that match the selected path and places all matches on the same layer.&lt;br /&gt;
&lt;br /&gt;
===[http://emilien.tlapale.com/code/inksyntax InkSyntax]===&lt;br /&gt;
A source code syntax highlighter plugin for Inkscape (wrapping [http://pygments.org pygments] and [http://www.andre-simon.de/doku/highlight/en/highlight.html highlight]).&lt;br /&gt;
&lt;br /&gt;
===[http://sites.google.com/site/placeonpath/ Place Objects on Path]===&lt;br /&gt;
Places objects on a curve. The curve is the object that has the lowest z-order (and which must be a path). Distances between objects remain the same as they were before placing. If objects can't be placed on the curve because of their distances they are left in place. Objects will not be modified; clones are allowed. Arrange distances between your objects manually first as curve position and direction.&lt;br /&gt;
&lt;br /&gt;
===[http://code.google.com/p/jessyink/ JessyInk]===&lt;br /&gt;
A collection of Javascripts that can be embedded into an SVG file to produce slide shows on opening in a browser. Current releases of JessyInk include a number of inkscape extensions to assign effects, transitions and other aspects of the presentations.&lt;br /&gt;
&lt;br /&gt;
===[http://svg2dxf.googlecode.com/files/svg2dxf_inkscape.zip svg2dxf]===&lt;br /&gt;
Updated version of [http://www.bobcookdev.com/inkscape/inkscape-dxf.html Better Better DXF output] which adds support for polylines and does not overwrite the default inkscape simpletransform.py. See README if getting lxml xpath errors.&lt;br /&gt;
&lt;br /&gt;
===[http://code.google.com/p/pixelsnap/ PixelSnap]===&lt;br /&gt;
Tool for aligning object/paths onto the pixel grid for bitmap export.&lt;br /&gt;
&lt;br /&gt;
===[http://code.google.com/p/inkscape-guides-creator/ Guide creator]===&lt;br /&gt;
Creates multiple guides at once, at set intervals. &lt;br /&gt;
&lt;br /&gt;
===[https://github.com/brathering82/inkscape/tree/master/src Scale Generator]===&lt;br /&gt;
Create a scale for a ruler, map, gauge, clock, compass, etc.&lt;br /&gt;
&lt;br /&gt;
===[http://code.google.com/p/scott-inkscape/wiki/SevenSegmentDigits Seven Segment Digits]===&lt;br /&gt;
Create calculator style digits.&lt;br /&gt;
&lt;br /&gt;
===[http://www.cnc-club.ru/forum/viewtopic.php?f=15&amp;amp;t=37&amp;amp;p=92 Close curves]===&lt;br /&gt;
Closes all open paths in the selection.&lt;br /&gt;
&lt;br /&gt;
===[http://www.cnc-club.ru/forum/viewtopic.php?f=15&amp;amp;p=101 Gcode tools]===&lt;br /&gt;
Generates Gcode program (used in CNC machinery) from given paths.&lt;br /&gt;
&lt;br /&gt;
===[http://dp48069596.lolipop.jp/inkscape_script.html Closeoff, Scatterpath, Selection, Zigzag and Netting]===&lt;br /&gt;
See [http://dp48069596.lolipop.jp/inkscape_video.html] for how to use Zigzag and scater extensions.&lt;br /&gt;
&lt;br /&gt;
===[http://wiki.xmoto.tuxfamily.org/index.php?title=How_to_create_smooth_levels_using_Inkscape Inksmoto]===&lt;br /&gt;
Level editor for the Xmoto game.&lt;br /&gt;
&lt;br /&gt;
===[http://www.cnc-club.ru/forum/viewtopic.php?f=33&amp;amp;t=37 Close Curves]===&lt;br /&gt;
Extension to close the paths in the selection, useful for importing filled paths into openoffice.&lt;br /&gt;
&lt;br /&gt;
===[http://kalyaev.com/2010/20100423/gcodetools.html gcodetools]===&lt;br /&gt;
Gcodetools is a plug-in for Inkscape. It prepares and converts paths from Inkscape to Gcode, using biarc interpolation. for use with CNC milling machines.&lt;br /&gt;
&lt;br /&gt;
===[http://www.signcutpro.com/SignCut-Productivity-Pro/signcut-export-plugins.html SignCut Export]===&lt;br /&gt;
Set of extensions that come with SignCut to enable Inkscape users to use plotters / cutters via the SignCut software.&lt;br /&gt;
&lt;br /&gt;
===[http://www.lysator.liu.se/~perni/iboardgameexts/ Boardgame extensions]===&lt;br /&gt;
Inkscape Extensions for Boardgame Developlemt [http://www.boardgamegeek.com/thread/299033/inkscape-extensions-for-boardgame-developlemt 1]. Includes a hexagonal board/hexmap creator and tools to sheets of tiles for counters ect.&lt;br /&gt;
&lt;br /&gt;
===[http://camm-gl.dyndns.org/ Inkscape CAMM-GL Extension]===&lt;br /&gt;
... vinyl cutting utility for Inkscape&lt;br /&gt;
&lt;br /&gt;
This program is basically just a cut manager. Create artwork in Inkscape, save with the supplied hpgl_output extension, and cut or plot with this program. The program does provide some useful functions, but it is by no means a fully featured solution. I do use it exclusivly, and it currently satisfies my needs.&lt;br /&gt;
&lt;br /&gt;
===[http://salug.it/~fabioviola/inkscape/extensions Badge Renderer]===&lt;br /&gt;
... A little script to render a badge in a Inkscape document. &lt;br /&gt;
This is only a little python script used as example in an article for my GLUG (SaLUG!) journal. This can be used to quickly render a badge. It can be improved, for example, with shadow direction and reflex direction. As soon as possible I'll do it.&lt;br /&gt;
&lt;br /&gt;
===[http://www.craigmarshall.org/archives/8 Guillotine]===&lt;br /&gt;
This is a mirror of the GIMP guillotine function, it allows you to drag guides onto the canvas, and then using Export-&amp;gt;Guillotine, export those slices as pngs to the directory and filename of your choice. It also has an option for using export hints, if your drawing has previously been exported. [http://www.inkscapeforum.com/viewtopic.php?f=11&amp;amp;t=5832 Forum link]&lt;br /&gt;
&lt;br /&gt;
===[http://code.google.com/p/inkscape-replace-font/ Replace Font]===&lt;br /&gt;
Allows mass replacement of the fonts in a document. Can list existing fonts. [http://www.inkscapeforum.com/viewtopic.php?f=11&amp;amp;t=5843 Forum link]&lt;br /&gt;
&lt;br /&gt;
=== [http://sozi.baierouge.fr/wiki/doku.php?id=en:welcome Sozi] ===&lt;br /&gt;
A tool for presentations made using zooms and rotations, not just slides. Uses Javascript added to the .svg file to display in web-browsers.&lt;br /&gt;
&lt;br /&gt;
Version 13.11 is the last version of sozi which is available as an Inkscape extension. According to [http://sozi.baierouge.fr/release-14.10.html this article], future versions will be available as standalone-application.&lt;br /&gt;
&lt;br /&gt;
===[http://www.inkscapeforum.com/viewtopic.php?f=11&amp;amp;t=5943 CMYK pdf/tiff export]===&lt;br /&gt;
Extension to export to CYMK colourspaced PDFs / Tiffs. In development (september 2010)&lt;br /&gt;
&lt;br /&gt;
===[http://sourceforge.net/projects/o-scape/ O-Scape; Orienteering map making tools]===&lt;br /&gt;
Extensions to help make Orienteering maps; see this [http://www.nopesport.com/news/1343-o-scape-free-orienteering-mapping-software interview] for more information&lt;br /&gt;
&lt;br /&gt;
===[http://www.inkscapeforum.com/viewtopic.php?f=5&amp;amp;t=4729#p32019 Mirror]=== &lt;br /&gt;
Mirror a path along any axis.&lt;br /&gt;
&lt;br /&gt;
===[http://sourceforge.net/projects/inkscape-tables/ Tables in Inkscape]===&lt;br /&gt;
Adds (experimental?) table suport as an extension.&lt;br /&gt;
&lt;br /&gt;
===[http://doctormo.org/2011/05/19/deviantart-plugins-released/ deviantArt uploaders]===&lt;br /&gt;
Upload artwork to deviantArt from the &amp;quot;publish to&amp;quot; menue item under extensions.&lt;br /&gt;
&lt;br /&gt;
===[http://code.google.com/p/inkscape-music-scale-generator/ Musical scales]===&lt;br /&gt;
Extension for automatic generation schemes of musical scale and chords on piano.&lt;br /&gt;
&lt;br /&gt;
===[http://www.inkscapeforum.com/viewtopic.php?f=11&amp;amp;t=9212 Text from CSV]===&lt;br /&gt;
Extension to enter text from a CSV file&lt;br /&gt;
&lt;br /&gt;
===[http://luther.ceplovi.cz/git/inkscape-ungroup-deep.git/ Deep Ungroup]===&lt;br /&gt;
Ungroup all groups in the selected object.&lt;br /&gt;
&lt;br /&gt;
===[http://www.pernsteiner.org/inkscape/layerclip/ Layer Clip]===&lt;br /&gt;
This is a a set of Inkscape extension scripts for setting and removing clip paths for entire layers. Inkscape has no trouble rendering or editing layers with clip paths, but it currently has no built-in method of setting the clip path for a layer, this is the purpose of these extensions.&lt;br /&gt;
&lt;br /&gt;
Features include: Clip containing layer, Clip layer above, Clip layer below, Clip parent layer.&lt;br /&gt;
&lt;br /&gt;
'''''Notes:'''&lt;br /&gt;
''You must select an object in the clipping layer before applying the extension, otherwise you will receive an error message.&lt;br /&gt;
It is a good idea to lock the layer after the extension has been applied. You may also require hiding the clipping layer when using &amp;quot;Clip layer below&amp;quot;. This may be exploited to create a masking layer.&lt;br /&gt;
Tested on Inkscape 0.48.2 r98''19''&lt;br /&gt;
&lt;br /&gt;
===[https://bitbucket.org/daviddamerell/inkscapesaveasicoextension Icon Generation]===&lt;br /&gt;
This is an Inkscape output extension that adds an option to the &amp;quot;save-as&amp;quot; dialog box to generate Windows Icon files (*.ico).&lt;br /&gt;
&lt;br /&gt;
==Extensions for Programmers:==&lt;br /&gt;
===[http://wiki.colivre.net/Aurium/RubyInk RubyInk]===&lt;br /&gt;
Inkscape extension with Ruby&lt;br /&gt;
&lt;br /&gt;
===[http://wiki.colivre.net/Aurium/InkBash Ink-Bash]===&lt;br /&gt;
&amp;lt;nowiki&amp;gt;ShellScript&amp;lt;/nowiki&amp;gt; Forever!&lt;br /&gt;
&lt;br /&gt;
===[http://wiki.colivre.net/Aurium/InkMoz InkMoz]===&lt;br /&gt;
The Bridge from Inkscape to Mozilla (Inkscape extension with Javascript and more)&lt;br /&gt;
&lt;br /&gt;
== The Repository Specification ==&lt;br /&gt;
&lt;br /&gt;
A website where programmers can publish their extensions, users can search by that, and an update program can access this updates.&lt;br /&gt;
&lt;br /&gt;
=== The Website ===&lt;br /&gt;
&lt;br /&gt;
Must Have:&lt;br /&gt;
* '''User Registration''': to allow upload, votes and comments&lt;br /&gt;
* '''Extension Validation''': when published, it is public, but the user must be notified that was not validated (the code must be viewed by an validator user). The software updater do not update non-validated versions.&lt;br /&gt;
** '''Validation Feedback''': the validator user must write why the extension was not validated.&lt;br /&gt;
** '''Extension Deletion''': the validator user can delete an extension or version when he found a malicious code. The upload user must be marked as a malicious user and the account must be blocked.&lt;br /&gt;
* '''Extension Search''': with filter, by any available data.&lt;br /&gt;
* '''User Votes and Comments for Extensions''': The user can vote and/or comment an extension version.&lt;br /&gt;
* '''Extension Bug-Tracker''': today, third part extensions are in simple web-pages. The site may have a Bug-Traker to help all little scripts.&lt;br /&gt;
* '''User Extensions Requests''': a lot of users have ideas. Here is a good place for programmers see and make that alive.&lt;br /&gt;
* '''Host a cool page for the extension''': allow introduction text, documenbtation, screenshots, examples, and '''i18n'''!&lt;br /&gt;
* '''Help the l10n of this extensions''': with a web interface, like pootle and provide the l10n file for the updater program.&lt;br /&gt;
* '''Provide Version Control''': A SVN account will be cool, but web uploads (by web-forms) can be transparently SVN commits.&lt;br /&gt;
&lt;br /&gt;
=== The Extension Meta-Data ===&lt;br /&gt;
&lt;br /&gt;
''The data in INX file and more some, like the OS and Inkscape version compatibility...''&lt;br /&gt;
&lt;br /&gt;
The INX file will define the meta-data settable by that. If some extension uses multiples INX files to have more than one option in the menu, all INX files must be read to set the meta-data. The meta-data will be cached in a database to help the search. The DB only need the meta-data of the last validated version and the last non-validated (if that is newer).&lt;br /&gt;
&lt;br /&gt;
=== The Update Program ===&lt;br /&gt;
&lt;br /&gt;
* '''Search for New Extensions''': when the user request&lt;br /&gt;
* '''Update Extensions''': search for updates and install that&lt;br /&gt;
* '''Help the Code Validation''': for advanced users. Show the extension code and the diff if is that an update.&lt;br /&gt;
* '''Help the User Bug-Reporting''': that is not working! The user must say now! ''(When the Update Program be part of the Inkscape, the error window can have a button to submit a bug-report)''&lt;br /&gt;
* '''Must test the extension dependencies''': the user must know what is needed to install before try to use.&lt;br /&gt;
&lt;br /&gt;
== Name Proposal ==&lt;br /&gt;
&lt;br /&gt;
Propose a name for the Inkscape Extension Repository:&lt;br /&gt;
&lt;br /&gt;
* '''The Factory'''&lt;br /&gt;
* '''Extension Factory'''&lt;br /&gt;
* '''INX Factory'''&lt;br /&gt;
&lt;br /&gt;
''Why Factory? Because it is not only a repository. ;-)''&lt;br /&gt;
&lt;br /&gt;
* '''The Furnace'''&lt;br /&gt;
''Because Fire &amp;amp; Coal (Passion &amp;amp; Knowledge) are your tools for creating the extensions''&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
&lt;br /&gt;
== Mockups ==&lt;br /&gt;
&lt;br /&gt;
Here are some suggestions for what an extension repository might look like.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Extension_repository_-_homepage.png|The home page.&lt;br /&gt;
File:Extension_repository_-_extension_page.png|The page for an individual extension.&lt;br /&gt;
File:Extension_repository_-_request_page.png|The page for an individual request.&lt;br /&gt;
File:Extension_repository_-_search_page.png|The search form page.&lt;br /&gt;
File:Extension_repository_-_search_results.png|The search results page.&lt;br /&gt;
File:Extension_repository_-_submit_extension.png|The extension submission page.&lt;br /&gt;
File:Extension_repository_-_submit_request.png|The request submission page.&lt;br /&gt;
File:Extension_repository_-_requests.png|The main requests page.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I have no idea of the detail of this project; I don't currently have the skills necessary to try implementing it. I'm also not sure whether it's a good idea for Inkscape to offer hosted repositories (using [http://www.redmine.org/projects/redmine Redmine] or [http://trac.edgewall.org/ Trac]?) or whether it would be better to just leave it to the developer to use somewhere like [http://github.com/ GitHub] or [http://bitbucket.org/ BitBucket] and then use their APIs to pull some basic data onto the site. [[User:Legio noctis|Legio noctis]] 10:19, 23 May 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Neon22</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Extension_repository&amp;diff=97196</id>
		<title>Extension repository</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Extension_repository&amp;diff=97196"/>
		<updated>2015-10-05T10:02:05Z</updated>

		<summary type="html">&lt;p&gt;Neon22: Added lasercut box and jigsaw&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It would be very useful to have a central Internet repository for Inkscape extensions, in a similar manner to Firefox. This way, Inkscape could update installed extensions from the web site, with no need for the user to know if an extension was updated.&lt;br /&gt;
&lt;br /&gt;
== Extensions ==&lt;br /&gt;
&lt;br /&gt;
===[https://github.com/Neon22/inkscape-jigsaw InkscapeJigsaw]===&lt;br /&gt;
Create an NxM Jigsaw with randomisation, curve control, a surround and backboard. Optimised for minimal cuts.&lt;br /&gt;
&lt;br /&gt;
===[https://github.com/Neon22/inkscape-LasercutBox InkscapeLasertcutBox]===&lt;br /&gt;
A tabbed box script with kerf adjustment for lasercutters. Minimal packing or perfect fit. Dimples for pressure fit of some materials.&lt;br /&gt;
&lt;br /&gt;
===[[ExtrudeEffect]]===&lt;br /&gt;
Extrude polygons to &amp;quot;3d&amp;quot;, also make &amp;quot;string art&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===[http://wiki.colivre.net/Aurium/InkscapeCalendarShellScript InkscapeCalendarShellScript]===&lt;br /&gt;
Creating calendars sucks or is impractical if you do not have something that automates the process of putting the days organized in blocks of months for you. To format manually is easy, but this extension can help you on this, too. BASH script, works for Win32 with Cygwin.&lt;br /&gt;
&lt;br /&gt;
===[http://wiki.colivre.net/Aurium/InkscapeAreaCuter InkscapeAreaCutter]===&lt;br /&gt;
For web designers. Slice your site design into .png images. (pt_BR)&lt;br /&gt;
&lt;br /&gt;
===[http://www.julienvitard.eu/ EQTeXSVG]===&lt;br /&gt;
Convert an inline LATEX equation into SVG path using Python.&lt;br /&gt;
&lt;br /&gt;
===[http://www.kono.cis.iwate-u.ac.jp/~arakit/inkscape/inklatex.html InkLaTeX]===&lt;br /&gt;
Insert LaTeX text or equations into Inkscape.&lt;br /&gt;
&lt;br /&gt;
===[http://www.iki.fi/pav/software/textext/ TexText]===&lt;br /&gt;
Embed re-editable LaTeX objects into SVG drawings.&lt;br /&gt;
&lt;br /&gt;
===[http://math.univ-lille1.fr/~barraud/Inkscape/pathdeform/ PathDeform]===&lt;br /&gt;
Bend a path according to another one. &lt;br /&gt;
N.B. This extension was added to Inkscape 0.45 as &amp;quot;Pattern along Path&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===[http://www.inkbar.lineaire.net/ InkBar]===&lt;br /&gt;
Create EAN13 bar codes.&lt;br /&gt;
&lt;br /&gt;
===[http://technoargia.free.fr/swftools/ SWF output]===&lt;br /&gt;
Save drawings as SWF. Updated version (compatible with Inkscape 0.48) ist available on [https://gist.github.com/frederik-elwert/1a46f82fce5d3deb7842 GitHub].&lt;br /&gt;
&lt;br /&gt;
===[http://wiki.colivre.net/Aurium/Puff Puff]===&lt;br /&gt;
Fluffs elements! :D&lt;br /&gt;
&lt;br /&gt;
===[http://www.colivre.coop.br/Aurium/InkSudoku Sudoku Generator]===&lt;br /&gt;
Generates a Sudoku square with its solution (''in a small square if you want'').&lt;br /&gt;
&lt;br /&gt;
===[[CalligraphedOutlineFill]]===&lt;br /&gt;
Helps to fill in the inside area of shapes drawn with the Calligraphy tool.&lt;br /&gt;
&lt;br /&gt;
===[http://edlab.die.unipd.it/Site4.html SlotStar]===&lt;br /&gt;
Helps to draw the star of slot of a winding of an electrical machine&lt;br /&gt;
&lt;br /&gt;
===[http://richard.henwood.googlepages.com/inkscapelatexextension inkscapeLatexExtension]===&lt;br /&gt;
Extract text in an SVG drawing to a LaTeX picture environment.&lt;br /&gt;
&lt;br /&gt;
===[http://saws.googlecode.com s.a.w.s]===&lt;br /&gt;
Export an SVG as valid XHTML/CSS files.&lt;br /&gt;
&lt;br /&gt;
===[http://www.colivre.coop.br/Aurium/InkscapeGenerator Generator]===&lt;br /&gt;
Replace text and data to automatically generate files (as PDF, PS, JPG, etc...), based on an SVG template and a data file. ''e.g.'', a CSV file&lt;br /&gt;
&lt;br /&gt;
===[http://code.google.com/p/inkscape2tikz/ TikZ exporter]===&lt;br /&gt;
Export SVG paths as TikZ/PGF code for use with LaTeX.  &lt;br /&gt;
&lt;br /&gt;
===[[FindMatch]]===&lt;br /&gt;
Looks for paths that match the selected path and places all matches on the same layer.&lt;br /&gt;
&lt;br /&gt;
===[http://emilien.tlapale.com/code/inksyntax InkSyntax]===&lt;br /&gt;
A source code syntax highlighter plugin for Inkscape (wrapping [http://pygments.org pygments] and [http://www.andre-simon.de/doku/highlight/en/highlight.html highlight]).&lt;br /&gt;
&lt;br /&gt;
===[http://sites.google.com/site/placeonpath/ Place Objects on Path]===&lt;br /&gt;
Places objects on a curve. The curve is the object that has the lowest z-order (and which must be a path). Distances between objects remain the same as they were before placing. If objects can't be placed on the curve because of their distances they are left in place. Objects will not be modified; clones are allowed. Arrange distances between your objects manually first as curve position and direction.&lt;br /&gt;
&lt;br /&gt;
===[http://code.google.com/p/jessyink/ JessyInk]===&lt;br /&gt;
A collection of Javascripts that can be embedded into an SVG file to produce slide shows on opening in a browser. Current releases of JessyInk include a number of inkscape extensions to assign effects, transitions and other aspects of the presentations.&lt;br /&gt;
&lt;br /&gt;
===[http://svg2dxf.googlecode.com/files/svg2dxf_inkscape.zip svg2dxf]===&lt;br /&gt;
Updated version of [http://www.bobcookdev.com/inkscape/inkscape-dxf.html Better Better DXF output] which adds support for polylines and does not overwrite the default inkscape simpletransform.py. See README if getting lxml xpath errors.&lt;br /&gt;
&lt;br /&gt;
===[http://code.google.com/p/pixelsnap/ PixelSnap]===&lt;br /&gt;
Tool for aligning object/paths onto the pixel grid for bitmap export.&lt;br /&gt;
&lt;br /&gt;
===[http://code.google.com/p/inkscape-guides-creator/ Guide creator]===&lt;br /&gt;
Creates multiple guides at once, at set intervals. &lt;br /&gt;
&lt;br /&gt;
===[https://github.com/brathering82/inkscape/tree/master/src Scale Generator]===&lt;br /&gt;
Create a scale for a ruler, map, gauge, clock, compass, etc.&lt;br /&gt;
&lt;br /&gt;
===[http://code.google.com/p/scott-inkscape/wiki/SevenSegmentDigits Seven Segment Digits]===&lt;br /&gt;
Create calculator style digits.&lt;br /&gt;
&lt;br /&gt;
===[http://www.cnc-club.ru/forum/viewtopic.php?f=15&amp;amp;t=37&amp;amp;p=92 Close curves]===&lt;br /&gt;
Closes all open paths in the selection.&lt;br /&gt;
&lt;br /&gt;
===[http://www.cnc-club.ru/forum/viewtopic.php?f=15&amp;amp;p=101 Gcode tools]===&lt;br /&gt;
Generates Gcode program (used in CNC machinery) from given paths.&lt;br /&gt;
&lt;br /&gt;
===[http://dp48069596.lolipop.jp/inkscape_script.html Closeoff, Scatterpath, Selection, Zigzag and Netting]===&lt;br /&gt;
See [http://dp48069596.lolipop.jp/inkscape_video.html] for how to use Zigzag and scater extensions.&lt;br /&gt;
&lt;br /&gt;
===[http://wiki.xmoto.tuxfamily.org/index.php?title=How_to_create_smooth_levels_using_Inkscape Inksmoto]===&lt;br /&gt;
Level editor for the Xmoto game.&lt;br /&gt;
&lt;br /&gt;
===[http://www.cnc-club.ru/forum/viewtopic.php?f=33&amp;amp;t=37 Close Curves]===&lt;br /&gt;
Extension to close the paths in the selection, useful for importing filled paths into openoffice.&lt;br /&gt;
&lt;br /&gt;
===[http://kalyaev.com/2010/20100423/gcodetools.html gcodetools]===&lt;br /&gt;
Gcodetools is a plug-in for Inkscape. It prepares and converts paths from Inkscape to Gcode, using biarc interpolation. for use with CNC milling machines.&lt;br /&gt;
&lt;br /&gt;
===[http://www.signcutpro.com/SignCut-Productivity-Pro/signcut-export-plugins.html SignCut Export]===&lt;br /&gt;
Set of extensions that come with SignCut to enable Inkscape users to use plotters / cutters via the SignCut software.&lt;br /&gt;
&lt;br /&gt;
===[http://www.lysator.liu.se/~perni/iboardgameexts/ Boardgame extensions]===&lt;br /&gt;
Inkscape Extensions for Boardgame Developlemt [http://www.boardgamegeek.com/thread/299033/inkscape-extensions-for-boardgame-developlemt 1]. Includes a hexagonal board/hexmap creator and tools to sheets of tiles for counters ect.&lt;br /&gt;
&lt;br /&gt;
===[http://camm-gl.dyndns.org/ Inkscape CAMM-GL Extension]===&lt;br /&gt;
... vinyl cutting utility for Inkscape&lt;br /&gt;
&lt;br /&gt;
This program is basically just a cut manager. Create artwork in Inkscape, save with the supplied hpgl_output extension, and cut or plot with this program. The program does provide some useful functions, but it is by no means a fully featured solution. I do use it exclusivly, and it currently satisfies my needs.&lt;br /&gt;
&lt;br /&gt;
===[http://salug.it/~fabioviola/inkscape/extensions Badge Renderer]===&lt;br /&gt;
... A little script to render a badge in a Inkscape document. &lt;br /&gt;
This is only a little python script used as example in an article for my GLUG (SaLUG!) journal. This can be used to quickly render a badge. It can be improved, for example, with shadow direction and reflex direction. As soon as possible I'll do it.&lt;br /&gt;
&lt;br /&gt;
===[http://www.craigmarshall.org/archives/8 Guillotine]===&lt;br /&gt;
This is a mirror of the GIMP guillotine function, it allows you to drag guides onto the canvas, and then using Export-&amp;gt;Guillotine, export those slices as pngs to the directory and filename of your choice. It also has an option for using export hints, if your drawing has previously been exported. [http://www.inkscapeforum.com/viewtopic.php?f=11&amp;amp;t=5832 Forum link]&lt;br /&gt;
&lt;br /&gt;
===[http://code.google.com/p/inkscape-replace-font/ Replace Font]===&lt;br /&gt;
Allows mass replacement of the fonts in a document. Can list existing fonts. [http://www.inkscapeforum.com/viewtopic.php?f=11&amp;amp;t=5843 Forum link]&lt;br /&gt;
&lt;br /&gt;
=== [http://sozi.baierouge.fr/wiki/doku.php?id=en:welcome Sozi] ===&lt;br /&gt;
A tool for presentations made using zooms and rotations, not just slides. Uses Javascript added to the .svg file to display in web-browsers.&lt;br /&gt;
&lt;br /&gt;
Version 13.11 is the last version of sozi which is available as an Inkscape extension. According to [http://sozi.baierouge.fr/release-14.10.html this article], future versions will be available as standalone-application.&lt;br /&gt;
&lt;br /&gt;
===[http://www.inkscapeforum.com/viewtopic.php?f=11&amp;amp;t=5943 CMYK pdf/tiff export]===&lt;br /&gt;
Extension to export to CYMK colourspaced PDFs / Tiffs. In development (september 2010)&lt;br /&gt;
&lt;br /&gt;
===[http://sourceforge.net/projects/o-scape/ O-Scape; Orienteering map making tools]===&lt;br /&gt;
Extensions to help make Orienteering maps; see this [http://www.nopesport.com/news/1343-o-scape-free-orienteering-mapping-software interview] for more information&lt;br /&gt;
&lt;br /&gt;
===[http://www.inkscapeforum.com/viewtopic.php?f=5&amp;amp;t=4729#p32019 Mirror]=== &lt;br /&gt;
Mirror a path along any axis.&lt;br /&gt;
&lt;br /&gt;
===[http://sourceforge.net/projects/inkscape-tables/ Tables in Inkscape]===&lt;br /&gt;
Adds (experimental?) table suport as an extension.&lt;br /&gt;
&lt;br /&gt;
===[http://doctormo.org/2011/05/19/deviantart-plugins-released/ deviantArt uploaders]===&lt;br /&gt;
Upload artwork to deviantArt from the &amp;quot;publish to&amp;quot; menue item under extensions.&lt;br /&gt;
&lt;br /&gt;
===[http://code.google.com/p/inkscape-music-scale-generator/ Musical scales]===&lt;br /&gt;
Extension for automatic generation schemes of musical scale and chords on piano.&lt;br /&gt;
&lt;br /&gt;
===[http://www.inkscapeforum.com/viewtopic.php?f=11&amp;amp;t=9212 Text from CSV]===&lt;br /&gt;
Extension to enter text from a CSV file&lt;br /&gt;
&lt;br /&gt;
===[http://luther.ceplovi.cz/git/inkscape-ungroup-deep.git/ Deep Ungroup]===&lt;br /&gt;
Ungroup all groups in the selected object.&lt;br /&gt;
&lt;br /&gt;
===[http://www.pernsteiner.org/inkscape/layerclip/ Layer Clip]===&lt;br /&gt;
This is a a set of Inkscape extension scripts for setting and removing clip paths for entire layers. Inkscape has no trouble rendering or editing layers with clip paths, but it currently has no built-in method of setting the clip path for a layer, this is the purpose of these extensions.&lt;br /&gt;
&lt;br /&gt;
Features include: Clip containing layer, Clip layer above, Clip layer below, Clip parent layer.&lt;br /&gt;
&lt;br /&gt;
'''''Notes:'''&lt;br /&gt;
''You must select an object in the clipping layer before applying the extension, otherwise you will receive an error message.&lt;br /&gt;
It is a good idea to lock the layer after the extension has been applied. You may also require hiding the clipping layer when using &amp;quot;Clip layer below&amp;quot;. This may be exploited to create a masking layer.&lt;br /&gt;
Tested on Inkscape 0.48.2 r98''19''&lt;br /&gt;
&lt;br /&gt;
===[https://bitbucket.org/daviddamerell/inkscapesaveasicoextension Icon Generation]===&lt;br /&gt;
This is an Inkscape output extension that adds an option to the &amp;quot;save-as&amp;quot; dialog box to generate Windows Icon files (*.ico).&lt;br /&gt;
&lt;br /&gt;
==Extensions for Programmers:==&lt;br /&gt;
===[http://wiki.colivre.net/Aurium/RubyInk RubyInk]===&lt;br /&gt;
Inkscape extension with Ruby&lt;br /&gt;
&lt;br /&gt;
===[http://wiki.colivre.net/Aurium/InkBash Ink-Bash]===&lt;br /&gt;
&amp;lt;nowiki&amp;gt;ShellScript&amp;lt;/nowiki&amp;gt; Forever!&lt;br /&gt;
&lt;br /&gt;
===[http://wiki.colivre.net/Aurium/InkMoz InkMoz]===&lt;br /&gt;
The Bridge from Inkscape to Mozilla (Inkscape extension with Javascript and more)&lt;br /&gt;
&lt;br /&gt;
== The Repository Specification ==&lt;br /&gt;
&lt;br /&gt;
A website where programmers can publish their extensions, users can search by that, and an update program can access this updates.&lt;br /&gt;
&lt;br /&gt;
=== The Website ===&lt;br /&gt;
&lt;br /&gt;
Must Have:&lt;br /&gt;
* '''User Registration''': to allow upload, votes and comments&lt;br /&gt;
* '''Extension Validation''': when published, it is public, but the user must be notified that was not validated (the code must be viewed by an validator user). The software updater do not update non-validated versions.&lt;br /&gt;
** '''Validation Feedback''': the validator user must write why the extension was not validated.&lt;br /&gt;
** '''Extension Deletion''': the validator user can delete an extension or version when he found a malicious code. The upload user must be marked as a malicious user and the account must be blocked.&lt;br /&gt;
* '''Extension Search''': with filter, by any available data.&lt;br /&gt;
* '''User Votes and Comments for Extensions''': The user can vote and/or comment an extension version.&lt;br /&gt;
* '''Extension Bug-Tracker''': today, third part extensions are in simple web-pages. The site may have a Bug-Traker to help all little scripts.&lt;br /&gt;
* '''User Extensions Requests''': a lot of users have ideas. Here is a good place for programmers see and make that alive.&lt;br /&gt;
* '''Host a cool page for the extension''': allow introduction text, documenbtation, screenshots, examples, and '''i18n'''!&lt;br /&gt;
* '''Help the l10n of this extensions''': with a web interface, like pootle and provide the l10n file for the updater program.&lt;br /&gt;
* '''Provide Version Control''': A SVN account will be cool, but web uploads (by web-forms) can be transparently SVN commits.&lt;br /&gt;
&lt;br /&gt;
=== The Extension Meta-Data ===&lt;br /&gt;
&lt;br /&gt;
''The data in INX file and more some, like the OS and Inkscape version compatibility...''&lt;br /&gt;
&lt;br /&gt;
The INX file will define the meta-data settable by that. If some extension uses multiples INX files to have more than one option in the menu, all INX files must be read to set the meta-data. The meta-data will be cached in a database to help the search. The DB only need the meta-data of the last validated version and the last non-validated (if that is newer).&lt;br /&gt;
&lt;br /&gt;
=== The Update Program ===&lt;br /&gt;
&lt;br /&gt;
* '''Search for New Extensions''': when the user request&lt;br /&gt;
* '''Update Extensions''': search for updates and install that&lt;br /&gt;
* '''Help the Code Validation''': for advanced users. Show the extension code and the diff if is that an update.&lt;br /&gt;
* '''Help the User Bug-Reporting''': that is not working! The user must say now! ''(When the Update Program be part of the Inkscape, the error window can have a button to submit a bug-report)''&lt;br /&gt;
* '''Must test the extension dependencies''': the user must know what is needed to install before try to use.&lt;br /&gt;
&lt;br /&gt;
== Name Proposal ==&lt;br /&gt;
&lt;br /&gt;
Propose a name for the Inkscape Extension Repository:&lt;br /&gt;
&lt;br /&gt;
* '''The Factory'''&lt;br /&gt;
* '''Extension Factory'''&lt;br /&gt;
* '''INX Factory'''&lt;br /&gt;
&lt;br /&gt;
''Why Factory? Because it is not only a repository. ;-)''&lt;br /&gt;
&lt;br /&gt;
* '''The Furnace'''&lt;br /&gt;
''Because Fire &amp;amp; Coal (Passion &amp;amp; Knowledge) are your tools for creating the extensions''&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
&lt;br /&gt;
== Mockups ==&lt;br /&gt;
&lt;br /&gt;
Here are some suggestions for what an extension repository might look like.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Extension_repository_-_homepage.png|The home page.&lt;br /&gt;
File:Extension_repository_-_extension_page.png|The page for an individual extension.&lt;br /&gt;
File:Extension_repository_-_request_page.png|The page for an individual request.&lt;br /&gt;
File:Extension_repository_-_search_page.png|The search form page.&lt;br /&gt;
File:Extension_repository_-_search_results.png|The search results page.&lt;br /&gt;
File:Extension_repository_-_submit_extension.png|The extension submission page.&lt;br /&gt;
File:Extension_repository_-_submit_request.png|The request submission page.&lt;br /&gt;
File:Extension_repository_-_requests.png|The main requests page.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I have no idea of the detail of this project; I don't currently have the skills necessary to try implementing it. I'm also not sure whether it's a good idea for Inkscape to offer hosted repositories (using [http://www.redmine.org/projects/redmine Redmine] or [http://trac.edgewall.org/ Trac]?) or whether it would be better to just leave it to the developer to use somewhere like [http://github.com/ GitHub] or [http://bitbucket.org/ BitBucket] and then use their APIs to pull some basic data onto the site. [[User:Legio noctis|Legio noctis]] 10:19, 23 May 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Neon22</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Compiling_Inkscape_on_Windows_32-bit&amp;diff=76664</id>
		<title>Compiling Inkscape on Windows 32-bit</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Compiling_Inkscape_on_Windows_32-bit&amp;diff=76664"/>
		<updated>2012-01-12T22:20:57Z</updated>

		<summary type="html">&lt;p&gt;Neon22: /* Building Inkscape */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Inkscape was originally written for Linux, but it has been ported to other platforms, including Windows. Since Windows is not POSIX compliant and doesn't have several features useful to developers (like package management), compiling Inkscape on Windows is more tedious than on Linux, but perfectly possible. To make it easier, we have compiled a package that contains all the libraries you need to build Inkscape. This reduces the effort of compiling Inkscape to: download and install 3 programs, download library package, download sourcecode, and you are ready to go.&lt;br /&gt;
&lt;br /&gt;
==Setting up the build environment==&lt;br /&gt;
&lt;br /&gt;
To develop Inkscape, you will need the following things:&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.bazaar.canonical.com/WindowsDownloads Bazaar]&lt;br /&gt;
* [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html PuTTY] programs: puttygen.exe and pageant.exe&lt;br /&gt;
* [http://tdm-gcc.tdragon.net/download TDM's GCC (MingW)], the 32 bit bundle installer is the safe choice (it's called tdm-gcc-4.something and should be one of the very first options).&lt;br /&gt;
* Launchpad account&lt;br /&gt;
&lt;br /&gt;
In order to build the installer (not needed for most developers):&lt;br /&gt;
* [http://sourceforge.net/projects/nsis/files/NSIS%202/2.46/nsis-2.46-setup.exe/download NSIS 2.46]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Install the compiler===&lt;br /&gt;
Run the TDM-MinGW installer:&lt;br /&gt;
# Install in a path that doesn't contain spaces. The path 'C:\mingw' is ideal beacuse it is currently set in the &amp;lt;tt&amp;gt;mingwenv.bat&amp;lt;/tt&amp;gt; file (along with the location of devlibs).&lt;br /&gt;
#* TDM-MinGW's default install option may be to a different location. You will have to edit the &amp;lt;tt&amp;gt;mingwenv.bat&amp;lt;/tt&amp;gt; file to point there.&lt;br /&gt;
#* If you install it into another path, set the environment variable MINGW_PATH to the TDM-MinGW installation directory, e.g. the one containing &amp;lt;tt&amp;gt;README-tdm-gcc.txt&amp;lt;/tt&amp;gt; (right click My Computer -&amp;gt; Properties -&amp;gt; Advanced -&amp;gt; Environment Variables).&lt;br /&gt;
# Be sure to enable the &amp;quot;openmp support&amp;quot; checkbox from the components list or choose to install all packages (option &amp;quot;TDM-GCC recommended, All Packages&amp;quot; in the TDM-GCC (4.5.1) installer).&lt;br /&gt;
#* ''All packages'' option will install support for many other programming languages.&lt;br /&gt;
&lt;br /&gt;
If you have an older version of TDM-GCC (older than 4.5.1?), copy the file &amp;quot;\lib\gcc\mingw32\bin\libgomp-1.dll&amp;quot; to &amp;quot;\bin\libgomp-1.dll&amp;quot; (paths relative to your installation directory).&lt;br /&gt;
&lt;br /&gt;
===Create your Launchpad account===&lt;br /&gt;
If you do not have an SSH public/private key pair to identify yourself:&lt;br /&gt;
*run the program puttygen.exe to generate an SSH key&lt;br /&gt;
*save both its parts.&lt;br /&gt;
Log into your Launchpad account, go to your profile page and add the public part of the generated key to the list of SSH keys. Run the program pageant.exe (you can add it to Autorun). A tray icon should appear. Right click it, select &amp;quot;Add Key&amp;quot; and pick the private key file you have just generated from the dialog. Note that you need to repeat this after every login whenever you want to access Launchpad.&lt;br /&gt;
&lt;br /&gt;
Now set up Bazaar. First tell it who you are, then associate with your Launchpad account. You need to use the account name (e.g. johnq), not the display name.(John Q. Public).&lt;br /&gt;
&lt;br /&gt;
 C:\&amp;gt; bzr whoami &amp;quot;''Your Name'' &amp;lt;''your_real_email@example.com''&amp;gt;&amp;quot;&lt;br /&gt;
 C:\&amp;gt; bzr launchpad-login ''your_launchpad_account''&lt;br /&gt;
&lt;br /&gt;
===Install the developer libraries===&lt;br /&gt;
Check out Inkscape Devlibs into C:\devlibs. If you check them out elsewhere, set the environment variable DEVLIBS_PATH to the path where they are. Devlibs are a bundle of all the libraries needed to compile Inkscape. If you experience any problems, make sure you have an up to date copy of those libraries and an up to date checkout of Inkscape source. To reduce the size of the download, pass the &amp;lt;tt&amp;gt;--lightweight&amp;lt;/tt&amp;gt; parameter.&lt;br /&gt;
&lt;br /&gt;
 C:\&amp;gt; bzr checkout --lightweight lp:inkscape-devlibs devlibs&lt;br /&gt;
&lt;br /&gt;
To update devlibs:&lt;br /&gt;
&lt;br /&gt;
 C:\devlibs&amp;gt; bzr update&lt;br /&gt;
&lt;br /&gt;
All Inkscape developers can commit to the devlibs trunk. Advanced information about Devlibs, mainy useful when you want to update them to newly released versions of upstream libraries, is available here: [[Inkscape Devlibs]].&lt;br /&gt;
You can see some infomation from [https://launchpad.net/inkscape-devlibs launchpad:inkscape-devlibs] and [http://bazaar.launchpad.net/~inkscape.dev/inkscape-devlibs/trunk/files trunk/files].&lt;br /&gt;
&lt;br /&gt;
== Obtaining Inkscape source code ==&lt;br /&gt;
&lt;br /&gt;
You can obtain released Inkscape source from a tarball. Since version 0.47 they are hosted on [https://launchpad.net/inkscape Inkscape's Launchpad page]. There are ready-made installers provided, so there's usually little reason to compile the stable version yourself.&lt;br /&gt;
&lt;br /&gt;
To obtain cutting edge code, check out Inkscape source from the Bazaar repository. You can also use the TortoiseBZR shell extensions to do this. The recommended way is to first create a shared repository, then check out the Inkscape branch into that shared repository. Using this setup, branching will be a lot faster.&lt;br /&gt;
&lt;br /&gt;
 C:\src\inkscape&amp;gt; bzr init-repo --rich-root&lt;br /&gt;
 C:\src\inkscape&amp;gt; bzr checkout lp:inkscape trunk&lt;br /&gt;
&lt;br /&gt;
If you don't want to create any branches, you can skip the shared repository step.&lt;br /&gt;
&lt;br /&gt;
 C:\src&amp;gt; bzr checkout lp:inkscape&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' make sure that the path to your Inkscape source checkout does not contain spaces. Unix tools do not like them and you will end up with a lot of error messages about missing files.&lt;br /&gt;
&lt;br /&gt;
== Building Inkscape ==&lt;br /&gt;
&lt;br /&gt;
Open the command prompt, navigate to the directory with Inkscape sources. First set up some environmental variables. You only need to do this once per console session. This will define the location of your downloaded ''MinGW'' and ''devlibs'' so inkscape can find them.&lt;br /&gt;
&lt;br /&gt;
 C:\src\inkscape\trunk&amp;gt; mingwenv&lt;br /&gt;
&lt;br /&gt;
Now compile the build tool. Try the second command if the first one fails.&lt;br /&gt;
&lt;br /&gt;
 C:\src\inkscape\trunk&amp;gt; g++ buildtool.cpp -o btool&lt;br /&gt;
 C:\src\inkscape\trunk&amp;gt; g++ -DNEED_GETTIMEOFDAY buildtool.cpp -o btool&lt;br /&gt;
&lt;br /&gt;
Finally initiate the compilation. Get a coffee or take your dog out for a walk, because it will take a rather long time.&lt;br /&gt;
&lt;br /&gt;
 C:\src\inkscape\trunk&amp;gt; btool&lt;br /&gt;
&lt;br /&gt;
Once everything is done, there should be an &amp;lt;tt&amp;gt;inkscape&amp;lt;/tt&amp;gt; directory that contains the Inkscape executable and libraries needed to run it.&lt;br /&gt;
&lt;br /&gt;
== Rebuilding ==&lt;br /&gt;
&lt;br /&gt;
If you have only changed a few files and want to rebuild, delete the &amp;lt;tt&amp;gt;inkscape&amp;lt;/tt&amp;gt; directory and run &amp;lt;tt&amp;gt;btool&amp;lt;/tt&amp;gt; again.&lt;br /&gt;
&lt;br /&gt;
To rebuild from scratch, execute the following sequence of commands:&lt;br /&gt;
 C:\src\inkscape\trunk&amp;gt; btool clean&lt;br /&gt;
 C:\src\inkscape\trunk&amp;gt; btool&lt;br /&gt;
&lt;br /&gt;
== Dealing With Build Errors ==&lt;br /&gt;
Feel free to add any questions or answers you have in here;&lt;br /&gt;
&lt;br /&gt;
'''Q''' - My firewall software (Comodo's Defense+ component or similar) stopped the process continuing to the next step in the build, because I wasn't there to permit an action and it timed out. What can I do?&lt;br /&gt;
&lt;br /&gt;
'''A1''' - The best thing is to disable stuff like Defense+ (put it in learning mode works) because it will stop any process that is not approved, and building makes new files which can't be approved before they're built. Disabling Comodo's Defense+ does not disable your firewall, either inbound or outbound, but just the part that scans every application for suspicious operations. Other firewalls etc may vary.&lt;br /&gt;
&lt;br /&gt;
'''A2''' - If that doesn't suit, often you can simply run btool again and wait for Defense+ (or similar) to ask for approval for the process, and it will then continue as normal with the build. But remember that approving all the processes involved in the build process once doesn't mean they will all slip through next time.&lt;br /&gt;
&lt;br /&gt;
'''A3''' - This is the more complex way to continue, but may help if you have problems with A2. If you know the stage the process was meant to be up to (look at the output in the command windows and compare to the stages in the ''build.xml'' file), you can start again from there.&lt;br /&gt;
&lt;br /&gt;
You may see something like this in the command window;&lt;br /&gt;
     =============================&lt;br /&gt;
     ## Target : link : link objects and library to create executable&lt;br /&gt;
     ---- task : rc&lt;br /&gt;
     ============ cmd ============&lt;br /&gt;
     windres -o build/inkres.o --include-dir=src src/inkscape.rc&lt;br /&gt;
     =============================&lt;br /&gt;
     ---- task : link&lt;br /&gt;
This will likely be followed by an error message. This means you were at the ''link'' stage&lt;br /&gt;
&lt;br /&gt;
Now simply type;&lt;br /&gt;
     ...&amp;gt;btool ''stage''&lt;br /&gt;
Or in this case&lt;br /&gt;
     ...&amp;gt;btool link&lt;br /&gt;
And the build will continue from there.&lt;br /&gt;
&lt;br /&gt;
After this, you will probably have to step through the remaining stages manually, one by one. The stages can include (see build.xml, where each stage is labelled 'target name=&amp;quot;''target''&amp;quot;') ''init'', ''touchabout'', ''compile'', ''java'', ''lib'', ''i18n'', ''link'', ''linkinkview'', ''dist'', ''dist-all'', ''clean''. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Q''' - How do I rebuild just one ''file.o'' file? For instance if one particular file has gone wrong, or I want to try patching just one part of the code.&lt;br /&gt;
&lt;br /&gt;
'''A''' - To find the right command for building any particular file in Inkscape, just look in the compile.lst after you have used btool once. Search for the name of the particular file (eg: print.cpp) and you will find the command used to compile it. You'll need to paste this into a text file, remove any carriage reurns and then paste that onto the command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Q''' - After I patched a file, I left a backup of the old file in the same directory called Copy of{filename}.cpp. The compiler complains about this file when building and stops.&lt;br /&gt;
&lt;br /&gt;
'''A''' - Do not leave anything with a suffix .cpp in the source directories, apart from the original (or patched) source files. The build tool will try to compile everything ending in .cpp and will complain. If you backup an old file in the same directory before patching, call it {filename}.cpp.old or similar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Q''' - I think I followed the instruction above. What could have caused the compiling error like this for src/extension/internal/pdfinput/pdf-parser.cpp?&lt;br /&gt;
&lt;br /&gt;
     src/extension/internal/pdfinput/pdf-parser.cpp:2248: error: no matching function for call to 'GfxFont::getNextChar(char*&amp;amp;, int&amp;amp;, CharCode*, Unicode [8], int, int*, double*, double*, double*, double*)'&lt;br /&gt;
&lt;br /&gt;
Same error for line 2297 as well.&lt;br /&gt;
&lt;br /&gt;
=== For more information ===&lt;br /&gt;
There is some old information on building Inkscape with either Mingw on Windows, or a cross-compiler on Linux, at http://inkscape.modevia.com/win32_inkscape_org/win32buildnotes.html&lt;br /&gt;
and old files mey be&lt;br /&gt;
http://inkscape.modevia.com/win32libs/&lt;br /&gt;
== Creating an installer ==&lt;br /&gt;
&lt;br /&gt;
To create the setup package you need the NSIS installer on your PC. Get that from http://nsis.sf.net .&lt;br /&gt;
You have successfully built Inkscape and everything is in the ...\inkscape\ directory.&lt;br /&gt;
Open the ...\packaging\win32\inkscape.nsi using the NSIS program and compile the package. Sooo easy :-)&lt;br /&gt;
&lt;br /&gt;
== Note about Unicode ==&lt;br /&gt;
&lt;br /&gt;
The GTK stack depends on functions only present in NT-based Windows (2000 and later). Therefore, Inkscape code can assume that Unicode functions from the Windows API (like GetCommandLineW) are always present. Note however that you should use the GLib/GTK functions rather the Windows API whenever possible.&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
*[[Compiling Inkscape]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Neon22</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Compiling_Inkscape_on_Windows_32-bit&amp;diff=76658</id>
		<title>Compiling Inkscape on Windows 32-bit</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Compiling_Inkscape_on_Windows_32-bit&amp;diff=76658"/>
		<updated>2012-01-12T22:20:30Z</updated>

		<summary type="html">&lt;p&gt;Neon22: /* Building Inkscape */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Inkscape was originally written for Linux, but it has been ported to other platforms, including Windows. Since Windows is not POSIX compliant and doesn't have several features useful to developers (like package management), compiling Inkscape on Windows is more tedious than on Linux, but perfectly possible. To make it easier, we have compiled a package that contains all the libraries you need to build Inkscape. This reduces the effort of compiling Inkscape to: download and install 3 programs, download library package, download sourcecode, and you are ready to go.&lt;br /&gt;
&lt;br /&gt;
==Setting up the build environment==&lt;br /&gt;
&lt;br /&gt;
To develop Inkscape, you will need the following things:&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.bazaar.canonical.com/WindowsDownloads Bazaar]&lt;br /&gt;
* [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html PuTTY] programs: puttygen.exe and pageant.exe&lt;br /&gt;
* [http://tdm-gcc.tdragon.net/download TDM's GCC (MingW)], the 32 bit bundle installer is the safe choice (it's called tdm-gcc-4.something and should be one of the very first options).&lt;br /&gt;
* Launchpad account&lt;br /&gt;
&lt;br /&gt;
In order to build the installer (not needed for most developers):&lt;br /&gt;
* [http://sourceforge.net/projects/nsis/files/NSIS%202/2.46/nsis-2.46-setup.exe/download NSIS 2.46]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Install the compiler===&lt;br /&gt;
Run the TDM-MinGW installer:&lt;br /&gt;
# Install in a path that doesn't contain spaces. The path 'C:\mingw' is ideal beacuse it is currently set in the &amp;lt;tt&amp;gt;mingwenv.bat&amp;lt;/tt&amp;gt; file (along with the location of devlibs).&lt;br /&gt;
#* TDM-MinGW's default install option may be to a different location. You will have to edit the &amp;lt;tt&amp;gt;mingwenv.bat&amp;lt;/tt&amp;gt; file to point there.&lt;br /&gt;
#* If you install it into another path, set the environment variable MINGW_PATH to the TDM-MinGW installation directory, e.g. the one containing &amp;lt;tt&amp;gt;README-tdm-gcc.txt&amp;lt;/tt&amp;gt; (right click My Computer -&amp;gt; Properties -&amp;gt; Advanced -&amp;gt; Environment Variables).&lt;br /&gt;
# Be sure to enable the &amp;quot;openmp support&amp;quot; checkbox from the components list or choose to install all packages (option &amp;quot;TDM-GCC recommended, All Packages&amp;quot; in the TDM-GCC (4.5.1) installer).&lt;br /&gt;
#* ''All packages'' option will install support for many other programming languages.&lt;br /&gt;
&lt;br /&gt;
If you have an older version of TDM-GCC (older than 4.5.1?), copy the file &amp;quot;\lib\gcc\mingw32\bin\libgomp-1.dll&amp;quot; to &amp;quot;\bin\libgomp-1.dll&amp;quot; (paths relative to your installation directory).&lt;br /&gt;
&lt;br /&gt;
===Create your Launchpad account===&lt;br /&gt;
If you do not have an SSH public/private key pair to identify yourself:&lt;br /&gt;
*run the program puttygen.exe to generate an SSH key&lt;br /&gt;
*save both its parts.&lt;br /&gt;
Log into your Launchpad account, go to your profile page and add the public part of the generated key to the list of SSH keys. Run the program pageant.exe (you can add it to Autorun). A tray icon should appear. Right click it, select &amp;quot;Add Key&amp;quot; and pick the private key file you have just generated from the dialog. Note that you need to repeat this after every login whenever you want to access Launchpad.&lt;br /&gt;
&lt;br /&gt;
Now set up Bazaar. First tell it who you are, then associate with your Launchpad account. You need to use the account name (e.g. johnq), not the display name.(John Q. Public).&lt;br /&gt;
&lt;br /&gt;
 C:\&amp;gt; bzr whoami &amp;quot;''Your Name'' &amp;lt;''your_real_email@example.com''&amp;gt;&amp;quot;&lt;br /&gt;
 C:\&amp;gt; bzr launchpad-login ''your_launchpad_account''&lt;br /&gt;
&lt;br /&gt;
===Install the developer libraries===&lt;br /&gt;
Check out Inkscape Devlibs into C:\devlibs. If you check them out elsewhere, set the environment variable DEVLIBS_PATH to the path where they are. Devlibs are a bundle of all the libraries needed to compile Inkscape. If you experience any problems, make sure you have an up to date copy of those libraries and an up to date checkout of Inkscape source. To reduce the size of the download, pass the &amp;lt;tt&amp;gt;--lightweight&amp;lt;/tt&amp;gt; parameter.&lt;br /&gt;
&lt;br /&gt;
 C:\&amp;gt; bzr checkout --lightweight lp:inkscape-devlibs devlibs&lt;br /&gt;
&lt;br /&gt;
To update devlibs:&lt;br /&gt;
&lt;br /&gt;
 C:\devlibs&amp;gt; bzr update&lt;br /&gt;
&lt;br /&gt;
All Inkscape developers can commit to the devlibs trunk. Advanced information about Devlibs, mainy useful when you want to update them to newly released versions of upstream libraries, is available here: [[Inkscape Devlibs]].&lt;br /&gt;
You can see some infomation from [https://launchpad.net/inkscape-devlibs launchpad:inkscape-devlibs] and [http://bazaar.launchpad.net/~inkscape.dev/inkscape-devlibs/trunk/files trunk/files].&lt;br /&gt;
&lt;br /&gt;
== Obtaining Inkscape source code ==&lt;br /&gt;
&lt;br /&gt;
You can obtain released Inkscape source from a tarball. Since version 0.47 they are hosted on [https://launchpad.net/inkscape Inkscape's Launchpad page]. There are ready-made installers provided, so there's usually little reason to compile the stable version yourself.&lt;br /&gt;
&lt;br /&gt;
To obtain cutting edge code, check out Inkscape source from the Bazaar repository. You can also use the TortoiseBZR shell extensions to do this. The recommended way is to first create a shared repository, then check out the Inkscape branch into that shared repository. Using this setup, branching will be a lot faster.&lt;br /&gt;
&lt;br /&gt;
 C:\src\inkscape&amp;gt; bzr init-repo --rich-root&lt;br /&gt;
 C:\src\inkscape&amp;gt; bzr checkout lp:inkscape trunk&lt;br /&gt;
&lt;br /&gt;
If you don't want to create any branches, you can skip the shared repository step.&lt;br /&gt;
&lt;br /&gt;
 C:\src&amp;gt; bzr checkout lp:inkscape&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' make sure that the path to your Inkscape source checkout does not contain spaces. Unix tools do not like them and you will end up with a lot of error messages about missing files.&lt;br /&gt;
&lt;br /&gt;
== Building Inkscape ==&lt;br /&gt;
&lt;br /&gt;
Open the command prompt, navigate to the directory with Inkscape sources. First set up some environmental variables. You only need to do this once per console session. This will define the location of your downloaded ''MinGW' and ''devlibs'' so inkscape can find them.&lt;br /&gt;
&lt;br /&gt;
 C:\src\inkscape\trunk&amp;gt; mingwenv&lt;br /&gt;
&lt;br /&gt;
Now compile the build tool. Try the second command if the first one fails.&lt;br /&gt;
&lt;br /&gt;
 C:\src\inkscape\trunk&amp;gt; g++ buildtool.cpp -o btool&lt;br /&gt;
 C:\src\inkscape\trunk&amp;gt; g++ -DNEED_GETTIMEOFDAY buildtool.cpp -o btool&lt;br /&gt;
&lt;br /&gt;
Finally initiate the compilation. Get a coffee or take your dog out for a walk, because it will take a rather long time.&lt;br /&gt;
&lt;br /&gt;
 C:\src\inkscape\trunk&amp;gt; btool&lt;br /&gt;
&lt;br /&gt;
Once everything is done, there should be an &amp;lt;tt&amp;gt;inkscape&amp;lt;/tt&amp;gt; directory that contains the Inkscape executable and libraries needed to run it.&lt;br /&gt;
&lt;br /&gt;
== Rebuilding ==&lt;br /&gt;
&lt;br /&gt;
If you have only changed a few files and want to rebuild, delete the &amp;lt;tt&amp;gt;inkscape&amp;lt;/tt&amp;gt; directory and run &amp;lt;tt&amp;gt;btool&amp;lt;/tt&amp;gt; again.&lt;br /&gt;
&lt;br /&gt;
To rebuild from scratch, execute the following sequence of commands:&lt;br /&gt;
 C:\src\inkscape\trunk&amp;gt; btool clean&lt;br /&gt;
 C:\src\inkscape\trunk&amp;gt; btool&lt;br /&gt;
&lt;br /&gt;
== Dealing With Build Errors ==&lt;br /&gt;
Feel free to add any questions or answers you have in here;&lt;br /&gt;
&lt;br /&gt;
'''Q''' - My firewall software (Comodo's Defense+ component or similar) stopped the process continuing to the next step in the build, because I wasn't there to permit an action and it timed out. What can I do?&lt;br /&gt;
&lt;br /&gt;
'''A1''' - The best thing is to disable stuff like Defense+ (put it in learning mode works) because it will stop any process that is not approved, and building makes new files which can't be approved before they're built. Disabling Comodo's Defense+ does not disable your firewall, either inbound or outbound, but just the part that scans every application for suspicious operations. Other firewalls etc may vary.&lt;br /&gt;
&lt;br /&gt;
'''A2''' - If that doesn't suit, often you can simply run btool again and wait for Defense+ (or similar) to ask for approval for the process, and it will then continue as normal with the build. But remember that approving all the processes involved in the build process once doesn't mean they will all slip through next time.&lt;br /&gt;
&lt;br /&gt;
'''A3''' - This is the more complex way to continue, but may help if you have problems with A2. If you know the stage the process was meant to be up to (look at the output in the command windows and compare to the stages in the ''build.xml'' file), you can start again from there.&lt;br /&gt;
&lt;br /&gt;
You may see something like this in the command window;&lt;br /&gt;
     =============================&lt;br /&gt;
     ## Target : link : link objects and library to create executable&lt;br /&gt;
     ---- task : rc&lt;br /&gt;
     ============ cmd ============&lt;br /&gt;
     windres -o build/inkres.o --include-dir=src src/inkscape.rc&lt;br /&gt;
     =============================&lt;br /&gt;
     ---- task : link&lt;br /&gt;
This will likely be followed by an error message. This means you were at the ''link'' stage&lt;br /&gt;
&lt;br /&gt;
Now simply type;&lt;br /&gt;
     ...&amp;gt;btool ''stage''&lt;br /&gt;
Or in this case&lt;br /&gt;
     ...&amp;gt;btool link&lt;br /&gt;
And the build will continue from there.&lt;br /&gt;
&lt;br /&gt;
After this, you will probably have to step through the remaining stages manually, one by one. The stages can include (see build.xml, where each stage is labelled 'target name=&amp;quot;''target''&amp;quot;') ''init'', ''touchabout'', ''compile'', ''java'', ''lib'', ''i18n'', ''link'', ''linkinkview'', ''dist'', ''dist-all'', ''clean''. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Q''' - How do I rebuild just one ''file.o'' file? For instance if one particular file has gone wrong, or I want to try patching just one part of the code.&lt;br /&gt;
&lt;br /&gt;
'''A''' - To find the right command for building any particular file in Inkscape, just look in the compile.lst after you have used btool once. Search for the name of the particular file (eg: print.cpp) and you will find the command used to compile it. You'll need to paste this into a text file, remove any carriage reurns and then paste that onto the command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Q''' - After I patched a file, I left a backup of the old file in the same directory called Copy of{filename}.cpp. The compiler complains about this file when building and stops.&lt;br /&gt;
&lt;br /&gt;
'''A''' - Do not leave anything with a suffix .cpp in the source directories, apart from the original (or patched) source files. The build tool will try to compile everything ending in .cpp and will complain. If you backup an old file in the same directory before patching, call it {filename}.cpp.old or similar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Q''' - I think I followed the instruction above. What could have caused the compiling error like this for src/extension/internal/pdfinput/pdf-parser.cpp?&lt;br /&gt;
&lt;br /&gt;
     src/extension/internal/pdfinput/pdf-parser.cpp:2248: error: no matching function for call to 'GfxFont::getNextChar(char*&amp;amp;, int&amp;amp;, CharCode*, Unicode [8], int, int*, double*, double*, double*, double*)'&lt;br /&gt;
&lt;br /&gt;
Same error for line 2297 as well.&lt;br /&gt;
&lt;br /&gt;
=== For more information ===&lt;br /&gt;
There is some old information on building Inkscape with either Mingw on Windows, or a cross-compiler on Linux, at http://inkscape.modevia.com/win32_inkscape_org/win32buildnotes.html&lt;br /&gt;
and old files mey be&lt;br /&gt;
http://inkscape.modevia.com/win32libs/&lt;br /&gt;
== Creating an installer ==&lt;br /&gt;
&lt;br /&gt;
To create the setup package you need the NSIS installer on your PC. Get that from http://nsis.sf.net .&lt;br /&gt;
You have successfully built Inkscape and everything is in the ...\inkscape\ directory.&lt;br /&gt;
Open the ...\packaging\win32\inkscape.nsi using the NSIS program and compile the package. Sooo easy :-)&lt;br /&gt;
&lt;br /&gt;
== Note about Unicode ==&lt;br /&gt;
&lt;br /&gt;
The GTK stack depends on functions only present in NT-based Windows (2000 and later). Therefore, Inkscape code can assume that Unicode functions from the Windows API (like GetCommandLineW) are always present. Note however that you should use the GLib/GTK functions rather the Windows API whenever possible.&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
*[[Compiling Inkscape]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Neon22</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Compiling_Inkscape_on_Windows_32-bit&amp;diff=76652</id>
		<title>Compiling Inkscape on Windows 32-bit</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Compiling_Inkscape_on_Windows_32-bit&amp;diff=76652"/>
		<updated>2012-01-12T22:18:28Z</updated>

		<summary type="html">&lt;p&gt;Neon22: /* Install the compiler */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Inkscape was originally written for Linux, but it has been ported to other platforms, including Windows. Since Windows is not POSIX compliant and doesn't have several features useful to developers (like package management), compiling Inkscape on Windows is more tedious than on Linux, but perfectly possible. To make it easier, we have compiled a package that contains all the libraries you need to build Inkscape. This reduces the effort of compiling Inkscape to: download and install 3 programs, download library package, download sourcecode, and you are ready to go.&lt;br /&gt;
&lt;br /&gt;
==Setting up the build environment==&lt;br /&gt;
&lt;br /&gt;
To develop Inkscape, you will need the following things:&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.bazaar.canonical.com/WindowsDownloads Bazaar]&lt;br /&gt;
* [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html PuTTY] programs: puttygen.exe and pageant.exe&lt;br /&gt;
* [http://tdm-gcc.tdragon.net/download TDM's GCC (MingW)], the 32 bit bundle installer is the safe choice (it's called tdm-gcc-4.something and should be one of the very first options).&lt;br /&gt;
* Launchpad account&lt;br /&gt;
&lt;br /&gt;
In order to build the installer (not needed for most developers):&lt;br /&gt;
* [http://sourceforge.net/projects/nsis/files/NSIS%202/2.46/nsis-2.46-setup.exe/download NSIS 2.46]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Install the compiler===&lt;br /&gt;
Run the TDM-MinGW installer:&lt;br /&gt;
# Install in a path that doesn't contain spaces. The path 'C:\mingw' is ideal beacuse it is currently set in the &amp;lt;tt&amp;gt;mingwenv.bat&amp;lt;/tt&amp;gt; file (along with the location of devlibs).&lt;br /&gt;
#* TDM-MinGW's default install option may be to a different location. You will have to edit the &amp;lt;tt&amp;gt;mingwenv.bat&amp;lt;/tt&amp;gt; file to point there.&lt;br /&gt;
#* If you install it into another path, set the environment variable MINGW_PATH to the TDM-MinGW installation directory, e.g. the one containing &amp;lt;tt&amp;gt;README-tdm-gcc.txt&amp;lt;/tt&amp;gt; (right click My Computer -&amp;gt; Properties -&amp;gt; Advanced -&amp;gt; Environment Variables).&lt;br /&gt;
# Be sure to enable the &amp;quot;openmp support&amp;quot; checkbox from the components list or choose to install all packages (option &amp;quot;TDM-GCC recommended, All Packages&amp;quot; in the TDM-GCC (4.5.1) installer).&lt;br /&gt;
#* ''All packages'' option will install support for many other programming languages.&lt;br /&gt;
&lt;br /&gt;
If you have an older version of TDM-GCC (older than 4.5.1?), copy the file &amp;quot;\lib\gcc\mingw32\bin\libgomp-1.dll&amp;quot; to &amp;quot;\bin\libgomp-1.dll&amp;quot; (paths relative to your installation directory).&lt;br /&gt;
&lt;br /&gt;
===Create your Launchpad account===&lt;br /&gt;
If you do not have an SSH public/private key pair to identify yourself:&lt;br /&gt;
*run the program puttygen.exe to generate an SSH key&lt;br /&gt;
*save both its parts.&lt;br /&gt;
Log into your Launchpad account, go to your profile page and add the public part of the generated key to the list of SSH keys. Run the program pageant.exe (you can add it to Autorun). A tray icon should appear. Right click it, select &amp;quot;Add Key&amp;quot; and pick the private key file you have just generated from the dialog. Note that you need to repeat this after every login whenever you want to access Launchpad.&lt;br /&gt;
&lt;br /&gt;
Now set up Bazaar. First tell it who you are, then associate with your Launchpad account. You need to use the account name (e.g. johnq), not the display name.(John Q. Public).&lt;br /&gt;
&lt;br /&gt;
 C:\&amp;gt; bzr whoami &amp;quot;''Your Name'' &amp;lt;''your_real_email@example.com''&amp;gt;&amp;quot;&lt;br /&gt;
 C:\&amp;gt; bzr launchpad-login ''your_launchpad_account''&lt;br /&gt;
&lt;br /&gt;
===Install the developer libraries===&lt;br /&gt;
Check out Inkscape Devlibs into C:\devlibs. If you check them out elsewhere, set the environment variable DEVLIBS_PATH to the path where they are. Devlibs are a bundle of all the libraries needed to compile Inkscape. If you experience any problems, make sure you have an up to date copy of those libraries and an up to date checkout of Inkscape source. To reduce the size of the download, pass the &amp;lt;tt&amp;gt;--lightweight&amp;lt;/tt&amp;gt; parameter.&lt;br /&gt;
&lt;br /&gt;
 C:\&amp;gt; bzr checkout --lightweight lp:inkscape-devlibs devlibs&lt;br /&gt;
&lt;br /&gt;
To update devlibs:&lt;br /&gt;
&lt;br /&gt;
 C:\devlibs&amp;gt; bzr update&lt;br /&gt;
&lt;br /&gt;
All Inkscape developers can commit to the devlibs trunk. Advanced information about Devlibs, mainy useful when you want to update them to newly released versions of upstream libraries, is available here: [[Inkscape Devlibs]].&lt;br /&gt;
You can see some infomation from [https://launchpad.net/inkscape-devlibs launchpad:inkscape-devlibs] and [http://bazaar.launchpad.net/~inkscape.dev/inkscape-devlibs/trunk/files trunk/files].&lt;br /&gt;
&lt;br /&gt;
== Obtaining Inkscape source code ==&lt;br /&gt;
&lt;br /&gt;
You can obtain released Inkscape source from a tarball. Since version 0.47 they are hosted on [https://launchpad.net/inkscape Inkscape's Launchpad page]. There are ready-made installers provided, so there's usually little reason to compile the stable version yourself.&lt;br /&gt;
&lt;br /&gt;
To obtain cutting edge code, check out Inkscape source from the Bazaar repository. You can also use the TortoiseBZR shell extensions to do this. The recommended way is to first create a shared repository, then check out the Inkscape branch into that shared repository. Using this setup, branching will be a lot faster.&lt;br /&gt;
&lt;br /&gt;
 C:\src\inkscape&amp;gt; bzr init-repo --rich-root&lt;br /&gt;
 C:\src\inkscape&amp;gt; bzr checkout lp:inkscape trunk&lt;br /&gt;
&lt;br /&gt;
If you don't want to create any branches, you can skip the shared repository step.&lt;br /&gt;
&lt;br /&gt;
 C:\src&amp;gt; bzr checkout lp:inkscape&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' make sure that the path to your Inkscape source checkout does not contain spaces. Unix tools do not like them and you will end up with a lot of error messages about missing files.&lt;br /&gt;
&lt;br /&gt;
== Building Inkscape ==&lt;br /&gt;
&lt;br /&gt;
Open the command prompt, navigate to the directory with Inkscape sources. First set up some environmental variables. You only need to do this once per console session.&lt;br /&gt;
&lt;br /&gt;
 C:\src\inkscape\trunk&amp;gt; mingwenv&lt;br /&gt;
&lt;br /&gt;
Now compile the build tool. Try the second command if the first one fails.&lt;br /&gt;
&lt;br /&gt;
 C:\src\inkscape\trunk&amp;gt; g++ buildtool.cpp -o btool&lt;br /&gt;
 C:\src\inkscape\trunk&amp;gt; g++ -DNEED_GETTIMEOFDAY buildtool.cpp -o btool&lt;br /&gt;
&lt;br /&gt;
Finally initiate the compilation. Get a coffee or take your dog out for a walk, because it will take a rather long time.&lt;br /&gt;
&lt;br /&gt;
 C:\src\inkscape\trunk&amp;gt; btool&lt;br /&gt;
&lt;br /&gt;
Once everything is done, there should be an &amp;lt;tt&amp;gt;inkscape&amp;lt;/tt&amp;gt; directory that contains the Inkscape executable and libraries needed to run it.&lt;br /&gt;
&lt;br /&gt;
== Rebuilding ==&lt;br /&gt;
&lt;br /&gt;
If you have only changed a few files and want to rebuild, delete the &amp;lt;tt&amp;gt;inkscape&amp;lt;/tt&amp;gt; directory and run &amp;lt;tt&amp;gt;btool&amp;lt;/tt&amp;gt; again.&lt;br /&gt;
&lt;br /&gt;
To rebuild from scratch, execute the following sequence of commands:&lt;br /&gt;
 C:\src\inkscape\trunk&amp;gt; btool clean&lt;br /&gt;
 C:\src\inkscape\trunk&amp;gt; btool&lt;br /&gt;
&lt;br /&gt;
== Dealing With Build Errors ==&lt;br /&gt;
Feel free to add any questions or answers you have in here;&lt;br /&gt;
&lt;br /&gt;
'''Q''' - My firewall software (Comodo's Defense+ component or similar) stopped the process continuing to the next step in the build, because I wasn't there to permit an action and it timed out. What can I do?&lt;br /&gt;
&lt;br /&gt;
'''A1''' - The best thing is to disable stuff like Defense+ (put it in learning mode works) because it will stop any process that is not approved, and building makes new files which can't be approved before they're built. Disabling Comodo's Defense+ does not disable your firewall, either inbound or outbound, but just the part that scans every application for suspicious operations. Other firewalls etc may vary.&lt;br /&gt;
&lt;br /&gt;
'''A2''' - If that doesn't suit, often you can simply run btool again and wait for Defense+ (or similar) to ask for approval for the process, and it will then continue as normal with the build. But remember that approving all the processes involved in the build process once doesn't mean they will all slip through next time.&lt;br /&gt;
&lt;br /&gt;
'''A3''' - This is the more complex way to continue, but may help if you have problems with A2. If you know the stage the process was meant to be up to (look at the output in the command windows and compare to the stages in the ''build.xml'' file), you can start again from there.&lt;br /&gt;
&lt;br /&gt;
You may see something like this in the command window;&lt;br /&gt;
     =============================&lt;br /&gt;
     ## Target : link : link objects and library to create executable&lt;br /&gt;
     ---- task : rc&lt;br /&gt;
     ============ cmd ============&lt;br /&gt;
     windres -o build/inkres.o --include-dir=src src/inkscape.rc&lt;br /&gt;
     =============================&lt;br /&gt;
     ---- task : link&lt;br /&gt;
This will likely be followed by an error message. This means you were at the ''link'' stage&lt;br /&gt;
&lt;br /&gt;
Now simply type;&lt;br /&gt;
     ...&amp;gt;btool ''stage''&lt;br /&gt;
Or in this case&lt;br /&gt;
     ...&amp;gt;btool link&lt;br /&gt;
And the build will continue from there.&lt;br /&gt;
&lt;br /&gt;
After this, you will probably have to step through the remaining stages manually, one by one. The stages can include (see build.xml, where each stage is labelled 'target name=&amp;quot;''target''&amp;quot;') ''init'', ''touchabout'', ''compile'', ''java'', ''lib'', ''i18n'', ''link'', ''linkinkview'', ''dist'', ''dist-all'', ''clean''. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Q''' - How do I rebuild just one ''file.o'' file? For instance if one particular file has gone wrong, or I want to try patching just one part of the code.&lt;br /&gt;
&lt;br /&gt;
'''A''' - To find the right command for building any particular file in Inkscape, just look in the compile.lst after you have used btool once. Search for the name of the particular file (eg: print.cpp) and you will find the command used to compile it. You'll need to paste this into a text file, remove any carriage reurns and then paste that onto the command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Q''' - After I patched a file, I left a backup of the old file in the same directory called Copy of{filename}.cpp. The compiler complains about this file when building and stops.&lt;br /&gt;
&lt;br /&gt;
'''A''' - Do not leave anything with a suffix .cpp in the source directories, apart from the original (or patched) source files. The build tool will try to compile everything ending in .cpp and will complain. If you backup an old file in the same directory before patching, call it {filename}.cpp.old or similar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Q''' - I think I followed the instruction above. What could have caused the compiling error like this for src/extension/internal/pdfinput/pdf-parser.cpp?&lt;br /&gt;
&lt;br /&gt;
     src/extension/internal/pdfinput/pdf-parser.cpp:2248: error: no matching function for call to 'GfxFont::getNextChar(char*&amp;amp;, int&amp;amp;, CharCode*, Unicode [8], int, int*, double*, double*, double*, double*)'&lt;br /&gt;
&lt;br /&gt;
Same error for line 2297 as well.&lt;br /&gt;
&lt;br /&gt;
=== For more information ===&lt;br /&gt;
There is some old information on building Inkscape with either Mingw on Windows, or a cross-compiler on Linux, at http://inkscape.modevia.com/win32_inkscape_org/win32buildnotes.html&lt;br /&gt;
and old files mey be&lt;br /&gt;
http://inkscape.modevia.com/win32libs/&lt;br /&gt;
== Creating an installer ==&lt;br /&gt;
&lt;br /&gt;
To create the setup package you need the NSIS installer on your PC. Get that from http://nsis.sf.net .&lt;br /&gt;
You have successfully built Inkscape and everything is in the ...\inkscape\ directory.&lt;br /&gt;
Open the ...\packaging\win32\inkscape.nsi using the NSIS program and compile the package. Sooo easy :-)&lt;br /&gt;
&lt;br /&gt;
== Note about Unicode ==&lt;br /&gt;
&lt;br /&gt;
The GTK stack depends on functions only present in NT-based Windows (2000 and later). Therefore, Inkscape code can assume that Unicode functions from the Windows API (like GetCommandLineW) are always present. Note however that you should use the GLib/GTK functions rather the Windows API whenever possible.&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
*[[Compiling Inkscape]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Neon22</name></author>
	</entry>
</feed>