在polybar或i3bar中显示下一个google日历事件
i3-agenda的Python项目详细描述
这是什么?在
这是一个与Google日历API通信的脚本,它将遍历您的日历并打印下一个日历事件的详细信息。
你可以把这个输出显示在你的i3bar或polybar上
它是如何工作的
它将从每个日历中读取您接下来的10个事件,然后浏览所有事件并找出哪一个最接近。
它将打印最近事件的时间和标题。在
设置
谷歌API
https://developers.google.com/calendar/quickstart/python
- 您需要创建一个Google API项目并下载OAuth 2.0凭据json文件。
首先需要创建一个项目here,然后添加Google日历支持,然后下载凭证.json文件。
或者,您可以使用this link并单击“启用Google日历API”。这将创建一个项目,添加Google日历支持,并让您只需单击一下就可以下载文件
如果有问题,可以使用本教程了解更多信息https://developers.google.com/calendar/auth。
如果您仍然有问题,可以在这里找到另一个很好的指南:https://github.com/jay0lee/GAM/wiki/CreatingClientSecretsFile。在 - 将凭据文件下载到计算机上的某个位置。在
- 进入安装阶段。在
安装
下载凭据文件后,安装包。在
Pip
sudo pip install i3-agenda
- 尝试运行
i3-agenda -c $CREDENTIALS_FILE_PATH
,将“$CREDENTIALS\u FILE\u PATH”替换为凭证.json在上一步中下载的文件。在 - 将配置添加到您的工具栏(下面的示例部分中的示例)。在
Arch Linux(AUR)
yay -S i3-agenda-git
- 尝试运行
i3-agenda -c $CREDENTIALS_FILE_PATH
,并将“$CREDENTIALS_FILE_PATH”替换为凭证.json在上一步中下载的文件。在 - 将配置添加到您的工具栏(下面的示例部分中的示例)。在
手动
依赖性
您需要先安装一些python库。
确保python3是默认的python3。
运行sudo pip3 install python-bidi google-api-python-client google-auth-httplib2 google-auth-oauthlib
- 将repo克隆到本地目录
cd ~/ && git clone https://github.com/rosenpin/i3-agenda && cd i3-agenda
- 运行脚本
python3 i3_agenda/__init__.py -c $CREDENTIALS_FILE_PATH
,将“$CREDENTIALS_FILE_PATH”替换为凭证.json在上一步中下载的文件。如果配置正确,它将提示您在浏览器中登录,接受所有内容。它会打印你的下一个活动。在 - 可选:您可以运行
sudo python setup.py install
将脚本添加到您的路径中,这样您就可以在任何地方运行i3-agenda
。在 - 将配置添加到您的工具栏(下面的示例部分中的示例)。在
使用
-h, --help show this help message and exit
--credentials CREDENTIALS, -c CREDENTIALS
path to your credentials.json file
--cachettl CACHETTL, -ttl CACHETTL
time for cache to be kept in minutes
--update, -u when using this flag it will not load previous results from cache, it will however save new results to cache. You can use this flag to refresh all the cache forcefully
--ids IDS [IDS ...], -i IDS [IDS ...]
list of calendar ids to fetch, space separated. If none is specified all calendars will be fetched
--maxres MAXRES, -r MAXRES
max number of events to query Google's API for each of your calendars. Increase this number if you have lot of events in your google calendar
--today, -d print only today events
--no-event-text TEXT text to display when there are no events
--hide-event-after MINUTES
minutes to show events after they start before showing the next event. If not specified, the current event will be shown until it ends
筛选显示的日历
要只显示某些日历中的事件,请使用--ids
参数并传递一个日历id列表,以空格分隔。
要获取日历id,您可以在Google上查看日历的设置页面(如果没有共享,通常是所有者电子邮件)。
将列表留空将获取所有日历(默认行为)。在
注释
已知问题
如果您有超过10个全天事件,它可能无法正常工作,这可以通过增加maxResults变量来解决。在
缓存
它使用了一种缓存机制,这样你就不必每分钟都联系Google服务器,要设置缓存TTL,请使用-TTL标志。
示例:i3-agenda --ttl 60
将TTL设置为60(这意味着它将每小时再次与Google联系)。
这意味着,如果创建新事件,脚本可能需要一个小时才能识别它。在
示例
polybar配置示例:
^{pr2}$示例I3块配置:
[i3-agenda]
command=i3-agenda -c ~/.google_credentials.json -ttl 60
interval=60
脚本输出示例:10:55 Grocery shopping
- 项目
标签: