Compile InfiniTime with only the apps and screens you need. Reduce the amount of used memory to save resources for your own custom apps, watchfaces, images, or fonts.
- Any Linux system with a bash shell and Python3
- A local InfiniTime repository
- CLI interface.
- Easy UX. Everything can be done from one simple, (eventually) well-documented bash script (
./infinitweaks.sh
). include
- mark a watchface or app to include in a new InfiniTime buildexclude
- mark a watchface or app to exclude in a new InfiniTime buildsetit
- set a working path to an existing local InfiniTime repositoryshow
- show all current marked changes
- Easily make small quality of life changes that may not be added to an official release
- EXAMPLES: change the color of the ball in Paddle, add animations to Twos, overhaul the settings menu to personal tastes, etc.
- InfiniSim compatibility
- Detailed documentation
Commands
all
- show all marked changes to InfiniTime buildapply
- apply marked changes to local InfiniTime repositorycompile
- compile a new InfiniTime build with the marked changesremove
- unmark a change to the current InfiniTime build
- Run
./infinitweaks.sh
. Someabout
info is shown - Run the
help
command to see the full functionality of infinitweaks - Use
setit <path-to-IT>
to set the working path of a local InfiniTime repository - Show all the apps you're able to include and exclude by using the
all
command- This is based on the apps known by your local InfiniTime repo found in
path/to/InfiniTime
, set by thesetit
command
- This is based on the apps known by your local InfiniTime repo found in
- Use
include <AppName>
to mark an app to include in the build- Note: Your
AppName.h
andAppName.cpp
need to be present inpath-to-IT/src/displayapp/screens/
- Marking something as explicitly
include
d is not necessary, unless you have previously marked an app asexclude
d by mistake
- Note: Your
- Use
exclude <AppName>
to mark an app to exclude in the build- This is the one you'll probably use the most. Exclude any app from the ones previously listed by the
all
command - Note: For include/exclude, don't modify the Apps.h file separately. infinitweaks handles this for you by adding and commenting out your AppName as needed.
- This is the one you'll probably use the most. Exclude any app from the ones previously listed by the
- Use
show
to show the current marked changes to InfiniTime- Changes marked with
<i> AppName
are apps explicitly included - Changes marked with
<e> AppName
are apps explicitly excluded - Other apps not marked in the changes won't be touched and will default to included
- Changes marked with
- Use
apply
to apply the marked changes- This will modify the CMakeLists.txt and Apps.h files by commenting out your AppName if you want it excluded, or uncommenting it/adding it if marked as included.
- Use
compile <IT-build-name>
to compile the modified version of InfiniTime, and pass in your desired name for the resulting zip archive
After all this, you should be able to carry on with the standard firmware upload process using the newly generated zip file.
NOTE: For a normal user, you shouldn't need to touch any files found in this repo besides infinitweaks.sh
. Everything can be done from the main bash script, and all other files here are used by this script.
Thanks for reading. If you want to contribute code, please know that I am fairly new to bash and Cmake, so any improvements and constructive criticism is encouraged! Don't be afraid to submit a PR that will help improve this project. Oh, and as always, file detailed bug reports in the Github Issues.