Perintah untuk mengganti wallpaper di XUbuntu

15

Melakukan pencarian google mengungkapkan perintah

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

Pertama kali saya menjalankan perintah ini saya mendapat pesan yang mengatakan bahwa properti / backdrop / screen0 / monitor0 / image-path tidak ada di saluran xfce4-desktop.

Jadi, saya membuat properti ini:

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

Tapi tetap saja latar belakangnya tidak berubah.

Saya kemudian mengubah latar belakang dari space-03.jpg ke space-04.jpg secara normal, dari aplikasi Desktop Settings XUbuntu. Lalu saya jalankan:

$ 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

Seperti yang Anda lihat, properti /backdrop/screen0/monitorLVDS1/workspace0/last-imagetelah berubah (!).

Jika saya mengubah properti ini maka itu berfungsi dengan baik tetapi masalahnya adalah saya perlu menemukan cara umum untuk mengimplementasikannya dalam program saya (Wallch).

Bahkan Variety(yang merupakan program yang sangat bagus, omong-omong) tidak berfungsi dengan baik pada mesin saya dan memilih untuk mengubah properti /backdrop/screen0/monitor0/image-pathyang tidak melakukan apa-apa.

Salah satu caranya adalah dengan membuat semua properti yang mungkin dan mengubahnya semuanya saat dibutuhkan, secara bersamaan. Saya tidak suka solusi ini karena 2 alasan:

  1. Beberapa panggilan sistem akan dibutuhkan
  2. Pada satu titik saya harus mengambil jalur gambar saat ini (untuk membuka folder itu, salin jalurnya, hapus dan beberapa fungsi lain yang disediakan oleh program). Saya tidak akan tahu properti mana yang memegang jalur gambar yang benar-benar ditetapkan untuk membuatnya tersedia untuk program ini.

Saya juga tidak mengerti mengapa XFCE melakukannya dengan begitu rumit. Mengapa satu properti tidak cukup seperti di gsettings?

hytromo
sumber
baru saja mencobanya, xfconf-query -c xfce4-desktop -p / backdrop / screen0 / monitor0 / image-path -s /usr/share/backgrounds/xfce/xfce-blue.jpg bekerja untuk saya .... tidak pernah berubah gambar latar belakang saya sebelumnya - hati-hati melakukannya tanpa hak root karena pengaturannya adalah khusus pengguna.
Wolfgang
1
@hakermania - mungkin sesuatu seperti skrip ini di # 9 di sini - apakah ini memberi Anda beberapa ide tentang cara melanjutkan (atau setidaknya mengidentifikasi monitor yang benar)? bugs.launchpad.net/variety/+bug/1064825
fossfreedom
@fossfreedom melihat jawaban yang saya berikan dalam jawaban di bawah ini.
hytromo

Jawaban:

4

Saya pikir itu harus melakukan pekerjaan

Gunakan kode berikut untuk mendapatkan perangkat yang terhubung dan menghitungnya:

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)

maka Anda harus memanipulasi mereka dan memilih apakah akan menetapkan nilai untuk jalur gambar atau gambar terakhir

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

Asumsikan 1.jpeg adalah file apa saja yang diperlukan untuk membuat string secara default. Dan 2.png adalah gambar yang ingin diatur. Saya menambahkan baris pertama hanya untuk memastikan bahwa xfce4-desktop ada.

Skrip ini telah diuji di mesin saya dan berfungsi dengan baik.

Semoga itu bisa membantu teman saya

EDIT: Daftar nama port ditemukan di sini seperti:

Nama port keluaran

Driver Intel - UMS

VGA - Output VGA analog

LVDS - panel Laptop

DP1 - Output DisplayPort

TV - Output TV terintegrasi

TMDS-1 - Output DVI SDVO pertama

TMDS-2 - Output DVI SDVO kedua

Output SDVO dan DVO TV tidak didukung oleh driver saat ini.

Driver Intel - KMS

LVDS1 - Panel laptop

VGA1 - Output VGA analog

DVI1 - Output video digital

pengemudi radeon

VGA-0 - Output VGA analog

LVDS - panel Laptop

S-video - Output TV terintegrasi

DVI-0 - output DVI

Untuk Info lebih lanjut, cek di sini

kamil
sumber
Mengapa harus melakukan pekerjaan itu?
Seth
@Seth Karena saya mengulang-ulang semua monitor yang tersedia dan saya akan menetapkan nilai yang sesuai untuk monitor yang ditemukan. baik gambar terakhir atau jalur gambar
kamil
Dalam sistem XFCE yang baru diinstal nilai-nilai bahkan tidak ada. Mereka sedang dibuat ketika Anda mengubah latar belakang desktop Anda secara manual. Jadi, ini bukan solusi yang baik menurut saya. Saya memasukkan jawaban ini dalam pertanyaan saya. Saya dengan jelas mengatakan bahwa saya bisa mencoba semuanya (membuat dan mengubahnya setiap waktu), tetapi ini masih jauh dari solusi yang baik untuk masalah ini.
hytromo
Anda dapat membuat properti seperti yang Anda lakukan
kamil
@hakermania periksa hasil edit
kamil