Author: @petrstepanov
Hi all, I’ve recently put my hands on a 2015 Retina MacBook with Intel Iris 6100 graphics card and I’ve been tinkering around the problem on various desktop environments and display servers. Here is what I found:
On Wayland
Interestingly enough, a recent install of Fedora 36 linux with KDE on Wayland provides correct scaling of the old ROOT TBrowser good enough out of the box. Well, window is a little blurry but respects the system-wide scaling setting. Please refer to the screenshot below:
I also tried the GNOME desktop environment on Wayland. However, it did not work out positively. Not sure what the workaround could be here but something about KWin on Wayland just works better. Looks like KDE on Wayland is a clear winner.
On X.Org
It seems that Xorg’s Xft.dpi setting mentioned above may scale the font size. Only if app developers will explicitly account on it in the code. Xlib libraries, that ROOT graphics depend on, do not account on this setting.
The solution that worked for me on X.org is the following:
- Install
run_scaledscript from GitHub with corresponding dependenciesxvfb,xpra,xrandr. Copyrun_scaledto say~/.local/binand make sure it has executable permissions. - Run your ROOT script that utilizes
Xlibat 2x scale with your ROOT script withrun_scaled root --web=off <your-script.sh>. Same applies to any standalone application, in particular, ROOT-based that usesTCanvas, GUI classes etc.:run_scaled <your-root-based-app>.
Most commonly users may want to run just a TBrowser instance. Standard rootbrowse script unexpectedly quit on me with run_scaled (maybe Python users can comment on that). Therefore, to quickly run an old TBrowser we can create a ROOT script that will launch it:
echo "void browser(){ new TBrowser(); }" > ~/.local/bin/browser.c
And launch it at 2x scale with following command:
run_scaled root --web=off `which browser.c`
Optionally we can create an alias for the above command:
echo "alias rootbrowse2x='run_scaled root --web=off `which browser.c`'" >> ~/.bashrc
source ~/.bashrc
… and simply run it with rootbrowse2x from the Terminal. Attached please find a screenshot that demonstrated the end result.
Hope this is helpful!

