21

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...

46

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
    BTW this works also on gnome gui if some one needs it. – lewis4u May 1 '17 at 13:52
  • that's awesome! works ubuntu 17.04 with unity and 1920x1080 – borowis Jun 6 '17 at 14:07
  • seems to be not working any more, there is no ScalingRatio title and if created and set value to 0.6 nothing changes – Dmitriy Nov 8 '17 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 the QT_SCALE_FACTOR. After that it worked – Dmitriy Nov 15 '17 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 to env QT_SCALE_FACTOR=0.6 /opt/Viber/Viber %U and save – Modo Ltunzher Jan 25 '18 at 15:34
18

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
  • worked like a charm – sashok_bg Apr 12 '18 at 8:19
7

Or use sqlite3

$ sqlite3 ~/.ViberPC/config.db -interactive 'update CommonSettings set Value = 0.6 where Title = "ScalingRatio"'
  • 4
    Welcome 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. – David Foerster May 12 '17 at 16:35
  • This answer is perfect - one-step solution ! – koma Jun 3 '17 at 19:02
3

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
  • Thanks, this answer solves the issue for me, others didn't. – Vladimir Iliev Jul 10 '18 at 10:28
1

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.

protected by Community Mar 2 '18 at 10:53

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.