用 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 这个非常强大的工具,它可以把许多信息直接显示在你的桌面主题中。
首先在你的 Linux 系统上 安装 Conky。
然后,在你的家目录下的某个地方( 例如 ~/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
重要提醒:上面脚本中的 ‘[’ 必须是真正的 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