Can't configure 4k DP to extend 4k laptop screen (external only mirrors laptop)

**Manjaro Cinnamon kernel 4.19 (same result on 5.1 and 5.2) **

I have a 4K screen on my laptop with a 4K external screen. However, the dimensions of the two are different. What's happening right now, is that my laptop screen is scaled just fine, by the external monitor is an stretched version of my laptop screen.

My xrandr -q result

eDP1 connected primary 3840x2160+0+2160 (normal left inverted right x axis y axis) 350mm x 190mm
   3840x2160     60.00*+  59.97  
   3200x1800     59.96    60.00    59.94  
   2880x1620     60.00    59.96    59.97  
   2560x1600     59.99    59.97  
   2560x1440     59.96    60.00    59.95  
   2048x1536     60.00  
   1920x1440     60.00  
   1856x1392     60.01  
   1792x1344     60.01  
   2048x1152     60.00    59.90    59.91  
   1920x1200     59.88    59.95  
   1920x1080     59.96    60.00    59.93  
   1600x1200     60.00  
   1680x1050     59.95    59.88  
   1400x1050     59.98  
   1600x900      60.00    59.95    59.82  
   1280x1024     60.02  
   1400x900      59.96    59.88  
   1280x960      60.00  
   1368x768      60.00    59.88    59.85  
   1280x800      59.81    59.91  
   1280x720      59.86    60.00    59.74  
   1024x768      60.00  
   1024x576      60.00    59.90    59.82  
   960x540       60.00    59.63    59.82  
   800x600       60.32    56.25  
   864x486       60.00    59.92    59.57  
   640x480       59.94  
   720x405       59.51    60.00    58.99  
   640x360       59.84    59.32    60.00  
DP1 connected 3840x2160+0+0 (normal left inverted right x axis y axis) 600mm x 340mm
   3840x2160     60.00*+  30.00  
   2560x1440     59.95  
   1920x1080     60.00    59.94  
   1600x900      60.00  
   1280x1024     60.02  
   1280x800      59.81  
   1152x864      59.97  
   1280x720      60.00    59.94  
   1024x768      60.00  
   800x600       60.32  
   720x480       60.00    59.94  
   640x480       60.00    59.94  

My xrandr --listmonitors

Monitors: 2
 0: +*eDP1 3840/350x2160/190+0+2160  eDP1
 1: +DP1 3840/600x2160/340+0+0  DP1

What I tried:

I tried to see what the right solution would be with ARandR
This did not help.

I tried xrandr --output DP1 --scale 1.71x1.79
This did give me the expected result on the monitor, however, the external screen overlapped part of my laptop screen.

My setup from Display configuration:

My thoughts on what could fix the issue
As it seems now, the two displays seem to be merged. I can not find a way to separate these two. Does anyone have any experience with this? Or has a setup at the moment with two 4K screens, that both render as expected?

an xrandr tool like arandr might be easier to use.

are both screens 16:9 ? if so, then --scale 1.71x1.79 should be 1.71x.1.71 or you'll end up with

the best way of setting this up would be through a xorg configuration but it's not the easiest to setup if your not familiar with how xorg.conf works.

I just noticed that I did not export the ARandR configurations properly. What worked for me was:

xrandr --output eDP1 --primary --mode 3840x2160 --pos 365x2700 --rotate normal --output DP1 --mode 3840x2160 --pos 0x0 --rotate normal --output DP2 --off --output HDMI1 --off --output HDMI2 --off --output VIRTUAL1 --off

This gives the exact resolution I was after on the external monitor. (When connected through USB-C).

Edit:

Did just noticed, that when disconnecting USB-C and reconnecting again, the command needs to be rerun. Not ideal.

1 Like

there's autorandr you could use but i've never used before. or a well configured xorg.conf

Which DE are you using?

What is your actual hardware (output of inxi -Fxxxz)?

Have you tried a different arrangement, e.g. side-by-side?

I will look into xorg.conf thank you for the advice!

Output of inxi -Fxxxz:

System:
  Host: tolu-pc Kernel: 5.2.11-1-MANJARO x86_64 bits: 64 compiler: gcc 
  v: 9.1.0 Desktop: Cinnamon 4.2.4 info: docker dm: LightDM 1.30.0 
  Distro: Manjaro Linux 
Machine:
  Type: Laptop System: Dell product: XPS 15 9560 v: N/A serial: <filter> 
  Chassis: type: 10 serial: <filter> 
  Mobo: Dell model: 05FFDN v: A00 serial: <filter> UEFI: Dell v: 1.5.0 
  date: 08/30/2017 
Battery:
  ID-1: BAT0 charge: 76.7 Wh condition: 76.7/97.0 Wh (79%) volts: 13.1/11.4 
  model: SMP DELL GPM0365 type: Li-ion serial: <filter> status: Full 
  Device-1: hidpp_battery_0 model: Logitech Performance MX serial: <filter> 
  charge: 5% (should be ignored) rechargeable: yes status: Discharging 
