New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

High DPI #916

Closed
tsujan opened this Issue Dec 11, 2015 · 36 comments

Comments

Projects
8 participants
@tsujan
Member

tsujan commented Dec 11, 2015

Please consider setting Qt::AA_UseHighDpiPixmaps to true for all LXQT apps as is done in some KDE apps.

@tsujan

This comment has been minimized.

Show comment
Hide comment
@tsujan

tsujan Dec 20, 2015

Member

I think this is also related to #914.

I don't have a high DPI screen myself but the result could be tested with ordinary monitors too.

Member

tsujan commented Dec 20, 2015

I think this is also related to #914.

I don't have a high DPI screen myself but the result could be tested with ordinary monitors too.

@stephens2424

This comment has been minimized.

Show comment
Hide comment
@stephens2424

stephens2424 Mar 13, 2016

I have a high dpi monitor I can test with if need be.

stephens2424 commented Mar 13, 2016

I have a high dpi monitor I can test with if need be.

@tsujan

This comment has been minimized.

Show comment
Hide comment
@tsujan

tsujan Mar 13, 2016

Member

Yes, please report any issue you encounter, preferably under this ticket!

Member

tsujan commented Mar 13, 2016

Yes, please report any issue you encounter, preferably under this ticket!

@stephens2424

This comment has been minimized.

Show comment
Hide comment
@stephens2424

stephens2424 Mar 13, 2016

It's fairly unusable as is. Definitely eye straining even to just debug stuff. The attached screenshot is what I was looking at in a 15" screen space:

screenshot from 2016-03-13 12-26-55

stephens2424 commented Mar 13, 2016

It's fairly unusable as is. Definitely eye straining even to just debug stuff. The attached screenshot is what I was looking at in a 15" screen space:

screenshot from 2016-03-13 12-26-55

@tsujan

This comment has been minimized.

Show comment
Hide comment
@tsujan

tsujan Mar 13, 2016

Member

Oh, I should have been more specific:

Forget about gtk and qt4 apps! Run Qt5 apps belonging to LXQT (like PCManFM) from terminal but after this line:

export QT_DEVICE_PIXEL_RATIO=2

For running components (like PCManFM, when it draws desktop), you'll first need to stop them from Configuration Center → Session Settings → Basic Settings → LXQT modules.

You could also change Configuration Center → Appearance → Font → Resolution from 96 to 192.

There aren't many apps for test but you should have Qt5 ≥ 5.5.1.

Member

tsujan commented Mar 13, 2016

Oh, I should have been more specific:

Forget about gtk and qt4 apps! Run Qt5 apps belonging to LXQT (like PCManFM) from terminal but after this line:

export QT_DEVICE_PIXEL_RATIO=2

For running components (like PCManFM, when it draws desktop), you'll first need to stop them from Configuration Center → Session Settings → Basic Settings → LXQT modules.

You could also change Configuration Center → Appearance → Font → Resolution from 96 to 192.

There aren't many apps for test but you should have Qt5 ≥ 5.5.1.

@stephens2424

This comment has been minimized.

Show comment
Hide comment
@stephens2424

stephens2424 Mar 13, 2016

Opening PCManFM from the terminal with env variable makes some elements work ok, like the select box and its picker, but fonts and menus are still too small. I already had the font DPI setting set to 192 and I'm not finding the LXQT modules section.

screenshot from 2016-03-13 16-26-21

Sorry, I'm fairly new to anything linux off the command line... but I'm happy to keep trying things.

stephens2424 commented Mar 13, 2016

Opening PCManFM from the terminal with env variable makes some elements work ok, like the select box and its picker, but fonts and menus are still too small. I already had the font DPI setting set to 192 and I'm not finding the LXQT modules section.

screenshot from 2016-03-13 16-26-21

Sorry, I'm fairly new to anything linux off the command line... but I'm happy to keep trying things.

@tsujan

This comment has been minimized.

Show comment
Hide comment
@tsujan

tsujan Mar 14, 2016

Member

@stephens2424 Thanks! Your screenshot revealed a bug.

Member

tsujan commented Mar 14, 2016

@stephens2424 Thanks! Your screenshot revealed a bug.

@agaida

This comment has been minimized.

Show comment
Hide comment
@agaida

agaida Jun 26, 2017

Member

as hidpi screens become more and more common i would like to set it to high prio

Member

agaida commented Jun 26, 2017

as hidpi screens become more and more common i would like to set it to high prio

