如何在Linux桌面背景上嵌入Google日历小部件

本文介绍如何在Linux桌面背景上嵌入Google日历小部件。它还包括一些自定义技巧。
Conky和gcalcli用于在桌面墙纸上显示Google日历事件。

  • 康喜 在桌面上显示信息的工具。它用作具有内置功能的系统监视器,用于显示CPU使用率,RAM等以及显示自定义命令输出。
  • 加钙利 Google日历命令行界面。当您使用OAuth2连接到Google帐户时,该工具可以列出Google日历,添加,编辑和删除日历事件。

相关:MineTime:支持Google Calendar,Outlook.com,Microsoft Exchange,iCloud,CalDAV的桌面日历应用程序

请按照以下步骤安装Conky和gcalcli,并使用这些工具将Google日历嵌入桌面背景。有一些可选步骤可自定义Conky,日历颜色等,并将此小部件添加到您的启动中。
本文中的Conky配置文件使用Conky 1.10语法。要使用以下Conky配置,需要Conky 1.10或更高版本。安装gcalcli和Conky。
对于Debian,Ubuntu或Linux Mint,请使用:

sudo apt install gcalcli conky-all

您还需要安装Ubuntu Mono字体(或者您可以使用下面的.conkyrc代码更改字体)。默认情况下,它必须安装在Ubuntu.2上。将gcalcli连接到您的Google帐户。
要启动OAuth2身份验证过程,您需要使用任何选项运行gcalcli。跑吧 list 命令如:

gcalcli list

gcalcli在您的默认网络浏览器中打开一个新页面,并询问您是否要使用您的Google帐户对gcalcli进行身份验证。允许它并继续下一步。创建并输入Conky配置文件(~/.conkyrc)。
创建一个名为 .conkyrc 在您的主文件夹中 Ctrl + H 显示或隐藏隐藏的文件和文件夹,并将以下内容粘贴到该文件中:

conky.config = {
    background = true,
    update_interval = 1.5,
    cpu_avg_samples = 2,
    net_avg_samples = 2,
    out_to_console = false,
    override_utf8_locale = true,
    double_buffer = true,
    no_buffers = true,
    text_buffer_size = 32768,
    imlib_cache_size = 0,
    own_window = true,
    own_window_type = 'desktop',
    own_window_argb_visual = true,
    own_window_argb_value = 120,
    own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',
    border_inner_margin = 10,
    border_outer_margin = 0,
    xinerama_head = 1,
    alignment = 'top_right',
    gap_x = 90,
    gap_y = 90,
    draw_shades = true,
    draw_outline = false,
    draw_borders = false,
    draw_graph_borders = false,
    use_xft = true,
    font = 'Ubuntu Mono:size=12',
    xftalpha = 0.8,
    uppercase = false,
    default_color = '#FFFFFF',
    own_window_colour = '#000000',
    minimum_width = 0, minimum_height = 0,
};

conky.text = [[
${execpi 300 PYTHONIOENCODING=utf8 gcalcli --conky --nolineart calm --monday}
]];

对于具有gcalcli 4.0.0或更高版本(不是较早的4.0.0a4、4.0.0a3等)的Linux发行版,请使用例如Ubuntu 19.04 --lineart=ascii 代替 --nolineart 在上面的Conky代码中。您可以轻松检查gcalcli的版本是否支持 --nolineart 通过运行 gcalcli --conky --nolineart calm 如果在终端中出现错误“-无法识别的参数:-nolineart”,则说明您使用的新gcalcli版本不受支持 --nolineart,应使用 --lineart=ascii 代替(--lineart=unicode 也可以))。
通过在终端中输入以下内容,以此配置运行Conky:

conky

Google日历小部件应嵌入到桌面背景中,如下所示。Conky Google日历

