Ubuntu i3 window manger + Dell docker + HDMI interface display

I have a dell XPS laptop that made in 2015, which equipped with Intel® Core™ i7-5500U CPU @ 2.40GHz × 4 and 8 G memory, and there's only one mini Display port on this machine, at that time, I also bought a dell docker which has 2 HDMI interfaces.

The dell docker run with the DisplayLink protocol, it can attach any laptop equipped with USB 3.0(now the new model also supports USB-c), so that means I can use USB interface to extend my external display via the HDMI interface(could be extended to 2 monitors).

The machine is running with Ubuntu and i3 window manager. I followed the instruct to install the dirver and tried to extend to the external monitor, but it failed:

$ xrandr
Screen 0: minimum 320 x 200, current 2560 x 2592, maximum 8192 x 8192
eDP-1 connected primary 2048x1152+0+1440 (normal left inverted right x axis y axis) 294mm x 165mm
   3200x1800     59.98 +  59.96    59.94  
   2880x1620     59.96    59.97  
   2560x1600     59.99    59.97  
   2560x1440     59.99    59.99    59.96    59.95  
   2048x1536     60.00  
   ...
   ...
   320x240       60.05  
   360x202       59.51    59.13  
   320x180       59.84    59.32  
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-1 disconnected (normal left inverted right x axis y axis)

I can't find my external display.

After some google search, it seems some workround should be applied to the X Window Server:

$ sudo vim /usr/share/X11/xorg.conf.d/20-displaylink.conf

with the following content: 

Section "Device"
  Identifier "DisplayLink"
  Driver "modesetting"
  Option "PageFlip" "false"
EndSection  

Restart the system.

Then I can find the virutal device(external monior) DVI-I-1-1 like this:

$ xrandr
Screen 0: minimum 320 x 200, current 2560 x 2592, maximum 8192 x 8192
eDP-1 connected primary 2048x1152+0+1440 (normal left inverted right x axis y axis) 294mm x 165mm
   3200x1800     59.98 +  59.96    59.94  
   2880x1620     59.96    59.97  
   2560x1600     59.99    59.97  
   2560x1440     59.99    59.99    59.96    59.95  
   2048x1536     60.00  
   ...
   ...
   320x240       60.05  
   360x202       59.51    59.13  
   320x180       59.84    59.32  
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-1 disconnected (normal left inverted right x axis y axis)
DVI-I-1-1 connected 2560x1440+0+0 (normal left inverted right x axis y axis) 597mm x 336mm
   2560x1440     59.95*+
   2048x1152     60.00  
   1920x1200     59.95  
   1920x1080     60.00    60.00    50.00    59.94    30.00    25.00    24.00    29.97    23.98  
   1600x1200     60.00  
   ...
   ...
   640x480       75.00    60.00    59.94  
   720x400       70.08  
  2560x1440 (0x50) 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
  ...
  ...
  640x480 (0x9b) 25.175MHz -HSync -VSync
        h: width   640 start  656 end  752 total  800 skew    0 clock  31.47KHz
        v: height  480 start  490 end  492 total  525           clock  59.94Hz

and in ~/.i3/config, I got the following config to control the monitor dispatch.

bindsym $mod+Shift+p exec xrandr --output eDP-1 --primary --mode 2048x1152 --output DVI-I-1-1 --mode 2560
x1440 --above eDP-1

My $mod is binding to Cmmand key, now I can use cmd+shift+p to extend the monitor via the USB line of the Dell docker.

[1] https://support.displaylink.com/knowledgebase/articles/1181623