I have made a clean installation of Kubuntu 16.04 and played around with the font sizes and other settings (such as the fonts DPI, but I tried resetting it...) to make it more to my liking and everything works fine, except for Viber; It is huge! It takes up pretty much the whole screen and cannot be resized to a smaller window (as the interface itself appears enormous, the letters, everything). Any other program I've used is completely normal...
5 Answers
Just updated to lastet Viber version and it became huge.
The reason is that 1920x1080 px on 13" screen has dpi of 166, what I have set in my xfce settings. A lot of apps powered with electron or other custom magic treat dpi over 140 as "retina" and double rendering size.
Viber settings screen cannot go UI scaling under 100%, so you can do it manually.
New solution (works for Viber >= v7.0)
Try running Viber from the terminal by specifying the QT_SCALE_FACTOR
as follows:
QT_SCALE_FACTOR=0.6 /opt/viber/Viber
As a permanent solution, ensure the following line is in place in the Viber starter shortcut file (.desktop):
Exec=env QT_SCALE_FACTOR=0.6 /opt/viber/Viber
The Viber .desktop file is usually located at /usr/share/applications/viber.desktop
. A locally editable copy can be placed in ~/local/share/applications/
.
Old solution (works for Viber < v7.0)
Install sqlitebrowser
from official repo, use it to open ~/.ViberPC/config.db
Go to table CommonSettings
and modify Value
of ScalingRatio
to something under 1.0, I used 0.6.
-
1
-
-
seems to be not working any more, there is no ScalingRatio title and if created and set value to 0.6 nothing changes– DmitriyNov 8, 2017 at 17:20
-
2@ModoLtunzher, thank you. It worked from terminal, but I struggled to get the .desktop file working. Eventually I did drag n drop of Viber icon from dash to desktop. Launched text editor and opened the Viber.desktop file from it. Then I had to add
env
keyword before theQT_SCALE_FACTOR
. After that it worked– DmitriyNov 15, 2017 at 13:12 -
2@Kristóf if you run application from terminal, then it becomes parent process and when you close terminal window it also destroys child processes. If you need to keep process, you better run it with
/opt/Viber/Viber&
. If you want to run viber froum your applications menu with correct scaling, edit Viber menu entry with corresponding editor for your DE and change it from/opet/Viber/Viber %U
toenv QT_SCALE_FACTOR=0.6 /opt/Viber/Viber %U
and save Jan 25, 2018 at 15:34
If you have double screen this is not good solution.
I prefer to set the environment variable QT_AUTO_SCREEN_SCALE_FACTOR=0
with env
.
For example:
env QT_AUTO_SCREEN_SCALE_FACTOR=0 /opt/viber/Viber
Or use sqlite3
$ sqlite3 ~/.ViberPC/config.db -interactive 'update CommonSettings set Value = 0.6 where Title = "ScalingRatio"'
-
4Welcome to Ask Ubuntu! This looks more like a (worthwhile) addition to the accepted answer and less like a self-contained answer. In such a case please suggest an edit to the post you want to improve instead of posting a partial answer. Thanks. May 12, 2017 at 16:35
-
1
From Qt documentation:
QT_AUTO_SCREEN_SCALE_FACTOR [boolean]
enables automatic scaling, based on the pixel density of the monitor. This will not change the size of point sized fonts, since point is a physical unit of measure. Multiple screens may get different scale factors.
So setting this to false (zero) will not always solve the scaling problem. I had to change QT_SCALE_FACTOR=0
to display Viber window normally:
env QT_SCALE_FACTOR=0 QT_AUTO_SCREEN_SCALE_FACTOR=0 /opt/viber/Viber
For Viber v7.0 and >
I create file
touch viber.desktop
in file write
Exec=env QT_SCREEN_SCALE_FACTORS=0.6 /opt/viber/Viber
Then if I want start Viber -> use command in terminal
source viber.desktop
It's QT bug. I hope someone fix it.