ankycheng
Jedi Apprentice
Published in
5 min readJul 3, 2017

--

這兩天在研究如何在Mac的桌面背景上設置個人資訊的儀表板,像是天氣、時間、甚至是行事曆上的資訊等。調查一下後發現兩個不錯的工具可以達成這個目標,分別是GeektoolÜbersicht Widgets,這篇記錄一下兩種工具分別如何做到在桌面上顯示時間的功能。

方法一: Geektool

什麼是Geektool?

官網的介紹:

GeekTool is a macOS application that lets you customize your desktop with great flexibility. There are four modules available that you can use for different types of informations

簡單說,就是可以直接在桌面上呈現資訊的Mac應用,支持以下四種格式的檔案:

  1. Logs: 特別為log檔設計的格式,主要用來監控程式運行的狀況。
  2. Script:最常用的功能,直接執行輸入的指令,並將結果回傳到桌面上。
  3. Image:讀取圖片檔案(夾),支援自動更新以及跑馬燈播放等功能。
  4. Web:讀取某個特定的網址,或是自行編譯好的html檔案。

下載

官方網頁點擊右上方的Download,下載檔案

Screen Shot 2017-07-03 at 16.25.21

基本介面

解壓縮後檔案丟到Application 檔案夾中,執行之後的介面會長這樣:

Screen Shot 2017-07-03 at 16.29.46

可以把他直接加到menu bar上面,直接調整。

Screen Shot 2017-07-03 at 18.48.09

因為這次只有設定時間,所以用Shell就夠了。直接拉著Shell這個圖示到桌面想要的地方,會出現一個空白的方框,那個方框就是打印出指令結果的地方。

Screen Shot 2017-07-03 at 18.50.55

同時你點擊想要編輯的方框時,會出現他的Properties,也就是那個物件的詳細內容,像是Command 就是輸入指令碼的地方,如果要調整排版、顏色、自行等都可以在這個面板中的Style中調整。

時間設定

想像那個Command就是一個Terminal,只是他幫你把執行的結果打印到畫面上。那要如何印出時間呢?一般在Terminal中我們要查詢日期的指令是date只要在Termianl中輸入date,電腦就會以特定格式回傳當下的時間。像是:

Screen Shot 2017-07-03 at 16.45.12 copy

當我輸入 date ,他就會回傳 Mon Jul 3 16:44:01 CST 2017 這樣格式的日期訊息給我。

知道這件事情之後就如法炮製,把指令輸入到Geektool的 Command 裡面:

Screen Shot 2017-07-03 at 16.47.45

如此一來時間就會如願出現在框框裡面了,另外別忘了設定自動更新的時間間隔,像我的時間最小間隔是1分鐘,那就會設定大概10~30秒自動更新。

詳細時間設定:

Q: 那如果我不想要用預設的時間呈現格式呢?
A: 也可以,只要在date後面加上一些特殊的設定就可以完成,像是:

Screen Shot 2017-07-03 at 16.55.23

也可以一次打多個,把他們合併在一起,像是:
$ date '+%T %Y' 就會回傳 17:11:20 2017

放到Geektool中就會變成這樣:

Screen Shot 2017-07-03 at 17.15.07

常用到的指令如下:

日期

date '+%A' - Monday(大寫星期)
date '+%a' - Mon (簡寫星期)
date '+%B' - July (大寫月份)
date '+%b'- Jul(簡寫月份)
date '+%m' - 3 (月份數字)
date '+%D' - 07/03/17 (日期簡寫)
date '+%d' - 03 (當天是幾號,含0)
date '+%e' - 3 (當天是幾號,不含0)
date '+%Y' - 2017 (四位數的年份)
date '+%y' - 17 (兩位數的年份)

時間

date '+%T' - 17:02:08
date '+%Z' - CST (時區)
date '+%p' - PM (AM/PM)
date '+%I' - 05 (小時,12小時制,含0) <--大寫i
date '+%l' - 5 (小時,12小時制,不含0) <--小寫L
date '+%k' - 17 (小時,24小時制,含0)
date '+%H' - 17 (小時,24小時制,不含0)
date '+%M' - 02 (分)
date '+%S' - 08 (秒)

合併在一起

可以用兩個(或以上的Shell拼出自己想要的樣式),例如一個數入日期 date '+%A, %b. %d' 另一個輸入時間 date +"%l:%M" ,就可以拼在一起了。像是這樣:

Screen Shot 2017-07-03 at 17.24.45
Screen Shot 2017-07-03 at 17.25.06

先記錄方法一,方法二之後再補上。

方法二:Übersicht Widgets

延伸應用:搭配Omnifocus 或是 iCal等工具

Reference:

--

--