KVM switch, nvidia-settings, xrandr

Problem: Monitor1 that’s on KVM switch is detected properly on boot and whenever the switch is on Computer1, but temporarily switching to Computer2 causes Monitor1 to be considered Off. When it’s considered Off, the resolution is 1024x768, not 2560x1440, like at boot.

Goal: Computer1 should continue to output to Monitor1 with same config as during boot. Monitor1 should never be considered Off. KVM switching over to Computer2 should not affect display output of Computer1.

KScreen2 is off.

xorg.conf uses Option "ConnectedMonitor" "DFP-0, DFP-2". (DFP-0 is the relevant output.) This should keep Computer1 thinking that Monitor1 is connected, regardless of KVM switch setting, which it does. The problem is that when the KVM switch is set to Computer2, Computer1 thinks the Monitor1 is Off. Off seems to be a different state than Connected. A monitor could be considered Connected, but Off. I’m looking for a way to force Monitor1 to stay the same config as at boot.

xrandr --output DP-0 --mode 2048x1152 works to force DFP-0 to a higher resolution, but for whatever reason, 2560x1440 is no longer a selectable mode. Again, if possible, there’s an Option for xorg.conf to keep monitors On, more than just Connected. Using xrandr is an okay work-around to turn back On the monitor when the KVM switch is on Computer2, but the resolution at boot, 2560x1440, isn’t an available mode once the monitor is considered Off.

Thanks for the help!

Does this help with diagnosing the problem?

xrandr output with Monitor1 and Monitor2. KVM switch is on Computer1, where xrandr is run from…

Screen 0: minimum 8 x 8, current 4480 x 1440, maximum 32767 x 32767
DP-0 connected 2560x1440+0+0 (normal left inverted right x axis y axis) 597mm x 336mm
   2560x1440     59.95*+
   1920x1200     59.95  
   1920x1080     60.00  
   1600x1200     60.00  
   1280x1024     60.02  
   1280x960      60.00  
   1024x768      60.00  
   800x600       60.32  
   640x480       59.94  
DP-1 disconnected (normal left inverted right x axis y axis)
DP-2 connected primary 1920x1200+2560+0 (normal left inverted right x axis y axis) 518mm x 324mm
   1920x1200     59.95*+  59.88  
   1920x1080     60.00    59.94    50.00    29.97    25.00    23.98  
   1600x1200     60.00  
   1280x1024     75.02    60.02  
   1280x720      60.00    59.94    50.00  
   1152x864      75.00  
   1024x768      75.03    60.00  
   800x600       75.00    60.32  
   720x576       50.00  
   720x480       59.94  
   640x480       75.00    59.94    59.93  
DP-3 disconnected (normal left inverted right x axis y axis)
DP-4 disconnected (normal left inverted right x axis y axis)
DP-5 disconnected (normal left inverted right x axis y axis)
DP-6 disconnected (normal left inverted right x axis y axis)
DP-7 disconnected (normal left inverted right x axis y axis)

KVM switch on Computer2… xrandr run from Computer1, which sees Monitor1 as Off and resolution of 1024x768. 2560x1440 is no longer an option for Monitor1 and listed at the very bottom of xrandr output…

Screen 0: minimum 8 x 8, current 4480 x 1440, maximum 32767 x 32767
DP-0 connected 2560x1440+0+0 (normal left inverted right x axis y axis) 597mm x 336mm
   1024x768      60.00 +
   2048x1152     59.91    59.90  
   1920x1200     59.95    59.88  
   1920x1080     59.96    59.93  
   1792x1344     60.01  
   1680x1050     59.95    59.88  
   1600x1200     60.00  
   1600x900      59.95    59.82  
   1400x1050     59.98  
   1400x900      59.96    59.88  
   1368x768      59.88    59.85  
   1280x1024     60.02  
   1280x960      60.00  
   1280x800      59.91    59.81  
   1280x720      59.86    59.74  
   1024x576      59.90    59.82    59.96    59.95  
   960x600       60.00    59.93  
   960x540       59.82    59.63    59.99    59.96  
   896x672       60.01  
   864x486       59.92    59.57  
   840x525       60.01    59.88  
   800x600       60.32    56.25    60.00  
   800x450       59.95    59.82  
   700x525       59.98  
   700x450       59.96    59.88  
   684x384       59.88    59.85  
   640x512       60.02  
   640x480       59.94    60.00  
   640x400       59.98    59.88  
   640x360       59.86    59.83  
   512x384       60.00  
   512x288       60.00    59.92  
   480x270       59.82    59.63  
   432x243       59.92    59.57  
   400x300       60.32    56.34  
   320x240       60.05  
DP-1 disconnected (normal left inverted right x axis y axis)
DP-2 connected primary 1920x1200+2560+0 (normal left inverted right x axis y axis) 518mm x 324mm
   1920x1200     59.95*+  59.88  
   1920x1080     60.00    59.94    50.00    29.97    25.00    23.98  
   1600x1200     60.00  
   1280x1024     75.02    60.02  
   1280x720      60.00    59.94    50.00  
   1152x864      75.00  
   1024x768      75.03    60.00  
   800x600       75.00    60.32  
   720x576       50.00  
   720x480       59.94  
   640x480       75.00    59.94    59.93  
DP-3 disconnected (normal left inverted right x axis y axis)
DP-4 disconnected (normal left inverted right x axis y axis)
DP-5 disconnected (normal left inverted right x axis y axis)
DP-6 disconnected (normal left inverted right x axis y axis)
DP-7 disconnected (normal left inverted right x axis y axis)
  2560x1440 (0x21e) 241.500MHz +HSync -VSync
        h: width  2560 start 2608 end 2640 total 2720 skew    0 clock  88.79KHz
        v: height 1440 start 1443 end 1448 total 1481           clock  59.95Hz

Well, this Option line in Section “Screen” of xorg.conf solves my problem, which is to keep Monitor1 as the same configuration as on boot:

Option         "ModeValidation" "NoDFPNativeResolutionCheck,NoVirtualSizeCheck,NoMaxPClkCheck,NoHorizSyncCheck,NoVertRefreshCheck,NoWidthAlignmentCheck"

The monitor stays as 2560x1440.

Unfortunately, this means the problem I’m trying to solve is actually on a remote machine where I’m running x11vnc from. I’m looking for a way to stop x11vnc from polling xrandr after it initially starts. Polling on x11vnc start up is 2560x1440. With KVM switch used to switch to Computer2, then back to Computer1, x11vnc re-polls and sees 1024x768. This should probably be a different subject on the thread, so I’ll start a new one.