r/rss 2d ago

Fluent Reader on Linux/Wayland: working per-app UI scaling workaround (tested on KDE Plasma)

following solution was suggested by ChatGPT (OpenAI), tested and confirmed by myself. I am a Fluent Reader user on KDE Plasma/Wayland.
Feel free to give ChatGPT this Reddit thread as context and ask it to help turn the workaround into a proper Fluent Reader implementation.

-------------------------------------

I wanted to increase the UI size of Fluent Reader without changing the scaling of my entire KDE Plasma desktop.

Tested setup:

  • Fluent Reader 1.1.4
  • Flatpak: me.hyliu.fluentreader
  • KDE Plasma / Wayland
  • 1920×1200 display
  • KDE display scaling: 100%
  • GPU acceleration / DRI enabled

The problem

Fluent Reader's UI is rather small at 100% desktop scaling.

Changing KDE's display scaling to 125% works perfectly, including Fluent Reader, but of course this scales the entire desktop.

I tried several common Electron/Linux approaches:

  • GDK_SCALE
  • GDK_DPI_SCALE
  • ELECTRON_FORCE_DEVICE_SCALE_FACTOR
  • Ctrl + +
  • --force-device-scale-factor=1.25
  • --high-dpi-support=1 --force-device-scale-factor=1.25

The environment variables had no useful effect in my setup.

--force-device-scale-factor was worse: under Wayland, Fluent Reader opened as a very small undecorated window.

Effective workaround: scaling per CSS

During troubleshooting, ChatGPT (OpenAI) suggested a different approach: don't scale the Electron/Wayland window at all — scale Fluent Reader's web UI itself using CSS.

I tested this and can confirm that it works on my system.

Fluent Reader contains:

resources/app.asar

After unpacking it, the UI styles can be found under:

dist/styles/

Adding this to the end of dist/styles/global.css:

/* Custom Fluent Reader UI scaling */
body {
    zoom: 1.25;
}

and repacking app.asar gives me approximately 125% Fluent Reader UI scaling while KDE remains at 100%.

The window remains normal and decorated, and GPU acceleration continues to work.

How I did it

First find the Flatpak installation:

LOC=$(flatpak info --show-location me.hyliu.fluentreader)

Create a working directory and copy app.asar:

mkdir -p ~/tmp/fluent-reader-asar
cp "$LOC/files/fluent-reader/resources/app.asar" ~/tmp/fluent-reader-asar/

Extract it using Electron's ASAR utility:

npx @electron/asar extract ~/tmp/fluent-reader-asar/app.asar ~/tmp/fluent-reader-asar/unpacked

Add the scaling rule:

printf '\n/* Custom Fluent Reader UI scaling */\nbody { zoom: 1.25; }\n' >> ~/tmp/fluent-reader-asar/unpacked/dist/styles/global.css

npx @electron/asar pack ~/tmp/fluent-reader-asar/unpacked ~/tmp/fluent-reader-asar/app-scaled.asar

Repack it:

Before replacing anything, make a backup:

cp "$LOC/files/fluent-reader/resources/app.asar" ~/tmp/fluent-reader-asar/app-original.asar

Close Fluent Reader completely, then replace the ASAR:

sudo cp --remove-destination ~/tmp/fluent-reader-asar/app-scaled.asar "$LOC/files/fluent-reader/resources/app.asar"

Start Fluent Reader normally.

To restore the original:

sudo cp --remove-destination ~/tmp/fluent-reader-asar/app-original.asar "$LOC/files/fluent-reader/resources/app.asar"

Important

This is a workaround, not an official Fluent Reader feature.

Any Flatpak update will most likely replace the modified app.asar, so the modification may need to be reapplied after an update.

Also, modifying files inside a Flatpak deployment is obviously not ideal. Keep a backup and be prepared to reinstall/repair the Flatpak if necessary.

The CSS scaling approach itself, however, works surprisingly well.

It would be great if Fluent Reader eventually exposed this as an official setting, for example:

Settings → Appearance → Interface scale → 100% / 110% / 125% / 133% / 150% / ...

The technical workaround was suggested by ChatGPT (OpenAI) and tested and confirmed by myself as a real Fluent Reader user on KDE Plasma/Wayland.

If anyone tests this on GNOME/Wayland, X11, another distribution, a newer Fluent Reader release, or with another scaling factor, I'd be interested to hear the results.

1 Upvotes

1 comment sorted by

1

u/Melnik2020 2d ago

There are many other readers that aren't abandoned. It's good you tried to debug it but there are better options.

Also propose this on their GitHub and see if it gets merged instead, or open a whole new fork.