트릭
메인 화면과 두 번째 화면에 대해 월페이퍼를 별도로 설정하는 것은 불가능합니다. 무엇을 할 수 그러나 할 것은 배경 화면을 설정하고,이 두 개의 화면을 통해 스팬하는 것입니다. 우리는 자동으로 선택한 두 바탕 화면의 스패닝 이미지를 생성하고 두 번째 화면의 연결 여부에 따라 바탕 화면과 그림 옵션을 자동으로 전환 할 수 있습니다.
보기 좋게 만들려면 두 화면 의 세로 화면 해상도가 동일해야합니다 (이 경우 상황).
실제로
예비
이 솔루션에서 준비해야 할 작업은 다음과 같습니다.
먼저 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
스크립트로 만든를 제거하십시오 .
우분투 14.04 및 14.10에서 테스트했으며 완벽하게 작동했습니다. Gnome을 사용한다는 사실은 차이가 없습니다.
키 조합으로 수동으로 배경 화면 설정 전환
어떤 이유로 외부 모니터를 연결 / 연결 해제 한 후 스팬 배경 화면으로 수동 전환하는 것을 선호하는 경우 마지막 세 줄을 바꿀 수 있습니다.
while True:
arrange()
time.sleep(5)
한 줄로 :
arrange()
"시스템 설정"> "키보드"> "바로 가기"> "사용자 정의 단축키"로 전환하려면 키보드 단축키를 추가하십시오.
다음 명령을 추가하십시오 :
python3 /path/to/auto_wall.py
당신의 선택의 핵심 조합에.