Различные обои на нескольких мониторах

У меня есть ноутбук и монитор. Большую часть времени мой ноутбук подключен к монитору по HDMI. Я использую Ubuntu Gnome 14.04, и вот то, что я хочу:

  • Когда никакой монитор не подключен, я хочу простое фоновое изображение
  • Когда монитор подключен, я хотел бы иметь то же фоновое изображение на своем ноутбуке и другой на моем мониторе.

Это возможно? Я нашел этот вопрос, а также азот. Но оба не помогли мне.

Править:

После рабочего инструмента тонкой настройки гнома перейдите к вкладке "Desktop" в панели левой стороны и затем выключите установку "Have file manager handle the desktop".

Источник: форумы Ubuntu.

К сожалению, я не могу найти это в своем Инструменте тонкой настройки Gnome: gnome-tweak-tool

Я пытался найти то же использование конфигурации dconf-editor под org.gnome.desktop.background но все, что это сказало, было:

Сводка: потяните настольный фон
Описание: Имейте GNOME, тянут настольный фон. УДЕРЖАННЫЙ ОТ ИСПОЛЬЗОВАНИЯ: Этот ключ удерживается от использования и игнорируется.

Также мой gnome-shell --version GNOME Shell 3.10.4.

В этой сути вывод xrandr. Сначала каждый со вторым подключенным монитором. Второй - без него.

16
задан 13 April 2017 в 05:24

3 ответа

Прием

Кажется невозможным отдельно установить обои для основного экрана и второго экрана. То, что может быть сделано, однако должен установить обои и иметь его, охватило более чем два экрана. Мы можем автоматически создать изображение охвата двух обоев по Вашему выбору, и (также автоматически) переключают обои и опции изображения, в зависимости от того, соединен ли второй экран или нет.
Чтобы заставить его выглядеть хорошим, необходимо, чтобы, по крайней мере, вертикальное разрешение экрана обоих экранов было идентично, который имеет место в Вашей ситуации.

enter image description here

На практике

Подготовка

В этом решении готовящаяся работа, которую необходимо сделать:

  • Во-первых, установите 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

к сочетанию клавиш по Вашему выбору.

10
ответ дан 23 November 2019 в 02:37

В дополнение к вышеупомянутому ответу можно присоединиться к двум точным изображениям размера при помощи этого сервиса: http://www.photojoiner.net/

после присоединения к двум или больше изображениям необходимо выбрать опцию "промежутка" в фоновом режиме страница настроек.

1
ответ дан 23 November 2019 в 02:37

Иногда я использую

eog --fullscreen -s <path to first pic>

на втором мониторе, чтобы там постоянно менялся фон. Вы можете отрегулировать задержку между сменой изображения, используя

gsettings set org.gnome.eog.fullscreen seconds <whatever Val>
0
ответ дан 5 April 2020 в 11:26

Другие вопросы по тегам:

Похожие вопросы: