如何在Linux桌面牆紙上顯示Google Calendar
在 Linux 安裝 gcalcli
在安裝 gcalcli 之前,要確保你正在用的是 Python 2 而不是 Python 3 ,因為 Python 3 與 gcalcli 不兼容。
如果是在 Debian、Ubuntu 或 Linux Mint 上可以用下面的命令安裝 gcalcli
$ sudo apt-get install git python-pip python-gdata python-dateutil python-gflags python-vobject python-parsedatetime
$ sudo pip install google-api-python-client
$ sudo pip install apiclient urllib3
$ git clone https://github.com/insanum/gcalcli.git
$ cd gcalcli
$ sudo python setup.py install
溫馨提醒:Ubuntu 或 Linux Mint 的軟體庫中雖然有 gcalcli,但是這些版本並不包含其最新的特性和針對 bug 的修復。所以這裡推薦按以上所述的方法由源文件構建 gcalcli。
對於Fedora 、CentOS 或 RHEL,可按如下方法安裝。
$ sudo yum install git python-pip python-gdata python-dateutil python-gflags python-vobject
$ sudo pip install google-api-python-client
$ sudo pip install apiclient urllib3
$ git clone https://github.com/insanum/gcalcli.git
$ cd gcalcli
$ sudo python setup.py install
gcalcli 的 Google 認證
為了能讓 gcalcli 訪問 Google Calendar ,你需要用你的 Google 帳號通過 OAuth2 認證,以使 gcalcli 獲得許可來訪問你的 Google Calendar。
第一次運行 gcalcli 的時候,OAuth2 認證會自動進行初始化。因此運行下面的命令開始
$ gcalcli agenda
該命令會輸出如下的一個 URL 。
同時這個命令也會彈出一個指向該 URL 的瀏覽器窗口。如果因為一些原因,你的瀏覽器沒有反應,你可以手動複製粘貼這個 URL 到你的瀏覽器中。
如果你還沒有登錄你的 Google 帳號,你得先登錄。然後你會看到下面要求你許可 gcalcli 管理 Google Calendar 的信息。點擊「Accept」即可。
支持 Google Calendar API
認證後,下一步就是支持 Google Calendar 的 API 訪問。gcalcli 通過 Google Calendar API 訪問Google Calendar 。但是,如果要使用 Google API 就必須明確設置你的 Google 帳號支持 Google API。
首先到:https://cloud.google.com/console。點擊項目列表下的「API Project 」
轉到「APIs & auth 」下面的「APIs」你會看見一個 Google APIs 列表。點擊「Calendar API」的開關按鈕使其能支持 API。
現在轉到「APIs & auth」下的「Registered apps」那裡,去註冊 gcalcli app。點擊最頂端的「Registered app」按鈕。
填寫 app 的名字(如,「My Gcalcli」),然後選擇「 Native 」作為平台。點擊「Registered」按鈕。
這一步會生成並顯示 OAuth 用戶的 ID 和密碼。另外關於上面提示的「You have not set up your product name(您沒有設置您的產品名稱)」,你可以忽略掉。
OAuth的認證結果將會保存在 ~/.gcalcli_oauth 文本文件中。
用 gcalcli 在命令行中訪問 Google Calendar
你現在馬上就可以用 gcalcli 訪問Google Calendar 了。
在你的家目錄創建一個如下的 gcalcli 配置文件。將你先前獲得的 OAuth 用戶 ID 和 密碼按下面格式輸入進去。
$ vi ~/.gcalclirc
--clientid='XXXXXXXXXX.apps.googleusercontent.com' --clientsecret='YYYYYYYYYYYYYYYY'
到了這一步,你應該可以在命令行運行 gcalcli 了。
試試下面的命令,這兩個命令會分別列印出一個你的 Google Calendar 的列表和今後 5 天的日程安排。
$ gcalcli list
$ gcalcli agenda
將 gcalcli 與 Conky 結合
最後一步就是將 gcalcli 的輸出導入你的桌面主題中。為了做到這一點,你需要 Conky 這個非常強大的工具,它可以把許多信息直接顯示在你的桌面主題中。
首先在你的 Linux 系統上 安裝 Conky。
然後,在你的家目錄下的某個地方( 例如 ~/bin )創建如下的腳本程序。
$ vi ~/bin/gcal.sh
#!/bin/sh
gcalcli --conky calw 2 |
sed -e 's/^[(0x71^[(B/?/g'
-e 's/^[(0x78^[(B/?/g'
-e 's/^[(0x6A^[(B/?/g'
-e 's/^[(0x6B^[(B/?/g'
-e 's/^[(0x6C^[(B/?/g'
-e 's/^[(0x6D^[(B/?/g'
-e 's/^[(0x6E^[(B/?/g'
-e 's/^[(0x74^[(B/?/g'
-e 's/^[(0x75^[(B/?/g'
-e 's/^[(0x76^[(B/?/g'
-e 's/^[(0x77^[(B/?/g'
$ chmod +x ~/bin/gcal.sh
重要提醒:上面腳本中的 『 [』 必須是真正的 ESCAPE 鍵( 也就是說在 vi 中按 Ctrl-V 然後按 Esc )。
這個腳本程序將 VT100 轉義序列轉成Unicode組件圖字元。這是必須的一步,因為 Conky 不支持 gcalcli 使用的 ANSI 字元畫。
最後,在你的家目錄中創建下面的 Conky 配置文件。
$ vi ~/.conkyrc
alignment top_right
maximum_width 630
minimum_size 330 10
gap_x 25
gap_y 50
own_window yes
own_window_type conky
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
own_window_transparent yes
own_window_argb_visual yes
own_window_argb_value 0
update_interval 300
background no
border_width 1
default_color cornflowerblue
default_outline_color white
default_shade_color white
double_buffer no
draw_borders no
draw_graph_borders no
draw_outline no
draw_shades no
max_port_monitor_connections 64
max_specials 512
max_user_text 16384
text_buffer_size 8096
no_buffers yes
out_to_console no
uppercase no
use_xft yes
xftfont Bitstream Vera Sans Mono_size=10
TEXT
*** Google Calendar Agenda ***
${execpi 300 gcalcli --conky agenda}
${execpi 300 ~/bin/gcal.sh}
這個 Conky 配置文件會直接在你的桌面主題上顯示你的 Google Calendar 的一個日程表和一個兩個星期的時間表。
現在,你可以運行下面的命令激活 Conky。
$ conky
你應該可以在 Linux 桌面的右邊看到 Google Calendar,如題圖。
確認 Google Calendar 可以正常運行後,你可以將 Conky 設為在每次登錄時自動啟動。
設置 Google Calendar 提醒
gcalcli 也可以為 Google Calendar 中即將到來的事件發送一個提醒。它使用 notify-send 命令。對於 Google Calendar 提醒,你可以像下面一樣設置一個工作進程。
$ crontab -l
/10 * /usr/local/bin/gcalcli remind
via: http://xmodulo.com/2013/12/integrate-google-calendar-linux-desktop.html
譯者:Linchenguang 校對:Caroline
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive