[分享] 自動換桌布腳本,支援 Unity/Gnome3 [論壇 - Ubuntu 與 GNOME]


正在瀏覽:   1 名遊客


 到底部   前一個主題   下一個主題  [無發表權] 請登錄或者註冊

(1) 2 3 »


[分享] 自動換桌布腳本,支援 Unity/Gnome3
會員三級
註冊日期:
2009/8/27 21:33
所屬群組:
已註冊使用者
等級: 13
HP : 0 / 308
MP : 68 / 9060
EXP: 32
離線
各位好,最近小弟將這份腳本程式放到 GitHub 上面了
目前設定的授權方式是 GPL 2
並且還更新了程式內容(實際上是整個翻修過)
設法支援各種發行版的自動設定
目前小弟測過確實支援的發行版有:
Ubuntu 10.04, 10.10, 12.04, 14.04, 15.04
Debian 8
Linux Mint 17.1, Linux Mint Debian Edition 2
Fedora 22
在這些發行版上的 Gnome, Cinnamon, Mate 三種桌面環境上
都能自動完成定時換桌布的設定
如果你使用其他發行版
在這三種桌環境上仍然可以用這個程式產生的 XML 檔
只是要手動設定
想要試試看的人可以到小弟的 GitHub 帳號下載:
robertmodesty/make-slideshow-wallpaper - GitHub
(話說 Git 的編修歷史好完整啊!小弟大改的過程都查得到!)

底下是這篇文章在 2013/4/16 23:32 首次張貼的原文:
==========================================
小弟幾年前寫的一個腳本程式(請見此),
在 Ubuntu 改用 Unity 以及 Gnome 第三版變得不能用
這一陣子小弟換新版了,增加了自動設定的功能並且支援符號連結
在 Ubuntu 12.04.2 中以 Unity 和 Gnome Classic 測試
結果都可以使用!
現在將程式貼在這裡,請大家也來試用看看
只要將蒐集來的圖檔放在某個目錄中(需要兩個以上,子目錄、連結之中的也包含在內)
並且在同一個目錄下放一個文字檔(內容在最下面)
檔案的屬性設定為可執行
然後滑鼠點兩下要求執行它就可以了
產生的 XML 檔案會在自己的家目錄中 .config 子目錄裡面,
並且會將桌布自動設定完成。

注意一下內容的前幾行
Outfil 設定檔案名稱;
Statc 設定每張圖片顯示的秒數;
Trans 則是畫面變換的秒數;
SortFil 決定圖檔排列的順序:
Filtyp 可以設定支援的檔案類型;
Dpth 可以設定最多要深入多少層目錄,
這些都可以自己直接改。
如果 statc + trans 剛好等於 3600 的因數或倍數,
就會在某些或每個整點換桌布。
另外,設定 "Trans=0" (注意!一個字元都不能錯!) 可以省掉淡入淡出的命令,
產生的檔案會比較小。
其他設定請自行研究。

bkgndxml
- - - - 8< - - - - - - - - - - 請自本虛線下方剪下 - - - - - - - - - - - - - - -
#!/bin/bash

OutFil=background.xml
Statc=595.0
Trns=5.0
FilTyp="gif|jpg|png|bmp"
# SortFil=Alphabetic
SortFil=Random
Dpth=30 # at most levels of directories been include
# The line under here helps to setup the wallpaper automaticlly,
# comment it with octothorpe if you want do that yourself.
Autoset=on ; XmlFilPath=$HOME/.config

ImgFils=$(
  find -L $PWD -maxdepth $Dpth -regextype posix-extended \
                      -iregex ".*\.($FilTyp)" 2> /dev/null )

if  [ "$SortFil" == "Random" ] ; then
  ImgFils=$( echo -e "$ImgFils" | sort -R )
elif  [ "$SortFil" == "Alphabetic" ] ; then
  ImgFils=$( echo -e "$ImgFils" | sort )
fi

filtol=$(echo -e "$ImgFils" | wc -l | cut -d " " -f1)

