Difference between revisions of "Extensions"

From Inkscape Wiki
Jump to navigation Jump to search
Line 30: Line 30:
* '''description'''
* '''description'''
* '''notebook'''
* '''notebook'''
See also [[INX Parameters]]

==Extension Definition File (INX)==
==Extension Definition File (INX)==

Revision as of 11:01, 1 November 2010

This page is intended as a guide for providing new extensions for Inkscape. Currently the majority of extensions are provided as python scripts.

Extension types

The following extension types exist for Inkscape:

  • input
  • output
  • effect
  • print
  • path-effect - path effects are not currently implemented as extension but there is intention to migrate those over as entensions

Extension implementation

  • Internal
    • C++ implementation (directly in code)
  • External
    • scripts - written in python, perl or as system (console) scripts
    • xslt transformations
    • plugins - not fully implemented yet


Extensions can be supplied with values obtained through easily definable parameters. Inkscape provides the basic GUI for user input. The following parameters are supported:

  • integer
  • string
  • float
  • boolean
  • enum
  • optiongroup
  • colour

For the sake of the UI there are also the following two parameters that do not provide data to the extension but alter the user input GUI.

  • description
  • notebook

See also INX Parameters

Extension Definition File (INX)

All extensions are defined through Inkscape Extension Definition Files (.inx) which are XML files in the


namespace and described by the Relax NG available [here]



RadioButton example

The following mark-up:

<?xml version="1.0" encoding="UTF-8"?>
<inkscape-extension xmlns="http://www.inkscape.org/namespace/inkscape/extension">
  <_name>RadioButton example</_name>
  <param name="radio1" type="optiongroup" _gui-text="Select option: ">
    <option value="string1">translatable string 1</option>
    <option value="string2">string 2</option>
    <option value="string3">test 3!</option>
  <param name="radio2" type="optiongroup" _gui-text="Select second option: ">
    <option value="string11">string1</option>
    <option value="string22">string2</option>
      <submenu _name="Developer Examples"/>

Will result in the following GUI being created:

Extensions-radiobutton gui example.png


To allow the .inx files to fit snugly into Inkscape's i18n infrastructure some XML elements and attributes are prefixed with an underscore (_) character to indicate that the containing text should be marked for translation.