CPU:
  Topology: Quad Core model: Intel Core i7-7700HQ bits: 64 type: MT MCP 
  arch: Kaby Lake rev: 9 L2 cache: 6144 KiB 
  flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx 
  bogomips: 44944 
  Speed: 858 MHz min/max: 800/3800 MHz Core speeds (MHz): 1: 804 2: 800 
  3: 800 4: 816 5: 800 6: 800 7: 800 8: 800 
Graphics:
  Device-1: Intel HD Graphics 630 vendor: Dell driver: i915 v: kernel 
  bus ID: 00:02.0 chip ID: 8086:591b 
  Device-2: NVIDIA GP107M [GeForce GTX 1050 Mobile] vendor: Dell 
  driver: nouveau v: kernel bus ID: 01:00.0 chip ID: 10de:1c8d 
  Display: x11 server: X.Org 1.20.5 driver: intel,nouveau 
  unloaded: modesetting alternate: fbdev,nv,vesa 
  resolution: 3840x2160~60Hz, 3840x2160~60Hz 
  OpenGL: renderer: Mesa DRI Intel HD Graphics 630 (Kaby Lake GT2) 
  v: 4.5 Mesa 19.1.5 compat-v: 3.0 direct render: Yes 
Audio:
  Device-1: Intel CM238 HD Audio vendor: Dell driver: snd_hda_intel 
  v: kernel bus ID: 00:1f.3 chip ID: 8086:a171 
  Sound Server: ALSA v: k5.2.11-1-MANJARO 
Network:
  Device-1: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter 
  vendor: Bigfoot Networks driver: ath10k_pci v: kernel port: e000 
  bus ID: 02:00.0 chip ID: 168c:003e 
  IF: wlp2s0 state: up mac: <filter> 
  Device-2: Qualcomm Atheros type: USB driver: btusb bus ID: 1-4:3 
  chip ID: 0cf3:e300 
  IF-ID-1: br-13a27a7d7aec state: up speed: N/A duplex: N/A mac: <filter> 
  IF-ID-2: br-c6a1de4cb4f7 state: down mac: <filter> 
  IF-ID-3: br-ebaab28cf0cd state: down mac: <filter> 
  IF-ID-4: docker0 state: down mac: <filter> 
  IF-ID-5: veth2ee47ae state: up speed: 10000 Mbps duplex: full 
  mac: <filter> 
  IF-ID-6: veth363544e state: up speed: 10000 Mbps duplex: full 
  mac: <filter> 
  IF-ID-7: veth8906ada state: up speed: 10000 Mbps duplex: full 
  mac: <filter> 
  IF-ID-8: veth99a7a64 state: up speed: 10000 Mbps duplex: full 
  mac: <filter> 
  IF-ID-9: vetha7b3c2b state: up speed: 10000 Mbps duplex: full 
  mac: <filter> 
  IF-ID-10: vethbf1c9ae state: up speed: 10000 Mbps duplex: full 
  mac: <filter> 
  IF-ID-11: vethcb566cc state: up speed: 10000 Mbps duplex: full 
  mac: <filter> 
  IF-ID-12: vethdd6e91c state: up speed: 10000 Mbps duplex: full 
  mac: <filter> 
  IF-ID-13: vethf61251c state: up speed: 10000 Mbps duplex: full 
  mac: <filter> 
  IF-ID-14: vethfa28a7a state: up speed: 10000 Mbps duplex: full 
  mac: <filter> 
Drives:
  Local Storage: total: 953.87 GiB used: 96.08 GiB (10.1%) 
  ID-1: /dev/nvme0n1 vendor: Toshiba model: KXG50ZNV1T02 NVMe 1024GB 
  size: 953.87 GiB speed: 31.6 Gb/s lanes: 4 serial: <filter> rev: AADA4102 
  scheme: GPT 
Partition:
  ID-1: / size: 937.60 GiB used: 96.08 GiB (10.2%) fs: ext4 
  dev: /dev/nvme0n1p2 
Sensors:
  System Temperatures: cpu: 61.0 C mobo: 49.0 C sodimm: 44.0 C gpu: nouveau 
  temp: 511 C 
  Fan Speeds (RPM): cpu: 2533 
Info:
  Processes: 317 Uptime: 5m Memory: 31.27 GiB used: 4.36 GiB (13.9%) 
  Init: systemd v: 242 Compilers: gcc: 9.1.0 Shell: zsh v: 5.7.1 
  running in: gnome-terminal inxi: 3.0.36 

I have also tried putting them side by side, but it still gives the same issues. Right now I have it working by:

  • Firs scaling the external screen
  • Running the script pasted above to avoid overlapping.

Uh huh. Optimus graphics. This may explain things.

The internal panel and external ports can be wired to different GPUs (e.g. iGPU to panel and VGA, dGPU to HDMI and DP). This causes issues with external displays if the wrong "combination" is used.

The main way around this is to use PRIME so all outputs are being driven by the dGPU.

Forum kindly sponsored by Bytemark