Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extensions (aka plugins, addons, packages) #1403

dacap opened this issue Feb 3, 2017 · 6 comments

Extensions (aka plugins, addons, packages) #1403

dacap opened this issue Feb 3, 2017 · 6 comments


Copy link

@dacap dacap commented Feb 3, 2017

We should be able to create "extensions." An extension should be a zip-like file with some metadata giving details about what it includes, author, URLs, etc. Extensions should be easy to be added/removed. Possible things that an extension could include:

  • Themes (we need a better theme specs too)
  • Preset palettes
  • Extra dithering matrices (#418, #584)
  • A new language (#124)
  • Common brushes (#175)
  • Add theme variations/customization (e.g. color schemes for an existent theme) (#712)
  • Keyboard shortcuts
  • Import/export plugin (with a special SDK) (#54)
  • Provide a way to start the application without loading user extensions (just in case the program cannot start with the latest installed extensions). (Chrome has a nice --user-data-dir argument.)

We are using libarchive to uncompress .zip extensions and json11 to parse package.json file.

@dacap dacap added the feature label Feb 3, 2017
Copy link

@hawkins hawkins commented Mar 1, 2017

Extensions are one of my favorite features for In particular, I've used extensions to add entire new tools such as radial text tools that are accessible via an effects menu bar.

However, would allowing extensions to modify stock tools be a possibility?

One example use case for this is an extension that modifies how selecting a region of pixels and resizing it is handled. This extension may do something like prevent the outermost/surrounding pixels in the region from duplicating when stretched wide, while interior pixels resize and stretch like normally.

Copy link
Member Author

@dacap dacap commented Mar 1, 2017

@hawkins Initially extensions should be basic stuff (themes, fonts, shortcuts, languages, import/export plugins). More complex stuff could be added in the future after some iterations but I don't promise it. Generally extensions = more maintenance = code complexity = more bugs (and third party bugs). So we have to go step by step.

@dacap dacap added the maintenance label Apr 18, 2017
@dacap dacap mentioned this issue Jun 5, 2017
2 of 4 tasks complete
@dacap dacap added this to the v1.2 milestone Jun 9, 2017
@dacap dacap self-assigned this Jun 9, 2017
dacap added a commit that referenced this issue Jun 10, 2017
At the moment only themes are supported and some functionality is not
available yet (disabling an extension, uninstalling it, etc.)
dacap added a commit that referenced this issue Jun 10, 2017
dacap added a commit that referenced this issue Jun 12, 2017
- Added libarchive to uncompress .zip extensions
- Moved ListItem painting code to styles because we needed a selected+disabled state.
dacap added a commit that referenced this issue Jun 15, 2017
@dacap dacap mentioned this issue Jun 16, 2017
3 of 11 tasks complete
@dacap dacap modified the milestones: v1.2, v1.3 Sep 12, 2017
Copy link

@codecat codecat commented Oct 20, 2017

I use Aseprite mostly for measuring things (eg. getting coordinates/sizes from a spritesheet), and have some ideas in mind for extensions for my specific use. Is some kind of scriptable API available yet, or is one planned?

Copy link
Member Author

@dacap dacap commented Oct 24, 2017

@codecat there is no API to get information from the sprite yet, but something in the future will be available (you can follow this project: )

Copy link

@codecat codecat commented Oct 24, 2017

Good to hear, thank you!

Copy link

@chekoopa chekoopa commented Jul 27, 2018

It would be nice to have a way to keep up easier development and debugging of extensions. Maybe, by keeping them unzipped in some accessible directory or (which is more convenient) having a CLI keys to manage them separately (and put some lines into Makefile, why not?).

@dacap dacap added the scripting label Sep 3, 2018
@dacap dacap mentioned this issue Dec 11, 2018
1 of 5 tasks complete
dacap added a commit that referenced this issue Apr 3, 2020
zaghaghi added a commit to zaghaghi/aseprite that referenced this issue Apr 30, 2020
@dacap dacap added the plugins label May 5, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
4 participants