XUbuntu에서 배경 화면을 변경하는 명령


15

Google 검색을 수행하면 명령이 나타납니다.

xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -s <image-path>

이 명령을 처음 실행할 때 / backdrop / screen0 / monitor0 / image-path 속성이 xfce4-desktop 채널에 존재하지 않는다는 메시지가 나타납니다.

그래서이 속성을 만들었습니다.

xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -n -t string -s <image-path>

그러나 여전히 배경은 변하지 않았습니다.

그런 다음 XUbuntu의 데스크탑 설정 애플리케이션에서 배경을 space-03.jpg에서 space-04.jpg로 정상적으로 변경했습니다. 그런 다음 실행합니다.

$ xfconf-query -c xfce4-desktop -p /backdrop -lv
/backdrop/screen0/image-path                           /usr/share/backgrounds/space-03.jpg
/backdrop/screen0/monitor0/image-path                  /usr/share/backgrounds/space-03.jpg
/backdrop/screen0/monitor0/image-show                  true
/backdrop/screen0/monitor1/image-path                  /usr/share/backgrounds/space-03.jpg
/backdrop/screen0/monitor1/image-show                  true
/backdrop/screen0/monitorLVDS1/workspace0/color-style  0
/backdrop/screen0/monitorLVDS1/workspace0/image-style  5
/backdrop/screen0/monitorLVDS1/workspace0/last-image   /usr/share/backgrounds/space-04.jpg

보시다시피, 속성 /backdrop/screen0/monitorLVDS1/workspace0/last-image이 변경되었습니다 (!).

이 속성을 변경하면 정상적으로 작동하지만 문제는 내 프로그램 (Wallch)에서 구현하기 위해 일반적인 방법을 찾아야한다는 것입니다.

심지어 Variety(아주 좋은 프로그램입니다)도 내 컴퓨터에서 제대로 작동 /backdrop/screen0/monitor0/image-path하지 않으며 아무것도하지 않는 속성을 변경하기로 선택합니다 .

한 가지 방법은 가능한 모든 속성을 만들고 필요한 경우 모든 속성을 동시에 변경하는 것입니다. 두 가지 이유로 인해이 솔루션이 마음에 들지 않습니다.

  1. 필요한 몇 가지 시스템 호출
  2. 어느 시점에서 현재 이미지의 경로를 가져와야합니다 (폴더를 열려면 경로를 복사하고 삭제하고 프로그램이 제공하는 다른 기능을 사용하십시오). 프로그램에서 사용할 수 있도록 실제로 설정된 이미지의 경로를 보유한 속성을 알 수 없습니다.

또한 XFCE가 왜 그렇게 복잡한 지 이해하지 못합니다. 왜 하나의 속성만으로도 화합에 충분하지 않습니까?



xfconf-query -c xfce4-desktop -p / backdrop / screen0 / monitor0 / image-path -s /usr/share/backgrounds/xfce/xfce-blue.jpg는 저에게 효과적입니다. 내 배경 이미지 이전-설정은 사용자마다 다르기 때문에 루트 권한없이주의하십시오.
Wolfgang

1
@ hakermania-# 9 의이 스크립트와 같은 것입니다-진행 방법 (또는 적어도 올바른 모니터 식별)에 대한 아이디어가 있습니까? bugs.launchpad.net/variety/+bug/1064825
fossfreedom


@fossfreedom 아래 답변에서 내가 제공 한 답변을 참조하십시오.
hytromo

답변:


4

나는 그 일을해야한다고 생각

다음 코드를 사용하여 연결된 장치를 가져 와서 계산하십시오.

connectedOutputs=$(xrandr | grep " connected" | sed -e "s/\([A-Z0-9]\+\) connected.*/\1/")
activeOutput=$(xrandr | grep -e " connected [^(]" | sed -e "s/\([A-Z0-9]\+\) connected.*/\1/") 
connected=$(echo $connectedOutputs | wc -w)

그런 다음 이미지를 조작하고 이미지 경로 또는 마지막 이미지의 값을 설정할지 선택해야합니다

xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -n -t string -s  ~/Pictures/1.jpeg
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitorLVDS1/workspace0/last-image -n -t string -s  ~/Pictures/1.jpeg

for i in $(xfconf-query -c xfce4-desktop -p /backdrop -l|egrep -e "screen.*/monitor.*image-path$" -e "screen.*/monitor.*/last-image$"); do
    xfconf-query -c xfce4-desktop -p $i -n -t string -s ~/Pictures/2.png  
    xfconf-query -c xfce4-desktop -p $i -s ~/Pictures/2.png

done

1.jpeg는 기본적으로 문자열을 만드는 데 필요한 파일이라고 가정합니다. 그리고 2.png는 설정하고자하는 그림입니다. xfce4-desktop이 존재하는지 확인하기 위해 첫 번째 줄을 추가했습니다.

이 스크립트는 내 컴퓨터에서 테스트되었으며 제대로 작동합니다.

내 친구를 돕는 희망

편집 : 포트 이름 목록은 다음 과 같습니다.

출력 포트 이름

인텔 드라이버-UMS

VGA-아날로그 VGA 출력

LVDS-노트북 패널

DP1-DisplayPort 출력

TV-통합 TV 출력

TMDS-1-최초의 DVI SDVO 출력

TMDS-2-두 번째 DVI SDVO 출력

현재 드라이버는 SDVO 및 DVO TV 출력을 지원하지 않습니다.

인텔 드라이버-KMS

LVDS1-노트북 패널

VGA1-아날로그 VGA 출력

DVI1-디지털 비디오 출력

라데온 드라이버

VGA-0-아날로그 VGA 출력

LVDS-노트북 패널

S- 비디오-통합 TV 출력

DVI-0-DVI 출력

자세한 정보는 여기를 참조하십시오


왜 그 일을해야합니까?
세스

@Seth 사용 가능한 모든 모니터를 반복하고 있기 때문에 찾은 모니터에 적절한 값을 설정합니다. 마지막 이미지 또는 이미지 경로
kamil

새로 설치된 XFCE 시스템에는 값이 존재하지 않습니다. 바탕 화면 배경을 수동으로 한 번 변경하면 생성됩니다. 따라서 이것은 내 의견으로는 좋은 해결책이 아닙니다. 내 질문 에이 답변을 포함시킵니다. 나는 그들 모두를 시도 할 수 있다고 분명히 말하지만 (매번 생성하고 변경하십시오), 이것은 문제에 대한 좋은 해결책이 아닙니다.
hytromo

당신은 당신이했던 것처럼 속성을 만들 수 있습니다
kamil

@hakermania 편집 확인
kamil
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.