-
-
Notifications
You must be signed in to change notification settings - Fork 47
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
Improve support for high resolution displays #1951
Comments
Regarding informing VM about DPI, the most straightforward (I think) solution would be to pass physical screen size along with its resolution ( @adrelanos what would be the best option? Maybe something different? |
This is a place for future extension - for example screen DPI. QubesOS/qubes-issues#1951
Related message about informing DPI to the VMs: https://groups.google.com/d/msgid/qubes-devel/56E49569.9020506%40noses.com |
Status update for Qubes 3.2:
|
This is a place for future extension - for example screen DPI. QubesOS/qubes-issues#1951 (cherry picked from commit 6b675f5)
On 2016-07-04 14:05, R.B. wrote:
|
Awesome! I will readily volunteer my time on any tests regarding HiDPI as I love Qubes and have a 4k laptop (Y50-70). Of note, xrandr pulls up the correct info in regards to resolution (3840x2160) and display size of 344mm x 194mm. However, xdpyinfo returns the same resolution and a display size of 1016mm x 571mm yielding 96dpi. I'm plugging my way through it. That being said, Fedora 24 with GNome handled it extremely well. |
Add WIDTH_MM and HEIGHT_MM output properties to allow setting "physical" size of the output. Normally this data is retrieved from EDID, but for obvious reasons it can't be done in the VM. This patch allows to set this properties from user space. This is later reported as output size (the header line describing the output in `xrandr` output). QubesOS/qubes-issues#1951
I've added support for custom screen/output size to video driver. It can be even changed on the fly :)
Those properties expect screen size in mm. The easiest thing to do would be to pass actual screen size from dom0 directly. But (I guess) this would be major problem for Whonix VMs as physical screen size is even more unique than just resolution. @adrelanos what do you think? I've already proposed some solution in #1951 (comment) - is it ok? |
I am not sure yet. Does this require a quick answer?
This sounds best. The more common the value is, the better. |
Add WIDTH_MM and HEIGHT_MM output properties to allow setting "physical" size of the output. Normally this data is retrieved from EDID, but for obvious reasons it can't be done in the VM. This patch allows to set this properties from user space. This is later reported as output size (the header line describing the output in `xrandr` output). QubesOS/qubes-issues#1951
Now format of each line is: W H X Y W_MM H_MM where: - W, H - output dimensions in pixels - X, Y - output position in pixels - W_MM, H_MM - output dimensions in millimeters W_MM and H_MM are optional. As noted in QubesOS/qubes-issues#1951 physical dimensions may be intentionally inaccurate for privacy reasons. QubesOS/qubes-issues#1951
When properly set, applications will have a chance to automatically detect HiDPI and act accordingly. This is the case for Fedora 23 template and GNOME apps (maybe even all built on top of GTK). But for privacy reasons, don't provide real values, only some approximate one. Give enough information to distinguish DPI above 150, 200 and 300. This is some compromise between privacy and HiDPI support. QubesOS/qubes-issues#1951
When properly set, applications will have a chance to automatically detect HiDPI and act accordingly. This is the case for Fedora 23 template and GNOME apps (maybe even all built on top of GTK). But for privacy reasons, don't provide real values, only some approximate one. Give enough information to distinguish DPI above 150, 200 and 300. This is some compromise between privacy and HiDPI support. QubesOS/qubes-issues#1951
When properly set, applications will have a chance to automatically detect HiDPI and act accordingly. This is the case for Fedora 23 template and GNOME apps (maybe even all built on top of GTK). But for privacy reasons, don't provide real values, only some approximate one. Give enough information to distinguish DPI above 150, 200 and 300. This is some compromise between privacy and HiDPI support. QubesOS/qubes-issues#1951 This commit is migrated from gui-daemon repository (dec462795d14a336bf27cc46948bbd592c307401).
I've marked the first two items as complete since we have F23 in dom0 and an F24 template now. |
This message of the user mailing list might be of interest. I can confirm it works on Q4RC3. After rebooting the template, it's dpi is correct, and it is also propagated to all app vms:
For the whonix-ws template it works when adding it to |
setting Xft.dpi to >96 isn't working for me in R4.0_rc4 for debian-9 or fedora-26 templates (whonix not tested). However, in VMs with fedora-26 templates this solution from R3.2 is working again (running commands in the VM terminal on launch):
This fails (with no apparent effect) in VMs with debian-9 templates, with the following error:
|
in R4.0_rc4, for at least one (electron-based) app using a debian-9 template, running the following command in a terminal before launching the app did the trick:
This also works for torbrowser in a whonix-ws based VM. |
It's not directly related to HiDPI, but it is to UI performance on 4k monitors (which seems to me the underlying consideration), so could I propose renaming this issue slightly and adding this to the task list for this issue? #3175 |
Done. |
It is hypothetically possible to scale with workarounds in Xterm for Fedora DVMs, - via fonts or dpi, - but a hassle. I haven't figured out yet how to install such fonts in Xterm on Qubes. The Fast way for scaling with fedora DVMs I use. When opening a browser - first open xterm, open
Is there any other default OS with DVMs users utilise scaling with? I realise this universal option (below) to rescale a large dpi screen down to 1600x900 in Dom0 has worked in the past (latest 2018?) but I can't get it to work for me now. If senior devs can get it to work (?), it may be a default option to put into qubes global settings, like other distros & windows facilitate. Especially because the gtf function w/modeline brings the frame rate back up to 60 - Qubes dom0 defaults to 24hz (which is also unclear, long thread #3175)
Also scrolling to the bottom of this issue discussion Modeline is also the only existing fix/workaround for rescaling the XFCE and DOM0 in 4.0? -Will |
You can apply the |
Is there any way to have this in the template, so it's executed automatically in al VMs? I tried |
Edit- put your executable shell script in A systemd service (user session) should probably work too ; testing/migrating from xdg stuff is on my TODO list for a bit of time. Edit- you could also put
|
There are two approaches to this I can think of:
|
This didn't work.
This did work. What I did, more exactly, is this:
|
I'm running into a (locally) 100% reproducible issue related to high resolutions, namely that in my dual 4k display setup, after my monitors have gone to sleep once, I can no longer click inside AppVM windows shown on the second display. Prior to this, it works fine, and in dom0, I can still click everywhere. (Not using sys-gui yet, using KDE.) |
I have seen this in the past. It seems to be related to provisioning
enough RAM for all the displays you might need at one time. See
https://www.qubes-os.org/doc/gui-configuration/
…On 9/12/22 04:13, Foppe wrote:
I'm running into a (locally) 100% reproducible issue related to high
resolutions, namely that in my dual 4k display setup, after my monitors
have gone to sleep once, I can no longer click inside AppVM windows
shown on the second display. Prior to this, it works fine, and in dom0,
I can still click everywhere. (Not using sys-gui yet, using KDE.)
I have configured the videoram to a square 3840x3840 area so I can tilt
my monitor when I want to.
—
Reply to this email directly, view it on GitHub
<#1951 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AABUQBYGESHO4JN5PEF4ENLV53Q2HANCNFSM4CC6EHJQ>.
You are receiving this because you commented.Message ID:
***@***.***>
|
nope, even changing the dimensions to double 8k had no effect |
Probably related to this issue: #7881. |
Been following this issue since my first install in Qubes 3.2, and I'm a bit frustrated that it's 2024 and I still have to restart a qube when I plug in an external display, if I want my apps to register clicks. I understand I can manually set video ram in dom0 with the xrandr trick , but it is nevertheless painful when I'm in the middle of some complex workflow and need to save, shut down everything, restart the qube and open it all over again. Is there no possible solution to this, short of setting the video ram to a very large value at login? Surely the virtual video driver can be informed on-the-fly that the screen size has changed..? |
@marmarek: is this an Xorg limitation? |
I'm running into a new issue in Qubes 4.2 that falls into this topic, namely that once my PC (with a double 4k display connected) wakes back up with windows open in the left/primary screen, those windows are 'destroyed' and dom0 refuses to show anything from that VM until I restart it. Oddly, when a window was open on the right/second screen, that doesn't cause that issue, and having minimized the window on the left screen also decrease the chance of this issue. |
@lorenzog I don't know, what you mean. You set the videoram once and for good. Just use the highest amount you ever encountered. I am using highres and lowres screens and do not shutdown any qube when switching. |
adding: the issue of open windows being 'destroyed' also happens to me with a single 4k display enabled, though it takes a few more display sleep/wake cycles (also the issue that I also ran into in R4.1 that after a sleep/wake cycle I could no longer click in windows on the second display until ). This suggests to me that it's an issue with memory filling up. |
For having full HiDPI support in Qubes, we need:
The last one may be really hard, if turn out to be a problem - because VM have no hardware graphics acceleration, so all that is computed on CPU.
The text was updated successfully, but these errors were encountered: