Install Inkscape and Master the Basics
Install Inkscape via Flatpak, AppImage, or distro packages, then learn layers, paths, Boolean operations, shortcuts, and SVG/PNG export for the web.
Before you start
- ▸A working desktop environment (X11 or Wayland)
- ▸Flatpak installed and Flathub configured (if using the Flatpak method)
- ▸Node.js installed if you plan to use svgo for SVG optimization
- ▸Basic familiarity with mouse and keyboard shortcuts
Inkscape is the go-to open-source vector editor for everything from SVG icons to print-ready illustrations. It runs on every major distro and can replace Adobe Illustrator for a surprising range of tasks. This guide gets you installed via the best method for your setup, then walks through the core concepts you need to be productive fast.
Installation: Choosing Your Method
Three realistic options exist: distro packages, Flatpak, and AppImage. Each has trade-offs.
Distro Packages (Fastest, Possibly Older)
Repo packages integrate tightest with your system fonts and file manager but may lag behind upstream by a release or two. Inkscape 1.x is the modern series; avoid anything older.
# Debian / Ubuntu
sudo apt update && sudo apt install inkscape
# Fedora
sudo dnf install inkscape
# Arch / Manjaro
sudo pacman -S inkscape
Flatpak (Recommended for Most Users)
Flatpak gives you the current stable release regardless of distro and sandboxes it cleanly. This is the method that tracks upstream closest without going cutting-edge.
# One-time Flathub setup (skip if already configured)
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub org.inkscape.Inkscape
# Launch
flatpak run org.inkscape.Inkscape
Wayland note: Inkscape 1.3+ has improved Wayland support, but if you see blurry rendering or input bugs under a pure Wayland session, force XWayland by prefixing the launch command with DISPLAY=:0 or setting the environment variable GDK_BACKEND=x11. Most users on GNOME 45+ will be fine without this workaround.
AppImage (Portable, No Install)
Use AppImage when you need a specific version without touching system packages, or you're on a locked-down machine.
# Download from https://inkscape.org/release/
# Then make it executable and run
chmod +x Inkscape-*.AppImage
./Inkscape-*.AppImage
AppImages don't auto-update; you manage versions manually. They also won't appear in application menus unless you use a tool like appimagelauncher.
The Interface at a Glance
When Inkscape opens, you see a canvas (white rectangle), a toolbox on the left, a properties bar at the top that changes with your active tool, a color palette at the bottom, and an XML editor you can open with Ctrl+Shift+X. Everything is dockable and rearrangeable via View → Show/Hide.
Working with Layers
Layers keep complex illustrations manageable. Every SVG has at least one layer. Open the Layers panel with Ctrl+Shift+L (or Layer → Layers…).
Creating and Naming Layers
# Inkscape has no CLI for layer manipulation;
# all layer work is done in the GUI or via Python extensions
- Click the + button in the Layers panel to add a layer; give it a descriptive name immediately.
- Drag layers in the panel to reorder them — higher in the list means rendered on top.
- Lock a layer with the padlock icon to prevent accidental edits.
- Toggle the eye icon to hide a layer while working.
Objects placed while a layer is active belong to that layer. Use Layer → Move Selection to Layer Above/Below to relocate objects after the fact.
Understanding Paths
Everything in a vector drawing ultimately becomes a path — a sequence of nodes connected by straight or curved segments. Rectangles and circles are shape objects until you convert them; paths give full control over every anchor point.
Converting Shapes to Paths
Select any shape, then:
# Keyboard shortcut equivalent:
# Select object → Shift+Ctrl+C
That's Path → Object to Path. After conversion, switch to the Node tool (N) to drag individual nodes or adjust curve handles.
Boolean Path Operations
Select two overlapping objects and combine them with path operations under the Path menu:
- Union (Ctrl++) — merges both shapes into one.
- Difference (Ctrl+-) — subtracts the top object from the bottom; great for punching holes.
- Intersection (Ctrl+*) — keeps only the overlapping region.
- Exclusion (Ctrl+^) — keeps non-overlapping areas, removes intersection.
Essential Keyboard Shortcuts
| Action | Shortcut |
|---|---|
| Select tool | S or F1 |
| Node tool | N or F2 |
| Zoom to fit page | 5 |
| Zoom in / out | + / - |
| Pan canvas | Middle-click drag or Space+drag |
| Group selection | Ctrl+G |
| Ungroup | Ctrl+Shift+G |
| Duplicate in place | Ctrl+D |
| Align and Distribute | Ctrl+Shift+A |
| Fill and Stroke dialog | Ctrl+Shift+F |
| Undo / Redo | Ctrl+Z / Ctrl+Y |
Exporting for the Web
Inkscape's native format is SVG, which is already web-ready. For raster exports or optimized SVGs, use the Export dialog.
Exporting as PNG
Open File → Export PNG Image (Ctrl+Shift+E). Choose one of four scopes: Page, Drawing, Selection, or Custom area. Set DPI (96 is screen-standard, 300 for print) and click Export As, then Export.
Saving a Clean SVG for the Web
Use File → Save a Copy and choose Plain SVG rather than Inkscape SVG. Plain SVG strips Inkscape-specific metadata, reducing file size. For further optimization, pipe it through svgo:
# Install svgo (requires Node.js)
npm install -g svgo
# Optimize
svgo input.svg -o output.svg
A typical icon SVG shrinks 20–60% through svgo without visible quality loss. Always check the output in a browser before shipping.
Batch Export via CLI
Inkscape ships with a capable command-line interface, useful for CI pipelines or batch jobs:
# Export a specific layer as PNG at 192 DPI
inkscape --export-type=png \
--export-dpi=192 \
--export-filename=output.png \
input.svg
# Convert SVG to PDF
inkscape --export-type=pdf \
--export-filename=output.pdf \
input.svg
If installed via Flatpak, prefix commands with flatpak run org.inkscape.Inkscape in place of inkscape.
Verifying Everything Works
- Launch Inkscape and confirm the title bar shows version 1.2 or higher (Help → About Inkscape).
- Create a rectangle, convert it to a path (Shift+Ctrl+C), and drag a node with the Node tool — you should see smooth curve handles appear.
- Export the canvas as a PNG at 96 DPI and open it in your image viewer to confirm the output matches what's on screen.
- Run
inkscape --versionin a terminal to confirm CLI access works (Flatpak users: use the fullflatpak runprefix).
Troubleshooting
Inkscape Crashes on Launch (Flatpak)
Run flatpak update first. If it persists, reset the user config directory: rm -rf ~/.var/app/org.inkscape.Inkscape/config/inkscape. This deletes custom preferences, so back up any templates first.
Fonts Missing or Wrong
The Flatpak sandbox may not see all system fonts. Install fonts into ~/.local/share/fonts/ and run fc-cache -f; the Flatpak runtime reads this directory. Alternatively, install org.freedesktop.Platform.html5emu or check the Flathub page for font-related runtime extensions.
SVG Opens Blank or Corrupted
Open the XML editor (Ctrl+Shift+X) and check for namespace errors. If the file came from Illustrator, it may use proprietary AI extensions Inkscape ignores — try File → Clean Up Document then save as Plain SVG to strip unknown elements.
CLI Exports Produce No Output
Verify the input path is absolute or correctly relative, and that the output directory exists. Inkscape won't create missing parent directories silently.
Frequently asked questions
- What's the difference between Inkscape SVG and Plain SVG?
- Inkscape SVG includes extra metadata like layer labels, guides, and grid settings that only Inkscape understands. Plain SVG strips those out, producing a smaller, more portable file that renders identically in browsers and other SVG-aware tools.
- Is Inkscape suitable for print work, or just screen graphics?
- Inkscape handles print work well — it supports CMYK color via extensions, exports to PDF, and works in physical units like millimetres. However, it lacks native CMYK color management in the core UI, so for professional prepress, verify output with your printer's proofing tools.
- Why does text look different after I open my SVG in a browser?
- SVG text uses font names, and if the browser can't find the same font, it substitutes a fallback. Convert text to paths (Path → Object to Path) before exporting if exact letterforms matter, or embed a web font using a @font-face CSS rule in the SVG.
- Flatpak vs AppImage — which should I choose day-to-day?
- Flatpak integrates better with system file pickers, portals, and application menus, and updates automatically with flatpak update. AppImage is better when you need a specific version pinned or can't use Flatpak on your system.
- Can I run Inkscape extensions or plugins?
- Yes. Extensions live in ~/.config/inkscape/extensions/ (or ~/.var/app/org.inkscape.Inkscape/config/inkscape/extensions/ for Flatpak). Many are Python scripts; ensure the Flatpak has access to a Python runtime, or install the extension's dependencies inside the sandbox using flatpak-spawn.
Related guides
Linux Clipboards Explained (+ Clipboard Managers)
Learn the difference between Linux's PRIMARY and CLIPBOARD selections, use xclip, xsel, and wl-clipboard from the terminal, and manage history with GPaste or Klipper.
Configure LibreOffice for Daily Use
Configure LibreOffice for daily use: set default save formats for MS Office interop, tune autosave, install fonts, and add productivity extensions.
Configure the Touchpad and Multitouch Gestures
Configure Linux touchpad behavior and multitouch gestures using libinput, libinput-gestures, and native GNOME and KDE Plasma settings on both Wayland and X11.
Wayland vs X11: How to Choose and Configure Each
Know when to run Wayland or X11, how to check your current session, switch at login with GDM/SDDM/LightDM, and handle NVIDIA and XWayland edge cases.