Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.Sign up
Output width/height wrong with Nvidia borders/underscan #3708
I'm submitting a…
[x] Bug [ ] Feature Request [ ] Documentation Request [ ] Other (Please describe in detail)
Note: Borders are handled correctly by Awesome, Qtile, and XMonad
After configuring borders/underscan, i3 would detect the correct display size that takes into account the borders and all windows and bars would fit on screen.
Binary i3 version: 4.16.1 (2019-01-27) © 2009 Michael Stapelberg and contributors Running i3 version: 4.16.1 (2019-01-27) (pid 3792)abort…) Loaded i3 config: /home/peter/.config/i3/config (Last modified: Mon 27 May 2019 13:42:56 BST, 665 seconds ago) The i3 binary you just called: /usr/bin/i3 The i3 binary you are running: i3
Tested with no config, Arch stock, and custom. Exactly the same
Logfile URL: https://logs.i3wm.org/logs/5737248813219840.bz2
- Linux Distribution & Version: Arch Linux, updated - Are you using a compositor (e.g., xcompmgr or compton): no
I'm just poking around, so might be completely wrong.
i3 gets it's output size from XCB monitor info: https://github.com/i3/i3/blob/next/src/randr.c#L549
Were as Qtile uses CRTC info:
I read in a StackOverflow (https://stackoverflow.com/questions/36966900/xcb-get-all-monitors-ands-their-x-y-coordinates) answer that monitor info relates to the physical display were as crtc relates to the effective output size.
I don't know enough about X, i3, or Qtile to know if I'm on to something.
Thanks for testing that. The way I see it this is either a bug in RandR or intended behavior, in which case I don't think we can do much more than give you the flag to disable RandR 1.5.
It would be a good reason to keep this flag around, though. @stapelberg Do you have thoughts on this?
@Airblader No problem.
Please keep the flag around until the issue is resolved. We use i3's IPC extensively so I really don't want to port everything to another WM.
@stapelberg I'm don't know much about RandR, but I'm not sure this is a bug. CRTCs model the part of the total display being used and monitors model the total display size (of which some might not be used: underscan). When I did my tests, the values for each were correct, but i3 should be sizing itself on the part of monitor being used, not the total. I can't verify this because I can't find any documentation for XCB API (well, not any with descriptions).
In my understanding, this is a bug. CRTCs (cathode ray tube controllers; consider how old that API is…) were usually synonymous with monitors, until 4K/8K/… monitors needed two panels in one chassis. The monitor API abstracts individual CRTCs away, so it’s only reasonable to assume that programs should only have to query that API, not both.
Please report this to nVidia and see what they say.
@stapelberg Fair enough, I don't really know how the API works :).
I've posted the issue in the Linux forum on the Nvidia site. I'm not sure that's where it's meant to be but it's a start: