Comments (25)
Closing this as wontfix because I don't see it as a bug and the introduced changes make conky behave correctly (more in line how other software (e.g. browsers) works).
I was under the impression browsers changed the size of the logical pixel, just like conky used to do.
from conky.
Ah: the problem seems to be as follows. Between this build and the last (or perhaps the one before last) the handling of maximum_width
has changed. Seemingly, now, that variable should be set to the actual, full resolution (if one wants to use the full screen), rather than - as it was before - to the resolution as understood after DPI scaling. I presume that the same holds for minimum_height
.
(The config I posted lacks those variables: I have them in a separate lua file - or a file that differs across the two PCs at issue.)
It seems to me that either the behaviour should be reverted or else users should be made aware of the change.
from conky.
@zygfryd You're right. The exact name for the scaling factor used is Device Pixel Ratio (dPR). Though it's almost a standard practice for websites to set
<meta name="viewport" content="width=device-width, initial-scale=1.0">
which sets dPR to 1.0 and makespx
respect actual pixel size.
That actually just scales your app 1:1 to the viewport in logical pixels. On a phone it'll mean you'll be working with widths in the 300-400px range, not the physical 1000px+ range. Otherwise the usual method of width breakpoints for responsive design wouldn't work.
Anywho, I was planning on adding a way of handling different units which would default to something like "logical pixels" if no unit was specified. I see how current behavior could be confusing. While I do believe
px
unit should really be pixels and not adjusted because it's misleading otherwise (e.g. scaled/blurry images even though exact px size is used), I explored what other UI is doing a bit more and it seems most of UI toolkits do scale thepx
value so I decided to reopen this issue.
Glad to see that.
From a user's perspective, it'd be ideal for a conky config to work like it used to in 1.19, that is regardless of monitor density the conky window takes the same, scaled, amount of logical space. Desktop scaling is a decision the user makes and shouldn't be worked around, but respected. If the user wants to work around it, then conky might give the option of overriding the scaling factor it obtains from X11 or Wayland.
It'd be tedious to have to rewrite all the sizes in your config when moving between monitors with different densities and scaling factors.
from conky.
It seems to me that either the behaviour should be reverted or else users should be made aware of the change.
It's impossible to make a consistent looking configs if maximum_width
depends on DPI. This was cause of #1528. Given that conky uses pixel size for most things (e.g. image size), automatic scaling of only certain properties is (I believe) wrong. It would maybe make sense to add a separate global scaling factor.
#1877 and #1862 fixed this partially.
I just created #1926 as I found another place where maximum_width
was scaled. I also removed scaling of minimum_width
.
It's a bit confusing because we're not using units like rem
/em
/ch
, and pixel dimensions should be affected by DPI. But if we scale px
, the unit should really be considered pt
at that point (hah, punny). Likely the next step would be adding a unit resolver that allows configs to specify different unit values like CSS does and make the number without any units default to pt
which would revert the old behavior - this would provide means to fix most inconsistencies when it comes to content sizing.
from conky.
I made the name of the PR clear (which is referenced in release notes), besides that I'm not sure how we can make it clearer that the behavior changed.
Closing this as wontfix because I don't see it as a bug and the introduced changes make conky behave correctly (more in line how other software (e.g. browsers) works).
from conky.
Thank you for the responses.
So, now and henceforth DPI scaling will not affect minimum_width
and maximum_width
? That is what your last post says, I take it. Still: your first post (here) seemed to suggest that, no, things would be put back to how they were before; but I understood that first post only poorly. (For, that post is technical.)
I'll go with the 'wontfix' interpretation (as we might call it). Given that situation, I proceed to the following.
I'm not sure how we can make it clearer that the behavior changed.
You could add a conspicuous comment to the release that made the change. That way, users like me how installed that release (which was either the most recent one or the one before that) will not get a nasty surprise.
from conky.
Release notes are generated from PRs. The bug fix PR that changed behavior did say that max width no longer uses DPI in the title, so it was in the release notes.
from conky.
My mistake. Apologies.
from conky.
I'm using Wayland with 200% scaling on 4K monitors.
In 1.19 the scaling was consistent:
In 1.20 graphical elements are now at 100% scaling while fonts are at 200%:
I'm skeptical about this being an improvement. I guess I need to stick to 1.19 until the global scaling factor gets implemented?
from conky.
@zygfryd You're right. The exact name for the scaling factor used is Device Pixel Ratio (dPR). Though it's almost a standard practice for websites to set <meta name="viewport" content="width=device-width, initial-scale=1.0">
which sets dPR to 1.0 and makes px
respect actual pixel size. dPR is based on DPI, but it's not an exact match (adjusted for expected screen viewing distance).
This was necessary because old phones (iPhone) had to make websites smaller to fit the screen, so they reported incorrect screen dimensions to websites/browsers to achieve this effect. Logical dimensions were introduced in order to make (mostly) images behave correctly on different DPI screens.
Anywho, I was planning on adding a way of handling different units which would default to something like "logical pixels" if no unit was specified. I see how current behavior could be confusing. While I do believe px
unit should really be pixels and not adjusted because it's misleading otherwise (e.g. scaled/blurry images even though exact px size is used), I explored what other UI is doing a bit more and it seems most of UI toolkits do scale the px
value so I decided to reopen this issue.
from conky.
Related Issues (20)
- [Bug]: conky: unknown variable '$rss' HOT 5
- [Bug]: llua_do_call: function conky_main execution failed: HOT 39
- [Bug]: conky: can't parse hex color 'lightgrey' HOT 5
- [Bug]: conky 1.20.2 fails to build with specific options combination HOT 3
- [Bug]: (Very) slow `same_window` check in mouse input event HOT 36
- Include HTML in docs markdown (fix `alignment`) HOT 1
- [Bug]: The stock variable is not working HOT 3
- [Bug]: out_to_wayland not respected anymore (regression) HOT 4
- [Bug]: Lua broken in latest release? HOT 3
- [Bug]: v1.20_2 conky: can't parse hex color 'white' (5) HOT 6
- [Bug]: segmentation fault upon modification of conkyrc. (Regression?) HOT 11
- [Bug]: Conky are only in window not at desktop on sway HOT 10
- [Bug]: own_window_type = 'panel' breaks window positioning HOT 3
- High cpu usage and broken position since last update HOT 1
- [Bug]: Fonts are red. Default config file, background is black, X11 environment HOT 5
- [Bug]: 1.21.1 /usr/share/doc/conky name mistake? HOT 2
- [Bug]: Wrong hr line thickness HOT 6
- [Bug]: 1.21.1 conky display is truncated HOT 8
- if_updatenr config in wayland/sway always crashes after a couple hours or so
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from conky.