เปลี่ยนภาพพื้นหลังเดสก์ทอปจากเทอร์มินัล


11

ฉันใช้ Mint 13 กับ Cinnamon 1.6 ฉันต้องการให้วอลล์เปเปอร์เดสก์ท็อปของฉันเปลี่ยนโดยอัตโนมัติตามเวลาของวัน ดังนั้นสิ่งแรกที่อยู่ในใจคือการตั้งค่างาน cron ที่จะทำเพื่อฉัน ปัญหาคือฉันไม่รู้วิธีเปลี่ยนรูปพื้นหลังจากสคริปต์ / เทอร์มินัล

สิ่งที่ฉันอยากรู้:
1) ใครจะเปลี่ยนพื้นหลังจาก terminal?
2) มีวิธีที่มีอยู่แล้วภายในของการทำเช่นนี้?


1
DE ของคุณคืออะไร
เดซี่

@ warl0ck - อบเชย 1.6
รวม

คำตอบ:


19

นี่คือคำตอบที่ถูกต้องสำหรับคำถาม อะไรก็ตามที่เป็นเพียงแฮ็ค

 gsettings set org.cinnamon.desktop.background picture-uri  "file:///filename"

4
ไม่มีคำอธิบายใด ๆ นี่เป็นเรื่องไร้ประโยชน์
vonbrand

8
มันเป็นคำตอบที่ถูกต้องในการค้นหา ทำไมคุณต้องการคำอธิบาย เป็นวิธีที่ถูกต้องในการเปลี่ยนรูปพื้นหลังบนเดสก์ท็อปของ Cinnamon
Ramblin Man

1
.. และคำตอบเดียวที่ใช้งานได้ +1
รวม

10

กับ Linux Mint 16 (ไม่แน่ใจเกี่ยวกับรุ่นอื่น ๆ ) คุณสามารถใช้gsettingsทั้งได้รับข้อมูลเกี่ยวกับวอลล์เปเปอร์ของคุณในปัจจุบันเช่นเดียวกับชุดมัน

man gsettingsเป็นบางเล็กน้อย แต่ TAB เสร็จจะทำงานในขั้นตอนมากที่สุดในคำสั่งดังต่อไปนี้

รับข้อมูล:

gsettings get org.cinnamon.desktop.background picture-uri
gsettings get org.cinnamon.desktop.background picture-opacity
gsettings get org.cinnamon.desktop.background picture-options

หากต้องการเปลี่ยนตัวเลือกใด ๆ เพียงแค่เปลี่ยน "รับ" เป็น "ตั้ง" และเพิ่มค่าใหม่ให้กับท้าย

นี่คือสคริปต์ด่วนที่จะวนรอบรายการวอลเปเปอร์ที่รู้จัก:

#!/bin/sh
#
# Set the wallpaper from a list
#
# The list, all can be found in $BASE
BASE="file:///home/tigger/.wallpapers/"
LIST="shot1.png another.png just_no_space_in_name.png keep_adding.png"

# The current wallpaper
current=`gsettings get org.cinnamon.desktop.background picture-uri`
opacity=`gsettings get org.cinnamon.desktop.background picture-opacity`
options=`gsettings get org.cinnamon.desktop.background picture-options`

# loop over the list until we find a match
matched=0
new=""
for wp in $LIST
do
    if [ $matched -eq 1 ]
    then
        new="${BASE}${wp}"
        break
    elif [ "'${BASE}${wp}'" = "${current}" ]
    then
        matched=1
    fi
done

# if "$new" is blank, then we show the first shot
if [ "$new" = "" ]
then
    new=${BASE}${LIST%% *}
fi

# set the wallpaper
gsettings set org.cinnamon.desktop.background picture-uri \'${new}\'
gsettings set org.cinnamon.desktop.background picture-opacity ${opacity}
gsettings set org.cinnamon.desktop.background picture-options ${options}

2

ในแง่ของระบบหน้าต่าง x คุณต้องการเปลี่ยนพื้นหลังของหน้าต่างรูต "การ builtin" -tool xsetrootเปลี่ยนการตั้งค่าของหน้าต่างนี้อยู่ น่าเสียดายที่มันล้าสมัยไปแล้วตัวอย่างเช่นรองรับเพียงการเลือกบิตแมปสำหรับภาพพื้นหลัง

ฉันชอบเครื่องมือมากกว่าhsetroot xsetrootเครื่องมือทั้งสองจะต้องใช้จากบรรทัดคำสั่ง

ยิ่งกว่านั้นฉันสามารถจินตนาการได้ว่าคุณสามารถปรับการตั้งค่าของหน้าต่างรูทผ่านฐานข้อมูลทรัพยากร x แต่ฉันไม่สามารถหาข้อมูลที่เกี่ยวข้องได้ในตอนนี้


hsetroot ดูเหมือนจะเป็นสิ่งที่ฉันต้องการ แต่มันไม่ได้ตั้งค่าพื้นหลังเดสก์ท็อปของฉัน แต่จะตั้งพื้นหลังของการเลือกพื้นที่ทำงานเมื่อฉันวางเมาส์เหนือมุมที่ร้อนแรง ความคิดใด ๆ
รวม

2

ลองสิ่งนี้:

xsetbg /path/to/wallpaper.jpg

ขอบคุณ แต่มันไม่ได้ส่งผลกระทบต่อวอลล์เปเปอร์ อย่างไรก็ตามจะเปลี่ยนหน้าจอที่แสดงเมื่อออกจากระบบ ฉันเริ่มคิดว่า Cinnamon ปฏิบัติต่อการตั้งค่า x11 ในลักษณะที่แตกต่างจากสภาพแวดล้อมอื่น ๆ
รวม

@ user1166877: มันดีกว่ามันใช้ได้สำหรับฉัน ฉันเคยใช้ Metacity และ Openbox เป็นผู้จัดการหน้าต่าง แต่ฉันคิดว่านี่คือ "ด้านล่าง" ตรวจสอบสิ่งที่ฉันใช้อย่างแม่นยำหากนั่นสามารถให้เบาะแสเกี่ยวกับสิ่งที่แตกต่าง
Emanuel Berg

2

ทำงานได้สำหรับฉันบน Linuxmint 13 กับ Cinnamon 1.4

  • cinnamon-settings desktop # in terminal> ยกเลิกการเลือก "ให้ตัวจัดการไฟล์จัดการเดสก์ท็อป"
  • เปลี่ยนวอลล์เปเปอร์ของคุณด้วย feh
    feh --bg-fill ~ / Images / my_wallpaper.png

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.