Today Scripts:打造個(gè)性化 Yosemite 通知欄插件

Today Scripts

iOS 8 的新一代通知中心自從引入了了 Today Widget 后給了開發(fā)者不少擴(kuò)展產(chǎn)品服務(wù)能力的機(jī)會(huì),鼎盛時(shí)期你可以看到 「Launcher」這樣的代表人物出現(xiàn),其實(shí) Yosemite 也有?Today Widget,那么為什么后者并沒有激發(fā)開發(fā)者太大興趣呢?Frank 猜測(cè)這與 Mac 用戶長久以來的使用習(xí)慣有很大關(guān)系,平時(shí)獲取系統(tǒng)、軟件信息,或是快捷操作都有 Dock,Menubar,哪輪得到你去用雙指滑動(dòng)這么“麻煩”的操作?看來蘋果想用?Today Widget 取代 Dashboard 開辟新場(chǎng)子的計(jì)劃就快落空了。

但 OS X 的 Today Widget 也并不是一無是處,像 iStat Mini 或 Monity 這樣的系統(tǒng)信息監(jiān)控軟件就偏好于這里,不過大多數(shù)此類軟件都收費(fèi),如果你想問有沒有免費(fèi)的解決方案??那我就得恭喜您了,最近,美帝一名程序員就在 Github 公布了一個(gè)名為「Today Scripts」的開源軟件,可在 Today Widget 中直接執(zhí)行自定義腳本,顯示任何你想設(shè)置的系統(tǒng)/第三方程序信息,如果你對(duì) Code 玩的好,什么 MAS 上坑爹的收費(fèi)軟件都是浮云,因?yàn)槟隳鼙人麄兺娴母酶?。從官方提供的腳本來看,可以顯示日歷,市區(qū),剪切板文本,電池狀態(tài),內(nèi)存分配狀態(tài)等等。

 

Today Scripts 的操作方式

首先,我們需要到軟件主頁下載最新的程序壓縮包,解壓縮打開,再到調(diào)取出通知中心,在「今天」的界面底部點(diǎn)擊「編輯」按鈕進(jìn)入 Widget 編輯模式:

 

在編輯模式下,你會(huì)在最右側(cè)的 Widget 項(xiàng)目列表里找到「Scipts」這個(gè)選項(xiàng),點(diǎn)擊右側(cè)的綠色加號(hào),將其添加到「今天」列表里,再點(diǎn)擊「完成」即可。

 

添加好「Today Scripts」后,按照下圖示,開始加入腳本即可,腳本添加界面中的 「Label」代表腳本名稱,「Program」默認(rèn),勾選「Run Automatically」和「Show status indicator」可讓腳本每次展示的時(shí)候自動(dòng)顯示信息,并提供紅綠兩種顏色的指示燈(分別指示腳本運(yùn)行是否成功)

 

Today Scripts 腳本推薦

開發(fā)者已總結(jié)了一些常用的腳本,就像本文開頭的首圖一樣,你可以看到這些:

顯示本月日歷

 

如果你對(duì) Mac 命令行了解夠足的話肯定會(huì)知道「cal」這個(gè)命令,她可以顯示當(dāng)前月份,下面的腳本就用到了「cal」

cal | grep --before-context 6 --after-context 6 --color -e " $(date +%e)" -e "^$(date +%e)"

將腳本填入「Program」下方的文本區(qū),填寫好「Label」保存即可,正常的話你會(huì)看到 Today View 上顯示一個(gè)當(dāng)月的日歷,當(dāng)天日期會(huì)被紅色高亮。

查看不同時(shí)區(qū)的時(shí)間

 

Yosemite 雖然提供了世界城市時(shí)鐘的 Widget,但模擬化表盤的設(shè)計(jì)看時(shí)間不直觀,搞個(gè)數(shù)字會(huì)方便許多,腳本如下:

echo "Denver `export TZ='US/Mountain';date +'%-l:%M %p';unset TZ`"
echo "London `export TZ='Europe/London';date +'%-l:%M %p';unset TZ`"
echo "Paris `export TZ='Europe/Paris';date +'%-l:%M %p';unset TZ`"
echo "Mumbai `export TZ='Asia/Kolkata';date +'%-l:%M %p';unset TZ`"
echo "Sydney `export TZ='Australia/Sydney';date +'%-l:%M %p';unset TZ`"

