ClementGre / PDF4Teachers

PDF editing software in large quantities. Designed for teachers, this app keeps recorded previous annotations, and offers features like marking scale, PDF conversion, vectorial drawing...
https://pdf4teachers.org/
Apache License 2.0
136 stars 17 forks source link

App does not take in account the screen DPI #63

Closed oricou closed 3 years ago

oricou commented 3 years ago

With a high density of pixel (DPI) it is very difficult to read the menus. I couldn't see an option to change the police size. Could you add one please.

ClementGre commented 3 years ago

Usually, we parameters our os to make a zoom, but it could be different depending of your distribution of Linux. Do you have to do this on every app ? Does it affect the icons ? Can you provide screenshots and more details ?

oricou commented 3 years ago

A screenshot would not help since you will look at it on your screen. Other applications have no such issue, so it is not related to the OS. I have a Surface under Linux Mint, DPI = 267

ClementGre commented 3 years ago

I can try to zoom the whole application depending of the dpi, but usually, the os is doing this automatically, so on certain os, it will zoom too much. I can for sure add a way to change the font size in the settings, but are the icons affected too or not? And the controls/input fields and buttons?

I know that when PDF4Teachers is started, even if you change the zoom of the os, PDF4Teachers will not update directly its size, you will need to restart the app. Maybe you have 2 screens and you are always starting PDF4Teachers on the small DPI screen so PDF4Teachers keep its small size ?

MeisterLLD commented 3 years ago

Same issue on Arch Linux 01.04.2021 with Xmonad as a window manager. I fixed my dpi in my .Xresources file, but it is not read by pdf4teachers (some apps read it, e.g. Firefox, some don't e.g. Spotify or xmobar).

ClementGre commented 3 years ago

I can try to zoom the whole application depending of the dpi, but usually, the os is doing this automatically, so on certain os, it will zoom too much. I can for sure add a way to change the font size in the settings, but are the icons affected too or not? And the controls/input fields and buttons?

I know that when PDF4Teachers is started, even if you change the zoom of the os, PDF4Teachers will not update directly its size, you will need to restart the app. Maybe you have 2 screens and you are always starting PDF4Teachers on the small DPI screen so PDF4Teachers keep its small size ?

MeisterLLD commented 3 years ago

I can for sure add a way to change the font size in the settings, but are the icons affected too or not? And the controls/input fields and buttons?

Yes, everything is scaled similarly.

I know that when PDF4Teachers is started, even if you change the zoom of the os, PDF4Teachers will not update directly its size, you will need to restart the app. Maybe you have 2 screens and you are always starting PDF4Teachers on the small DPI screen so PDF4Teachers keep its small size ?

I have only one screen. On my Linux distribution, the zoom is set up in my .Xresources file as follows Xft.dpi: 144 and some apps seem to read it, some don't. For instance Spotify does not, so I launch it with the option spotify --force-device-scale-factor=1.5 which scales up everything by a factor 1.5. I don't if some similar option could be implemented in PDF4Teachers.

Thanks for your answer !

ClementGre commented 3 years ago

Hi @oricou and @MeisterLLD, usually, JavaFX should recognize the screen DPI and then, it should zoom automatically. But some apps like PDF4Teachers and Spotify cannot manage to get the real screen DPI. As explained in this issue: https://unix.stackexchange.com/questions/512837/javafx-on-a-4k-screen, your issue could be fixed by passing the parameter:

-Dglass.gtk.uiScale=2.0

or editing some kind of GNOME settings:

gsettings set org.gnome.desktop.interface scaling-factor 2

(replacing 2.0 by your own scaling factor)

I can also try to add an option in the PDf4Teachers' settings to edit the app scale. Thank you, Clément.

MeisterLLD commented 3 years ago

export GDK_DISPLAY=1 before launching PDF4Teachers does not change anything. I'm not sure how to pass -Dglass.gtk.uiScale=2.0 but running PDF4Teachers with that option does not change anything either.

On the other hand, gsettings set org.gnome.desktop.interface scaling-factor 2 actually works ! But for me it becomes too big as I would like a 1.5 scaling factor. I could achieve it globally by some trickery explained here https://wiki.archlinux.org/index.php/HiDPI#Fractional_scaling but since this would be a global change and I don't use a Desktop environment this method would create conflict with most of my other apps displaying fine right now (I use only a window manager and this is handled in my .Xresources file), so I guess the option you mention would be a nice addition for people in my situation !

In the meantime this is not a huge problem, things are still readable :) Thanks again.

ClementGre commented 3 years ago

Very good, so you just have to use this command:

gsettings set org.gnome.desktop.interface scaling-factor 2

replacing 2 by your current screen zoom factor.

Maybe I will add an option in the settings to edit the zoom factor more easily, I'll keep you updated ! I will also try to read line Xft.dpi: 144 in file ~/.Xresources. You will be able to test this in the 1.3.0 pre-release.

MeisterLLD commented 3 years ago

This setting can only handle integer scaling values, so your addition would be very helpful ! Thanks

Le mar. 27 avr. 2021 à 19:17, Clément Grennerat @.***> a écrit :

Very good, so you just have to use this command:

gsettings set org.gnome.desktop.interface scaling-factor 2

replacing 2 by your current screen zoom factor.

Maybe I will add an option in the settings to edit the zoom factor more easily, I'll keep you updated !

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ClementGre/PDF4Teachers/issues/63#issuecomment-827773869, or unsubscribe https://github.com/notifications/unsubscribe-auth/AF5STRBZR4YRGL7ODUYGZETTK3WQXANCNFSM4XEM3H6A .

ClementGre commented 3 years ago

Hi guys, I developped this feature, but I had to adapt the sizes of all windows, including "false windows" like ComboBox drop down, tooltips, dialogs etc. The scale system I build is not native and can have some bugs, therefore, I will just add this setting in the Debug section of the new Settings Window. If you use the scale system only to correct the .5 scale factor you need, I think you will not have so much problems. image

As I said, you will be able to test this in the 1.3.0 pre-release. Thank you, Clément