README
QUICK OVERVIEW (POSTER)
SUPPORTED INKSCAPE VERSIONS
MightyScape supports
- Inkscape portable (from zip or tar.gz)
- regular installation with MSI Setup on Windows
regular installation from package manager like dnf/yum or apt
sudo apt install inkscape #Ubuntu sudo dnf install inkscape #Fedora
UNSUPPORTED INKSCAPE VERSIONS
MightyScape does not support the snap version and also no AppImage version of Inkscape. The snap edition comes with restrictions letting a lot of extensions fail to work. The reason is the missing access to external python interpreter. So libraries like openmesh or pyclipper cannot be used. The AppImage version will fail for a lot extension too because subprocesses from the AppImage have no acccess to /tmp directory. You can still install MightyScape with snap or AppImage version but beware to get different errors. Feel free to contribute solutions to fix those issues.
INSTALLATION
Get the files
MightyScape project is located at github and gitea. See the readme at section "Remotes" to clone or download the files. If you want some single extensions only check out the official Inkscape Extension Gallery or our zip file mirrors.
There are two places where Inkscape extensions can be located by default, either install (global) directory or user directory. We put the extension in the user's appdata directory because if we would put it to the installation folder of Inkscape we would risk deletion by upgrading. If we put them to the user directory we do not lose them. MightyScape is a all-on-one bundle.
Locations:
OS | User directory | Global directory |
---|---|---|
Linux (Ubuntu, Fedora) | ~/.config/inkscape/extensions/ (if installed with apt) | /usr/share/inkscape/extensions/ (if installed with apt) |
Windows | %appdata%\inkscape\extensions\ | C:\Program Files (x86)\inkscape\extensions\ (32 Bit) C:\Program Files\inkscape\extensions\ (64 Bit) |
You can install MightyScape by two ways. Using git is the preferred one. Adjust the target to your needs, as described above
#Windows example cd %appdata%\inkscape\extensions\ git clone https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X.git #Linux example cd ~/.config/inkscape/extensions/ git clone https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X.git
Alternatively you can download the bundle as .zip or .tar.gz archive and then place it to your target directory (you can convert that zip dir to the git-way using the upgrade extension later)
Install Python3 + modules and configure Inkscape
This is usually a required step for Windows systems or Linux systems which use an AppImage instead a regular installation. Else, if you use regular Linux OS and install Inkscape using the package manager and if you have a recent python 3 there is no need to do anything. This step is especially required if you need to use Python libraries with C bindings, like scipy or pyclipper. Some extensions in the MightyScape package require those. Have a look at MightyScape 1.X - Extensions Overview to check what is needed.
Depending on your operation system, please edit your preferences.xml which usually is located at
- %appdata%\inkscape\preferences.xml (Windows)
- ~/.config/inkscape/extensions/preferences.xml (Linux)
You need to adjust the following line to add a custom python-interpreter like this:
<group id="extensions" python-interpreter="C:\Users\youruser\AppData\Local\Programs\Python\Python310\pythonw.exe" ...
If you get a nasty popup windows each time you are executing an extension, please check if you really use pythonw.exe. Do not use python.exe because this one will be visual.
A lot of Inkscape extensions require additional python modules. In this case we need to switch from Inkscape's default Python interpreter to a custom one (mostly on Windows).Especially the Windows built of Inkscape is a little bit different than the Linux Inkscape's, because it does not use MSVC compiled CPython. Instead it uses GCC compiled Python using MSYS2. This leads to uncompatible components with the default Inkscape's Python. If you want to use the shipped Python env you might need to install pip into the /bin directory of Inkscape to install additional non C bound libraries. You can install pre-compiled (C bindings) libraries from https://repo.msys2.org/mingw. Otherwise just install the official Python 3 version from python.org mirror → https://www.python.org/downloads/windows
The following extra libraries are required for some of the extensions within the MightyScape package:
cd %AppData%\..\Local\Programs\Python\Python310\Scripts #on Windows python -m pip install --upgrade pip #upgrade pip first pip install --upgrade --quiet --no-cache-dir -r requirements.txt #optional stuff #to list and upgrade outdated modules: pip list pip list --outdated #warning - updating all modules might be dangerous! #Linux: pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U #Windows: for /F "delims= " %i in ('pip list --outdated') do pip install -U %i #Fedora - additionally dnf install python3-devel
requirements.txt
debugpy lxml moderngl numpy networkx openmesh opencv-python pyclipper pillow scipy scour shapely svg-to-gcode svgpathtools vpype vpype-dxf GitPython wheel pytesseract cairosvg PyQt5 PySide6 brother_ql cssselect #required by boxes.py affine #required by boxes.py #vpype occult plugin setup git+https://github.com/abey79/occult.git#egg=occult #vpype deduplicate plugin setup tqdm git+https://github.com/LoicGoulefert/deduplicate.git#egg=deduplicate #plycutter git+https://github.com/tjltjl/plycutter.git
if openmesh fails to install please see Paperfold for more details about installing it
Using a custom Python environment on Windows wil make official Extensions Manager impossible to run because it cannot be properly installed because the library "pygobject" will fail.
UPGRADING
There are two ways to upgrade MightyScape. Choose from:
- if you installed MightyScape using git clone, just go to the git directory and run "git pull" or use the extension "Upgrade MightyScape", which can be found in Extensions → FabLab Chemnitz → Upgrade MightyScape
- There is some special updater extension which allows to update the complete MightyScape package once it was properly pulled by git. You need to install GitPython library to use the updater:
- There is some special updater extension which allows to update the complete MightyScape package once it was properly pulled by git. You need to install GitPython library to use the updater:
- if you previously downloaded a bulk zip file from github or gitea, just replace the content of the containing folder with the new files
About Inkscape extensions in general
Extension calls are possible in different ways. You may find some description at http://wiki.inkscape.org/wiki/index.php/Extension_requirements. Inkscape can run extension from a lot of different interpreters and executors like Python, Ruby, Perl, binary executables, bash scripts and so on.
The "..." dots indicator
Please note that extensions with "..." indicate the extension will have some GUI / menu to use. Extensions with out will perform action directly on current selection or the whole document!
Not integrated due to errors / obsolete
The following plugins were checked but were sorted out due to errors or less use.
Not integrated yet / investigating
Wrappers and pre/post processors for Inkscape files
- https://github.com/denisri/fdc_catamaps
- https://github.com/RobG73/InkscapeFileMaker (create SVG files by command line/scripts)
- https://github.com/fpermana/svgbuild-py3 (generate video files from SVG)
Where to find more Inkscape extensions?
Inkscape extensions are spread over the net. Some good soures to find new stuff:
- https://inkscape.org/de/gallery/=extension (another link with query indicator q returns a lot more stuff: https://inkscape.org/gallery/?q=extension )
- http://wiki.inkscape.org/wiki/index.php/Extension_repository
- http://wiki.inkscape.org/wiki/index.php/Inkscape_Extensions
- https://github.com/search?o=desc&p=30&q=inkscape&s=stars&type=Repositories
- https://github.com/topics/inkscape
- https://github.com/search?o=desc&p=60&q=%3Cinkscape-extension+xmlns%3D%22http%3A%2F%2Fwww.inkscape.org%2Fnamespace%2Finkscape%2Fextension%22%3E&s=indexed&type=Code
- gitlab
- https://gitlab.com/explore/projects/starred?name=inkscape&non_archived=true&page=1&search=inkscape&sort=latest_activity_desc
- searching in gitlab does'nt make fun. We cannot browse for more than 50 pages and we see all forks in the search
- Tip: skip all repo's with Inkscape icon in repo because they are forks only).
Better search gitlab using google with a filter like:
site:gitlab.com inkscape extension -"Python extensions for Inkscape core" -"issues" -"Inkscape / extensions" -"src/extension/" -"merge" -"contains the stock" -"extension-manager"
- https://gitlab.com/Moini/ink_extensions
- https://sourceforge.net/directory/?q=inkscape
Inkscape communities → https://inkscape.org/de/community
Google
- "inkscape extension site:gist.github.com"
- "inkscape plugin site:gist.github.com"
- https://www.thingiverse.com/search?q=inkscape
- https://pypi.org/search/?q=inkscape
INX Linting and validations
For validation purposes of all inx files we can use the following step:
apt-get update && apt-get install libxml2-utils #install require stuff cd ~/.config/inkscape/extensions/mightyscape-1.X/extensions/fablabchemnitz ./000_validate.sh #does not support linting for deeper folders (no recurse) #or lint a single file in an extensions' dir: cd <yourExtension> xmllint --noout --relaxng ../inkscape.extension.rng *.inx
If there is an error message instead of the export/import dialog, check the file or console log from Inkscape:
#Windows %AppData%\Roaming\inkscape\extension-errors.log #Linux ~/.config(inkscape/extension-errors.log
Counting INX files and folders:
cd ~/.config/inkscape/extensions/mightyscape-1.X/extensions/fablabchemnitz find ./ -type f -name "*.inx" | wc -l ls -d */ | wc -l
Donate
You like our work and want to support us? You can donate to our non-profit organization by different ways: https://y.stadtfabrikanten.org/donate
Thanks for using our extension and helping us!
1 Comment
Anonymous
This is brilliant ! Thanx - Daniel K. Schneider, http://faclab.ch/