以上的代碼格式中如果你想設(shè)定目標(biāo)程序,只需到這里,搞清城市的位置信息,比如「上?!?,就是?Asia/Shanghai,把她放入 「export TZ=」后面即可。

顯示當(dāng)前剪切板的文本內(nèi)容

 

這個(gè)腳本能顯示最新的一條剪切板文本內(nèi)容,命令很簡單:

pbpaste

利用 iStats 顯示系統(tǒng)信息

 

本條腳本其實(shí)就是直接調(diào)用了另外一款開源命令行軟件「iStats」顯示 Mac 系統(tǒng)信息(CPU溫度,風(fēng)扇轉(zhuǎn)速,電量狀態(tài)信息等),注意,這款 iStats 與 iStat Menus ,iStat Mini 木有半毛錢關(guān)系,純屬賺噱頭。

本條腳本命令也很簡單:

istats

顯示電量狀態(tài)信息

 

這條腳本非常實(shí)用,基本上你不用再需要其他軟件的輔助了,不查充電器狀態(tài)可顯示剩余電量,剩余使用時(shí)間,插電下顯示已充電量,還需多少時(shí)間充滿等信息,腳本:

pmset -g batt | { read; read n status; echo "$status"; }

顯示占用內(nèi)存最多的5個(gè)程序

 

這條腳本可以顯示占用 RAM 最多的5條應(yīng)用程序,有了她,還用打開監(jiān)控器?

ps xmo rss=,pmem=,comm= | while read rss pmem comm; ((n++<5)); do

size="$[rss/1024]";
short=$[4-${#size}];
size="(${size}M)";
i=0;
while ((i++ < short)); do size=" $size"; done;

pmem="${pmem%%.*}"
if   (($pmem >= 20)); then color=$'\e[31m';
elif (($pmem >= 10)); then color=$'\e[33m';
else                       color=$'\e[32m ';
fi;

echo "$color$pmem% $size $(basename "$comm")"$'\e[0m'"";
done

顯示占用 CPU 資源最多的5個(gè)程序

 

像上條一樣,這里可以顯示占用 CPU 資源最多的5個(gè)程序:

ps xro %cpu=,comm= | while read cpu comm; ((i++<5)); do echo $cpu% $(basename "$comm"); done

顯示硬盤用量

 

添加這個(gè)腳本可以顯示各個(gè)硬盤分區(qū)容量的占用情況:

df -Hl | {
read keys;
keys=${keys%% on};
while read ${keys//%}; do
echo `basename $Mounted`$Used/$Size ($Capacity);
done
}

顯示一個(gè)網(wǎng)站最新的5篇文章標(biāo)題

 

這條腳本可根據(jù)設(shè)定的 RSS 地址提取最新的5篇網(wǎng)站文章標(biāo)題,點(diǎn)擊腳本標(biāo)題還可以刷新:(將下列代碼里的「RSS_URL_HERE」替換成目標(biāo)網(wǎng)站的 RSS 地址)

curl RSS_URL_HERE 2>/dev/null |
grep -o <title>[^<]*</title> |
grep -v <title>FIRST_TITLE_REMOVER</title> |
sed -e s/.*\<title\>\(.*\)\<\/title\>.*/\1/g |
nl -n rz -s ? -w 2 |
fold -s -w 80 |
awk !/^[0-9]+\ ? / {$0=” “$0}1 |
awk /^[0-9]+\ ? / {$0=”\n”$0}1 |
head -10

結(jié)語

看了上面一些腳本案例,就連我自己都對(duì)?Today Scripts 這款軟件贊不絕口了,不禁讓我想起了 Flashlight,可擴(kuò)展性極強(qiáng),如果你對(duì)腳本程序玩的好,那么 Today Scripts 絕對(duì)值得你去嘗試,想了解更多的 Today 腳本,你可以看這里。

Today Scripts
評(píng)論 8 條