86 lines
3.2 KiB
Markdown
86 lines
3.2 KiB
Markdown
# StatusBarTweak
|
|
|
|
StatusBarTweak is an Xposed/LSPosed module for Samsung SystemUI. It focuses on
|
|
making the status bar, lockscreen, and Always On Display more configurable while
|
|
still keeping Samsung's own icons and visual style where possible.
|
|
|
|
The project is currently tested only on a Samsung Galaxy Z Fold5 running One UI
|
|
8.0 / Android 16. Expect device- and One UI-version-specific behaviour.
|
|
|
|
## What It Does
|
|
|
|
- Custom status bar layout for the unlocked screen, lockscreen, and AOD.
|
|
- Independent placement of clock, carrier text, notification icons, status
|
|
icons, and Samsung status chips.
|
|
- Separate notification display handling for Samsung's cards, icons, and dot
|
|
modes.
|
|
- Configurable icon sizes, vertical offsets, ordering, spacing, truncation, and
|
|
cutout handling.
|
|
- Hide selected notification icons by app, separately for AOD, lockscreen, and
|
|
unlocked mode.
|
|
- Hide selected status icons such as NFC, Bluetooth, hotspot, location, VPN,
|
|
battery, and similar SystemUI indicators.
|
|
- Optional custom clock text with multi-line formatting, colours, font families,
|
|
and cutout-aware split alignment.
|
|
- Battery bar with configurable position, alignment, thickness, colours, and
|
|
threshold colours.
|
|
- Controls for Samsung status chips such as media, navigation, and call chips.
|
|
- Debug tools for generating test notifications, visualizing layout containers,
|
|
and restarting SystemUI during development.
|
|
|
|
## Custom Clock Text
|
|
|
|
The custom clock uses Java-style date/time patterns such as `HH:mm`,
|
|
`EEE d MMM HH:mm`, or `HH:mm:ss`.
|
|
|
|
It also supports lightweight markup:
|
|
|
|
- HTML-like tags: `<i>`, `<u>`, `<small>`, `<big>`, and `<font ...>`.
|
|
- Shorthand blocks such as `{#FA0 big @sans-serif-condensed}HH:mm`.
|
|
- Multi-line text using `\n` or `{\\n12}`.
|
|
- Pipe alignment with `|`, useful for aligning split clock rows around a camera
|
|
cutout.
|
|
- Colour variants and simple colour math for light/dark status bar states.
|
|
|
|
The in-app clock page has the full syntax help and examples.
|
|
|
|
## Requirements
|
|
|
|
- A rooted Samsung device.
|
|
- A modern Xposed implementation such as LSPosed.
|
|
- Xposed API 101 or newer.
|
|
- A Samsung/One UI version close to One UI 8.0 / Android 16.
|
|
|
|
This module hooks Samsung SystemUI internals. It is not expected to work on
|
|
non-Samsung SystemUI, and updates to One UI may require fixes.
|
|
|
|
## Device Compatibility
|
|
|
|
StatusBarTweak is Samsung-specific in its current form. Some lower-level ideas,
|
|
such as drawing a custom battery bar or parsing custom clock text, could be
|
|
ported elsewhere. The layout engine itself depends on Samsung's SystemUI,
|
|
lockscreen, AOD service, notification display modes, status icons, and status
|
|
chip implementation.
|
|
|
|
Plain Android or other OEM skins would need separate hooks and probably a
|
|
different source-collection layer. They should be treated as unsupported rather
|
|
than untested-compatible.
|
|
|
|
## Build
|
|
|
|
The project is a standard Gradle Android project:
|
|
|
|
```bash
|
|
./gradlew assembleDebug
|
|
```
|
|
|
|
For local release builds, `build.sh` uses the Android SDK and JDK available on
|
|
the machine, writes `local.properties`, builds a release APK, and copies it to a
|
|
local sync folder if present.
|
|
|
|
## Development Note
|
|
|
|
This project has been coded with the help of AI as an implementation aid. The
|
|
design decisions, device testing, and final behaviour are still manually
|
|
reviewed.
|