if [ $filtol -gt 1 ] ; then
  Yer=$(date +%Y)
  Mnth=$(date +%m)
  Day=$(date +%d)
  Head="  <static>\n    <duration>$Statc</duration>\n    <file>"
  Tail="</file>\n  </static>"
  FrmHead="  <transition>\n    <duration>$Trns</duration>\n    <from>"
  FrmTail="</from>"
  ToHead="    <to>"
  ToTail="</to>\n  </transition>"

  (
    echo "<background>"
    echo "  <starttime>"
    echo "    <year>$Yer</year>"
    echo "    <month>$Mnth</month>"
    echo "    <day>$Day</day>"
    echo "    <hour>00</hour>"
    echo "    <minute>00</minute>"
    echo "    <second>00</second>"
    echo "  </starttime>"
    echo "<!-- This animation starts at $Yer/$Mnth/$Day 00:00. -->"

    if [ "$Trns" == "0" ] ; then
      echo -e "$ImgFils" | sed "s|^\(.*\)$|$Head\0$Tail|"
    else
      FstFil=$( echo -e "$ImgFils" | head -n 1 )
      echo -e "${Head}${FstFil}${Tail}"
      echo -e "${FrmHead}${FstFil}${FrmTail}"
      echo -e "$ImgFils" | tail -n +2 \
       | sed "s|^\(.*\)$|$ToHead\0$ToTail\n$Head\0$Tail\n$FrmHead\0$FrmTail|"
      echo -e "${ToHead}${FstFil}${ToTail}"
    fi

    echo "</background>"
  ) > "$OutFil"

  if [ "$Autoset" == "on" ] ; then
    if [ -z "$XmlFilPath" ] ; then
      XmlFilPath="$PWD"
    else
      mkdir -p "$XmlFilPath"
      mv -f "$OutFil" "$XmlFilPath/$OutFil"
    fi
    x=$(gnome-session --version)
    x=${x#* }
    if [ "${x%%.*}" == "3" ] ; then
      gsettings set org.gnome.desktop.background picture-uri "file://$XmlFilPath/$OutFil"
    elif [ "${x%%.*}" == "2" ] ; then
      gconftool --set --type=string /desktop/gnome/background/picture_filename "$XmlFilPath/$OutFil"
    fi
  fi

else
  /usr/bin/zenity --warning --title='Error!' \
     --text='Need two image files at least!'  > /dev/null 2>&1
  echo -e '\nError!\nNeed two image files at least!\n'
  exit 1
fi

2013/4/16 23:32
應用擴展 工具箱
回覆: [分享] 自動換桌布腳本,支援 Unity/Gnome3
管理員
註冊日期:
2011/3/11 6:32
所屬群組:
討論區管理群
等級: 44
HP : 216 / 1084
MP : 1088 / 27047
EXP: 38
離線
也可以使用 Variety 軟體

2013/4/17 0:01
本篇發表文章以「創用CC BY 3.0 或更新之台灣地區版本」授權條款釋出,如何使用敬請參考
 Creative Commons — 姓名標示 3.0 台灣 — CC BY 3.0 TW
 http://creativecommons.org/licenses/by/3.0/tw/

「你不懂的東西就不要亂講,被懂得人看破手腳就算了,騙不懂的人誤導別人,還要別人把你當成大師,這就真的是說不過去了。」
 by Allen Own
 出處 http://www.plurk.com/p/i4uogm

自由知識創作平台介紹
 https://docs.google.com/document/d/1MGG6lW_0qCgH4U785R-IwSc_INdoBGej1l-JxiA4gPE
如何建立新的自由知識創作平台文件
 https://docs.google.com/document/d/11NdzOW2lGYksfyQIcPMPye5tlmj1J0QTkgPTmQvIvKA
應用擴展 工具箱
回覆: [分享] 自動換桌布腳本,支援 Unity/Gnome3
會員五級
註冊日期:
1970/1/1 8:00
來自 台北
所屬群組:
已註冊使用者
等級: 23
HP : 0 / 573
MP : 231 / 83319
EXP: 93
離線
我在Linux Mint下用您之前寫的程式(命名為go1)可以正常使用,
現在改用這個新的(命名為go2)反而會把background.xml吃掉,無法使用.
請您協助.感謝
建議可以加入版本註記

2013/4/17 22:27
egret
Lubuntu 14.04
每月第一個週六免費導覽田寮洋
https://www.facebook.com/groups/187049057048/
應用擴展 工具箱
回覆: [分享] 自動換桌布腳本,支援 Unity/Gnome3
會員三級
註冊日期:
2008/12/21 19:48
所屬群組:
已註冊使用者
等級: 14
HP : 0 / 326
MP : 75 / 10268
EXP: 7
離線
Gnome 3.6以下可以直接用BackSlide這個擴充套件
到gnome shell extension就可以找到了

另外還有wallch,用起來也不錯
http://wall-changer.sourceforge.net/

2013/4/17 22:41
應用擴展 工具箱
回覆: [分享] 自動換桌布腳本,支援 Unity/Gnome3
會員三級
註冊日期:
2009/8/27 21:33
所屬群組:
已註冊使用者
等級: 13
HP : 0 / 308
MP : 68 / 9060
EXP: 32
離線
Egret 寫到:
我在Linux Mint下用您之前寫的程式(命名為go1)可以正常使用,
現在改用這個新的(命名為go2)反而會把background.xml吃掉,無法使用.
請您協助.感謝
建議可以加入版本註記

新版本會覆蓋原有的 background.xml,這跟舊版的是一樣的
不同的是新版會在檔案寫完之後,將他搬到使用者家目錄底下的隱藏目錄 .config 中
所以您看不到
同時新版會自動將桌布設定為 $HOME/.config/background.xml
不需要再手動設定(新的 Ubuntu 桌布設定比較不方便,所以小弟這樣改了)
你可以注意一下你的桌布是不是被重新設定過了
想要恢復舊版的設計,可以把這行註解掉
Autoset=on ; XmlFilPath=$HOME/.config
也許小弟應該再改一下,讓檔案直接生成在目標位置上

版本註記?是啥啊?有需要嗎?

2013/4/18 0:07
應用擴展 工具箱
回覆: [分享] 自動換桌布腳本,支援 Unity/Gnome3
會員五級
註冊日期:
1970/1/1 8:00
來自 台北
所屬群組:
已註冊使用者
等級: 23
HP : 0 / 573
MP : 231 / 83319
EXP: 93
離線
自由車自由人 寫到:
同時新版會自動將桌布設定為 $HOME/.config/background.xml
不需要再手動設定(新的 Ubuntu 桌布設定比較不方便,所以小弟這樣改了)
你可以注意一下你的桌布是不是被重新設定過了
想要恢復舊版的設計,可以把這行註解掉
Autoset=on ; XmlFilPath=$HOME/.config


我在Linux Mint 13 下跑新版,桌面變黑,我想應該是不同發行版桌面設定不同所致.
我把 Autoset=on ; XmlFilPath=$HOME/.config 這行註解掉,再手動設定桌面 background.xml 就回復正常.

以上回報

2013/4/18 7:31
egret
Lubuntu 14.04
每月第一個週六免費導覽田寮洋
https://www.facebook.com/groups/187049057048/
應用擴展 工具箱
回覆: [分享] 自動換桌布腳本,支援 Unity/Gnome3
會員三級
註冊日期:
2008/4/25 9:32
所屬群組:
已註冊使用者
等級: 9
HP : 0 / 219
MP : 38 / 7332
EXP: 79
離線
上面的腳本,我在13.04就無法以點擊兩次執行,一直用gedit開啟,不知是什麼原因?

2013/6/5 11:04
應用擴展 工具箱
回覆: [分享] 自動換桌布腳本,支援 Unity/Gnome3
管理員
註冊日期:
2011/3/11 6:32
所屬群組:
討論區管理群
等級: 44
HP : 216 / 1084
MP : 1088 / 27047
EXP: 38
離線
K.W. 寫到:
上面的腳本,我在13.04就無法以點擊兩次執行,一直用gedit開啟,不知是什麼原因?

script 請添加可執行檔案屬性後方可執行

2013/6/5 11:07
本篇發表文章以「創用CC BY 3.0 或更新之台灣地區版本」授權條款釋出,如何使用敬請參考
 Creative Commons — 姓名標示 3.0 台灣 — CC BY 3.0 TW
 http://creativecommons.org/licenses/by/3.0/tw/

「你不懂的東西就不要亂講,被懂得人看破手腳就算了,騙不懂的人誤導別人,還要別人把你當成大師,這就真的是說不過去了。」
 by Allen Own
 出處 http://www.plurk.com/p/i4uogm

自由知識創作平台介紹
 https://docs.google.com/document/d/1MGG6lW_0qCgH4U785R-IwSc_INdoBGej1l-JxiA4gPE
如何建立新的自由知識創作平台文件
 https://docs.google.com/document/d/11NdzOW2lGYksfyQIcPMPye5tlmj1J0QTkgPTmQvIvKA
應用擴展 工具箱
回覆: [分享] 自動換桌布腳本,支援 Unity/Gnome3

註冊日期:
2009/12/6 10:32
所屬群組:
已註冊使用者
等級: 71
HP : 1404 / 1756
MP : 4456 / 50254
EXP: 24
離線
上面的腳本,我在13.04就無法以點擊兩次執行,一直用gedit開啟,不知是什麼原因?

如果你已經給予 可執行屬性 還不行
可能跟你 預設的 執行指令或執行程式 有關

比較簡單的方法 先從終端機
cd 你存放該腳本的檔案
腳本檔案名稱全名

sh 腳本檔案名稱全名
如果出現權限不足
在前面 加 sudo

如果你喜歡 點擊兩次執行
先試試
點擊右鍵
看看出現的開啓程式 有沒有你希望的開啓程式 是不是 第一優先
如果答案是 否
你要修改開啓程式的設定

2013/6/5 11:24
應用擴展 工具箱
回覆: [分享] 自動換桌布腳本,支援 Unity/Gnome3
會員三級
註冊日期:
2009/8/27 21:33
所屬群組:
已註冊使用者
等級: 13
HP : 0 / 308
MP : 68 / 9060
EXP: 32
離線
K.W. 寫到:
上面的腳本,我在13.04就無法以點擊兩次執行,一直用gedit開啟,不知是什麼原因?

您沒注意到這一行對不對:
自由車自由人 寫到:
...
並且在同一個目錄下放一個文字檔(內容在最下面)
檔案的屬性設定為可執行
然後滑鼠點兩下要求執行它就可以了
...

設定屬性為可執行的命令為:
chmod +x 檔案名稱

2013/6/11 0:01
應用擴展 工具箱

(1) 2 3 »

 [無發表權] 請登錄或者註冊


可以查看帖子.
不可發帖.
不可回覆.
不可編輯自己的帖子.
不可刪除自己的帖子.
不可發起投票調查.
不可在投票調查中投票.
不可上傳附件.
不可不經審核直接發帖.