@tsujan

This comment has been minimized.

Show comment
Hide comment
@tsujan

tsujan Jun 26, 2017

Member

It's easy to implement. If it isn't in pcmanfm-qt yet, I'll make a PR.

Member

tsujan commented Jun 26, 2017

It's easy to implement. If it isn't in pcmanfm-qt yet, I'll make a PR.

@agaida

This comment has been minimized.

Show comment
Hide comment
@agaida

agaida Jun 26, 2017

Member

fine - will we need the two or three lines in every binary? I think i saw some of that stuff in some files when i implemented the cli interface

Member

agaida commented Jun 26, 2017

fine - will we need the two or three lines in every binary? I think i saw some of that stuff in some files when i implemented the cli interface

@agaida agaida closed this Jun 26, 2017

@agaida agaida reopened this Jun 26, 2017

@tsujan

This comment has been minimized.

Show comment
Hide comment
@tsujan

tsujan Jun 26, 2017

Member

will we need the two or three lines

Yes!

Member

tsujan commented Jun 26, 2017

will we need the two or three lines

Yes!

@agaida

This comment has been minimized.

Show comment
Hide comment
@agaida

agaida Jun 26, 2017

Member

hmm - i think we can take the list i made for cli

Member

agaida commented Jun 26, 2017

hmm - i think we can take the list i made for cli

@agaida

This comment has been minimized.

Show comment
Hide comment
@agaida

agaida Jun 26, 2017

Member

Binaries:

Member

agaida commented Jun 26, 2017

Binaries:

@tsujan

This comment has been minimized.

Show comment
Hide comment
@tsujan

tsujan Jun 26, 2017

Member

Thanks for the list!

BTW, this is mostly about icons -- for them not to be blurry with hdpi -- otherwise, they already work with QT_SCALE_FACTOR=2 myApp. The important thing is a setting for hdpi factor in lxqt-config, so that every Qt5 widget is scaled on login. I can't see it anywhere.

Member

tsujan commented Jun 26, 2017

Thanks for the list!

BTW, this is mostly about icons -- for them not to be blurry with hdpi -- otherwise, they already work with QT_SCALE_FACTOR=2 myApp. The important thing is a setting for hdpi factor in lxqt-config, so that every Qt5 widget is scaled on login. I can't see it anywhere.

@agaida

This comment has been minimized.

Show comment
Hide comment
@agaida

agaida Jun 26, 2017

Member

we don't set it right now i guess - but let us add the line to all apps with visible windows first. Even if no icons are involved, it shouldn't hurt

Member

agaida commented Jun 26, 2017

we don't set it right now i guess - but let us add the line to all apps with visible windows first. Even if no icons are involved, it shouldn't hurt

@fulalas

This comment has been minimized.

Show comment
Hide comment
@fulalas

fulalas Jun 27, 2017

I have access to a Macbook Pro with Retina display, so I can test on it if you want. :)

fulalas commented Jun 27, 2017

I have access to a Macbook Pro with Retina display, so I can test on it if you want. :)

@agaida

This comment has been minimized.

Show comment
Hide comment
@agaida

agaida Jun 27, 2017

Member

fulalas - thank you, we will come back to you if all the needed things are merged (see @tsujan's note)

Member

agaida commented Jun 27, 2017

fulalas - thank you, we will come back to you if all the needed things are merged (see @tsujan's note)

@agaida

This comment has been minimized.

Show comment
Hide comment
@agaida

agaida Jun 27, 2017

Member

@tsujan all set's should be in place, your turn :D

Member

agaida commented Jun 27, 2017

@tsujan all set's should be in place, your turn :D

@tsujan

This comment has been minimized.

Show comment
Hide comment
@tsujan

tsujan Jun 27, 2017

Member

@tsujan all set's should be in place, your turn

You mean adding an option to lxqt-config? I think @luis-pereira and @palinek have more knowledge in that area.

Member

tsujan commented Jun 27, 2017

@tsujan all set's should be in place, your turn

You mean adding an option to lxqt-config? I think @luis-pereira and @palinek have more knowledge in that area.

@agaida

This comment has been minimized.

Show comment
Hide comment
@agaida

agaida Jun 27, 2017

Member

:) - ok, i know that i have none of the needed knowledge.

Member

agaida commented Jun 27, 2017

:) - ok, i know that i have none of the needed knowledge.

@tsujan

This comment has been minimized.