如果您已经具有Conky配置,则将文件命名为: .conkyrc2 (或者 .conkyrc3每次您在本文中看到“ conky”命令时(如果在执行过程中或启动时将其添加) -c ~/.conkyrc2 (或任何您命名的文件)。例如,运行第二个Conky实例以使用 ~/.conkyrc2 使用以下命令作为配置文件:

conky -c ~/.conkyrc2

要关闭所有正在运行的Conky实例,请使用:

killall -9 conky

4.(可选)自定义gcalcli和ConkyI。基本的Conky配置
您可以更改的内容 .conkyrc 根据您的需要归档。每次保存时,使用Conky显示在桌面上的Google日历都会自动更新 .conkyrc 配置文件。如果这种情况没有发生,请使用以下命令杀死所有正在运行的Conky进程 killall -9 conky并再次运行Conky。
例如 gap_xgap_y 用于将桌面上显示的日历移至离右上角更近或更远的值。右上角的位置是 alignment = 'top_right' 更改它可以将日历移动到屏幕的另一个角落,因为它是可选的。
大多数选项是不言而喻的,例如在上面的Conky代码中为Ubuntu Mono设置的字体值。确保已安装Ubuntu字体,或将字体值更改为系统上安装的等宽字体。
如果您有多台监视器,并且想要将日历窗口小部件移至另一台监视器, xinerama_head 价值。
否则,步骤3中的示例Conky配置中使用的值应适用于大多数用户。请参阅Conky帮助(conky --help)II。更改日历颜色
使用 .conkyrc 第3步中列出的代码使用默认的gcalcli值显示Google日历。但是,您可以更改颜色。
例如,您可以添加 --nocolor 执行 ~/.conkyrc 不要在行上使用gcalcli颜色(在最后一行之前),而要依靠Conky来获得文本颜色。更改行,如下所示:
-gcalcli版本4.0.0稳定或更高版本:

${execpi 300 PYTHONIOENCODING=utf8 gcalcli --conky --lineart=ascii --nocolor calm --monday}

-旧的gcalcli(例如4.0.0a4):

${execpi 300 PYTHONIOENCODING=utf8 gcalcli --conky --nolineart --nocolor calm --monday}

然后,您可以更改default_color值(可以是十六进制数字或颜色名称)以指定日历文本的颜色。 ~/.conkyrc 文件这是使用方法 default_color = 'green' 例如:Conky Google日历绿色

但是,这仅允许在整个日历中使用一种颜色。如果要更改单个颜色,例如日期颜色,当前标记等,请不要添加 --nocolor 将它们添加到excepci行中,而是以您要使用的颜色添加这些选项。

  --color_border: Color of line borders
    (default: 'white')
  --color_date: Color for the date
    (default: 'yellow')
  --color_freebusy: Color for free/busy calendars
    (default: 'default')
  --color_now_marker: Color for the now marker
    (default: 'brightred')
  --color_owner: Color for owned calendars
    (default: 'cyan')
  --color_reader: Color for read-only calendars
    (default: 'magenta')
  --color_writer: Color for writable calendars
    (default: 'green')

但是,支持的颜色不多。关于的评论 这个 错误报告指出,支持黑色,红色,绿色,黄色,蓝色,品红色,青色和白色。
例如,要将当前标记的日历颜色更改为蓝色,将日期颜色更改为白色,并将其他元素保留为默认颜色,则可以将execpi行更改为:
-gcalcli版本4.0.0稳定或更高版本:

${execpi 300 PYTHONIOENCODING=utf8 gcalcli --conky --lineart=ascii calm --monday --color_now_marker blue --color_date white}

-旧的gcalcli(例如4.0.0a4):

${execpi 300 PYTHONIOENCODING=utf8 gcalcli --conky --nolineart calm --monday --color_now_marker blue --color_date white}

三, gcalcli选项
gcalcli有很多选择。的 --monday 例如,这些选项是 .conkyrc 该文件将一周的第一天设置为星期一。从execpi行删除( .conkyrc 文件)将一周的第一天设置为星期日。
calm 该选项将gcalcli配置为以日历格式显示当前月份的日历。用于显示当前星期而不是月份 calw 代替 calm,例如:
-gcalcli版本4.0.0稳定或更高版本:

${execpi 300 PYTHONIOENCODING=utf8 gcalcli --conky --lineart=ascii calw --monday}

-旧的gcalcli(例如4.0.0a4):

${execpi 300 PYTHONIOENCODING=utf8 gcalcli --conky --nolineart calw --monday}

这是小部件在桌面上的外观:gcalcli conky周视图

另一个可能的观点是 agenda默认情况下,它现在是从上午12:00开始(并显示接下来5天的事件),但是您可以接受自定义日期。交换 calmagenda 使用和删除它 --monday 如果存在(此视图中不需要; gcalcli会引发错误):
-gcalcli版本4.0.0稳定或更高版本:

${execpi 300 PYTHONIOENCODING=utf8 gcalcli --conky --lineart=ascii agenda}

-旧的gcalcli(例如4.0.0a4):

${execpi 300 PYTHONIOENCODING=utf8 gcalcli --conky --nolineart agenda}

这就是在接下来的5天中只有一个事件的外观。加卡尔利议程

您还可以查看当月的日历和其上方的五天日历。 ~/.conkyrc 文件如:
-gcalcli版本4.0.0稳定或更高版本:

conky.text = [[
${execpi 300 PYTHONIOENCODING=utf8 gcalcli --conky --lineart=ascii agenda}
${execpi 300 PYTHONIOENCODING=utf8 gcalcli --conky --lineart=ascii calm}
]];

-旧的gcalcli(例如4.0.0a4):

conky.text = [[
${execpi 300 PYTHONIOENCODING=utf8 gcalcli --conky --nolineart agenda}
${execpi 300 PYTHONIOENCODING=utf8 gcalcli --conky --nolineart calm}
]];

这是它在桌面上的外观:gcalcli月视图和议程为了进一步定制, gcalcli --help 和GitHub项目 页数
附带说明一下,使用以下命令运行gcalcli PYTHONIOENCODING=utf8 为避免潜在的日历显示问题-如果日历显示正确,则可以将其删除。还有我 --nolineart gcalcli选项(或 --lineart=ascii 相反,对于新的gcalcli版本),Conky会禁用线条图,因为gcalcli的线条图无法正确显示。 (可选)将Google Calendar Conky桌面小部件添加到您的启动中。
要添加到启动中,请从应用启动器中打开启动应用程序或等效的应用程序,添加新的启动程序,输入Conky Google Calendar作为名称,然后在命令字段中使用以下命令:

conky --daemonize --pause=5

或者您可以创建一个名为 conky.desktop~/.config/autostart/ 具有以下内容:

[Desktop Entry]
Type=Application
Exec=conky --daemonize --pause=5
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name=Conky Google Calendar
Sidebar