Tracking screen time of Linux desktop with ActivityWatch.
嫌被Google和Apple追蹤還不夠嗎?自己來追蹤自己吧!
現在的手機都有追蹤者螢幕使用時間的功能,Android的叫做「數位健康」,iOS叫做「螢幕使用時間」,會在背景自動追蹤使用者的手機使用時長,讓使用者懂得依照圖表時間下去節制,擬定良好的時間管理習慣。
那麼電腦使用者有沒有這個功能呢?Windows和macOS都有類似的功能實現,專有軟體的解決方案還有RescueTime,不過Linux此類軟體較為少見,你頂多只能用htop追蹤開機多久了,但無法確切知道在用哪些程式。此外我上面列出的服務,大部分都是依賴專有軟體統計的!
今天Ivon要分享一個開源的電腦螢幕使用時間追蹤軟體,其名為ActivityWatch。
這個程式支援Linux、Windows、macOS、Android系統,它會監視電腦應用程式使用狀況,並將你電腦使用時長繪製成時間軸,方便未來查看你最常使用哪些程式。所有監控的資料全部儲存在本機,由您保管,絕不會傳送給第三方。
1. 安裝ActivityWatch#
- 請到Github下載安裝檔。Windows安裝exe。Ubuntu Linux下載zip,解壓縮,將裡面的目錄移動到
/usr/local/bin
。
sudo mv activitywatch /usr/local/bin
Linux用戶需要注意,因為Wayland不允許其他程式偵測視窗標題,官方版ActivityWatch不支援Wayland工作階段,只支援X11。Wayland工作階段要裝這個:2e3s/awatcher,並將其作為ActivtyWatch的模組載入。
設定開機自動啟動ActivityWatch:Windows系統安裝後會自動啟動服務,圖示顯示在系統匣。Linux請參照XDG Autostart設定方式,將
/usr/local/bin/activitywatch/aw-qt
設定在登入桌面環境後自動啟動。Linux的設定檔位於
~/.config/activitywatch
2. 設定ActivityWatch監控項目#
- 點選系統匣的ActivityWatch圖示,開啟全部監控模組。
ActivityWatch預設監控的項目為鍵鼠動作aw-watcher-input
,以此判定掛機時長。
aw-watcher-window
,透過視窗標題判定使用中的應用程式。ActivityWatch會將目前活動中的視窗判定為你正在使用這個程式。
aw-notify
會每小時傳送螢幕使用時間的統計,aw-server
目前似乎沒有任何作用。
欲監控更詳細的瀏覽器、編輯器、目前正在聽的音樂的資料,請手動安裝其他Watcher。
按Open Dashboard開啟ActivityWatch網頁面板:
http://localhost:5600
點選Settings,設定一天開始的時間,通常我是設定午夜12點。AFK,多久判定為掛機,預設時間是設定為3分鐘。
接著要設定應用程式分類。ActivityWatch是用正則表達式檢測應用程式的名稱的,沒辦法收錄所有程式。如果你不手動加入常用程式,那麼後續的資料裡面會顯示統一為"uncategorized"。這裡Category能夠自訂規則,把你認為是Work的應用程式分類到這裡吧!須注意ActivityWatch是依照視窗標題下去偵測,而非應用程式名稱。
3. ActivityWatch面板功能#
Activity是所有活動的匯總,能看到你最常使用哪些應用程式還有視窗標題。
Timeline,透過時間軸檢視一段時間內,程式的使用時長。ActivityWatch會將目前活動中的視窗判定為你正在使用這個程式,切換到其他程式後便跟著切換,所以才會出現一截一截的樣子。
StopWatch這個是暫停碼表,當你想要做一些隱密事情的時候,就開啟這個功能,輸入理由,暫停監控吧。
值得注意的是,ActivityWatch主程式目前沒辦法設定密碼,所以被監控的電腦使用者是能夠手動關閉主程式逃避監控的!無需任何特殊權限。
4. 安裝手機APP#
ActivityWatch有Android版本,可作為「Google數位健康」服務的替代品。至於iOS版APP?Apple權限管那麼嚴格,大概不可能會有。
請到Google Play下載,基本上就是Rust寫成的APP,用法與電腦版雷同。
開啟後會自動在背景運作。
目前的ActivityWatch是獨立的APP,並非與電腦版伺服器連線的客戶端,若要在電腦的ActivityWatch檢視資料的話,要手動匯出手機版的JSON上傳。