Show comment
Hide comment
@tsujan

tsujan Jun 27, 2017

Member

For the sake of clarity, this is an app that supports hdpi (all icons are clear with QT_SCALE_FACTOR=2):

hdpi1

And this is an app that doesn't (icons are blurry or small):

hdpi2

Member

tsujan commented Jun 27, 2017

For the sake of clarity, this is an app that supports hdpi (all icons are clear with QT_SCALE_FACTOR=2):

hdpi1

And this is an app that doesn't (icons are blurry or small):

hdpi2

@agaida

This comment has been minimized.

Show comment
Hide comment
@agaida

agaida Jun 27, 2017

Member

this is the knowledge i have - but i'm not really able to implement some new things in forms and so on. That must wait a year or so, slowly catching up.

Member

agaida commented Jun 27, 2017

this is the knowledge i have - but i'm not really able to implement some new things in forms and so on. That must wait a year or so, slowly catching up.

@palinek

This comment has been minimized.

Show comment
Hide comment
@palinek

palinek Jun 27, 2017

Contributor

The important thing is a setting for hdpi factor in lxqt-config, so that every Qt5 widget is scaled on login. I can't see it anywhere.

You mean a GUI configuration to set env. variable QT_SCALE_FACTOR? This can be achieved in the lxqt-config-session, not?

Contributor

palinek commented Jun 27, 2017

The important thing is a setting for hdpi factor in lxqt-config, so that every Qt5 widget is scaled on login. I can't see it anywhere.

You mean a GUI configuration to set env. variable QT_SCALE_FACTOR? This can be achieved in the lxqt-config-session, not?

@tsujan

This comment has been minimized.

Show comment
Hide comment
@tsujan

tsujan Jun 27, 2017

Member

You mean a GUI configuration to set env. variable QT_SCALE_FACTOR? This can be achieved in the lxqt-config-session, not?

Yes, it can! Adding a row for it would be great.

Member

tsujan commented Jun 27, 2017

You mean a GUI configuration to set env. variable QT_SCALE_FACTOR? This can be achieved in the lxqt-config-session, not?

Yes, it can! Adding a row for it would be great.

@tsujan

This comment has been minimized.

Show comment
Hide comment
@tsujan

tsujan Jun 27, 2017

Member

@agaida You did it very well.

Member

tsujan commented Jun 27, 2017

@agaida You did it very well.

@palinek

This comment has been minimized.

Show comment
Hide comment
@palinek

palinek Jun 28, 2017

Contributor

You mean a GUI configuration to set env. variable QT_SCALE_FACTOR? This can be achieved in the lxqt-config-session, not?

Yes, it can! Adding a row for it would be great.

I don't follow... what row are you talking about? The lxqt-config-session is providing the "Environment" tab in which you already can add whatever variable you wish.

Contributor

palinek commented Jun 28, 2017

You mean a GUI configuration to set env. variable QT_SCALE_FACTOR? This can be achieved in the lxqt-config-session, not?

Yes, it can! Adding a row for it would be great.

I don't follow... what row are you talking about? The lxqt-config-session is providing the "Environment" tab in which you already can add whatever variable you wish.

@Vladimir-csp

This comment has been minimized.

Show comment
Hide comment
@Vladimir-csp

Vladimir-csp Jun 28, 2017

A couple of questions:
Can Qt or GTK decide on scaling on the fly by looking into current X DPI values?
Setting high DPI mode on session environment level in a separate variable is a bit strange architecturally, because: 1. displays can change, DPI can change, 2. there is already DPI value to work with.

Vladimir-csp commented Jun 28, 2017

A couple of questions:
Can Qt or GTK decide on scaling on the fly by looking into current X DPI values?
Setting high DPI mode on session environment level in a separate variable is a bit strange architecturally, because: 1. displays can change, DPI can change, 2. there is already DPI value to work with.

@tsujan

This comment has been minimized.

Show comment
Hide comment
@tsujan

tsujan Jun 28, 2017

Member

I don't follow... what row are you talking about?

A variable name without value. Not all users know the names of such EVs.

@Vladimir-csp I don't have hdpi but I don't think changing display settings is done as often as changing a window size, for example.

Member

tsujan commented Jun 28, 2017

I don't follow... what row are you talking about?

A variable name without value. Not all users know the names of such EVs.

@Vladimir-csp I don't have hdpi but I don't think changing display settings is done as often as changing a window size, for example.

@tsujan

