So you want to contribute to the Numix app themes? Great! Make sure that you're doing the following so that we can get your contributions merged in as soon as possible.
All contributions, regardless of which bit of the project they're part of, must follow these steps:
- Fork our GitHub repository
- Make your changes and push them to your fork
- Remember to write a proper commit message
- If you're fixing an issue, close it using keywords
- Create a new pull request
- Make any changes requested and push again
- When the pull request is accepted you can delete your fork or sync it
Now you are ready to start again!
This section covers what to do when creating a new icon or changing the design for an existing icon. If you're wanting to add a symlink see the section on the data file.
- Make your icon using Inkscape (free and open source)
- You must follow our style guidelines
- Icons must be saved as an optimized SVG with these settings
- New icon need an entry in the data file
- Create a different pull request for each (unrelated) change you're submitting
- Pull requests must contain icons for Circle and Square at minimum
- Adding icons for other themes such as Shine and uTouch is optional
- Include a sample of your icon (example) to make review easier
The data.json
file contains all the information needed for linking the icons to the names needed by different platforms. It has the following structure:
{
"icon-entry": {
"android": [
"com.example.app/com.example.app.Activity"
],
"linux": {
"root": "PrimaryName",
"symlinks": [
"alternative-entry",
"org.other.Entry"
]
},
"osx": [
"icon-name",
"alternative-name"
],
"tags": ["tag1", "tag2", "tag3"]
}
}
icon-entry
is the name of the SVG file and should be meaningfully named using dash-case.android
is a list of components the icon should use, which can be gathered from the "ComponentInfo" here.linux
holds the names from theIcon=*
line of*.desktop
filesroot
holds the primary entrysymlinks
holds alternative names
osx
is a list of icon names to export for the macOS theme.tags
is a list of common design elements used by this SVG.
When editing this file for a pull request GitHub Actions will run a validation check to make sure you haven't made any errors, but please try and check before pushing to make review as easy as possible.
The scripts used for theme building and validation are written in Python. Similarly to the data file, GitHub Actions will run a validation check using flake8 to make sure the coding style you've used is consistent with that used in the project. If you are working on this part of the project it's recommended that you check your changes using flake8 before creating a pull request.
Throughout this project we use 4 spaces for JSON and Python files, and generally use 1 space for SVG. The easiest way to do this is to use the editorconfig included here. If you want to diverge, do it locally (e.g. using git filters).
Documentation is all written in markdown and should be markdownlint compliant.