On 11/30/18 11:22 AM, Achim Patzner wrote:
> Am Donnerstag, den 29.11.2018, 09:16 +0200 schrieb Ivan Mitev:
>> The following might help to work around your issues:
>>
>>
https://github.com/Qubes-Community/Contents/blob/master/docs/customization/dpi-scaling.md
>
> It is solving a few of the issues but you definitely need more (like
> HiDPI themes in several sizes). Or moving new Xresources into templates
> (or VMs) if they change in dom0. And dealing with xsettingsd.
As a side note the doc is meant to be a "workaround" guide until issue
#1951 is closed/fixed. My screen isn't HiDPI but has a resolution large
enough that I have to scale things up, however I never had a need for
such themes. A PR to the doc with a section about those could be a
welcome addition...
> Especially xsettingsd -- it would be an ideal point of attack if Qubes
> had a dedicated UI (or UX in techno hipster speak) team. Just give it
> another database backend for its settings that was maintained in dom0
> and accessible to all running VMs and you could easily change settings
> in everything running on your system.
I don't use/have xsettings on my fedora vms. Did you install it ? If
yes, what for ? Or is it maybe something that Debian uses by default ?
As to how to solve that, Qubes' policy is to keep the distribution
settings as close as possible to upstream but HiDPI is an important
issue so it could trump that rule. But if it does, the changes would
have to be minimal. AFAICT the common denominator is Xresources' Xft.dpi
so that'd mean relying on that + making sure gnome settings isn't running.
Also, any "HiDPI configuration" dom0-vm communication would likely be
implemented through QubesDB keys and/or dedicated qrexec service.
But none of the above solves the problem for OSes that don't use an X
server.
(Anecdote: I sometimes have to use a program in a windows HVM that
supports only an older version of JRE which doesn't have support for
font/dpi scaling. I literally have to be 10cm close to the screen to be
able to read something if I don't change my monitor's resolution
*globally* to a lower one (in dom0 with xrandr). I even have a keyboard
shortcut to switch between the lower resolution and the default one.)
>> Granted, having a "scale everything by a factor X" option in dom0
>> would be way better
>
> It is necessary unless you like using a microscope for HVMs. In a few
> months we will see the first 12" mobile computers running at mobile
> phone resolutions...
>
>> but it'd be nearly impossible to implement/support if the
>> config has to be passed down to the VMs.
>
> Not at all. The currently implemented mechanisms for the virtual X
> servers are not working perfectly yet but that could be changed. It
> just won't solve the problem of xsettingsd messing everything up
> (including Xft settings which are coming from Xresources and
> .xresources) if it does not have the correct parameters in its
> database. So all we have to take care of was getting the databases in
> all VMs right -- or implement a central one. If one was mad enough he
> could use the qubesdb which is already accessible everywhere.
No need to be mad to use qubesdb :)
>> I'm wondering if it couldn't be solved at a lower level
> [...]
>> That could also end up being very CPU intensive.
>
> You should let the GPU handle that; applying transformations is a
> standard feature today.
In theory yes but I'm not sure it is feasible given Qubes' architecture.
BTW, my "low level" suggestion is more or less what xrandr does, except
that xrand is "global", so no per-vm customization is possible.
Ivan