XUbuntu'da duvar kağıdını değiştirme komutu


15

Google araması yapmak komutu gösterir

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

Bu komutu ilk kez çalıştırdığımda, xfce4-desktop kanalında property / backdrop / screen0 / monitor0 / image-path bulunmadığını söyleyen bir mesaj aldım.

Bu özelliği oluşturdum:

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

Ama yine de arka plan değişmedi.

Daha sonra XUbuntu'nun Masaüstü Ayarları uygulamasından normalde space-03.jpg'den space-04.jpg'ye değiştirdim. Sonra koşuyorum:

$ 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

Gördüğünüz gibi, özellik /backdrop/screen0/monitorLVDS1/workspace0/last-imagedeğişti (!).

Bu özelliği değiştirirseniz, o zaman gayet iyi çalışıyor ama şey benim programımda (Wallch) uygulamak için genel bir yol bulmak zorunda olmasıdır.

Hatta Variety(bu çok güzel bir program, bu arada) makinemde düzgün çalışmıyor ve /backdrop/screen0/monitor0/image-pathhiçbir şey yapmayan özelliği değiştirmeyi seçiyor .

Bunun bir yolu, olası tüm özellikleri oluşturmak ve gerektiğinde hepsini aynı anda değiştirmek olacaktır. 2 nedenden dolayı bu çözümü sevmiyorum:

  1. Gerekli olacak birkaç sistem çağrısı
  2. Bir noktada geçerli görüntünün yolunu almam gerekecek (klasörünü açmak, yolunu kopyalamak, silmek ve programın sağladığı diğer bazı işlevler için). Hangi özelliğin program için kullanılabilir olmasını sağlamak için gerçekten ayarlanmış görüntünün yolunu tuttuğunu bilemezdim.

Ayrıca XFCE'nin bunu neden bu kadar karmaşık yaptığını da anlamıyorum. Neden bir mülk, gsettings'de olduğu gibi yeterli olmaz?



Sadece denedim, xfconf-query -c xfce4-desktop -p / backdrop / screen0 / monitor0 / image-path -s /usr/share/backgrounds/xfce/xfce-blue.jpg benim için çalışıyor .... hiç değişmemişti arkaplan resmimden önce - Kök ayrıcalıkları olmadan bunu yapmaya dikkat edin çünkü ayarlar kullanıcıya özeldir.
Wolfgang

1
@hakermania - belki de # 9'daki bu komut dosyası gibi bir şey - bu size nasıl devam edeceğiniz (veya en azından doğru monitörü tanımlamanız) hakkında bazı fikirler veriyor mu? bugs.launchpad.net/variety/+bug/1064825
fossfreedom


@fossfreedom aşağıdaki cevapta verdiğim yanıta bakın.
hytromo

Yanıtlar:


4

Bence bu işi yapmalı

Bağlı cihazları almak ve saymak için aşağıdaki kodu kullanın:

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)

bunlar üzerinde işlem yapmalı ve görüntü yolu veya son görüntü için değer ayarlamayı seçmelisiniz

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'in dizeyi varsayılan olarak oluşturmak için gereken herhangi bir dosya olduğunu varsayın. Ve 2.png ayarlanması istenen resimdir. Sadece xfce4-desktop'un mevcut olduğundan emin olmak için ilk satırı ekledim.

Bu komut dosyası makinemde test edildi ve iyi çalışıyor.

Umarım arkadaşım yardımcı olur

EDIT: Bağlantı noktası adlarının bir listesi burada bulundu :

Çıkış bağlantı noktası adları

Intel sürücüsü - UMS

VGA - Analog VGA çıkışı

LVDS - Dizüstü bilgisayar paneli

DP1 - DisplayPort çıkışı

TV - Entegre TV çıkışı

TMDS-1 - İlk DVI SDVO çıkışı

TMDS-2 - İkinci DVI SDVO çıkışı

SDVO ve DVO TV çıkışları şu anda sürücü tarafından desteklenmiyor.

Intel sürücüsü - KMS

LVDS1 - Dizüstü bilgisayar paneli

VGA1 - Analog VGA çıkışı

DVI1 - Dijital video çıkışı

radeon sürücüsü

VGA-0 - Analog VGA çıkışı

LVDS - Dizüstü bilgisayar paneli

S-video - Entegre TV çıkışı

DVI-0 - DVI çıkışı

Daha fazla bilgi için burayı kontrol edin


Bu işi neden yapmalı?
Seth

@Seth Mevcut tüm monitörler arasında dolaştığım ve bulunan monitör için uygun değeri ayarlayacağım. son görüntü veya görüntü yolu
kamil

Yeni kurulan bir XFCE sisteminde değerler bile mevcut değildir. Masaüstü arka planınızı manuel olarak bir kez değiştirdiğinizde oluşturulur. Bence bu iyi bir çözüm değil. Bu yanıtı soruma ekliyorum. Hepsini söyleyebileceğimi açıkça söylüyorum (her seferinde onları yarat ve değiştir), ama bu soruna iyi bir çözüm olmaktan çok uzak.
hytromo

yaptığınız gibi özellikler oluşturabilirsiniz
kamil

@hakermania kontrol düzenleme
kamil
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.