INKSCAPE(1)
๐ INKSCAPE ๐
ok so bestie, welcome to the Inkscape Commands Manual (yes, INKSCAPE(1), we're fancy like that) โ this is the manual page for Inkscape, an SVG (Scalable Vector Graphics) editing program. buckle up ๐
โจ NAME โจ
Inkscape โ an SVG (Scalable Vector Graphics) editing program.
๐ธ SYNOPSIS ๐ธ
inkscape [options] [filename_1 filename_2 ...]
and the options, in all their glory:
-?, --help
--help-all
--help-gapplication
--help-gtk
-V, --version
--debug-info
--system-data-directory
--user-data-directory
-p, --pipe
-n, --pages=PAGE[,PAGE]
--pdf-poppler
--convert-dpi-method=METHOD
--no-convert-text-baseline-spacing
-o, --export-filename=FILENAME
--export-overwrite
--export-type=TYPE[,TYPE]*
--export-extension=EXTENSION-ID
-C, --export-area-page
-D, --export-area-drawing
-a, --export-area=x0:y0:x1:y1
--export-area-snap
-d, --export-dpi=DPI
-w, --export-width=WIDTH
-h, --export-height=HEIGHT
--export-margin=MARGIN
--export-page=all|n[,a-b]
-i, --export-id=OBJECT-ID[;OBJECT-ID]*
-j, --export-id-only
-l, --export-plain-svg
--export-png-color-mode=COLORMODE
--export-png-compression=LEVEL
--export-png-antialias=LEVEL
--export-png-use-dithering=BOOLEAN
--export-ps-level=LEVEL
--export-pdf-version=VERSION
-T, --export-text-to-path
--export-latex
--export-ignore-filters
-t, --export-use-hints
-b, --export-background=COLOR
-y, --export-background-opacity=VALUE
-I, --query-id=OBJECT-ID[,OBJECT-ID]*
-S, --query-all
-X, --query-x
-Y, --query-y
-W, --query-width
-H, --query-height
--vacuum-defs
--select=OBJECT-ID[,OBJECT-ID]*
--actions=ACTION(:ARG)[;ACTION(:ARG)]*
--action-list
--actions-file=FILENAME
-g, --with-gui
-q, --active-window
--display=DISPLAY
--app-id-tag=TAG
--batch-process
--shell
๐ฆ DESCRIPTION ๐ฆ
So like. Inkscape is a Free and open source vector graphics editor. ๐ It's got a whole rich set of features and it's widely used โ for both artistic AND technical illustrations. we're talking cartoons, clip art, logos, typography, diagramming, flowcharting โ the whole buffet. It uses vector graphics, which means sharp printouts and renderings at unlimited resolution are just... a thing that happens. no cap. unlike raster graphics, it is not bound to a fixed number of pixels. iconic behavior honestly.
Inkscape uses the standardized SVG file format as its main format โ and that format is supported by sooo many other applications, web browsers included. ๐
The interface is designed to be comfortable and efficient for skilled users, while also staying conformant to GNOME standards โ so if you already know other GNOME apps, you can learn this interface rapidly. main character energy fr.
SVG is a W3C standard XML format for 2D vector drawing. It lets you define objects in the drawing using points, paths, and primitive shapes. Colors, fonts, stroke width, and so forth get specified as style attributes to these objects. The whole intent here? Since SVG is a standard, and since its files are text/xml, it should be possible to use SVG files in a sizeable number of programs and for a wide range of uses. obsessed. ๐ซถ
Inkscape uses SVG as its native document format, and has the goal of becoming the most fully compliant drawing program for SVG files available in the Open Source community. periodt.
๐ OPTIONS ๐
okay here's where it gets juicy. every flag, every letter, all of it.
-?,--helpโ shows u a help message ๐ฅฐ--help-allโ shows u ALL the help options. the full lore drop.--help-gapplicationโ shows the GApplication options.--help-gtkโ shows the GTK+ options.-V,--versionโ shows the Inkscape version and build date. โจ--debug-infoโ prints technical info: Inkscape version, dependency versions, and operating system. This info is useful when debugging issues with Inkscape and should be included whenever you're filing a bug report. like, pls include it bestie, the devs need it ๐ญ--system-data-directoryโ prints the system data directory, aka where the data files that ship with Inkscape live. That includes:- files Inkscape requires to run โ think unit definitions, built-in key maps, files describing UI layout, icon themes, etc.
- core extensions
- stock resources: filters, fonts, markers, color palettes, symbols, templates
- documentation: SVG example files, tutorials
The location where Inkscape expects the system data directory can be overridden with the INKSCAPE_DATADIR environment variable.
--user-data-directoryโ prints the user profile directory, where user-specific data files and preferences are stored. Custom extensions and resources (filters, fonts, markers, color palettes, symbols, templates) should be installed into their respective subdirectories in this directory. Also: if you drop a file in here with a name identical to one in the system data directory, that lets you override most presets from the system data directory (e.g. default templates, UI files, etc.). ๐
The default location of the profile directory can be overridden with the INKSCAPE_PROFILE_DIR environment variable.
-p,--pipeโ reads the input file from standard input (stdin).--pages=PAGEโ imports the given comma separated list of pages from a PDF, or a multi page SVG file.
This replaces the --pdf-page from previous Inkscape versions. (iykyk)
--pdf-popplerโ by default, Inkscape imports PDF files via an internal (poppler-derived) library: text is stored as text, and meshes are converted to tiles. Use--pdf-popplerto import via an external (poppler with cairo backend) library instead โ in that case, text consists of groups containing cloned glyphs where each glyph is a path, images are stored internally, and meshes cause the entire document to be rendered as a raster image. ๐--convert-dpi-method=METHODโ picks the method used to rescale legacy (pre-0.92) files, which render slightly smaller because of the switch from 90 DPI to 96 DPI when interpreting lengths expressed in units of pixels. Possible values:noneโ no change, document will render at 94% of its original sizescale-viewboxโ document will be rescaled globally, individual lengths stay untouchedscale-documentโ each length will be re-scaled individually
--no-convert-text-baseline-spacingโ do not automatically fix text baselines in legacy (pre-0.92) files on opening. Here's the tea: Inkscape 0.92 adopts the CSS standard definition for theline-heightproperty, which differs from past versions. By default, the line height values in files created prior to Inkscape 0.92 will be adjusted on loading to preserve the intended text layout. This command line option skips that adjustment.-o,--export-filename=FILENAMEโ sets the name of the output file. The default is to re-use the name of the input file. If--export-typeis also used, the file extension will be adjusted (or added) as appropriate. Otherwise, the file type to export gets inferred from the extension of the filename you specified. ๐ธ
Using the special filename - makes Inkscape write the image data to standard output (stdout).
--export-overwriteโ overwrites the input file. ๐ณ (yes, that one. be careful bestie.)--export-type=TYPE[,TYPE]*โ specify the file type to export. Possible values:svg,png,ps,eps,pdf,emf,wmfโ and every file type for which an export extension exists. You can export more than one file type at a time. ๐
Note that PostScript does not support transparency, so any transparent objects in the original SVG will be automatically rasterized. Used fonts are subset and embedded. The default export area is page; you can set it to drawing by --export-area-drawing.
Note that PDF format preserves the transparency in the original SVG.
--export-extension=EXTENSION-IDโ lets you specify an output extension to be used for exporting, which is especially relevant if there's more than one export option for a given file type. If set, the file extension in--export-filenameand--export-typemay be omitted. Also, if set, only one file type may be given in--export-type.-C,--export-area-pageโ in SVG, PNG, PDF, PS the exported area is the page. This is the default for SVG, PNG, PDF, and PS, so you don't need to specify this unless you're using--export-idto export a specific object. For EPS this option is currently not supported. ๐-D,--export-area-drawingโ in SVG, PNG, PDF, PS, and EPS export, the exported area is the drawing (not the page) โ i.e. the bounding box of all objects of the document (or of the exported object, if--export-idis used). With this option, the exported image will display all the visible objects of the document without margins or cropping. This is the default export area for EPS. For PNG, it can be used in combination with--export-use-hints.-a x0:y0:x1:y1,--export-area=x0:y0:x1:y1โ in PNG export, set the exported area of the document, specified in px (1/96 in). The default is to export the entire document page. The point(0,0)is the lower-left corner. โญ--export-area-snapโ for PNG export, snaps the export area outwards to the nearest integer px values. If you're using the default export resolution of 96 dpi and your graphics are pixel-snapped to minimize antialiasing, this switch lets you preserve that alignment even if you're exporting some object's bounding box (with--export-idor--export-area-drawing) which is itself not pixel-aligned.-d DPI,--export-dpi=DPIโ the resolution used for PNG export. It's also used for fallback rasterization of filtered objects when exporting to PS, EPS, or PDF (unless you specify--export-ignore-filtersto suppress rasterization). The default is 96 dpi, which corresponds to 1 SVG user unit (px, also called "user unit") exporting to 1 bitmap pixel. This value overrides the DPI hint if used with--export-use-hints.-w WIDTH,--export-width=WIDTHโ the width of the generated bitmap in pixels. This value overrides the--export-dpisetting (or the DPI hint if used with--export-use-hints).
<!-- part 1 ends here, more coming ๐ -->
-h HEIGHT,--export-height=HEIGHTโ sets how tall the generated bitmap is, in pixels. This value overrides the--export-dpisetting (or the DPI hint if you're using--export-use-hints). ๐--export-margin=MARGINโ adds a margin around the exported area. The margin size is in units of page size (for SVG) or millimeters (for PS/PDF). ngl this option currently has no effect for other export formats.-i ID,--export-page=all|n[,a-b]*โ exports only the pages you pick. If more than one page is specified, the resulting document may contain multiple pages if the format supports it. The value can be a comma-separated list of page numbers, or page ranges of two numbers separated by a dash. The keyword'all'can be used to say all pages should be exported. ๐-i ID,--export-id=OBJECT-ID[;OBJECT-ID]*โ for PNG, PS, EPS, PDF and plain SVG export, this is theidattribute value of the object(s) you want to pull out of the document; all other objects are not exported. By default the exported area is the bounding box of the object; you can override that using--export-area(PNG only) or--export-area-page. If you specify many values with a semicolon-separated list of objects, each one gets exported separately. Then the exported files are named like this:[input_filename]_[ID].[export_type]๐ฏ-j,--export-id-onlyโ for PNG, PS, EPS, PDF and plain SVG export, only export the object whose id is given in--export-id. All other objects are hidden and won't show in the export even if they overlay the exported object. Without--export-id, this option is ignored. ๐-l,--export-plain-svgโ exports document(s) to plain SVG format, withoutsodipodi:orinkscape:namespaces and without RDF metadata. Use the--export-filenameoption to specify the filename. โจ--export-png-color-mode=COLORMODEโ sets the color mode (bit depth and color type) for exported bitmaps. Pick one of:Gray_1/Gray_2/Gray_4/Gray_8/Gray_16/RGB_8/RGB_16/GrayAlpha_8/GrayAlpha_16/RGBA_8/RGBA_16๐จ--export-png-compression=LEVELโ sets the compression level for PNG export (0to9); default is6. ๐๏ธ--export-png-antialias=LEVELโ sets the antialiasing level for PNG export (0to3); default is2. ๐ช--export-png-use-dithering=false|trueโ forces dithering on or disables it. Heads up: the Inkscape build must support dithering for this to work. ๐--export-ps-level=LEVELโ sets the language version for PS and EPS export. PostScript level2or3is supported. Default is3. ๐จ๏ธ--export-pdf-version=VERSIONโ selects the PDF version of the exported PDF file. This option basically exposes the PDF version selector found in the PDF-export dialog of the GUI. You must provide one of the versions from that combo-box, e.g."1.4". The default PDF export version is"1.4". ๐-T,--export-text-to-pathโ converts text objects to paths on export, where applicable (for PS, EPS, PDF and SVG export). ๐คโก๏ธ๐๏ธ--export-latexโ (for PS, EPS, and PDF export) used for creating images for LaTeX documents, where the image's text is typeset by LaTeX. When exporting to PDF/PS/EPS format, this option splits the output into a PDF/PS/EPS file (e.g. as specified by--export-type) and a LaTeX file. Text will not be output in the PDF/PS/EPS file, but instead will appear in the LaTeX file. This LaTeX file includes the PDF/PS/EPS. Inputting (\input{image.tex}) the LaTeX file in your LaTeX document will show the image and all text will be typeset by LaTeX. See the resulting LaTeX file for more information. Also see GNUPlot'sepslatexoutput terminal. ๐งโ๐ซ--export-ignore-filtersโ exports filtered objects (e.g. those with blur) as vectors, ignoring the filters (for PS, EPS, and PDF export). By default, all filtered objects are rasterized at--export-dpi(default96dpi), preserving the appearance. ๐ซง-t,--export-use-hintsโ while exporting to PNG, use export filename and DPI hints stored in the exported object (only with--export-id). These hints are set automatically when you export selection from within Inkscape. So, for example, if you export a shape withid="path231"as/home/me/shape.pngat300dpi fromdocument.svgusing Inkscape GUI, and save the document, then later you will be able to reexport that shape to the same file with the same resolution simply with:
inkscape -i path231 -t document.svg
If you use --export-dpi, --export-width, or --export-height with this option, then the DPI hint will be ignored and the value from the command line will be used. If you use --export-filename with this option, then the filename hint will be ignored and the filename from the command line will be used. ๐ก
-b COLOR,--export-background=COLORโ background color of exported PNG. This may be any SVG supported color string, for example"#ff007f"or"rgb(255, 0, 128)". If not set, then the page color set in Inkscape in the Document Properties dialog will be used (stored in thepagecolor=attribute ofsodipodi:namedview). ๐จ-y VALUE,--export-background-opacity=VALUEโ opacity of the background of exported PNG. This may be a value either between0.0and1.0(0.0meaning full transparency,1.0full opacity) or greater than1up to255(255meaning full opacity). If not set and the-boption is not used, then the page opacity set in Inkscape in the Document Properties dialog will be used (stored in theinkscape:pageopacity=attribute ofsodipodi:namedview). If not set but the-boption is used, then the value of255(full opacity) will be used. ๐ซฅ-I,--query-id=OBJECT-ID[,OBJECT-ID]*โ sets the ID(s) of the object(s) whose dimensions are queried in a comma-separated list. If not set, query options will return the dimensions of the drawing (i.e. all document objects), not the page or viewbox. If you specify many values with a comma-separated list of objects, any geometry query (e.g.--query-x) will return a comma-separated list of values corresponding to the list of objects in--query-id. ๐-S,--query-allโ prints a comma-delimited listing of all objects in the SVG document with IDs defined, along with theirx,y,width, andheightvalues. ๐-X,--query-xโ queries the X coordinate of the drawing or, if specified, of the object with--query-id. The returned value is inpx(SVG user units). โ๏ธ-Y,--query-yโ queries the Y coordinate of the drawing or, if specified, of the object with--query-id. The returned value is inpx(SVG user units). โ๏ธ-W,--query-widthโ queries the width of the drawing or, if specified, of the object with--query-id. The returned value is inpx(SVG user units). โ๏ธ-H,--query-heightโ queries the height of the drawing or, if specified, of the object with--query-id. The returned value is inpx(SVG user units). โ๏ธ--vacuum-defsโ removes all unused items from the"<defs>"section of the SVG file. If this option is invoked in conjunction with--export-plain-svg, only the exported file will be affected. If it is used alone, the specified file will be modified in place. ๐งน
Careful bestie: used alone, --vacuum-defs edits your file in place. Maybe back it up first? ๐
--select=OBJECT-ID[,OBJECT-ID]*โ the--selectcommand will cause objects that have the ID specified to be selected. You can select many objects with a comma-separated list. This allows various verbs to act upon them. To remove all the selections use"--verb=EditDeselect". The object IDs available are dependent on the document specified to load. ๐ฏ--actions=ACTION(:ARG)[;ACTION(:ARG)]*โ actions are a new method to call functions with an optional single parameter. To get a list of the action IDs available, use the--action-listcommand line option. Eventually all verbs will be replaced by actions. Temporarily, any verb can be used as an action (without a parameter). Note, most verbs require a GUI (even if they don't use it). To close the GUI automatically at the end of processing, use--batch-process. In addition all export options have matching actions (remove the'--'in front of the option and replace'='with':'). If only actions are used--batch-processmust be used. Export can be forced at any point with theexport-doaction. This allows one to do multiple exports on a single file. โก--action-listโ prints a list of all available actions. ๐--actions-file=FILENAMEโ executes all actions listed in the file. The file contents must be formatted using the syntax of--actions. This option overrides the--actionsargument when both are given. ๐-g,--with-guiโ tries to use the GUI (on Unix, use the X server even if$DISPLAYis not set). ๐ฅ๏ธ-q,--active-windowโ instead of launching a new Inkscape process, this will run the command in the most recently focused Inkscape document. ๐ช--display=DISPLAYโ sets the X display to use for the Inkscape window. ๐ฅ๏ธ--app-id-tag=TAGโ creates a unique instance of Inkscape with the application ID'org.inkscape.Inkscape.TAG'. This is useful to separate the Inkscape instances when running different Inkscape versions or using different preferences files concurrently. ๐ท๏ธ--batch-processโ closes the GUI after executing all actions or verbs. ๐ช--shellโ with this parameter, Inkscape will enter an interactive command line shell mode. In this mode, you type in commands at the prompt and Inkscape executes them, without you having to run a new copy of Inkscape for each command. This feature is mostly useful for scripting and server uses: it adds no new capabilities but allows you to improve the speed and memory requirements of any script that repeatedly calls Inkscape to perform command line tasks (such as export or conversions). ๐
Shell mode means Inkscape is sitting there waiting for a sequence of actions (aka verbs) as input, bestie. They get processed line by line โ which basically means every time you hit enter ๐ . And yes, you can cram all your actions onto a single line if that's your vibe (it's totally not required tho).
You can also pair this option with the --active-window parameter so the shell commands run inside an Inkscape document that's already open. Iconic.
The example below opens a file and exports it into two different formats, then opens another file and exports a single object:
file-open:file1.svg; export-type:pdf; export-do; export-type:png; export-do
file-open:file2.svg; export-id:rect2; export-id-only; export-filename:rect_only.svg; export-do
๐ CONFIGURATION ๐
Your main config file lives at ~/.config/inkscape/preferences.xml and it's holding so many customization settings you can change right inside Inkscape (mostly through the Inkscape Preferences dialog). And listen โ in the subdirectories in there, you can drop your own lil goodies:
$HOME/.config/inkscape/extensions/โ extensions.$HOME/.config/inkscape/fonts/โ fonts.$HOME/.config/inkscape/icons/โ icon sets.$HOME/.config/inkscape/keys/โ keyboard maps.$HOME/.config/inkscape/paint/โ patterns and hatches.$HOME/.config/inkscape/palettes/โ palettes.$HOME/.config/inkscape/symbols/โ symbol files.$HOME/.config/inkscape/templates/โ new file templates.$HOME/.config/inkscape/ui/โ user interface files.
๐ DIAGNOSTICS ๐
The program returns zero on success, or non-zero on failure. That's the whole vibe check.
A whole variety of error messages and warnings might get printed to STDERR or STDOUT. And fr fr โ if the program starts acting erratic with a particular SVG file, or straight up crashes, look at this output for clues. It's giving detective work ๐.
โจ EXAMPLES โจ
Okay so obviously Inkscape is primarily a GUI application, but bestieโฆ it can do SVG processing on the command line too and it ate.
Open an SVG file in the GUI:
inkscape filename.svg
Export an SVG file into PNG with the default resolution of 96 dpi (one SVG user unit translates to one bitmap pixel):
inkscape --export-filename=filename.png filename.svg
Same, but force the PNG file to be 600x400 pixels:
inkscape --export-filename=filename.png -w 600 -h 400 filename.svg
Same, but export the drawing (bounding box of all objects), not the page:
inkscape --export-filename=filename.png --export-area-drawing filename.svg
Export two different files into four distinct file formats each:
inkscape --export-type=png,ps,eps,pdf filename1.svg filename2.svg
Export to PNG the object with id="text1555", using the output filename and the resolution that were used for that object last time when it was exported from the GUI:
inkscape --export-id=text1555 --export-use-hints filename.svg
Same, but use the default 96 dpi resolution, specify the filename, and snap the exported area outwards to the nearest whole SVG user unit values (to preserve pixel-alignment of objects and thus minimize aliasing):
inkscape --export-id=text1555 --export-filename=text.png --export-area-snap filename.svg
Convert an Inkscape SVG document to plain SVG:
inkscape --export-plain-svg --export-filename=filename2.svg filename1.svg
Convert an SVG document to EPS, converting all texts to paths:
inkscape --export-filename=filename.eps --export-text-to-path filename.svg
Query the width of the object with id="text1555":
inkscape --query-width --query-id=text1555 filename.svg
Duplicate the objects with id="path1555" and id="rect835", rotate the duplicates 90 degrees, save SVG, and quit:
inkscape --select=path1555,rect835 --actions="duplicate;object-rotate-90-cw" --export-overwrite filename.svg
Select all objects with ellipse tag, rotate them 30 degrees, save the file, and quit.
inkscape --actions="select-by-element:ellipse;transform-rotate:30" --export-overwrite filename.svg
Export the object with the ID MyTriangle with a semi transparent purple background to the file triangle_purple.png and with a red background to the file triangle_red.png.
inkscape --actions="export-id:MyTriangle; export-id-only; export-background:purple; export-background-opacity:0.5;export-filename:triangle_purple.png; export-do; export-background:red; export-background-opacity:1; export-filename:triangle_red.png; export-do" filename.svg
Read an SVG from standard input (stdin) and export it to PDF format:
cat filename.svg | inkscape --pipe --export-filename=filename.pdf
Export an SVG to PNG format and write it to standard output (stdout), then convert it to JPG format with ImageMagick's convert program:
inkscape --export-type=png --export-filename=- filename.svg | convert - filename.jpg
Same as above, but also reading from a pipe (--export-filename can be omitted in this case)
cat filename.svg | inkscape --pipe --export-type=png | convert - filename.jpg
๐ ENVIRONMENT VARIABLES ๐
INKSCAPE_PROFILE_DIRโ Set a custom location for the user profile directory. ๐INKSCAPE_DATADIRโ Set a custom location for the Inkscape data directory (e.g.$PREFIX/shareif Inkscape's shared files are in$PREFIX/share/inkscape). ๐INKSCAPE_LOCALEDIRโ Set a custom location for the translation catalog. ๐
For more details see also http://wiki.inkscape.org/wiki/index.php/Environment_variables
๐ OTHER INFO ๐
The canonical place to find Inkscape info is at https://www.inkscape.org/. That website is holding news, documentation, tutorials, examples, mailing list archives, the latest released version of the program, bugs and feature requests databases, forums, and more. She's got range ๐ .
๐ SEE ALSO ๐
potrace, cairo, rsvg, batik, ghostscript, pstoedit.
SVG compliance test suite: https://www.w3.org/Graphics/SVG/WG/wiki/Test_Suite_Overview
SVG validator: https://validator.w3.org/
Scalable Vector Graphics (SVG) 1.1 Specification W3C Recommendation 16 August 2011 https://www.w3.org/TR/SVG11/
Scalable Vector Graphics (SVG) 1.2 Specification W3C Working Draft 13 April 2005 https://www.w3.org/TR/SVG12/
Scalable Vector Graphics (SVG) 2 Specification W3C Candidate Recommendation 15 September 2016 https://www.w3.org/TR/SVG2/
Document Object Model (DOM): Level 2 Core W3C Recommendation 13 November 2000 https://www.w3.org/TR/DOM-Level-2-Core/
๐ฆ GUI NOTES ๐ฆ
To learn Inkscape's GUI operation, read the manual in Help > Inkscape manual, and the tutorials in Help > Tutorials. Go read, bestie ๐.
Apart from SVG, Inkscape can import (File > Import) most bitmap formats (PNG, BMP, JPG, XPM, GIF, etc.), plain text (requires Perl), PS and EPS (requires Ghostscript), PDF and AI format (AI version 9.0 or newer).
Inkscape exports 32-bit PNG images (File > Export PNG Image) as well as AI, PS, EPS, PDF, DXF, and several other formats via File > Save as.
Inkscape can use the pressure and tilt of a graphic tablet pen for width, angle, and force of action of several tools, including the Calligraphic pen. โ๏ธ
Inkscape includes a GUI front-end to the Potrace bitmap tracing engine (http://potrace.sf.net) which is embedded into Inkscape.
Inkscape can use external scripts (stdin-to-stdout filters) that are represented by commands in the Extensions menu. A script can have a GUI dialog for setting various parameters and can get the IDs of the selected objects on which to act via the command line. Inkscape comes with an assortment of effects written in Python. ๐
โจ๏ธ KEYBINDINGS โจ๏ธ
To get a complete list of keyboard and mouse shortcuts, view doc/keys.html, or use the Keys and Mouse command in Help menu.
๐ BUGS ๐
Many bugs are known ๐ญ; please refer to the website (https://www.inkscape.org/) for reviewing the reported ones and to report newly found issues. See also the Known Issues section in the Release Notes for your version (file NEWS).
๐ธ HISTORY ๐ธ
The codebase that would become Inkscape began life in 1999 as the program Gill, the GNOME Illustrator application, created by Raph Levien. The stated objective for Gill was to eventually support all of SVG. Raph implemented the PostScript bezier imaging model, including stroking and filling, line cap style, line join style, text, etc. Raph's Gill page is at http://www.levien.com/svg/. Work on Gill appears to have slowed or ceased in 2000.
The next incarnation of the codebase was to become the highly popular program Sodipodi, led by Lauris Kaplinski. The codebase was turned into a powerful illustration program over the course of several year's work, adding several new features, multi-lingual support, porting to Windows and other operating systems, and eliminating dependencies.
Inkscape was formed in 2003 by four active Sodipodi developers, Bryce Harrington, MenTaLguY, Nathan Hurst, and Ted Gould, wanting to take a different direction with the codebase in terms of focus on SVG compliance, interface look-and-feel, and a desire to open development opportunities to more participants. The project progressed rapidly, gaining a number of very active contributors and features. Main character energy fr fr ๐
Much work in the early days of the project focused on code stabilization and internationalization. The original renderer inherited from Sodipodi was laced with a number of mathematical corner cases which led to unexpected crashes when the program was pushed beyond routine uses; this renderer was replaced with Livarot which, while not perfect either, was significantly less error prone. The project also adopted a practice of committing code frequently, and encouraging users to run developmental snapshots of the program; this helped identify new bugs swiftly, and ensure it was easy for users to verify the fixes. As a result, Inkscape releases have generally earned a reputation for being robust and reliable.
Similarly, efforts were taken to internationalize and localize the interface, which has helped the program gain contributors worldwide. ๐
Inkscape has had a beneficial impact on the visual attractiveness of Open Source in general, by providing a tool for creating and sharing icons, splash screens, website art, and so on. In a way, despite being "just an drawing program", Inkscape has played an important role in making Open Source more visually stimulating to larger audiences. ๐
๐ AUTHORS ๐
okay so this codebase? it literally owes its whole entire existence to a huge number of contributors across all its various incarnations, no cap. the list below is definitely incomplete, but it's here to recognize every single shoulder this application is sitting on, and honestly? we're obsessed:
Maximilian Albert, Joshua A. Andler, Tavmjong Bah, Pierre Barbry-Blot, Jean-Franรงois Barraud, Campbell Barton, Bill Baxter, John Beard, John Bintz, Arpad Biro, Nicholas Bishop, Joshua L. Blocher, Hanno Bรถck, Tomasz Boczkowski, Adrian Boguszewski, Henrik Bohre, Boldewyn, Daniel Boles, Daniel Borgmann, Bastien Bouclet, Hans Breuer, Gustav Broberg, Christopher Brown, Marcus Brubaker, Luca Bruno, Brynn, Nicu Buculei, Bulia Byak, Pierre Caclin, Ian Caldwell, Gail Carmichael, Ed Catmur, Chema Celorio, Jabiertxo Arraiza Cenoz, Johan Ceuppens, Zbigniew Chyla, Alexander Clausen, John Cliff, Kees Cook, Ben Cromwell, Jon Cruz, Aurรฉlie De-Cooman, Kris De Gussem, Milosz Derezynski, Daniel Dรญaz, Bruno Dilly, Larry Doolittle, Nicolas Dufour, Tim Dwyer, Maxim V. Dziumanenko, Moritz Eberl, Johan Engelen, Miklos Erdelyi, Ulf Erikson, Noรฉ Falzon, Sebastian Faubel, Frank Felfe, Andrew Fitzsimon, Edward Flick, Marcin Floryan, Fred, Ben Fowler, Cedric Gemy, Steren Giannini, Olivier Gondouin, Ted Gould, Toine de Greef, Michael Grosberg, Bryce Harrington, Dale Harvey, Aurรฉlio Adnauer Heckert, Renรฉ de Hesselle, Carl Hetherington, Jos Hirth, Hannes Hochreiner, Thomas Holder, Joel Holdsworth, Christoffer Holmstedt, Alan Horkan, Karl Ove Hufthammer, Richard Hughes, Nathan Hurst, inductiveload, Thomas Ingham, Jean-Olivier Irisson, Bob Jamison, Ted Janeczko, Marc Jeanmougin, jEsuSdA, Lauris Kaplinski, Lynn Kerby, Niko Kiirala, James Kilfiger, Nikita Kitaev, Jason Kivlighn, Adrian Knoth, Krzysztof Kosiลski, Petr Kovar, Michael Kowalski, Benoรฎt Lavorata, Alex Leone, Julien Leray, Raph Levien, Diederik van Lierop, Nicklas Lindgren, Vitaly Lipatov, Ivan Louette, Fernando Lucchesi Bastos Jurema, Pierre-Antoine Marc, Aurel-Aimรฉ Marmion, Colin Marquardt, Craig Marshall, Ivan Masรกr, Dmitry G. Mastrukov, David Mathog, Matiphas, Patrick McDermott, Michael Meeks, Federico Mena, MenTaLguY, Aubanel Monnier, Vincent Montagne, Tim Mooney, Derek P. Moore, Chris Morgan, Peter Moulder, Jรถrg Mรผller, Yukihiro Nakai, Victor Navez, Jonathan Neuhauser, Christian Neumair, Nick, Andreas Nilsson, Mitsuru Oka, Vinรญcius dos Santos Oliveira, Martin Owens, PBS, Alvin Penner, Matthew Petroff, Jon Phillips, Zdenko Podobny, Alexandre Prokoudine, Jean-Renรฉ Reinhard, Alexey Remizov, Frederic Rodrigo, Hugo Rodrigues, Jean Franco Amoni Rodrรญguez, Juarez Rudsatz, Xavier Conde Rueda, Felipe Corrรชa da Silva Sanches, Christian Schaller, Marco Scholten, Tom von Schwerdtner, Markus Schwienbacher, Danilo ล egan, Abhishek Sharma, Tim Sheridan, Shivaken, Rafaล Siejakowski, Michael Sloan, John Smith, Sandra Snan, Boลกtjan ล petiฤ, Aaron Spike, Kaushik Sridharan, Ralf Stephan, Dariusz Stojek, Patrick Storz, Martin Sucha, Sushant A.A., ~suv, Pat Suwalski, Adib Taraben, Parcly Taxel, Hugh Tebby, Jonas Termeau, David Turner, Andre Twupack, Aleksandar Uroลกeviฤ, Alex Valavanis, Joakim Verona, Lucas Vieites, Daniel Wagenaar, Liam P. White, Sebastian Wรผst, Michael Wybrow, Gellule Xg, Daniel Yacob, Masatake Yamato, David Yip, Wen-Wei Kao
like, literal icons, every one of them. ๐ โจ
๐ COPYRIGHT AND LICENSE ๐
so like, the legal bits but make it cute:
Copyright (C) 1999-2023 by Authors.
Inkscape is free software; you can redistribute it and/or modify it under the terms of the GPL version 2 or later.
bestie that's the whole vibe โ free as in freedom, fr fr. ๐ฆ
and that's a wrap on the whole page! ๐ this was Inkscape 1.4.4, dated 2026-05-11, aka the one and only INKSCAPE(1) โ now go make something iconic, you absolute main character. ๐๐
๐ฆ where this page comes from
- fedora 43: inkscape 1.4.4-1.fc43 ยท GPL-2.0-or-later AND CC-BY-3.0
- fedora 44: inkscape 1.4.4-1.fc44 ยท GPL-2.0-or-later AND CC-BY-3.0
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms