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

Open
dacap opened this issue Feb 3, 2017 · 6 comments

Comments

@dacap
Copy link
Member

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 enhancement label Feb 3, 2017

@hawkins

This comment has been minimized.

Copy link

commented Mar 1, 2017

Extensions are one of my favorite features for Paint.net. 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.

@dacap

This comment has been minimized.

Copy link
Member Author

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 referenced 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
First draft-implementation of extensions (#1403)
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
Implement Add/Uninstall extension (#1403)
- 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 referenced this issue Jun 16, 2017
3 of 11 tasks complete

@dacap dacap modified the milestones: v1.2, v1.3 Sep 12, 2017

@codecat

This comment has been minimized.

Copy link

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?

@dacap

This comment has been minimized.

Copy link
Member Author

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: https://github.com/aseprite/api )

@codecat

This comment has been minimized.

Copy link

commented Oct 24, 2017

Good to hear, thank you!

@chekoopa

This comment has been minimized.

Copy link

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 referenced this issue Dec 11, 2018
0 of 4 tasks complete
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
4 participants
You can’t perform that action at this time.