Как я могу сделать так, чтобы Ubuntu всегда распознавал мой внешний монитор с левой стороны?
Каждый раз, когда я включаю свой ноутбук и подключаю внешний монитор через HDMI, мне нужно переходить к настройкам дисплея, чтобы изменить настройки по умолчанию. При запуске я получаю дублированный экран вместо расширенного экрана, который я хочу. Я также получаю свой внешний монитор справа, когда я всегда ставлю его слева. Как сделать так, чтобы по умолчанию он оставался расширенным и слева? Да, я всегда ставлю "применить" и "сохранить эту конфигурацию", но, кажется, сбрасывается при запуске.
xrandr
выход с монитора настроен именно так, как я хочу:
Screen 0: minimum 8 x 8, current 3520 x 1080, maximum 32767 x 32767
LVDS1 connected primary 1600x900+1920+180 (normal left inverted right x axis y axis) 382mm x 215mm
1600x900 60.01*+ 40.03
1440x900 59.89
1368x768 60.00
1360x768 59.80 59.96
1152x864 60.00
1280x720 60.00
1024x768 60.00
1024x576 60.00
960x540 60.00
800x600 60.32 56.25
864x486 60.00
800x450 60.00
640x480 59.94
720x405 60.00
640x360 60.00
DP1 disconnected (normal left inverted right x axis y axis)
DP2 disconnected (normal left inverted right x axis y axis)
DP3 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
HDMI3 disconnected (normal left inverted right x axis y axis)
VGA1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
DP-1-4 disconnected
HDMI-1-4 disconnected
HDMI-1-5 connected 1920x1080+0+0 510mm x 287mm
1920x1080 60.00*+ 50.00 59.94
1920x1080i 60.00 50.00 59.94
1280x1024 75.02 60.02
1280x960 60.00
1280x800 59.91
1152x864 75.00
1280x720 60.00 50.00 59.94
1024x768 75.08 70.07 60.00
832x624 74.55
800x600 72.19 75.00 60.32 56.25
720x576 50.00
720x480 60.00 59.94
640x480 75.00 72.81 66.67 60.00 59.94
720x400 70.08
1024x768 (0x55) 65.000MHz -HSync -VSync
h: width 1024 start 1048 end 1184 total 1344 skew 0 clock 48.36KHz
v: height 768 start 771 end 777 total 806 clock 60.00Hz
800x600 (0x59) 40.000MHz +HSync +VSync
h: width 800 start 840 end 968 total 1056 skew 0 clock 37.88KHz
v: height 600 start 601 end 605 total 628 clock 60.32Hz
800x600 (0x5a) 36.000MHz +HSync +VSync
h: width 800 start 824 end 896 total 1024 skew 0 clock 35.16KHz
v: height 600 start 601 end 603 total 625 clock 56.25Hz
640x480 (0x62) 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
1 ответ
Работа вокруг
Разметка экрана, которая не прилипает, часто происходит, когда графический драйвер и экран не взаимодействуют в достаточной степени. Однако это не означает, что нет решения.
Команда, чтобы сделать ваши настройки, как вы хотите, это (если я не ошибся или опечатка):
xrandr --output HDMI-1-5 --pos 0x0 --output LVDS1 --pos 1920x180
ПОЧЕМУ это команда, чтобы сделать это, объясняется здесь.
Как пользоваться
Вы можете использовать эту команду двумя способами:
1. Ручная версия (ярлык)
Добавьте его к клавише быстрого доступа, чтобы нажать ее после подключения второго экрана: выберите: "Системные настройки" > "Клавиатура" > "Ярлыки" > "Пользовательские ярлыки". Нажмите "+" и добавьте команду:
xrandr --output HDMI-1-5 --pos 0x0 --output LVDS1 --pos 1920x180
2. Автоматическая версия
Запустите эту команду автоматически, если подключен второй экран:
Скопируйте приведенный ниже скрипт в пустой файл и сохраните его как
set_screen.py
#!/usr/bin/env python3 import subprocess import time def numscreens(): scrdata = subprocess.check_output("xrandr").decode("utf-8").splitlines() return len([l for l in scrdata if " connected" in l]) nscr1 = None while True: time.sleep(5) nscr2 = numscreens() if nscr2 != nscr1: if nscr2 == 2: subprocess.Popen(["xrandr", "--output", "HDMI-1-5", "--pos", "0x0", "--output", "LVDS1", "--pos", "1920x180"]) nscr1 = nscr2
Тестовый запуск скрипта, запустив его из терминала:
python3 /path/to/set_screen.py
Если все работает нормально, добавьте его в Startup Applications: Dash > Startup Applications > Add. Добавьте команду:
/bin/bash -c "sleep 30 && python3 /path/to/set_screen.py"