Tools and Utilities - joneavila/aesthetic GitHub Wiki

Utility Scripts

The utils/ directory contains several scripts, including:

  • compare_themes.sh - Compares two muOS themes by analyzing directory structures and file contents
  • convert_font_to_binary.sh - Converts font files to binary format for muOS
  • generate_template_glyphs.py - Converts SVG icons to PNG format using the glyph map glyph_map.txt, which maps output paths for glyph images to input SVG files
  • print_average_glyph_dimensions.sh - Calculates the average dimensions of PNG glyphs in a directory, useful for setting the size of generated glyphs

See their documentation for more information.

GitHub Assets

The animated preview in README.md shows muOS with various theme settings, now available as built-in presets.

To create a new preview:

  1. Capture screenshots using Menu + Power on handheld
  2. Assemble screenshots in video editor, such as iMovie, 1 second per image
  3. Process with FFmpeg to crop to display dimensions, loop, and convert to WEBP:
ffmpeg -i input.mp4 -vf "setpts=0.5*PTS,crop=in_h*4/3:in_h" -r 10 -loop 0 output.webp

Note: The preview can be created using only images and FFmpeg if you are an FFmpeg wizard. If you have a script to do this, please submit a PR!

Pre-compiled LÖVE Binaries and Libraries

Pre-compiled LÖVE binaries and libraries are included in the repository. See LICENSE for details.

Cebion/love2d_aarch64 provides pre-compiled binaries (up to LÖVE 11.4, outdated as of 2025-02-19).

Compiling LÖVE Binaries and Libraries

For compiling LÖVE, see PortMaster – Development Guide. Below are the commands I used on an Ubuntu 64-bit Arm VM:

# Install dependencies
sudo apt update
sudo apt -y install pkg-config

# Build LuaJIT from source:
# https://luajit.org/install.html
git clone https://luajit.org/git/luajit.git
cd luajit
make && sudo make install

# Install SDL2:
# https://wiki.libsdl.org/SDL2/Installation
sudo apt-get install libsdl2-dev
sudo apt-get install libopenal-dev

# Download LÖVE source, extract
wget https://github.com/love2d/love/releases/download/11.5/love-11.5-linux-src.tar.gz
tar xf love-11.5-linux-src.tar.gz
cd love-11.5/

# Configure, build
./configure
make -j12
strip src/.libs/liblove-11.5.so
cp src/.libs/liblove-11.5.so device/libs
cp src/.libs/love device/