Blog Linux Avante

Como incorporar um widget do Google Agenda ao fundo da área de trabalho do Linux

14 de janeiro de 2020

Google Agenda incorporado ao plano de fundo da área de trabalho no Linux

Este artigo explica como incorporar um widget do Google Agenda ao plano de fundo da área de trabalho do Linux. Também inclui algumas dicas de personalização.

Conky e gcalcli são usados para exibir os eventos do Google Agenda na parte superior do papel de parede da área de trabalho:

  • Conky é uma ferramenta que exibe informações em sua área de trabalho. Pode atuar como um monitor do sistema, tendo algumas funções integradas para exibir o uso da CPU, RAM, etc., bem como exibir saídas de comandos personalizados, entre outras.

  • gcalcli é uma interface de linha de comando para o Google Agenda. Usando OAuth2 para se conectar com sua conta do Google, a ferramenta pode listar seus calendários do Google, adicionar, editar e excluir eventos de calendário e muito mais.

Siga as etapas abaixo para instalar o Conky e o gcalcli e use essas ferramentas para incorporar o Google Agenda ao plano de fundo da área de trabalho. Existem etapas opcionais para personalizar o Conky, as cores do calendário e muito mais, além de adicionar este widget na inicialização.

O arquivo de configuração do Conky neste artigo usa a sintaxe Conky 1.10. Você precisará do Conky 1.10 ou mais recente para usar a configuração do Conky abaixo.

1. Instale gcalcli e Conky

No Debian, Ubuntu ou Linux Mint, use:

Comandos para usar no terminal

sudo apt install gcalcli conky-all

Você também precisará instalar a fonte Ubuntu Mono (ou você pode alterar a fonte no código .conkyrc abaixo). Isso deve ser instalado por padrão no Ubuntu.

2. Conecte o gcalcli à sua conta do Google

Você precisa executar o gcalcli com qualquer opção para iniciar o processo de autenticação OAuth2. Vamos executar o comando list, assim:

Comandos para usar no terminal

gcalcli list

O gcalcli deve abrir uma nova página em seu navegador padrão, que pergunta se você deseja autorizar o gcalcli com sua conta do Google. Permita e prossiga para a próxima etapa.

3. Crie e preencha o arquivo de configuração Conky (~/.conkyrc)

Crie um arquivo chamado .conkyrc em sua pasta de início (use Ctrl + H para alternar entre ocultar e mostrar arquivos e pastas ocultos) e cole o seguinte neste arquivo:

    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}
]];

Para distribuições Linux que possuem gcalcli 4.0.0 ou mais recente (não o antigo 4.0.0a4, 4.0.0a3, etc.), por exemplo, Ubuntu 19.04, use --lineart=ascii em vez de --nolineart no código Conky acima. Você pode descobrir facilmente se sua versão gcalcli oferece suporte a --nolineart executando gcalcli --conky --nolineart calm em um terminal - se receber um erro dizendo "argumentos não reconhecidos: --nolineart", então você está usando uma versão mais recente de gcalcli que não oferece mais suporte a --nolineart, e você em vez disso, será necessário usar --lineart=ascii (--lineart=unicode também funciona).

Agora execute o Conky com esta configuração digitando em um terminal:

Comandos para usar no terminal

conky

Agora você deve ver um widget do Google Agenda incorporado ao plano de fundo da área de trabalho, como este:

Google Agenda Conky

Se você já tem uma configuração Conky, nomeie o arquivo como .conkyrc2 (ou .conkyrc3, etc.), e cada vez que você vir um comando "conky" neste artigo (ao executá-lo ou adicioná-lo à inicialização), anexe -c ~/.conkyrc2 (ou qualquer outro você nomeou o arquivo). Por exemplo, para executar uma segunda instância do Conky que usa ~/.conkyrc2 como seu arquivo de configuração, use este comando:

Comandos para usar no terminal

conky -c ~/.conkyrc2

Caso queira fechar todas as instâncias do Conky em execução, use:

Comandos para usar no terminal

killall -9 conky

4. (Opcional) Personalize gcalcli e Conky

I. Configuração básica do Conky

Você pode modificar o conteúdo do arquivo .conkyrc para atender às suas necessidades. O Google Agenda exibido em sua área de trabalho usando o Conky deve ser atualizado automaticamente sempre que você salvar o arquivo de configuração .conkyrc. Caso isso não aconteça, elimine todos os processos do Conky em execução usando killall -9 conky e execute o Conky novamente.

Por exemplo, altere os valores gap_x e gap_y para mover o calendário exibido em sua área de trabalho para mais perto ou mais longe do canto superior direito. A posição do canto superior direito é fornecida pela opção alignment = 'top_right', portanto, altere-a para mover o calendário para um canto diferente da tela.

A maioria das opções são autoexplicativas, como o valor da fonte, que é definido como Ubuntu Mono no código Conky acima. Certifique-se de que a fonte do Ubuntu esteja instalada ou altere o valor da fonte para uma fonte monoespaçada instalada em seu sistema.

Se você tiver vários monitores e quiser mover o widget de calendário para um monitor diferente, altere o valor xinerama_head.

Fora isso, os valores usados na configuração do Conky de amostra da etapa 3 devem funcionar apenas para a maioria dos usuários. Consulte a ajuda do Conky (conky --help) para obter mais informações.

II. Alterando as cores do calendário

Usando o código .conkyrc listado na etapa 3, o calendário do Google é exibido usando os valores gcalcli padrão. As cores podem ser alteradas.

