Хитрость
Кажется невозможным отдельно установить обои для основного экрана и второго экрана. Однако, что можно сделать, это установить обои и разместить их на двух экранах. Мы можем автоматически создать охватывающее изображение из двух обоев по вашему выбору и (также автоматически) переключать обои и параметры изображения в зависимости от того, подключен второй экран или нет.
Чтобы это выглядело хорошо, необходимо, чтобы по крайней мере вертикальное разрешение экрана обоих экранов было одинаковым, что имеет место в вашей ситуации.
На практике
подготовка
В этом решении подготовительная работа, которую вы должны выполнить:
Сначала установите imagemagick для автоматического создания связующего изображения:
sudo apt-get install imagemagick
Подготовьте два отдельных фоновых изображения на ваш выбор для обоих экранов:
- Размеры должны точно соответствовать размерам экрана (16: 9 в вашем случае)
- Вертикальное разрешение обоих изображений должны быть точно такими же.
называть их screen_1.jpeg
и screen_2.jpeg
(именно эти имена). Скрипт создаст остовное изображение.
Создайте папку в вашем домашнем каталоге и скопируйте оба изображения в папку.
Скопируйте приведенный ниже скрипт в пустой файл и сохраните его auto_wall.py
вместе с двумя подготовленными вами изображениями.
В разделе заголовка скрипта есть строка:
screen_check = "HDMI-0 connected"
при необходимости замените HDMI-0
на <your_second_screenname>
(запустите команду, xrandr
если необходимо выяснить)
Запустите скрипт (и оставьте его работать в фоновом режиме) командой:
python3 /path/to/auto_wall.py
Теперь, если вы подключите второй экран, обои на втором экране должны переключиться в течение нескольких секунд, чтобы screen_2.jpeg
вы подготовились.
- Если все работает хорошо, добавьте его в свои приложения запуска.
Сценарий
#!/usr/bin/env python3
import subprocess
import os
import time
curr_dir = os.path.dirname(os.path.abspath(__file__))
screen_check = "HDMI-0 connected"
single_picture = "'file://"+curr_dir+"/screen_1.jpeg'"
double_picture = "'file://"+curr_dir+"/span_image.jpeg'"
def execute_set(command):
subprocess.call(["/bin/bash", "-c", command])
def execute_get(command):
return subprocess.check_output(["/bin/bash", "-c", command]).decode("utf-8").strip()
def switch_tosingle():
execute_set("gsettings set org.gnome.desktop.background picture-uri "+single_picture)
execute_set("gsettings set org.gnome.desktop.background picture-options zoom")
def switch_todouble():
if not os.path.exists(double_picture):
create_spanimage()
execute_set("gsettings set org.gnome.desktop.background picture-uri "+double_picture)
execute_set("gsettings set org.gnome.desktop.background picture-options spanned")
def create_spanimage():
image_1 = curr_dir+"/"+"screen_1.jpeg"
image_2 = curr_dir+"/"+"screen_2.jpeg"
span_image = curr_dir+"/"+"span_image.jpeg"
execute_set("convert "+image_1+" "+image_2+" "+"+append "+span_image)
def check_ifconnected():
command = "xrandr"
check = execute_get(command)
if screen_check in check:
return True
def check_wallpaper():
check = execute_get("gsettings get org.gnome.desktop.background picture-uri")
if check == single_picture:
return "single"
elif check == double_picture:
return "double"
def arrange():
test = (check_ifconnected(), check_wallpaper())
if test == (True, "double") or test == (False, "single"):
pass
elif test[0] == True:
switch_todouble()
else:
switch_tosingle()
while True:
arrange()
time.sleep(5)
Замена изображений
Если вы хотите изменить обои, просто замените одно или оба изображения, которые вы скопировали в папку (но помните имя), и удалите span_image.jpeg
созданный сценарием.
Я тестировал его на Ubuntu 14.04 и 14.10, и он работал отлично. Тот факт, что вы используете Gnome, не должен иметь никакого значения.
Переключение настроек обоев вручную с помощью комбинации клавиш
Если по какой-либо причине вы предпочли бы переключиться на составные обои вручную после подключения / отключения внешнего монитора, вы можете заменить последние три строки:
while True:
arrange()
time.sleep(5)
одной строкой:
arrange()
и добавьте сочетание клавиш для переключения: «Системные настройки»> «Клавиатура»> «Ярлыки»> «Пользовательские сочетания клавиш»
Добавьте команду:
python3 /path/to/auto_wall.py
на комбинацию клавиш по вашему выбору.