如何在Linux桌面墙纸上显示Google Calendar
Linux 桌面 Google Calendar gcalcli 技巧
Google Calendar 是时下最流行的网页应用程序之一。用户可以通过网络接口或者本地的应用程序跨设备访问或同步 Google Calendar。在 Linux 上，有很多方法可以本地访问 Google Calendar，比如用电子邮件客户端插件（如 Evolution 或 Thunderbird ）或者用日历应用程序（如 Sunbird 或 Rainklendar）。这些方法通常都需要安装不必要的大型软件，这些软件你很可能根本不需要。


如果你只是想在本地的 Linux 上翻翻 Google Calendar 或者用它设置提醒，那么你可以考虑使用[Google Calendar 命令行接口（或者 gcalcli）](https://github.com/insanum/gcalcli)，这是一种更轻型化的方法。对于 Linux 桌面操作系统用户来说，好处不止这些，如果将 gcalcli 与[Conky](http://conky.sourceforge.net/)搭配使用你就可以把 Google Calendar 透明地融入桌面主题。


在这个教程中，我会展示**如何利用 gcalcli 和 Conky 将 Google Calendar 融入 Linux 桌面**


**[![](/data/attachment/album/201402/12/220326aq63mqcizywr93wq.jpg)](http://www.flickr.com/photos/xmodulo/11216377436/)**


### 在 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 。


[![](/data/attachment/album/201402/12/220329zxh3r3qlzuyuuxq7.jpg)](http://www.flickr.com/photos/xmodulo/11216331146/)


同时这个命令也会弹出一个指向该 URL 的浏览器窗口。如果因为一些原因，你的浏览器没有反应，你可以手动复制粘贴这个 URL 到你的浏览器中。


如果你还没有登录你的 Google 帐号，你得先登录。然后你会看到下面要求你许可 gcalcli 管理 Google Calendar 的信息。点击“Accept”即可。


[![](/data/attachment/album/201402/12/220331zy2l9zod849ldu9s.jpg)](http://www.flickr.com/photos/xmodulo/11216308465/)


### 支持 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”按钮。


[![](/data/attachment/album/201402/12/22033384z2abog4jsjw5eg.jpg)](http://www.flickr.com/photos/xmodulo/11216363656/)


填写 app 的名字（如，“My Gcalcli”），然后选择“ Native ”作为平台。点击“Registered”按钮。


这一步会生成并显示 OAuth 用户的 ID 和密码。另外关于上面提示的“You have not set up your product name（您没有设置您的产品名称）”，你可以忽略掉。


[![](/data/attachment/album/201402/12/220336n9aphahlkauc6hkz.jpg)](http://www.flickr.com/photos/xmodulo/11216593546/)


OAuth的认证结果将会保存在 ～/.gcalcli\_oauth 文本文件中。


### 用 gcalcli 在命令行中访问 Google Calendar


你现在马上就可以用 gcalcli 访问Google Calendar 了。


在你的家目录创建一个如下的 gcalcli 配置文件。将你先前获得的 OAuth 用户 ID 和 密码按下面格式输入进去。


$ vi ~/.gcalclirc



> 
> --client*id='XXXXXXXXXX.apps.googleusercontent.com' --client*secret='YYYYYYYYYYYYYYYY'
> 
> 
> 


到了这一步，你应该可以在命令行运行 gcalcli 了。


试试下面的命令，这两个命令会分别打印出一个你的 Google Calendar 的列表和今后 5 天的日程安排。


$ gcalcli list  
$ gcalcli agenda


[![](/data/attachment/album/201402/12/220338c47pp4io14ez14mi.jpg)](http://www.flickr.com/photos/xmodulo/11216465043/)


### 将 gcalcli 与 Conky 结合


最后一步就是将 gcalcli 的输出导入你的桌面主题中。为了做到这一点，你需要 Conky 这个非常强大的工具，它可以把许多信息直接显示在你的桌面主题中。


首先在你的 Linux 系统上 [安装 Conky](http://xmodulo.com/2013/12/install-configure-conky-linux.html)。


然后，在你的家目录下的某个地方( 例如 ～/bin )创建如下的脚本程序。


$ vi ~/bin/gcal.sh



```
#!/bin/sh

gcalcli --conky calw 2 |
  sed -e 's/^[(0\x71^[(B/?/g' \
      -e 's/^[(0\x78^[(B/?/g' \
      -e 's/^[(0\x6A^[(B/?/g' \
      -e 's/^[(0\x6B^[(B/?/g' \
      -e 's/^[(0\x6C^[(B/?/g' \
      -e 's/^[(0\x6D^[(B/?/g' \
      -e 's/^[(0\x6E^[(B/?/g' \
      -e 's/^[(0\x74^[(B/?/g' \
      -e 's/^[(0\x75^[(B/?/g' \
      -e 's/^[(0\x76^[(B/?/g' \
      -e 's/^[(0\x77^[(B/?/g'

$ chmod +x ~/bin/gcal.sh 
```

**重要提醒**：上面脚本中的 ‘<sup> [’</sup> 必须是**真正的 ESCAPE 键**( 也就是说在 vi 中按 Ctrl-V 然后按 Esc )。


这个脚本程序将 VT100 转义序列转成Unicode组件图字符。这是[必须的一步](https://github.com/insanum/gcalcli/issues/97)，因为 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](https://github.com/Linchenguang) 校对：[Caroline](https://github.com/carolinewuyan)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


Moved Permanently