Linux中國

如何在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

本文由 LCTT 原創翻譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國

    Linux中國

    DevOps 將去向何方?

    微軟、谷歌、亞馬遜、IBM 和甲骨文如今都在關注云上的 DevOps。這些大公司正在給企業提供 IT 自動化的服務。然而,DevOps 仍然在持續的演進中。DevSecOps、AIOps 和 NoOps 正在成為下一個流行詞。