You'll need the following to make themes.
The following are optional, and recommended.
- Koneki LDT (Lua IDE. Available standalone or as Eclipse plugin)
git clone the sample theme's git repo.
- Rename the directory to your theme's unique id:
mv redditisfun.3.light com.example.cooltheme
- Change the theme settings in
- Make your changes locally. Remember to
git commit often!
See the API docs for in-depth theme creation topics.
git clone the xml2lua git repo.
- Load the project in Eclipse. TODO Ant script
Drawable2Lua with a single argument: path to the XML file.
- It will output a .lua file in the project's working directory. Move that to your theme directory and modify it as needed.
- Push your theme to the device:
adb push /desktop/com.example.cooltheme /sdcard/mycoolthemes/com.example.cooltheme
- Launch reddit is fun
- Menu -> Theme
- Enable Developer mode checkbox
- Select your theme directory, e.g.,
- Restart the app (press Back)
- If the theme file has errors, the theme will not show up. Instead, the error and stack trace will appear in a dialog.
These are instructions for getting your theme into the theme shop.
I recognize it's a very manual process right now. If anyone has a better way to handle this, I'm all ears.
- Update the
manifest.json file to show correct version. For a new theme, will be version 1.
- Zip the theme directory. You will have, e.g.,
com.example.cooltheme.zip containing a single top-level directory named
com.example.cooltheme. As usual substituting
com.example.cooltheme with your theme's unique id.
- Optionally password protect the zip using your zip program.
- Upload the zip to a location I can download from.
- Take screenshots and post on imgur.
- PM zip URL (with zip password) and screenshots URL to /u/talklittle on reddit.
- I will respond to you when I have downloaded the zip, so you can delete the file from the server if you want.
- Once I have tested it, I'll let you know if accepted or rejected from the theme shop.
Themes served from the theme shop will be compiled, and the Lua scripts therein will not be human-readable.