Posted on 2012-03-09 18:39
Onway 閱讀(700)
評(píng)論(2) 編輯 收藏 引用 所屬分類:
碼兒快跑
上圖好像沒什么意思吧?zenity的界面。
/Files/Onway/oalarm.bash.txtoalarm文檔
概要:
oalarm是一個(gè)基于gnome,mplayer,at,date,zenity等命令的,使用bash script寫成的簡陋桌面鬧鐘。
功能:
定時(shí)任務(wù)的新建,查看,延遲,刪除,提醒。
安裝要求:
存在gnome-session進(jìn)程,/usr/bin下存在at,zenity,mplayer程序,$HOME目錄下存在.config/autostart和.local/share/applications兩個(gè)目錄。
安裝:
下載oalarm.bash之后,添加運(yùn)行權(quán)限,在桌面圖形環(huán)境下運(yùn)行腳本(不需要root權(quán)限)。這時(shí)會(huì)檢查zenity命令和gnome-session進(jìn)程的存在。gnome-session的檢查是為了保證能使用zenity命令創(chuàng)建界面。如果缺乏任何一個(gè),則在標(biāo)準(zhǔn)輸出后直接退出。
首次運(yùn)行腳本會(huì)出現(xiàn)安裝選項(xiàng)。
安裝過程會(huì)先在/usr/bin目錄下檢查at,mplayer,zenity三個(gè)命令,如果缺少任何一個(gè),標(biāo)準(zhǔn)輸出錯(cuò)誤后退出。
安裝過程還會(huì)檢查兩個(gè)目錄:$HOME/.config/autostart和$HOME/.local/share/applications,如果缺乏任何一個(gè),安裝失敗。在這兩個(gè)目錄會(huì)各寫入一個(gè).desktop文件,分別用于登錄圖形界面后運(yùn)行一次腳本檢查過期任務(wù)和在應(yīng)用附件欄目添加運(yùn)行圖標(biāo)。分別執(zhí)行的命令是:
$HOME/.oalarm/oalarm.bash --check
$HOME/.oalarm/oalarm.bash --start
其后會(huì)在$HOME目錄下創(chuàng)建隱藏目錄.oalarm和兩個(gè)在子目錄past,wait,分別用于存放過期任何和等待任務(wù)。oalarm.bash會(huì)復(fù)制自身到該目錄下。
如果存在/usr/share/sounds/gnome/default/alerts/bark.ogg該聲音文件,則會(huì)被復(fù)制到.oalarm目錄下并命名為voice,用于提示任務(wù)時(shí)使用mplayer進(jìn)行播放。可以將voice文件替換為喜歡的提示聲音。
卸載:
安裝后啟動(dòng)oalarm,會(huì)出現(xiàn)卸載選項(xiàng)。
卸載行為是:
刪掉.oalarm目錄和兩個(gè).desktop文件。記得為聲音文件作備份。
任務(wù)文件格式:
使用年月日時(shí)分命名。文件內(nèi)第一行為任務(wù)標(biāo)題,新建任務(wù)時(shí)必須填入,第二行至文件尾為任務(wù)內(nèi)容,可選。
原理:
下載的oalarm.bash,不帶參數(shù)運(yùn)行,是安裝前使用,安裝后之后可以刪掉。
從應(yīng)用程序-附件欄目的圖標(biāo)啟動(dòng)是帶--start參數(shù)運(yùn)行$HOME/.oalarm/oalarm.bash。用于新建,查看,延遲和刪除任務(wù)。
登錄圖形界面后,帶參數(shù)--check自動(dòng)啟動(dòng)$HOME/.oalarm/oalarm.bash,用于檢查關(guān)機(jī)或者登出圖形界面期間到期的任務(wù)。延遲10秒之后開始檢查。
圖形界面登錄期間,如果任務(wù)到期,則由atd守護(hù)進(jìn)程帶--check和任務(wù)文件名兩個(gè)參數(shù)啟動(dòng)$HOME/.oalarm/oalarm.bash。然后oalarm.bash從wait目錄下的文件提取信息進(jìn)行提示。(如果voice文件不存在,則提示沒有聲音)
兩個(gè)重要的假定:
1,使用如下命令判斷使用已經(jīng)登錄圖形界面:
ps -eo ruid,comm | grep $UID.*gnome-session
2,$HOEM/.config/autostart下的.desktop文件指定的程序會(huì)在登錄圖形界面后自動(dòng)運(yùn)行。
行為:
在任務(wù)提醒之后選擇延遲和在等待任務(wù)中選擇延遲是有區(qū)別的。如果選擇延遲時(shí)間的時(shí)候取消了,則提醒之后的延遲會(huì)被放棄,任務(wù)被移到過期任務(wù)。
bugs:
1,由于命名任務(wù)文件的時(shí)候沒考慮到,同一個(gè)時(shí)間只能有一個(gè)任務(wù),否則會(huì)被覆蓋。
2,選擇時(shí)間的方式有點(diǎn)別扭,但我也不知道怎么辦。
3,延遲功能必須重新選擇日期時(shí)間,有點(diǎn)不厚道
關(guān)于:
oalarm 0.1.0
By Onway 2012-03-06
debug yourself or report to:
blog: m.shnenglu.com/onway
mail: aluohuai@126.com
如果本程序讓你錯(cuò)過了和女友的約會(huì),或者把水燒干了,或者出現(xiàn)其他問題,本人概不負(fù)責(zé)