Large Virtual Desktop on Xorg

  |   Source

One of my laptops still features a 1366x768 display which is very small for GUIs encountered today. For example the Xilinx Vivado GUI features a file menu that is so tall that the "Exit" choice will not even be visible on this laptop. Also for some other dialogues the important buttons for an interaction are simply not visible.

One option to cope with this certainly is to reduce the font size until things fit again, but another elegant solution is to configure the Xorg server with a large "virtual desktop". In such a setup the logical desktop is larger than the physical display and the LCD is just a view port onto that logical desktop following the mouse. Such a setup can be enabled dynamically on a modern Xorg server with the XRandR extension.

Xorg

In order to enable it, we first have to find the name of the output device:

[dzu@harry ~]$ xrandr
Screen 0: minimum 320 x 200, current 1366 x 768, maximum 8192 x 8192
LVDS-1 connected primary 1366x768+0+0 (normal left inverted right x axis y axis) 309mm x 173mm
   1366x768      60.10*+  40.07
   1360x768      59.80    59.96
   1280x720      60.00    59.99    59.86    59.74
   1024x768      60.04    60.00
   960x720       60.00
   928x696       60.05
   896x672       60.01
   1024x576      59.95    59.96    59.90    59.82
   960x600       59.93    60.00
   960x540       59.96    59.99    59.63    59.82
   800x600       60.00    60.32    56.25
   840x525       60.01    59.88
   864x486       59.92    59.57
   800x512       60.17
   700x525       59.98
   800x450       59.95    59.82
   640x512       60.02
   720x450       59.89
   700x450       59.96    59.88
   640x480       60.00    59.94
   720x405       59.51    58.99
   684x384       59.88    59.85
   680x384       59.80    59.96
   640x400       59.88    59.98
   576x432       60.06
   640x360       59.86    59.83    59.84    59.32
   512x384       60.00
   512x288       60.00    59.92
   480x270       59.63    59.82
   400x300       60.32    56.34
   432x243       59.92    59.57
   320x240       60.05
   360x202       59.51    59.13
   320x180       59.84    59.32
VGA-1 disconnected (normal left inverted right x axis y axis)
HDMI-1 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-2 disconnected (normal left inverted right x axis y axis)
HDMI-3 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 disconnected (normal left inverted right x axis y axis)
[dzu@harry ~]$

So obviously the LCD corresponds to the "LVDS-1" output on this machine and the maximum size for our virtual desktop is 8192 x 8192. Let's enable a smaller virtual desktop and check again the configuration with the xrandr command line tool:

[dzu@harry ~]$ xrandr --output LVDS-1 --mode 1366x768 --panning 1600x1200
[dzu@harry ~]$ xrandr
Screen 0: minimum 320 x 200, current 1600 x 1200, maximum 8192 x 8192
LVDS-1 connected primary 1600x1200+0+0 (normal left inverted right x axis y axis) 309mm x 173mm panning 1600x1200+0+0
   1366x768      60.10*+  40.07
   1360x768      59.80    59.96
   1280x720      60.00    59.99    59.86    59.74
   1024x768      60.04    60.00
   960x720       60.00
   928x696       60.05
   896x672       60.01
   1024x576      59.95    59.96    59.90    59.82
   960x600       59.93    60.00
   960x540       59.96    59.99    59.63    59.82
   800x600       60.00    60.32    56.25
   840x525       60.01    59.88
   864x486       59.92    59.57
   800x512       60.17
   700x525       59.98
   800x450       59.95    59.82
   640x512       60.02
   720x450       59.89
   700x450       59.96    59.88
   640x480       60.00    59.94
   720x405       59.51    58.99
   684x384       59.88    59.85
   680x384       59.80    59.96
   640x400       59.88    59.98
   576x432       60.06
   640x360       59.86    59.83    59.84    59.32
   512x384       60.00
   512x288       60.00    59.92
   480x270       59.63    59.82
   400x300       60.32    56.34
   432x243       59.92    59.57
   320x240       60.05
   360x202       59.51    59.13
   320x180       59.84    59.32
VGA-1 disconnected (normal left inverted right x axis y axis)
HDMI-1 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-2 disconnected (normal left inverted right x axis y axis)
HDMI-3 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 disconnected (normal left inverted right x axis y axis)
[dzu@harry ~]$

And that's it. We can now at least interact with GUIs requiring more screen estate than what our LCD can offer. It is of course somewhat clumsy and not really a long term solution, but sometimes this allows us to proceed in situations where we would otherwise be blocked.

Disabling the virtual desktop again is also easy:

[dzu@harry ~]$ xrandr --output LVDS-1 --mode 1366x768 --panning 1366x768
Comments powered by Disqus