Por exemplo, você pode adicionar --nocolor à linha execpi ~/.conkyrc (antes da última linha) para não usar nenhuma cor gcalcli e contar com Conky para a cor do texto, alterando a linha para ficar assim:

  • para gcalcli versão 4.0.0 estável ou mais recente:
${execpi 300 PYTHONIOENCODING=utf8 gcalcli --conky --lineart=ascii --nocolor calm --monday}
  • para gcalcli mais antigo (por exemplo, 4.0.0a4):
${execpi 300 PYTHONIOENCODING=utf8 gcalcli --conky --nolineart --nocolor calm --monday}

Em seguida, você pode especificar a cor do texto do calendário alterando o valor default_color (você pode usar nomes hexadecimais ou de cores) do arquivo ~/.conkyrc. Veja como é usar default_color = 'green', por exemplo:

Conky Google Agenda verde

No entanto, isso só permite usar uma cor para todo o calendário. Se você deseja alterar cores individuais, como a cor da data, o marcador agora, etc., certifique-se de não adicionar --nocolor à linha de exceções e, em vez disso, adicione estas opções com a cor que deseja usar:

  --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\')

Porém, não há muitas cores compatíveis. Um comentário sobre este relatório de bug menciona preto, vermelho, verde, amarelo, azul, magenta, ciano e branco como sendo suportados.

Por exemplo, para alterar a cor do calendário do marcador now para azul e a cor da data para branco, enquanto os outros elementos mantêm suas cores padrão, você pode alterar a linha execpi para esta:

  • para gcalcli versão 4.0.0 estável ou mais recente:
${execpi 300 PYTHONIOENCODING=utf8 gcalcli --conky --lineart=ascii calm --monday --color_now_marker blue --color_date white}
  • para gcalcli mais antigo (por exemplo, 4.0.0a4):
${execpi 300 PYTHONIOENCODING=utf8 gcalcli --conky --nolineart calm --monday --color_now_marker blue --color_date white}

III. opções gcalcli

gcalcli tem um grande número de opções. A opção --monday por exemplo, que é adicionada ao nosso arquivo .conkyrc, define o primeiro dia da semana como segunda-feira. Remova-o da linha execpi (no arquivo .conkyrc) para definir o primeiro dia da semana como domingo.

A opção calm configura gcalcli para exibir a agenda do mês atual em um formato de calendário. Para exibir a semana atual em vez do mês, use calw em vez de calm, assim:

  • para gcalcli versão 4.0.0 estável ou mais recente:
${execpi 300 PYTHONIOENCODING=utf8 gcalcli --conky --lineart=ascii calw --monday}
  • para gcalcli mais antigo (por exemplo, 4.0.0a4):
${execpi 300 PYTHONIOENCODING=utf8 gcalcli --conky --nolineart calw --monday}

Esta é a aparência do widget em sua área de trabalho:

gcalcli conky week view

Outra visualização possível é agenda, cujo padrão é começar no dia atual às 12h (e exibe eventos para os próximos 5 dias), mas pode aceitar datas personalizadas. Substitua calm por agenda para usá-lo e também remova --monday se estiver lá (não há necessidade disso nesta visualização, e gcalcli gerará um erro), assim:

  • para gcalcli versão 4.0.0 estável ou mais recente:
${execpi 300 PYTHONIOENCODING=utf8 gcalcli --conky --lineart=ascii agenda}
  • para gcalcli mais antigo (por exemplo, 4.0.0a4):
${execpi 300 PYTHONIOENCODING=utf8 gcalcli --conky --nolineart agenda}

É assim que fica com apenas 1 evento nos próximos 5 dias:

agenda gcalcli

Você também pode exibir o calendário do mês atual e uma agenda de 5 dias sobre ele, adicionando duas linhas execpi em vez de uma ao arquivo ~/.conkyrc, como este:

  • para gcalcli versão 4.0.0 estável ou mais recente:
conky.text = [[
${execpi 300 PYTHONIOENCODING=utf8 gcalcli --conky --lineart=ascii agenda}
${execpi 300 PYTHONIOENCODING=utf8 gcalcli --conky --lineart=ascii calm}
]];
  • para gcalcli mais antigo (por exemplo, 4.0.0a4):
conky.text = [[
${execpi 300 PYTHONIOENCODING=utf8 gcalcli --conky --nolineart agenda}
${execpi 300 PYTHONIOENCODING=utf8 gcalcli --conky --nolineart calm}
]];

É assim que parece na área de trabalho:

visualização do mês gcalcli e agenda

Para ainda mais personalização, verifique o gcalcli --help e o projeto GitHub página.

Como uma observação lateral, gcalcli é executado usando PYTHONIOENCODING=utf8 para evitar alguns possíveis problemas com a exibição do calendário - você pode remover isso se o calendário for exibido corretamente para você. Além disso, usei a opção --nolineart gcalcli (ou --lineart=ascii em vez disso, para versões mais recentes do gcalcli), que desativa a arte de linha, porque Conky não pode exibir a arte de linha de gcalcli corretamente.

5. (Opcional) Adicione o widget de desktop Conky do Google Agenda para inicializar.

Para adicioná-lo à inicialização, abra Startup Applications ou equivalente em seu inicializador de aplicativos, adicione um novo programa de inicialização, digite Conky Google Calendar como seu nome e use o seguinte no campo de comando:

Comandos para usar no terminal

conky --daemonize --pause=5

Como alternativa, você pode criar um arquivo chamado conky.desktop em ~/.config/autostart/ com o seguinte conteúdo:

[Desktop Entry]
Type=Application
Exec=conky --daemonize --pause=5
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name=Conky Google Calendar
Confira a versão original desse post em inglês
Propaganda
Blog Comments powered by Disqus.