Description
On Linux, message text renders incompletely and digits (0–9) often do not appear. Avatar initials may also be blank when no profile image is set.
Steps to reproduce
- Run Extera Next on Linux (e.g. CachyOS, KDE/GNOME).
- Open a chat with messages containing numbers (timestamps, plain text, ordered lists).
- Observe missing digits or incomplete text rendering.
- Check avatars for users without a profile photo — initials may not show.
Expected behavior
All message text, including digits, should render correctly using the system font stack. Avatar fallbacks should show the user's initial letter.
Actual behavior
Digits and some text fail to render. Avatar initials may be invisible.
Root cause
Commit 704de7e always sets fontFamilyFallback to SystemFont,Roboto. These fonts are Android-only:
SystemFont is loaded only on Android via FontLoader
Roboto is not bundled in the app and is not available on Linux by default
When Skia exhausts this invalid fallback list, glyph lookup fails for digits and other characters.
Additionally:
fluffy_chat_app.dart attempts to load SystemFont on all platforms
Avatar hardcodes RobotoMono, which is also unavailable on Linux
Proposed fix
- Filter
SystemFont and Roboto out of fallbacks on non-Android platforms; return null when the list is empty so fontconfig can take over
- Load
SystemFont only on Android
- Use theme text styles for avatar initials instead of hardcoded
RobotoMono
Affected files
lib/config/themes.dart
lib/widgets/fluffy_chat_app.dart
lib/widgets/avatar.dart
Environment
- OS: Linux
- Platform: Flutter desktop
Description
On Linux, message text renders incompletely and digits (0–9) often do not appear. Avatar initials may also be blank when no profile image is set.
Steps to reproduce
Expected behavior
All message text, including digits, should render correctly using the system font stack. Avatar fallbacks should show the user's initial letter.
Actual behavior
Digits and some text fail to render. Avatar initials may be invisible.
Root cause
Commit
704de7ealways setsfontFamilyFallbacktoSystemFont,Roboto. These fonts are Android-only:SystemFontis loaded only on Android viaFontLoaderRobotois not bundled in the app and is not available on Linux by defaultWhen Skia exhausts this invalid fallback list, glyph lookup fails for digits and other characters.
Additionally:
fluffy_chat_app.dartattempts to loadSystemFonton all platformsAvatarhardcodesRobotoMono, which is also unavailable on LinuxProposed fix
SystemFontandRobotoout of fallbacks on non-Android platforms; returnnullwhen the list is empty so fontconfig can take overSystemFontonly on AndroidRobotoMonoAffected files
lib/config/themes.dartlib/widgets/fluffy_chat_app.dartlib/widgets/avatar.dartEnvironment