This comment has been minimized.

Show comment
Hide comment
@tsujan

tsujan Jun 28, 2017

Member

@palinek In general, it's good to do so for all variables that may be used usually. Users may not have even heard about "environment variables", let alone the one related to Qt scaling factor.

Member

tsujan commented Jun 28, 2017

@palinek In general, it's good to do so for all variables that may be used usually. Users may not have even heard about "environment variables", let alone the one related to Qt scaling factor.

@Vladimir-csp

This comment has been minimized.

Show comment
Hide comment
@Vladimir-csp

Vladimir-csp Jun 28, 2017

A variable name without value. Not all users know the names of such EVs.

This would set variable to empty, what if user tried to set some of them elsewhere?
Hight DPI settings would better go into dedicated place in lxqt-config-session (of course results will also show up in environment variables, but this is perfectly logical).

Vladimir-csp commented Jun 28, 2017

A variable name without value. Not all users know the names of such EVs.

This would set variable to empty, what if user tried to set some of them elsewhere?
Hight DPI settings would better go into dedicated place in lxqt-config-session (of course results will also show up in environment variables, but this is perfectly logical).

@tsujan

This comment has been minimized.

Show comment
Hide comment
@tsujan

tsujan Jun 28, 2017

Member

This would set variable to empty

Not necessarily. The code should be so that if a value is empty, the default value will be used -- 1 in this case.

Hight DPI settings would better go into dedicated place in lxqt-config-session

The subject matter of a discussion between you and @palinek ;)

Member

tsujan commented Jun 28, 2017

This would set variable to empty

Not necessarily. The code should be so that if a value is empty, the default value will be used -- 1 in this case.

Hight DPI settings would better go into dedicated place in lxqt-config-session

The subject matter of a discussion between you and @palinek ;)

@nickgeoca

This comment has been minimized.

Show comment
Hide comment
@nickgeoca

nickgeoca Mar 12, 2018

I set the QT_SCALE_FACTOR=2 in lxqt-config-session. It fixes some dpi problems, but not others. Making the panel at the bottom fewer pixels caused some cropping.

screenshot_3

nickgeoca commented Mar 12, 2018

I set the QT_SCALE_FACTOR=2 in lxqt-config-session. It fixes some dpi problems, but not others. Making the panel at the bottom fewer pixels caused some cropping.

screenshot_3

@agaida agaida added this to Needs triage in Issues Jul 14, 2018

@agaida agaida moved this from Needs triage to High priority in Issues Jul 15, 2018

@agaida agaida added lxqt-config and removed idea/discussion labels Jul 15, 2018

@agaida

This comment has been minimized.

Show comment
Hide comment
@agaida

agaida Aug 24, 2018

Member

@tsujan - what is needed to close that bug - all lxqt applications should be able to process highdpi - so the "only" thing missed is some UI - would this fit better in a new and explicit bug?

Member

agaida commented Aug 24, 2018

@tsujan - what is needed to close that bug - all lxqt applications should be able to process highdpi - so the "only" thing missed is some UI - would this fit better in a new and explicit bug?

@tsujan

This comment has been minimized.

Show comment
Hide comment
@tsujan

tsujan Aug 24, 2018

Member

@agaida If all LXQt apps support HDPI, this can be closed; the rest is Qt's responsibility.

As for the above screenshot about the panel, I think it's correct; the user should use a greater height for the panel.

Member

tsujan commented Aug 24, 2018

@agaida If all LXQt apps support HDPI, this can be closed; the rest is Qt's responsibility.

As for the above screenshot about the panel, I think it's correct; the user should use a greater height for the panel.

@tsimonq2

This comment has been minimized.

Show comment
Hide comment
@tsimonq2

tsimonq2 Aug 24, 2018

Member

@agaida If all LXQt apps support HDPI, this can be closed; the rest is Qt's responsibility.

What about configuration for it?

Member

tsimonq2 commented Aug 24, 2018

@agaida If all LXQt apps support HDPI, this can be closed; the rest is Qt's responsibility.

What about configuration for it?

@tsujan

This comment has been minimized.

Show comment
Hide comment
@tsujan

tsujan Aug 24, 2018

Member

What about configuration for it?

Yes, but not related to this report.

Member

tsujan commented Aug 24, 2018

What about configuration for it?

Yes, but not related to this report.

@tsujan tsujan closed this Aug 24, 2018

Issues automation moved this from High priority to Closed Aug 24, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment