Каждый раз я разъединяю свои три внешних монитора от моего ноутбука, или когда я включаю их, въезжают задним ходом, все разрешение и расширился испорчены, настольные настройки. Я должен буду возвратить настройки для разбираний в нем снова.
Я использую гнома 3.18.5 на Ubuntu 16.04. У меня есть Intel HD graphics 530 и Nvidia 960M с версией драйвера 375.39 Nvidia. Я также установил расширение оболочки гнома под названием 'Fix-Multi-Monitors', который действительно фиксировал набор проблем как окна, только перемещающиеся между два из трех мониторов с окном движущиеся ярлыки.
Так или иначе то, что я хотел бы сделать, так или иначе сохранили настройки для того, когда я включил все три монитора, таким образом, я могу просто запустить один единственный скрипт или установку, таким образом, это немедленно загружается, как я хочу это, или возможно даже, что это происходит автоматически, когда три дисплея обнаруживаются. Я должен добавить, что всегда включаю мониторы тот же путь.
То, что также беспокоит меня, - то, что мне включили эти обои, которые охватывают все три монитора, но когда они разъединяются, обои становятся тонкой строкой на мониторе ноутбука с остальной частью черного экрана. Я хотел бы видеть только среднюю часть тех обоев, чтобы показать в этом случае или возможно иметь другую загрузку обоев автоматически, когда внешние мониторы разъединяются. Я надеюсь, что кто-то может помочь мне или направить меня правильным способом сделать это лучшим опытом.
Я действительно находил инструмент командной строки названным disper, которого я прочитал страницу справочника и попробовал набор команд, но я не думаю, что это может сделать то, что я хочу.
Пути к моим обоям:
/home/olm/Pictures/Wallpapers/3monitorwallpaper.jpg /home/olm/Pictures/Wallpapers/1monitorwallpaper.jpg
сценарий ниже, является отредактированной версией этот .
Однажды в пять секунд, это проверяет количество связанных экранов. Если число изменяется, и , общее количество связанных экранов равняется четырем, оно работает эти xrandr
команда, которую мы нашли в комментарии (комментариях).
four_screens.py
Тестовый прогон сценарий от терминала с командой:
python3 /path/to/four_screens.py
и подключение Ваши экраны. После того, как четвертое соединено, Ваша экранная установка должна быть сделана.
, Если все хорошо работает, добавьте сценарий для Запущения Приложений: Тире> Приложения Запуска> Добавляет. Добавьте команду:
python3 /path/to/four_screens.py
#!/usr/bin/env python3
import subprocess
import time
#--- set both commands (connect / disconnect) below
connect_command = "xrandr --output DP-2 --pos 0x0 --mode 1920x1200 "\
"&& xrandr --output HDMI-0 --pos 1920x0 --mode 1920x1200 "\
"&& xrandr --output DP-3 --pos 3840x0 --mode 1920x1200 "\
"&& xrandr --output eDP-1-1 --off"
disconnect_command = ""
#---
while True:
time.sleep(5)
try:
subprocess.Popen(["xrandr"])
except:
pass
else:
break
# function to get the output of xrandr
def get(cmd): return subprocess.check_output(cmd).decode("utf-8")
# - to count the occurrenc of " connected "
def count_screens(xr): return xr.count(" connected ")
# - to run the connect / disconnect command(s)
def run_command(cmd): subprocess.Popen(["/bin/bash", "-c", cmd])
# first count
xr1 = None
while True:
time.sleep(5)
# second count
xr2 = count_screens(get(["xrandr"]))
# check if there is a change in the screen state
if xr2 != xr1:
if xr2 == 4:
# command to run if connected (two screens)
run_command(connect_command)
elif xr2 == 1:
# command to run if disconnected (one screen)
# uncomment run_command(disconnect_command) to enable, then also comment out pass
pass
# run_command(disconnect_command)
# set the second count as initial state for the next loop
xr1 = xr2
, Если бы, по любой причине, Вы предпочли бы не запускать фоновый скрипт, можно выполнить ту же команду через сочетание клавиш:
Выберите: Параметры настройки системы> "Клавиатура"> "Ярлыки"> "Пользовательские Ярлыки". Нажмите "+" и добавьте команду:
/bin/bash -c "xrandr --output DP-2 --pos 0x0 --mode 1920x1200 && xrandr --output HDMI-0 --pos 1920x0 --mode 1920x1200 && xrandr --output DP-3 --pos 3840x0 --mode 1920x1200 && xrandr --output eDP-1-1 --off"
Тем временем я также нашел, что эта удобная команда изменяет обои в гноме.
gsettings set org.gnome.desktop.background picture-uri file:///path/to/wallpaper.jpg
Поэтому теперь я использую это вместе с командами Xrandr в сценарии для установки моего рабочего стола каждый раз, когда я подключаю свои мониторы к ноутбуку.