v3.1 rebuilds the theming core and adds fine-grained control over every color: per-token and per-app overrides, contrast levels and launcher shortcuts for your wallpaper colors.
New theme engine
- Theming is rebuilt on a token engine driven by Material Color Utilities, now generated straight from the upstream sources. The system overlay, the in-app preview, the palette grids and community cards all go through the same pipeline, so the preview matches the applied theme exactly
- Light and dark colors are written into the same overlay (Android 14+)
- Reworked saturation and lightness tuning with adaptive gamut clipping
- Covers the Monet tokens added in Android 17 and the fixed and dim tokens missing on Android 15+
- /e/OS 4.0 (Android 16) theming compatibility
Color tokens (root)
- Override any Material color token with a palette shade or a custom color, separately for light and dark. This replaces the old manual override setting
- A token usage guide explains where each token shows up
- Overrides that make text barely readable get a low-contrast warning
Per-app colors (root)
- Override colors for individual apps, with automatic discovery of the colors an app defines
- Per-app overlays now carry both light and dark palettes
- Pitch black selects the apps it needs on its own: Settings, Settings Search, LineageParts, the theme picker and Dolby Atmos on Android 15+, plus Pixel Launcher, the Google app, Google News and Play Games. Turning it off removes only the apps it added. Apps you select, deselect or give custom colors are left alone
- Nothing is pre-selected by default anymore
Contrast levels (root)
- New contrast level setting
- The ColorSpec and contrast rows show the current selection, and the ColorSpec picker explains each version
Wallpaper colors
- Live wallpapers are followed as their colors change
- Long-press the app icon to apply one of your wallpaper colors straight from the launcher
- The device stays awake during the screen-off color update wait, so the update isn't dropped
- The basic color grid now has nine evenly spaced colors
Theme
- Edit the light and dark sliders without switching the system mode
- Reset button for custom secondary and tertiary colors
Community creations
- Support for schema v2 themes with token overrides. Older themes keep their original look, with a switch for the legacy color mapping
- Themes that only work in one mode are marked dark only or light only. Barely readable themes get a low contrast badge
- Shared themes need a meaningful name and description
- Counts past 1K are shortened, the search query is kept when opening a theme, and the list scrolls to the top when the sort order changes
- The community index is no longer refetched every time the screen opens
Interface
- Settings overflow menu replaced with regular rows
- Connected button group for backup and restore
- Clearer selected check icon and master switch contrast
- Flat search bars, centered color palette card text, no shadows on the preview buttons
- Predictive back animations restored, and touches are ignored on screens that are animating out
Removed
- The darker and semi-transparent launcher icon options
Fixes
- Shizuku connection and master switch failures (#312)
- Root apply crash on Android 12 and 13, and CMF style crash on older color specs
- Restart job crash on Android 12 and later
- Wireless ADB reconnects after a dropped connection and before running commands; the ADB key pair is regenerated when missing or corrupt; the pairing notification no longer reappears on its own
- Theming restarts after app updates and quick boot, and per-app theming is kept when the themed app updates
- Backups restore reliably, and applying a custom style keeps your device settings and wallpaper tracking
- A discarded preview no longer comes back, and unapplied preview colors are never pushed to the system
- The preview now matches pitch black and accurate shades exactly
- Samsung's palette overlay state is restored when theming is turned off
- Malformed system theme settings are handled, and theme data passed to the shell is escaped
- The preferences provider rejects writes from other apps
- Much of the heavy work moved off the main thread for smoother scrolling and faster startup
Known issue
On One UI, a Dual Messenger profile prevents Shizuku and wireless ADB theming from updating some Material 3 colors. See the FAQ.
Translation credit goes to all the contributors on our crowdin platform.