Translate

sábado, 22 de dezembro de 2018

Conky - monitor do sistema

Monitorando o sistema com o Conky, Junho 2023

• Há 6 anos, comecei a usar o Conky em todas as distros — seja com KDE, ou Cinnamon, MATE, Xfce etc. — para ter controle do que se passa no computador:

  • A CPU está superaquecendo?
  • O Cooler está funcionando de acordo? (*)
  • A velocidade de download está normal?
  • Se o computador está lento, é devido a qual programa?
  • Programas demais abertos? Memória RAM no limite?
  • Algum partição de HDD está quase cheia?
  • A Fonte está dando conta da demanda? Tensão (V) alta ou baixa demais? (*)

Alterações nas minhas configurações do Conky, ao longo dos anos

Nesses 6 anos, perdi algumas coisas (*) e acabei me interessando em acompanhar várias outras coisas novas:

  • (*) - No novo PC (2020), ainda não consegui exibir a velocidade de rotação da ventoinha do cooler, nem as tensões (V) entregues pela Fonte.
  • Em 2020, o Conky adotou o cálculo de uso de Memória RAM proposto por Linus Torvalds desde 2014 — no que foi seguido por outras ferramentas, em momentos diferentes (desencontrados) — e senti necessidade de monitorar essas medidas, para ter sempre uma noção real das coisas
  • Senti necessidade de monitorar atividade de disco (Disk I/O) — no conjunto, para não complicar com indicadores de várias unidades
  • Senti necessidade de ter sempre à vista as versões do Plasma, do Qt, do Frameworks e dos Aplicativos KDE, em cada distro, para melhor acompanhar suas modificações
  • Senti necessidade de ter sempre à vista o sistema init de cada distro — e quando possível, suas versões

“Ter sempre à vista” também significa registrar em capturas de tela — ao inicializar o PC, testar a conexão, atualizar o sistema etc. — ou quando alguma coisa foge do que deveria ser.

Índice

Conky + Weather no Slackware, em 2019

  • Visão geral
    • Opções pessoais
  • Instalação
  • Iniciando o Conky
  • Configuração padrão
  • Arquivo de configuração pessoal
  • Início automático em vários ambientes
  • Edição das configurações
  • Personalização
    • Parâmetros utilizados
    • Texto, gráficos, variáveis
    • \• Resultado final
  • Antigas ferramentas
    • Uso inicial de Memória RAM
    • Efeitos de Widgets na RAM
  • Referências
    • Referências oficiais
    • Sugestões
    • Experiência pessoal
  • Ferramentas &tc.

ATT - Isto não é um “tutorial”! — É só o registro de como organizei e padronizei o Conky em 12 distros, — inicialmente no antigo hardware, entre 2016 e 2019:

      Mobo: P5KPL-AM-CKD-VISUM-SI, BIOS 0305 11/24/2008 - ASUSTeK
      iGPU: Intel Corporation 82G33/G31 Express Integrated Graphics Controller (rev 10)
Processors: 2 × Intel® Core™2 Duo CPU E7300 @ 2.66GHz
    Memory: 3,8 GiB of RAM 

— e as adaptações ao hardware atual, a partir de 2020:

      Mobo: TUF B360M-PLUS GAMING/BR, BIOS 2401 03/22/2019 - ASUSTeK
      iGPU: Intel Corporation UHD Graphics 630 (Desktop)
Processors: 6 × Intel® Core™ i5-9400 CPU @ 2.90GHz
    Memory: 15.5 GiB of RAM

As capturas de tela se distinguem pelos formatos do antigo monitor 5:4 (1280 x 1024 pixels), e do atual 16:9 (1920 x 1080 pixels) — e as datas em destaque, no próprio Conky, facilitam acompanhar a evolução das configurações que adotei ao longo desse tempo.

Pelas capturas de tela, posso acompanhar as 12 distros instaladas em dualboot (multiboot), ao longo do tempo — e suas características em cada época. — Um registro condensado de inúmeras informações.

Visão geral

Alerta de superaquecimento da CPU pelo Conky em sessão Live DVD

Os principais motivos da escolha do Conky, — depois de experimentar várias ferramentas:

  • Leve, — quase não afeta o uso de recursos do sistema
  • Universal, — encontrado em qualquer distro Linux
  • Flexível, — molda-se do jeito que você precisar
  • Poderoso, — faz quase tudo que se possa imaginar
  • Discreto — para uso funcional — ou “deslumbrante”, se preferir
  • (*) Medidas consistentes, entre diferentes distros Linux e ambientes
  • Fácil de instalar, mesmo em sessões Live DVD, que têm recursos limitados, — o que já me alertou de um superaquecimento perigoso, ao instalar o Manjaro em 2018, por exemplo

(*) - O cálculo da Memória usada (mem) foi alterado pelo Conky na versão 1.11.6 (2020); na versão 1.12.1 (2021); e novamente na versão 1.12.2 — enquanto free / top, neoFetch, htop, inxi, Screenfetch alteraram seus cálculos em outros momentos, desencontrados.

Para manter a consistência, introduzi no Conky meu próprio “cálculo novo”...

MEM_TOTAL=$(awk '/MemTotal/ { printf $2 }' /proc/meminfo); \
MEM_AVAIL=$(awk '/MemAvailable/ { printf $2 }' /proc/meminfo); \
MEM_USED_KILO="$(($MEM_TOTAL-$MEM_AVAIL))"; \
echo "$(($MEM_USED_KILO/1024))" MiB > MemInfo.txt

... para monitorar eventuais mudanças no Conky e nas demais ferramentas.

Conky vistoso, by n00by4ever

Conheço pelo menos 1 ponto “negativo” do Conky:

  • Quanto mais você quiser, mais terá de aprender. — Mas isso pode ser divertido.

É claro que, quanto mais coisas você quiser, mais recursos serão usados, — seja pelo Conky, seja por processos externos executados por ele, — por exemplo: exibir informações das músicas que está ouvindo, previsão do clima, fases da lua etc.

Opções pessoais

Fases da lua (Gealach) em widget próprio, sem ocupar espaço no Conky

Por opção pessoal, mantive o Conky dentro de alguns limites:

  • Apenas 2 cores, — branco + sombra (shade: black) para destacar do fundos claros
  • Apenas 1/5 da largura da tela (1280 pixels), — coluna de 250 pixels (*)
  • Apenas itens realmente necessários
  • Fonte (Verdana) — legível a mais de 60 cm

(*) - Com a nova CPU de 6 núcleos, a altura se tornou insuficiente para os gráficos. — Desdobrei então o Conky em 2 instâncias, sem que as 2 colunas de 270 pixels, lado a lado, ultrapassem 30% da largura da tela (1920 pixels).

De início, abri mão de:

  • Monitorar atividade de disco (*)
  • Temperaturas dos HDDs / SSD (**)
  • Meteorologia
  • Fases da lua
  • Marés
  • etc.

(*) - Com o desdobramento do Conky em 2 instâncias, acabei incluindo o monitoramento global da atividade de discos (Disk I/O). — Como tenho 2 HDDs e 2 SSDs, ocuparia muito espaço monitorar cada um em separado.

(**) Testei incluir a temperatura do SSD interno e dos HDDs. — Isto exige iniciar mais um processo (daemon), o que no SystemD pode ser feito pelo comando # systemctl enable hddtemp (só funcionou para o SSD, mais novo). — Falta pesquisar sobre o SysV (PCLinuxOS, Slackware, MX Linux) e o Runit (Void Linux).

Em algumas distros, Weather exigiu uma dependência

Os widgets Weather e Gealach me dispensam de lidar com previsão do clima e fases da lua no Conky, — e não ocupam espaço na tela, — embora usem uns 45 MiB RAM.

No Debian e no Devuan, faltava instalar qml-module-qtquick-xmllistmodel, para o Weather funcionar. — No PCLinuxOS, parou de funcionar depois de alguns meses, e tive de instalar o qtxmlpatterns5. — No Arch (2020), tive de instalar qt5-xmlpatterns. — Esses nomes podem mudar, em novas versões do KDE.

Instalação

Na maioria das distros, o pacote chama-se “conky”. — Nas distros de base Debian, eu prefiro o pacote “conky-all”, mais completo:

openSUSE:               # zypper install conky

Arch Linux, Manjaro:    # pacman -S conky

Debian, KDE Neon:       # apt install conky-all

Fedora:                 # dnf install conky

Mageia:                 # urpmi conky

Void Linux:             # xbps-install conky

Redcore Linux:          # sisyphus install conky

O Conky já vem instalado no MX Linux, com um gerenciador GUI para alternar entre várias configurações. Desativei, criei minha própria configuração, e iniciei por comandos (como nas outras distros). — No PCLinuxOS, instalei pelo Synaptic (em algumas distros de base Debian, também). — No Slackware, baixei o pacote do SlackBuilds e segui as instruções de instalação.

Verifique se você já tem lua, lm-sensors, fancontrol etc. — isso pode variar de uma distro para outra (você será avisado) — e execute # sensors-detect para configurar os “sensores” de acordo com seu hardware.

Iniciando o Conky

Conky com a configuração-padrão, — e mensagens de retorno

Conky não é um aplicativo a ser chamado pelo Menu, — embora algumas distros ofereçam isso. — O mais comum e mais útil é ele rodar desde o início da sessão (como veremos adiante).

Mas, é preciso começar de algum jeito, — e às vezes, recomeçar.

Para iniciar o Conky pelo Terminal, basta adicionar um “&” no final do comando, — de modo que se podem ver mensagens de erro, se houver algum:

$ conky &

O que se obtém, nesse primeiro momento, é o Conky na configuração-padrão.

Para abrir um segundo Conky, é preciso indicar um segundo arquivo de configuração, pelo parâmetro -c:

$ conky -c ~/.config/conky/conky2.conf &
Enter, date, para ver se ocorrem novas mensagens de erro

Se tudo correr bem, basta “Enter” para recuperar o prompt. — O Conky segue rodando.

No entanto, eventuais erros de execução ainda poderão ser exibidos, — o que é muito útil, ao fazer experiências para personalizar as configurações (adiante).

Configuração padrão

Configuração-padrão embutida no Conky do Sabayon, 2019

A configuração-padrão do Conky está embutida nele (builtin default config), — e geralmente pode ser extraída pelo comando:

$ conky -C

Para fazer uma cópia na sua pasta pessoal:

$ conky -C > ~/copia.txt

  • Esse comando não funcionou no Mageia 6, nem no PCLinuxOS.

Outro caminho é procurar o arquivo /etc/conky/conky.conf.

$ cat /etc/conky/conky.conf > ~/copia.txt

  • Esse arquivo não foi encontrado no Arch Linux nem no Sabayon.

Nas outras 8 distros, no final de 2018, ambos os caminhos estavam disponíveis.

A versão e os parâmetros usados na compilação podem ser obtidas pelo comando:

$ conky -v
$ conky -v | grep compiled

KDE Neon (16.04)  conky 1.10.1 compiled Wed Jan  6 17:11:44 UTC 2016 for Linux 3.19.0-43-generic x86_64
Mageia 6          conky 1.10.6_pre compiled Sat Jan 14 17:07:11 UTC 2017 for Linux 4.4.38-server-1.mga5 x86_64
Debian testing    conky 1.10.8 compiled Tue May 15 07:41:15 UTC 2018 for Linux 4.9.0-6-amd64 x86_64
Kubuntu (16.04)   conky 1.10.1 compiled Wed Jan  6 17:11:44 UTC 2016 for Linux 3.19.0-43-generic x86_64
openSUSE Leap 15  conky 1.10.6 compiled for Linux x86_64
PCLinuxOS         conky 1.10.8_20171208 compiled Mon Feb 26 02:54:16 CST 2018 for Linux 4.15.6-pclos1 x86_64
Mint 18           conky 1.10.1 compiled Wed Jan  6 17:11:44 UTC 2016 for Linux 3.19.0-43-generic x86_64
Slackware 14.2    conky 1.10.8_pre compiled to 1.3.2018 21.53.57 +0200 for Linux 4.4.118 x86_64
Arch Linux        conky 1.11.1_pre compiled Mon Dec 17 20:59:58 UTC 2018 for Linux 4.19.8-arch1-1-ARCH x86_64
Sabayon           conky 1.10.8 compiled Sat Oct 27 18:54:05 UTC 2018 for Linux 4.9.0-sabayon x86_64
Kubuntu 19.04     conky 1.10.8 compiled Thu May  3 21:07:47 UTC 2018 for Linux 4.4.0-122-generic x86_64
Devuan 2          conky 1.10.6 compiled Fri Dec  9 09:25:23 UTC 2016 for Linux 3.16.0-4-amd64 x86_64

2019-01-06:
Sabayon           conky 1.10.8 compiled Sun Jan  6 01:08:28 UTC 2019 for Linux 4.9.0-sabayon x86_64

2019-01-09:
Arch Linux        conky 1.11.2_pre compiled Wed Jan  9 00:03:45 UTC 2019 for Linux 4.20.0-arch1-1-ARCH x86_64

2020-04-27:
Arch Linux        conky 1.11.5_pre compiled Thu 29 Aug 2019 10:15:57 PM UTC for Linux 4.19.67-1-lts x86_64

Arquivo de configuração pessoal

No Dolphin, “Mostrar arquivos ocultos”, para ver a pasta ~/.config

Para personalizar o Conky, o primeiro passo é cada usuário fazer sua cópia dessa configuração básica, — ou de algum arquivo mais interessante, encontrado na web, — e salvar nesta localização específica, dentro de sua pasta pessoal:

/home/USER_1/.config/conky/conky.conf
/home/USER_2/.config/conky/conky.conf
/home/USER_3/.config/conky/conky.conf

Do ponto de vista de cada usuário, — com acesso apenas à própria pasta pessoal, — podemos abreviar desse modo:

~/.config/conky/conky.conf

Este é um novo padrão, que vem sendo implantado aos poucos. — Até o final de 2018, o Conky ainda aceitava o antigo e tradicional ~/.conkyrc, em todas as distros que testei, — mas é uma boa prática adotar (e divulgar) o novo padrão.

Provavelmente, sua pasta ~/.config ainda não tem uma subpasta ~/.config/conky/ — e será preciso criá-la, para colocar nela o arquivo de configuração.

Lembrando que arquivos e pastas começando por “.” (ponto) são invisíveis. — Para vê-los, no gerenciador de arquivos, marque “Mostrar arquivos ocultos”, no submenu “Exibir” (View).
Configuração pessoal (esq.) se sobrepõe à configuração do sistema (dir.)

Ao iniciar o Conky, daí por diante, qualquer edição das configurações pessoais se sobrepõe às configurações originais.

As configurações originais continuam válidas para o “sistema”, — ou seja, para outros usuários — a menos que eles também criem seus próprios arquivos de configuração pessoal.

Note que tudo é feito sem privilégios de Administrador, — pois é assunto pessoal de cada usuário.

Por princípio, a configuração pessoal só precisaria indicar os parâmetros alterados pelo usuário, — pois os que são omitidos, costumam seguir a configuração padrão.

Na imagem (acima), observe que não é necessário mandar exibir as bordas dos gráficos, — pois isso é o padrão do Conky, em todas as distros que testei.

Para conferir, comentei (anulei) essa opção com 2 hifens no início da linha, — e não afetou em nada:

-- draw_graph_borders = true,
Desarranjo das fontes ao comentar “use_xft = true

No entanto, há casos em que isso não acontece. — Comentar “use_xft = true” desarranjou o Conky, — mesmo sendo a configuração-padrão “do sistema”:

-- use_xft = true

Portanto, é bom ir com calma — mexer uma coisa de cada vez — e desfazer logo o que não der certo.

Crash do Conky e mensagens de erro no Terminal

O pior que pode acontecer, é o Conky fechar, — e se o Terminal ainda estiver aberto, serão mostradas mensagens identificando o erro.

Apenas, desfaça a última edição, — use CTRL-C no Terminal, para recuperar o prompt, — e torne a iniciar o Conky com o comando:

$ conky &

Início automático em vários ambientes

Adicionar Conky aos “Aplicativos de sessão”, no Cinnamon

Cada ambiente gráfico (desktop environment) oferece diferentes maneiras de iniciar o Conky automaticamente, no início de nova sessão.

No Cinnamon, por exemplo, o comando pode ser adicionado aos “Aplicativos de sessão”.

Lembrar aplicativos abertos na sessão anterior, no MATE

No MATE, o caminho que utilizei foi:

Centro de controle >> Aplicativos de sessão >> Lembrar aplicativos da sessão anterior

Mas poderia ter optado pelo “Autostart” na outra aba (acima), em:

Centro de controle >> Aplicativos de sessão >> Programais iniciais
“Save session” para tornar o Conky permanente no Xfce

Um teste rápido no Xfce do Slackware mostrou que basta “Salvar automaticamente a sessão ao sair”, — para reabrir o Conky em todas as sessões daí por diante.

Na verdade, “salvar a sessão” já se apresenta como padrão, a cada Logout do Xfce (detalhe do Devuan), — a menos que você desmarque essa opção.

Também é possível colocar o Conky em “Autostart”, — nas configurações de sessão do Xfce (Session and startup), — mas deixei para testar isso no LXQt (adiante).

Comando para início automático do Conky a cada sessão LXQt

Na sessão LXQt do Slackware, simplesmente adicionei o comando “conky &” em Session settings >> Autostart, — e isso bastou para abrir o Conky, automaticamente, no início da sessão seguinte.

Sessão LXQt com o Conky iniciado automaticamente

Daí por diante, o Conky iniciou automaticamente, a cada nova sessão LXQt, — mas isto se transmitiu ao Lumina, — além de afetar o KDE (adiante).

Essa interferência das configurações de um ambiente sobre os demais aconselhou a não mexer mais do que o mínimo indispensável. — Por isso, evitei alterar “Composição” (transparência).
Sessão Lumina já se iniciou com o Conky

“Infelizmente”, a sessão Lumina, — logo após as sessões Xfce e LXQt, — já abriu exibindo o Conky, em decorrência de configurações feitas neles (e/ou no KDE). — Por isso, não cheguei a testar uma configuração “própria” do Lumina.

Mais uma vez, faltou transparência no Conky, — mas evitei mexer muito, nas configurações de cada ambiente, para não desencadear uma série de efeitos sobre os demais.
Salvar sessão do KDE, — após marcar e aplicar “Restaurar sessão salva manualmente”

No KDE, existem (pelo menos) 3 maneiras de automatizar o Conky, — escolhendo entre 4 opções — ou combinando algumas delas:

  • System settings >> Startup & shutdown >> Autostart >> (add Conky)
  • System settings >> Startup & shutdown >> Desktop session >> Restore previous session
  • System settings >> Startup & shutdown >> Desktop session >> Restore manually saved session (+ Save session)
  • System settings >> Startup & shutdown >> Desktop session >> Start an empty session (+ add Conky to Autostart)

Por muito tempo, preferi a terceira opção, pois basta salvar a sessão uma única vez, — após fechar todos os aplicativos e janelas, — para estabelecer uma “sessão padrão”, apenas com o Conky.

Resquícios do Autostart do Conky, experimentado no KDE Neon em 2016

A primeira alternativa + a segunda (que é padrão) pode duplicar o Conky, — aberto uma vez pelo Autostart, e outra vez ao restaurar a sessão anterior. — Para evitar isso, o Autostart deve ser combinado com “Start an empty session”.

Conky duplicado no KDE, devido ao Autostart da sessão LXQt

E foi o que voltou a acontecer agora, com essas experiências no Slackware, — o Autostart nas configurações da sessão LXQt passou a vigorar também na sessão KDE, — que já rodava o Conky pela opção “Restaurar sessão salva manualmente”.

Arquivo ~/.config/autostart/conky.desktop do LXQt interfere no KDE

O motivo está no arquivo ~/.config/autostart/conky.desktop criado pelas configurações de sessão do LXQt, — mecanismo de Autostart compartilhado pelo KDE.

Neste caso, basta desmarcá-lo em KDE System settings >> Startup & shutdown >> Autostart — e é claro que isso volta a desabilitar o início automático do Conky no LXQt.

Esse é um dos motivos, pelos quais desisti de ter mais de um ambiente (desktop environment) em cada distro, — e passei a ter o cuidado de não configurar os demais ambientes (quando vêm juntos, por padrão).

Essas experiências com outras DEs / WMs (que não uso) foram possibilitadas pelo Slackware by AlienBOB, que, — embora eu tenha escolhido por trazer o ambiente KDE (minha preferência), — naquele momento também instalava outros, por padrão.

Existem outras dicas importantes, para vários ambientes (DEs), — que não testei:

Edição das configurações

Conky recarregado a cada vez que se salva ~/.config/conky/conky.conf

A cada vez que ~/.config/conky/conky.conf é salvo, o Conky automaticamente fecha e torna a abrir, — atualizado:

conky: '/home/flavio/.config/conky/conky.conf' modified, reloading...

Desse modo, pode-se experimentar durante horas, sem muito trabalho. — Basta editar, salvar, — e observar o resultado.

Eu uso a opção do Kate de “Load last used session”, para abrir meia-dúzia de arquivos automaticamente — inclusive as configurações do Conky, que altero a todo momento (Por isso, não estranhe tantas variações de um ano para outro). — Para abrir em janelas diferentes, recorro ao KWrite.

Personalização

Parâmetros originais do Conky 1.11.1_pre (esq.) e personalizados (dir.)

Nessa comparação (acima), de 2019, listei apenas os parâmetros da configuração original do Conky no Arch (à esquerda) e da configuração personalizada (à direita), — em ordem alfabética, para identificar facilmente quais mantive, — e entre eles, quais alterei.

O que só existe no padrão (esq.), provavelmente está valendo, — por omissão da configuração pessoal (dir.).
conky.config = {
    .... .... .... ....
    .... .... .... ....
    .... .... .... ....
}

conky.text = [[
.... .... .... ....
.... .... .... ....
.... .... .... ....
]]

Esses “parâmetros” vão na primeira parte do ~/.config/conky/conky.conf — na seção delimitada por:

conky.config { ... }
Parâmetros ou variáveis do Conky 1.10.1 (esq.) e do 1.11.1_pre (dir.)

A tabela do Arch (Conky 1.11.1_pre) indica 105 parâmetros, — no entanto, a configuração-padrão inclui apenas 33 ou 35 parâmetros, conforme a versão.

Parâmetros herdados do Conky 1.9 (Kubuntu 14.04), — com apenas 5 alterações efetivas

Os 27 parâmetros que uso foram “herdados” da época do antigo Conky 1.9 (Kubuntu 14.04), pois comecei copiando um arquivo de configuração antigo (by Panikuzz), encontrado na web.

As linhas em branco à esquerda equivalem a alguns parâmetros que acrescentei, — e as linhas vazias do lado direito assinalam alguns que retirei. — Nada muito significativo, nos dois casos.

ATT - Observe a mudança na Sintaxe!

No início, era difícil saber quais desses 27 parâmetros ainda poderia retirar, — por serem desnecessários, — nem se havia mais algum que valesse a pena acrescentar.

Após 6 anos, encontrei muito pouca coisa para mudar, nos parâmetros, — já que optei por manter um “desenho tradicional”, conservador, quadradão.

Logo de início, alterei o alinhamento; — substituí a fonte; — ativei o sombreado; — mais tarde, tive de aumentar um pouco a largura de 250 para 270 pixels; — e reduzi o afastamento vertical (para uso eventual fora do KDE).

Parâmetros do arquivo baixado em 2016 (esq.), — e do arquivo baixado em 2018 (dir.)

No Natal de 2018, copiei outro arquivo de configuração, também encontrado na web, mas já com a nova sintaxe, — refiz na primeira parte dele as mesmas opções, — e colei esse novo “bloco padrão” no Conky das 12 distros.

Foi nesse momento que sumiram coisas como “minimum_size”, — e apareceram outras, como “background = true”, — ambas, ao que me parece, sem grande significado, para o meu caso pessoal.

ATT - Observe a mudança na Sintaxe!

O original tomado como ponto de partida em 2016 (acima, esq.) listava mais ou menos os mesmos parâmetros do modelo tomado como base para a reorganização no final de 2018 (dir.). — De um modo geral, os parâmetros incluídos em ambos são os mais necessários (no meu caso específico).

Os parâmetros que só existem em um, ou no outro, — background, color1, color3, stippled_borders, border_margin, border_width, use_spacer, — apresentam valores-padrão (dispensáveis), ou ociosos (margem de uma borda inexistente), ou sem uso para o meu gosto pessoal (color1, color3).

Parâmetros utilizados

Desarranjo das fontes ao comentar “use_xft = true

Eis os parâmetros que mantive, o que pude entender sobre eles, e as opções que modifiquei.

Vamos por partes:

 use_xft= true,
 xftalpha= .8,
 font= 'verdana:size=8',
 update_interval= 1,
 total_run_times= 0,

 -- background= true,

A documentação informa que “use_xft” define se é para “Usar Xft (anti-aliased font and stuff)”, ou não. — Explicação, talvez, perfeita, — mas nada esclarece, para o novo usuário do Conky.

O que posso dizer é que, — embora “true” seja o “default”, — preciso especificar isso de novo, na configuração pessoal.

Alterações de font (pixelsize > size) e xftalpha para tornar o Conky mais legível

O parâmetro “xftalpha” define a opacidade ou transparência das Fontes (ou do fundo?), — na verdade, de todo o “texto”, inclusive gráficos, — e admite graduações de 1 a 0 (inclusive).

Por mais que pesquise e experimente, não consigo pensar em termos de “opacidade vs. transparência”. — Para mim, a coisa só começa a fazer sentido em termos de “intensidade” (0 = Total).

Na prática, tenho usado “.4” ou “.2” para obter letras brancas mais “gritantes”, quando o fundo não ajuda a leitura; — e “.6” ou “.8” quando o fundo permite boa leitura, sem necessidade de exagerar na intensidade do branco.

Isso, desde que conjugado com a sombra (“shade”, adiante), — em geral preta. — Branco mais intenso tende a “ocultar” a sombra; enquanto valores mais próximos de 1 permitem maior realce à sombra. — Sob esse aspecto, sim, isto seria maior “transparência”, enquanto o oposto privilegia o “texto”, tornando-o “opaco” à sombra. Mas, aí, me parece que os números estariam trocados.

Adotei fonte “verdana:size=8” no final de 2018, — pois “verdana:pixelsize=10” só era bem legível em distros com ttf-mscorefonts-installer (.deb), mas não em outras, como openSUSE, por exemplo, em que “instalei” Verdana a partir de arquivos TTF locais.

O tamanho das letras é o mesmo, assim como a altura (entrelinhamento) — mas em “verdana:size=8” a largura ou o afastamento entre as letras é um pouco maior, deixando o texto mais legível.

Isso alargou um pouco a coluna do Conky, — e acabei adotando a largura de 270 pixels, pois alguns gráficos não couberam mais em 250 pixels.

O parâmetro “update_interval” define o intervalo para atualização do Conky, em segundos. — No antigo hardware (2 x Core2), com KDE Neon, a taxa normal de atualização a cada 1 segundo usava 1,0% ~ 2,0% da CPU.

No novo hardware (6 x i5 9400), a taxa de atualização de 1 segundo usa 0,33% ~ 0,67% da CPU, com picos ocasionais de 0,83%. — Uma segunda instância do Conky, que adicionei meses depois, de início usava cerca da metade desses valores.

Após desdobrar meu Conky em 2 instâncias, acabei optando por atualizar o 1º a cada 1 segundo — e o 2º a cada 10 segundos. — Então, movi para o 2º Conky tudo que não preciso monitorar com tanta frequência.

O parâmetro “total_run_times = 0” faz o Conky trabalhar indefinidamente. — Com qualquer outro número, ele termina e fecha ao final daquele número de “vezes”. — Em um teste com “60” + atualização a cada 1 segundo, fechou após 30 segundos, ou pouco menos (talvez o double-buffer duplique o número de “vezes” por segundo?).

  • Hoje (2023), uso um 3º Conky, que executa apenas 1 vez — para “exportar” o uso de Memória RAM (mem) para um arquivo texto.

O parâmetro “background” parece ocioso nesse conjunto de configurações personalizadas. — A configuração padrão é “false”, — mas não faz diferença se na configuração pessoal colocar “true”, ou se apenas comentar (anular) com 2 hifens no início da linha.

Efeitos de “own_window_type = desktop”, — e de apenas comentar “normal

Há muito tempo encerrei as experiências com o bloco de definições de janela, — que no final das contas, segue sem alterações, tal como encontrei, há 6 anos:

 own_window= true,
 own_window_type= 'normal',
 own_window_transparent= true,
 own_window_hints= 'undecorated,below,sticky,skip_taskbar,skip_pager',
 own_window_colour= '000000',
 own_window_argb_visual= true,
 own_window_argb_value= 0,

Dentro desse conjunto, — e alterando apenas um parâmetro de cada vez, — bastava comentar (anular) a linha “own_window = true” para encerrar o Conky, e receber mensagem de erro (caso o Terminal ainda esteja aberto), no antigo hardware.

Definir o parâmetro “own_window_type = 'desktop'” eliminava a transparência da janela (preto, opaco), no meu antigo hardware, com KDE e XRender. — Veja uma explicação simples.

No entanto, — embora “desktop” seja o padrão, — apenas comentar essa linha com “normal” não afetava a transparência.

O parâmetro “own_window_transparent” podia ser comentado (anulado), — e até tornado “false”, — sem efeitos visíveis (no KDE Neon, no antigo hardware).

O fundo preto em “own_window_colour = 000000” é essencial à transparência. — Alterando para “ffffff”, a janela torna-se branca e 100% opaca.

Julho 2023 - Essas anotações datam do final de 2018, quando todas as minhas distros ainda usavam X11 por padrão. — Há cerca de 1 ano, adotei Wayland no Fedora — e não precisei alterar nada.

Teste com variações discretas de cor da janela do Conky

Vários testes com outras cores, — mesmo as mais discretas (pálidas), — mostraram pouca ou nenhuma vantagem, em papeis-de-parede com muitas cores misturadas (paisagens), pois não ajudaram em nada a tornar as letras mais legíveis.

No entanto, pode ser útil em cima de imagens mais “achatadas”, — com vastas áreas de cores homogêneas ou com gradientes suaves.

A definição “own_window_argb_visual = false” também elimina a transparência (preto, opaco).

Enfim, “own_window_argb_value” pode ser alterado para qualquer valor, — até o máximo “255”, que define 100% de opacidade, — sem afetar, em nada, a transparência.

No entanto, se apenas comentar “own_window_transparent = true”, — e ao mesmo tempo apenas comentar “own_window_argb_value = 0”, — desaparece a transparência (preto, opaco).

Portanto, esse é um bloco intrincado, em que cada definição afeta as demais, — e depois de 6 anos fazendo experiências, desisti de tentar melhorar o que já vinha dando certo desde o início. — Não perdi tempo com mais testes no novo hardware.

Julho 2023 - No meu antigo PC, eu preferia XRender em vez de OpenGL2.0 (pois 3.1 não era aceito). — Hoje, no "novo" PC, o Plasma KDE nem pergunta minha preferência! — Não dá para reescrever tudo!... mas convém chamar atenção, para quem está lendo só agora.

Transparência do Conky no Devuan MATE

Para obter transparência no Devuan 1 MATE, — no antigo hardware, com essas configurações, — bastou ativar “Composição por software” em:

Menu >> Preferências >> Janelas >> Geral >> Software compositing window manager

Existem questões relativas a poder (ou não) clicar nos ícones por trás do Conky, — mas nunca investiguei como fazer isso (nem quais as consequências), — pois sempre desabilito ícones no desktop (não consegui, no Devuan 1 MATE).

Habilitar composição de tela para obter transparência do Conky no Xfce

Para obter transparência do Conky no Xfce, — no antigo hardware, com essas configurações:

Ajustes do Gerenciador de janelas >> Habilitar composição de tela
Opções de Compositor no KDE System settings, em 2019

Transparência ao mudar do OpenGL2.0 para XRender, no Manjaro, em 2017

No antigo hardware, todas as distros com KDE automaticamente selecionavam Compositor OpenGL 2.0 (OpenGL 3.1 não era suportado), — e eu alterava manualmente para XRender, que parecia funcionar melhor e de modo mais suave, além de ser necessário para dar transparência ao Conky, em algumas distros.

No novo hardware i5-9400 + iGPU Intel onboard, a transparência funcionou bem — tanto com OpenGL 2.0 (padrão, ao que parece), quanto com OpenGL 3.1. — Depois, essas opções desapareceram, e surgiu “Enable compositing on startup”, que preciso habilitar para tudo dar certo.
Uso de sombra (shade) para destacar letras brancas em áreas muito claras

O parâmetro “double_buffer = true” é essencial, para que o Conky não fique piscando (flickering), — e bastava comentar essa linha para causar o problema.

 double_buffer = true,

 maximum_width = 270,
 minimum_width = 270,

 draw_shades= true,
 default_color= 'white',
 default_shade_color= 'black',

 -- draw_graph_borders= true,
 -- show_graph_range = true,
 show_graph_scale = true,

Recomenda-se que seja acompanhado de “own_window = true”, — para evitar “double buffer” muito grande.

Conky com variação de largura

Após alterar a fonte (pixelsize=10 >> size=8), a antiga largura (máxima e mínima) de 250 pixels se mostrou insuficiente, — e de início apenas anulei (comentei) esses limites, de modo a permitir que o Conky assumisse a largura necessária.

Começaram, então, a ocorrer “piscadas” eventuais, — até eu perceber que eram provocadas por uma oscilação mínima na largura, — alternando entre 266 e 268 pixels, por exemplo.

A “piscada” (ou “single flicker”) ocorria, então, ao substituir o buffer frontal pelo de segundo plano, — às vezes com largura diferente e, portanto, com rearranjo geral do “texto” (= texto e gráficos).

Largura máxima e mínima iguais, — para evitar oscilação ocasional

Por isso, acabei fixando as larguras mínima e máxima de 270 pixels, — para evitar oscilações, — e o problema desapareceu.

O parâmetro “draw_shades” vem desabilitado, — mas a “sombra” torna legíveis as letras brancas, onde o fundo tem porções muito claras. — Essencial, quando se usa papel de parede com muita variação de cores.

Em geral, uso letras brancas e sombra preta, — graduando “xftalpha” entre “.2” e “.8”, para reforçar um ou outro, conforme o papel de parede.

  • Com o tempo, passei a escolher papéis de parede que facilitem a leitura, mas ainda existe um que hesito em abandonar.

A “escala” dos gráficos facilita ver as velocidades de download

Ao migrar da conexão de “10 megas” para “200 megas”, acrescentei a escala dos gráficos, — para monitorar as velocidades máximas de download e upload registrada no período exibido:

show_graph_scale = true,

Este parâmetro só afeta os gráficos cuja escala varia ao longo do tempo, — mas não os que medem percentuais absolutos (0% ~ 100%), como o uso de CPU.

Parâmetro show_graph_range entulha os gráficos do Conky

Também cheguei a experimentar o parâmetro “show_graph_range”, mas atravancou demais o espaço dentro dos gráficos — e afinal, era ocioso, pois sei que quase todos os gráficos são de 120 segundos. — Mantive a linha, comentada (anulada), só para lembrar.

Comentar a linha com “draw_graph_borders = true” não altera nada, — é o valor padrão, — mas vale para documentar.

Conky alinhado à direita

Já tentei usar “alignment = 'bottom_right'”, — quando o papel de parede dificulta a leitura do lado esquerdo da tela, — mas é mais prático trocar o papel de parede, pois no dia-a-dia, em dualboot, é mais fácil e “instintivo” procurar as informações, sempre nos mesmos lugares, ao mudar de uma distro para outra.

 alignment= 'bottom_left',
 gap_x= 10,
 gap_y= 10,
 no_buffers= true,
 text_buffer_size = 2048,
 cpu_avg_samples= 2,
 net_avg_samples = 2,
 override_utf8_locale= true,

Definição de “gap_y

O parâmetro “gap_x = 10” evita que o Conky “grude” à esquerda, no caso de “alignment = 'bottom_left'”.

De início, deixei “gap_y = 40”, — que no KDE Neon não fazia a menor diferença, — talvez porque o Painel tem cerca de 35 pixels, e já provê esse afastamento das janelas em relação à margem inferior da tela.

No entanto, fez diferença no Devuan KDE e no Slackware KDE, por exemplo.

Conky no Xfce com “gap_y = 40”, e com “10”

No Xfce do Slackware, foi necessário alterar gap_y = 40 para gap_y = 10, para o Conky assumir a posição correta, configurada em alignment = 'bottom_left'.

Note que o “gap_y = 40” valeu para afastar o Conky da margem inferior, — mas não para evitar o sumiço da parte superior.

Como o objetivo é tornar a configuração tão “portável” quanto possível, — para qualquer sessão Live DVD (nem sempre com KDE), — faz mais sentido utilizar, desde logo, sempre o valor “10”.

Ajuste manual do “gap_y” de um segundo Conky

Ao criar uma 2ª instância do Conky, o comportamento foi muito diferente. — Eu preciso ajustar um “gap_y” entre “50” e “54”, até nivelar a linha inferior com a do 1º Conky, em cada distro.

Efeitos do parâmetro “no_buffers” mas medidas de uso de Memória

O Manual diz que a definição “no_buffers = true” subtrai “(file system) buffers” do cálculo da Memória RAM utilizada, — mas os resultados sugeriam que a expressão estava sendo usada como sinônimo / abreviação de “Buffers + Cache” (buffers + cached).

Desabilitar esse parâmetro fazia com que a Memória (mem) do antigo hardware parecesse estar quase esgotada; e a Memória “Disponível” (memeasyfree) parecesse em vias de se acabar, — o que não faz sentido (a menos que você goste de viver sob stress), — dando a falsa impressão de que vai “faltar Memória” a qualquer momento.

 Uptime        Mem      Swap      Free   EasyFree    |    Mem (no_buffers = false)

1st day   2,66 GiB    70 MiB   289 MiB   1,19 GiB    |   3,56
3rd day   2,34 GiB   394 MiB   283 MiB   1,50 GiB    |   3,56
4th day   2,73 GiB   363 MiB   230 MiB   1,12 GiB    |   3,62

Um teste (acima), sem desligar o computador durante 4 dias de trabalho intenso, — abrindo e fechando uma ou mais janelas / abas do Dolphin, Chromium, KDiff3, LibreOffice, Gwenview, Kate / KWrite, Gimp, Konsole, KSysguard, KDE System settings, KRuler / ScreenRuler etc., — mostrou que não existia o menor perigo de “faltar” Memória RAM (nem de uso desmedido de Swap).

No entanto, desde o primeiro dia, bastava colocar “no_buffers = false” para ficar parecendo que não restava quase nada de Memória RAM, — que terror!

Parâmetro “no_buffers = true” é o padrão, — e pode ser omitido

Por isso, mantive o padrão do Conky, — e nem precisava manter essa linha na configuração pessoal, — mas vale como lembrete.

  • O significado disso, na prática, fica mais claro ao abordar as informações de Memória RAM na seção “Texto e gráficos” (adiante).

Pelo menos uma vez, “override_utf8_locale” demonstrou sua utilidade

Os parâmetros “cpu_avg_samples” e “net_avg_samples” definem quantas amostras serão usadas para extrair a média. — Mantive os valores-padrão, pois nunca encontrei indicação de vantagem em usar valores maiores. — O valor “1” desabilita a média por amostragem.

Enfim, “override_utf8_locale = true” força o uso de UTF8, — e foi necessário, pelo menos uma vez (em sessão Live), para exibir corretamente alguns caracteres, como ºC (graus Celsius, ou “centígrados”).

Texto, gráficos, variáveis

Cabeçalho do meu Conky nº 1

Na segunda parte do arquivo de configuração do Conky, se “desenha” (literalmente) o conteúdo a ser exibido, — na seção delimitada por:

conky.text = [[ ... ]]
conky.config = {
    .... .... .... ....
    .... .... .... ....
    .... .... .... ....
}

conky.text = [[
.... .... .... ....
.... .... .... ....
.... .... .... ....
]]

Nesse “desenho” cabe “texto direto” — você pode escrever “Minha distro”, por exemplo, e inserir espaços em branco para afastar textos e “objetos” dentro de uma linha. — Cada nova linha no arquivo é uma nova linha no Conky, a menos que você use “\” no final da linha anterior.

Os “objetos” podem ser qualquer uma das 412 variáveis existentes em Maio 2021, — também disponíveis no manual pelo comando $ man conky de sua distro.

Para maior conforto, execute $ man --html, especificando ou não seu navegador:

$ man --html conky

$ man --html=chromium conky

$ man --html=google-chrome-stable conky

Ou você pode carregar variáveis, parâmetros etc. em 4 páginas separadas — em html na pasta /usr/share/doc/conky-XXX/html/ — onde “XXX” indica possíveis variações de nome, de uma distro para outra.

Nas distros baseadas no Debian, pode ser “conky” ou “conky-all”, dependendo de qual deles você instalou. — No Arch, pode ser “conky-1.12.2_pre”, e mudar na próxima atualização.

No entanto, nunca ouvi falar que alguém tenha começado pela leitura desse emaranhado de “variáveis”. — O mais comum é a pessoa baixar arquivos de configuração já prontos, colocar em ação, e experimentar alterá-lo, para “ver” como as coisas funcionam.

Algumas dessas variáveis produzem diferentes exibições de uma mesma informação, — por exemplo, “cpu”, “cpubar”, “cpugauge”, “cpugraph”, — enquanto outras alteram o alinhamento, como “alignc” e “alignr”; ou a cor, como “${color antiquewhite}”; ou a fonte, como “font Name:Size=N”.

Pessoalmente, tenho abusado da variável “execi N” — que permite executar comandos externos ao Conky, na frequência que você quiser, — por exemplo, a cada 10 segundos, ou a cada 600 segundos, para não elevar o consumo de recursos, sem necessidade.

Eis o “desenho” que estou usando no meu bloco de “texto” do 1º Conky:

${font verdana:pixelsize=32}openSUSE${font}
$hr
${alignc}${font verdana:size=32}${time %H:%M}${font}
${alignc}${font verdana:pixelsize=18}${time %a, %d %b. %Y}${font}

${alignr}up  ${uptime}
$hr
${alignr}${nodename}
${execi 600 lsb_release -ds}
### Slackware ### ${execi 600 cat /etc/slackware-version}
###      Arch ### ${execi 600 hostnamectl | grep Operating | cut -c 21-30}
${sysname} ${kernel} ${alignr}${execi 600 ps --no-headers -o comm 1} ${execi 600 systemctl --version | grep systemd | cut -c 9-11}

Na primeira linha do cabeçalho, apenas digitei o nome resumido de cada distro, para ser exibido em letras maiores. — É preciso fechar essa formatação local com “${font}”, no final da linha, para voltar à fonte-padrão que adotei, sem afetar o espaço vertical da linha seguinte.

A régua horizontal “${hr}” pode ter vários atributos de cor, espessura etc., mas prefiro manter o Conky despojado de firulas.

Nas 2 linhas seguintes, uso 2 vezes a variável “time” — uma vez com formatação que especifica exibir a hora (sem os segundos), e outra vez com formatação para exibir a data. — Execute $ man strftime para ver as opções de formato de data e hora.

Para obter a data no formato "Fri, 13 Aug. 2021” — usado no Brasil, mas em inglês compreensível no mundo inteiro — configuro minhas distros para usarem “Language” e “Formats” United Kingdom - British English (en_GB). — Isso vale para o Conky, o Konsole (Fri 13 Aug 20:44:46 -03 2021), por exemplo; mas não afeta o LibreOffice nem o Chromium / Chrome, nem o Kate / KWrite (2021-08-13 14:12:26), nem o Digital Clock do KDE, que seguem configurações próprias, conforme você escolher.

É importante não deixar espaços em branco no final das linhas centralizadas ou alinhadas à direita, pois fazem diferença.

Configurei o Kate / KWrite para sempre eliminar espaços em branco no final das linhas (e nunca adicionar uma linha no final), ao salvar os arquivos. — Se eu quiser manter espaços à direita, preciso botar pelo menos um ponto lá no final.

Segue-se uma linha em branco, — necessária para destacar visualmente as informações, — que daí por diante usam sempre o tamanho de letra definido na configuração pessoal.

A variável “uptime” indica há quanto tempo o sistema foi carregado, — em um formato semelhante ao da opção “pretty” do comando:

$ uptime
 17:30:07 up 3 days, 31 min,  2 users,  load average: 0,09, 0,22, 0,31

$ uptime -p (--pretty)
up 3 days, 31 minutes

$ uptime -s (--since)
2019-01-04 16:58:55

A variável “nodename” exibe o Hostname — de Linux1 até Linux12, no meu caso.

A variável “execi” executa um comando “lsb_release” a cada 600 segundos, com a opção “-ds” (short description), para o nome curto da distro.

Em distros com “apelidos” para versão, repito o comando com “-cs” (short codename), entre parêntesis:

${execi 600 lsb_release -ds} (${execi 600 lsb_release -cs})

KDE Neon:

$ lsb_release
LSB Version:    core-9.20160110ubuntu0.2-amd64:core-9.20160110ubuntu0.2-noarch:security-9.20160110ubuntu0.2-amd64:security-9.20160110ubuntu0.2-noarch

$ lsb_release -ds
KDE neon User Edition 5.14

$ lsb_release -cs
xenial

openSUSE:

$ lsb_release
LSB Version:    n/a

$ lsb_release -ds
"openSUSE Leap 15.0"

$ lsb_release -cs
n/a

No Arch Linux, inicialmente substituí “lsb_release” por:

${execi 600 hostnamectl | grep Operating | cut -c 21-30}

o que é quase como escrever, à mão: “Arch Linux”, mas depois, instalei o pacote lsb-release, para não precisar fazer esse malabarismo.

No Slackware, usei outro caminho, — provisoriamente:

${execi 600 cat /etc/slackware-version}

Quanto ao Kernel, a variável “${sysname}” informa que o nome do sistema é Linux; — e a variável “${kernel}” informa a versão do Kernel.

À direita da linha do Kernel, o comando ps -o comm 1 especifica se o sistema foi iniciado pelo systemd, pelo runit, ou pelo SysV (neste caso, retorna “init”).

Nas distros que usam systemd, acrescentei um comando para indicar apenas o número de sua versão:

systemctl --version | grep systemd | cut -c 9-11

Kernel e init no Conky

No Slackware, no PCLinuxOS e no MX Linux adicionei o comando que indica a versão do SysV. — No Void, ainda falta descobrir o caminho:

PCLinuxOS, Slackware, MX Linux:
${execi 600 ps --no-headers -o comm 1}  ${execi 600 strings /sbin/init | grep INIT_VERSION | cut -c 14-30}

Void:
${execi 600 ps --no-headers -o comm 1}

Monitoramento do uso de CPU no Conky

No bloco seguinte, o monitoramento do uso de CPU é bastante simples — 6 gráficos “cpugraph”, aos pares, com os percentuais “cpu” embaixo de cada um — Note que cada variável “cpu” ou “cpugraph” é seguida pela indicação do núcleo, começando por “cpu1”.

No alto, centralizado, uma legenda de que esses gráficos cobrem 120 segundos.

Após uma linha em branco, um gráfico de barra “cpubar” centralizado, com o percentual à direita. — Como não indiquei nenhum núcleo, exibe o uso total.

${alignc} 120’’
${cpugraph cpu1 30,120} ${alignr}   ${cpugraph cpu2 30,120}
CPU1: ${cpu cpu1}% ${alignr}             ${alignr}CPU2: ${cpu cpu2}%
${cpugraph cpu3 30,120} ${alignr}   ${cpugraph cpu4 30,120}
CPU3: ${cpu cpu3}% ${alignr}             ${alignr}CPU4: ${cpu cpu4}%
${cpugraph cpu5 30,120} ${alignr}   ${cpugraph cpu6 30,120}
CPU5: ${cpu cpu5}% ${alignr}             ${alignr}CPU6: ${cpu cpu6}%

${alignc}CPU  ${cpubar 6,120}  $cpu%

Uso de Memória no Conky do antigo hardware

Até 2020, o bloco de uso de Memória RAM era um malabarismo para reunir 8 informações + 2 gráficos de barra em apenas 4 linhas, — com direito a desperdiçar uma linha no meio, para maior destaque.

O resultado era um jogo de espaços e alinhamentos, às vezes difícil de ajustar:

Mem  ${alignr}${mem} / ${memmax}  ${alignr}${membar 6,90}
Swap ${alignr}${swap} / ${swapmax}  ${alignr}${swapbar 6,90}

Buffers      ${alignr}$buffers               ${alignr}Free      ${alignr}${memfree}
Cache     ${alignr}$cached         ${alignr}Available      ${alignr}${memeasyfree}

Depois que o Conky alterou por 2 vezes seu cálculo de Memória RAM usada, acabei eliminando a exibição das variáveis “buffers”, “cached”, “free” e “memeasyfree” — até porque agora, com 16 GB RAM, esses detalhes perderam relevância para mim.

Uso de RAM segundo Conky, free, top, neofetch, htop, inxi, screenfetch

Em uma 2ª instância do Conky, fui adicionando outras leituras da Memória RAM usada — pelas ferramentas free, top, neofetch, htop, inxi, screenfetch:

RAM usage:

Mem:               ${alignr 100}up  ${uptime}

Total - Available  ${alignr 100}${exec bash MemInfo.sh; cat MemInfo.txt}
Conky (Mem)        ${alignr 100}${mem}
free               ${alignr 100}${exec free -m | grep Mem | cut -c 25-35} MiB
top                ${alignr 100}${exec top -E m -b -n 1  | grep buff | cut -c 41-50} MiB
neofetch           ${alignr 100}${exec neofetch  --stdout | grep "Memory" | grep -o -P '.{0,0}Memory.{0,9}' | cut -b 8-12} MiB
htop               ${alignr 100}${exec echo q | htop | aha --line-fix | html2text | grep -o -P '.{0,6}/15' | cut -b 1-6}iB
inxi               ${alignr 100}${exec inxi --memory-short | grep -o -P '.{0,0}used.{0,14}' | cut -b 6-14}
screenfetch        ${alignr 100}${exec screenfetch -n -N | grep -o -P '.{0,0}RAM.{0,9}' | cut -b 5-12}

Para obter essas leituras do free / top e do inxi, bastou usar o grep e o cut.

No caso do neofetch e do screenfetch, foi preciso também remover as cores e o gráfico — usando parâmetros internos, deles mesmos.

No caso do htop, foi necessário instalar o aha e o html2text, para extrair a informação em texto limpo (plain text). — Ainda não instalei o aha em algumas distros, e nesses casos deixo essa linha comentada (anulada).

Em alguns casos, tive de determinar a unidade a ser usada; em outros, não tenho controle. — No free e no top, precisei adicionar um espaço + “MiB”; e no htop, “iB”. — O alinhamento dos números não fica perfeito, mas já é suficiente para facilitar a leitura.

Usei alignr 100 para estreitar essa coluna — de modo que os números fiquem mais perto das respectivas legendas.

Temperatura, Tensões, Ventoinha, Frequência, Rede no Conky

No antigo hardware, o bloco de Temperaturas, Tensões (Voltagens), Ventoinha do cooler, Frequência e Rede era um malabarismo de alinhamento e espaços, — para agrupar informações no menor número de linhas, — por exemplo: Temperaturas à esquerda e Tensões à direita:

CPU ${alignr}${hwmon 0 temp 1}°C                       ${alignr}Vcore     ${alignr}${execi 10 sensors | grep -A 0 'Vcore' | cut -c 20-25} V
MB ${alignr}${hwmon 0 temp 2}°C                        ${alignr}+3.3     ${alignr}${execi 10 sensors | grep -A 0 '+3.3 Voltage' | cut -c 20-25} V
Core0        ${alignr}${hwmon 1 temp 2}°C                 ${alignr}+5        ${alignr}${execi 10 sensors | grep -A 0 '+5 Voltage' | cut -c 20-25} V
Core1        ${alignr}${hwmon 1 temp 3}°C                ${alignr}+12       ${alignr}${execi 10 sensors | grep -A 0 '+12 Voltage' | cut -c 20-25} V

Fan  ${alignr}${hwmon 0 fan 1} rpm               Freq. MHz       ${alignr}$freq

Down: ${downspeed enp1s0}/s ${alignr}Up: ${upspeed enp1s0}/s
${downspeedgraph enp1s0 30,120} $alignr${upspeedgraph enp1s0 30,120}
Total ${totaldown enp1s0} ${alignr}Total ${totalup enp1s0}
$hr

Para facilitar a leitura: — Do lado esquerdo eu tinha:

CPU ${alignr}${hwmon 0 temp 1}°C
MB ${alignr}${hwmon 0 temp 2}°C
Core0        ${alignr}${hwmon 1 temp 2}°C
Core1        ${alignr}${hwmon 1 temp 3}°C

Fan  ${alignr}${hwmon 0 fan 1} rpm

— que buscavam os valores em hwmon0 e hwmon1, — números indicados após um espaço:

$ ls -1 /sys/class/hwmon/hwmon0
device
fan1_input
fan1_label
fan1_max
fan1_min
fan2_input
fan2_label
fan2_max
fan2_min
fan3_input
fan3_label
fan3_max
fan3_min
in0_input
in0_label
in0_max
in0_min
in1_input
in1_label
in1_max
in1_min
in2_input
in2_label
in2_max
in2_min
in3_input
in3_label
in3_max
in3_min
name
power
subsystem
temp1_crit
temp1_input
temp1_label
temp1_max
temp2_crit
temp2_input
temp2_label
temp2_max
uevent

$ ls -1 /sys/class/hwmon/hwmon1
device
name
power
subsystem
temp2_crit
temp2_crit_alarm
temp2_input
temp2_label
temp2_max
temp3_crit
temp3_crit_alarm
temp3_input
temp3_label
temp3_max
uevent

Para isso, é preciso instalar o lm_sensors, — e executar sudo sensors-detect, e salvar os resultados em /etc/modules, — o que, em geral, é suficiente para fixar os itens em hwmon0 e hwmon1.

No PCLinuxOS, essas configurações eram salvas em /etc/sysconfig/lm_sensors.

Inversão de hwmon0 e hwmon1 (15 ou 41 itens) a cada Boot, no openSUSE

No openSUSE, hwmon0 e hwmon1 se invertiam, praticamente, a cada boot, — mesmo após executar inúmeras vezes o sudo sensors-detect, — mas isso às vezes também ocorria com alguma outra distro.

Após tentar várias outras soluções, consegui resolver com um IF / ELSE / ENDIF, — para detectar qual deles estava com temp3_input, no momento, — pois temp1 e temp2 existiam em ambos, no antigo hardware:

${if_existing /sys/class/hwmon/hwmon1/temp3_input}\
CPU ${alignr}${hwmon 0 temp 1}°C                     ${alignr}Vcore     ${alignr}${execi 10 sensors | grep -A 0 'Vcore' | cut -c 20-27}
MB ${alignr}${hwmon 0 temp 2}°C                      ${alignr}+3.3     ${alignr}${execi 10 sensors | grep -A 0 '+3.3 Voltage' | cut -c 20-27}
Core0    ${alignr}${hwmon 1 temp 2}°C              ${alignr}+5        ${alignr}${execi 10 sensors | grep -A 0 '+5 Voltage' | cut -c 20-27}
Core1    ${alignr}${hwmon 1 temp 3}°C            ${alignr}+12       ${alignr}${execi 10 sensors | grep -A 0 '+12 Voltage' | cut -c 20-27}

Fan  ${alignr}${hwmon 0 fan 1} rpm                 Freq. ${alignr} $freq   MHz\
${else}\
CPU ${alignr}${hwmon 1 temp 1}°C                     ${alignr}Vcore     ${alignr}${execi 10 sensors | grep -A 0 'Vcore' | cut -c 20-27}
MB ${alignr}${hwmon 1 temp 2}°C                      ${alignr}+3.3     ${alignr}${execi 10 sensors | grep -A 0 '+3.3 Voltage' | cut -c 20-27}
Core0    ${alignr}${hwmon 0 temp 2}°C              ${alignr}+5        ${alignr}${execi 10 sensors | grep -A 0 '+5 Voltage' | cut -c 20-27}
Core1    ${alignr}${hwmon 0 temp 3}°C            ${alignr}+12       ${alignr}${execi 10 sensors | grep -A 0 '+12 Voltage' | cut -c 20-27}

Fan  ${alignr}${hwmon 1 fan 1} rpm                 Freq. ${alignr} $freq   MHz\
${endif}

Notar o uso de “\” no final dessas linhas, para evitar que o “desenho” do Conky apresente “novas” linhas no meio disso tudo.

Isso causa mensagens de erro, ao iniciar o Conky, — caso a primeira condição não seja encontrada — mas não é um problema real.

Voltagens com apenas uma casa decimal

No antigo hardware, não consegui obter 2 casas decimais das Tensões elétricas (Voltagens), pelo hwmon, — então adotei um truque:

${alignr}Vcore     ${alignr}${execi 10 sensors | grep -A 0 'Vcore' | cut -c 20-27}
 ${alignr}+3.3     ${alignr}${execi 10 sensors | grep -A 0 '+3.3 Voltage' | cut -c 20-27}
 ${alignr}+5       ${alignr}${execi 10 sensors | grep -A 0 '+5 Voltage' | cut -c 20-27}
${alignr}+12       ${alignr}${execi 10 sensors | grep -A 0 '+12 Voltage' | cut -c 20-27}

O truque consistia em executar o sensors a intervalos de 10 segundos e extrair, de cada linha, os caracteres de 20 a 27.

É claro que isso não permitia acompanhar as oscilações instantâneas, — mas dava uma ideia geral da situação durante um longo backup, ou durante a gravação de um DVD, — bem como da efetividade do estabilizador de voltagens perante oscilações da rede doméstica (monofásica) ao longo do dia, causadas até há poucos anos por equipamentos de terceiros (serras industriais etc.) na vizinhança.

Para facilitar, copiei o resultado do sensors para o Kate, e verifiquei a posição das informações que eu queria obter — um truque dos tempos do jornalismo em máquinas de escrever manuais, em “laudas” de papel com marcação de linhas e colunas:

         1         2         3         4         5         6
1234567890123456789012345678901234567890123456789012345678901
                   |      |
Vcore Voltage:      +1.19 V  (min =  +0.85 V, max =  +1.60 V)
 +3.3 Voltage:      +3.33 V  (min =  +2.97 V, max =  +3.63 V)
 +5 Voltage:        +5.02 V  (min =  +4.50 V, max =  +5.50 V)
 +12 Voltage:      +12.30 V  (min = +10.20 V, max = +13.80 V)

No novo hardware ainda não encontrei as Tensões — nem no hwmon, nem no $ sensors, nem no Xsensors — e retirei esse bloco do Conky, até descobrir alguma solução (se houver).

Adaptações no hardware i5-9400

Aproveitei para re-distribuir as temperaturas em 3 colunas, e aliviar a altura total do Conky — afinal, agora são 6 núcleos.

Agora, openSUSE e Arch alternam hwmon0, hwmon1 e hwmon2, — felizmente em apenas 3 combinações, até o momento: — 1 e 0; — ou 0 e 1; — ou 0 e 2.

Para saber quais hwmon usar, aninhei um IF / ELSE / ENDIF dentro do outro — testando onde está “temp1_label”, que é único:

${if_existing /sys/class/hwmon/hwmon0/temp1_label}\
MB       ${alignr}${hwmon 1 temp 1}°C                         \
CPU       ${alignr}${hwmon 0 temp 1}°C

Core0 ${alignr}${hwmon 0 temp 2}°C          \
Core1 ${alignr}${hwmon 0 temp 3}°C          \
Core2 ${alignr}${hwmon 0 temp 4}°C
Core3 ${alignr}${hwmon 0 temp 5}°C          \
Core4 ${alignr}${hwmon 0 temp 6}°C          \
Core5 ${alignr}${hwmon 0 temp 7}°C\
${else}\
${if_existing /sys/class/hwmon/hwmon1/temp1_label}\
MB       ${alignr}${hwmon 0 temp 1}°C                         \
CPU       ${alignr}${hwmon 1 temp 1}°C

Core0 ${alignr}${hwmon 1 temp 2}°C          \
Core1 ${alignr}${hwmon 1 temp 3}°C          \
Core2 ${alignr}${hwmon 1 temp 4}°C
Core3 ${alignr}${hwmon 1 temp 5}°C          \
Core4 ${alignr}${hwmon 1 temp 6}°C          \
Core5 ${alignr}${hwmon 1 temp 7}°C\
${else}\
MB       ${alignr}${hwmon 0 temp 1}°C                         \
CPU       ${alignr}${hwmon 2 temp 1}°C

Core0 ${alignr}${hwmon 2 temp 2}°C          \
Core1 ${alignr}${hwmon 2 temp 3}°C          \
Core2 ${alignr}${hwmon 2 temp 4}°C
Core3 ${alignr}${hwmon 2 temp 5}°C          \
Core4 ${alignr}${hwmon 2 temp 6}°C          \
Core5 ${alignr}${hwmon 2 temp 7}°C\
${endif}\
${endif}

Note que tive de empilhar o código no arquivo de configuração, pois eu não conseguia lidar com 3 colunas em linhas tão extensas — e para isso abusei de espaços em branco + barras invertidas.

Também não encontrei a velocidade da ventoinha do Cooler, mas deixei o lugar reservado, para não desmanchar o arranjo visual. — Por isso, deixei essa parte fora dos IF / ELSE / ENDIF, pois Freq não depende de hwmon.

Rede e Disk I/O no Conky

O bloco de informações de Rede repete a organização visual já usada nos gráficos de uso de CPU, — Download e Upload lado a lado, com informações numéricas acima e abaixo.

Com o tempo, agreguei leitura e gravação em disco (Disk I/O) — usando toda a largura de 270 pixels — o que cobre 2 minutos e meio:

Down: ${downspeed eno1}/s ${alignr}Up: ${upspeed eno1}/s
${downspeedgraph eno1 30,120} $alignr${upspeedgraph eno1 30,120}
Total ${totaldown eno1} ${alignr}Total ${totalup eno1}
${alignc} 270’’
${diskiograph 30,270}
Disk I/O ${alignr}${diskio}
$hr

Manter os gráficos de Rede alinhados com os gráficos de CPU 1~6 facilita identificar alguns eventos, pela sincronização no tempo.

Em algumas distros, a rede era “eth0”; em outras, “enp1s0”. — No novo hardware, “eno1” em várias distros, e “eth0” no PCLinuxOS. — Para saber qual a rede, em cada distro, execute o comando $ ip address show.

Monitorar separadamente as atividades em vários SSDs / HDDs exigiria muito espaço, para pouca utilidade — por isso, me contento em monitorar o conjunto.

Bloco de Processos no Conky

O bloco de Processos que mais usam CPU é clássico, — vem na configuração original, — só ampliei de 4 para 8:

$hr
Processos         ${alignr}PID      CPU    Mem
                                  ${alignr}%        %
 ${top name 1} ${alignr}${top pid 1}   ${top cpu 1}   ${top mem 1}
 ${top name 2} ${alignr}${top pid 2}   ${top cpu 2}   ${top mem 2}
 ${top name 3} ${alignr}${top pid 3}   ${top cpu 3}   ${top mem 3}
 ${top name 4} ${alignr}${top pid 4}   ${top cpu 4}   ${top mem 4}
 ${top name 5} ${alignr}${top pid 5}   ${top cpu 5}   ${top mem 5}
 ${top name 6} ${alignr}${top pid 6}   ${top cpu 6}   ${top mem 6}
 ${top name 7} ${alignr}${top pid 7}   ${top cpu 7}   ${top mem 7}
 ${top name 8} ${alignr}${top pid 8}   ${top cpu 8}   ${top mem 8}
$hr

No novo hardware, cheguei a desdobrar um outro bloco semelhante, com os Processos que mais usam Memória RAM — mas não vi muita utilidade, e eliminei após algum tempo:

$hr
Proc              ${alignr}PID      Mem
                                  ${alignr}        %
 ${top_mem name 1} ${alignr}${top_mem pid 1}   ${top_mem mem 1}
 ${top_mem name 2} ${alignr}${top_mem pid 2}   ${top_mem mem 2}
 ${top_mem name 3} ${alignr}${top_mem pid 3}   ${top_mem mem 3}
 ${top_mem name 4} ${alignr}${top_mem pid 4}   ${top_mem mem 4}
 ${top_mem name 5} ${alignr}${top_mem pid 5}   ${top_mem mem 5}
 ${top_mem name 6} ${alignr}${top_mem pid 6}   ${top_mem mem 6}
 ${top_mem name 7} ${alignr}${top_mem pid 7}   ${top_mem mem 7}
 ${top_mem name 8} ${alignr}${top_mem pid 8}   ${top_mem mem 8}
$hr

Versões do KDE e informações de hardware no Conky

As versões do Plasma, Qt, Frameworks, Aplicativos KDE — bem como informações básicas do hardware — podem ser obtidas por comandos do próprio KDE e pelo Neofetch. — Algumas linhas do código geram 2 linhas na exibição do Conky:

${execi 600 neofetch  --de_version on --stdout | grep "DE:"}
${execi 600 kf5-config --version | grep 'Qt\|KDE'}
${execi 600 konsole -v} ${alignr 60}${execi 600 kate -v}
${execi 600 dolphin -v} ${alignr 60}${execi 600 gwenview -v}

${execi 600 neofetch  --de_version on --stdout | grep "CPU\|GPU"}

No MX Linux, tive de recorrer também ao Screenfetch:

${execi 600 screenfetch -n -N | grep "DE"}
${execi 600 konsole -v} ${alignr 60}${execi 600 kate -v}
${execi 600 dolphin -v} ${alignr 60}${execi 600 gwenview -v}

${execi 600 neofetch  --de_version on --stdout | grep "CPU\|GPU"}

Uso das partições, no Conky

O bloco de uso de partições divide-se em 2 partes. — Na primeira, partições de dados, com bastante largura para indicar não só o espaço usado, como também o espaço total, — pois têm tamanhos diferentes, que nunca consigo decorar.

Na segunda parte, cada linha precisa ser mais bem aproveitada, para indicar tanto a partição-raiz quanto a partição “home” de cada distro instalada.

Neste caso, sei de cabeça que a partição-raiz do openSUSE tem 50 GiB e as dos demais têm 30 GiB — enquanto as partições-home têm 15 GiB:

${diskiograph 30,240}
Disk I/O ${alignr}${diskio}      ${color gray59}.${color}
$hr
Sites     ${alignr}${fs_used /run/media/flavio/Sites}  /  ${fs_size /run/media/flavio/Sites}  ${alignr}${fs_bar 6,50 /run/media/flavio/Sites}
Works     ${alignr}${fs_used /run/media/flavio/Works}  /   ${fs_size /run/media/flavio/Works}  ${alignr}${fs_bar 6,50 /run/media/flavio/Works}
Warehouse ${alignr}${fs_used /run/media/flavio/Warehouse}  /   ${fs_size /run/media/flavio/Warehouse}  ${alignr}${fs_bar 6,50 /run/media/flavio/Warehouse}
Depot1    ${alignr}${fs_used /run/media/flavio/Depot1}  /   ${fs_size /run/media/flavio/Depot1}  ${alignr}${fs_bar 6,50 /run/media/flavio/Depot1}
Depot2    ${alignr}${fs_used /run/media/flavio/Depot2}  /   ${fs_size /run/media/flavio/Depot2}  ${alignr}${fs_bar 6,50 /run/media/flavio/Depot2}
$hr
01 openSUSE ${alignr}${fs_used /run/media/flavio/Linux1} ${alignr}${fs_bar 6,40 /run/media/flavio/Linux1}  ${alignr}${fs_used /run/media/flavio/Home1} ${alignr}${fs_bar 6,40 /run/media/flavio/Home1}
02 Arch     ${alignr}${fs_used /run/media/flavio/Linux2} ${alignr}${fs_bar 6,40 /run/media/flavio/Linux2}  ${alignr}${fs_used /run/media/flavio/Home2} ${alignr}${fs_bar 6,40 /run/media/flavio/Home2}
03 Debian   ${alignr}${fs_used /run/media/flavio/Linux3} ${alignr}${fs_bar 6,40 /run/media/flavio/Linux3}  ${alignr}${fs_used /run/media/flavio/Home3} ${alignr}${fs_bar 6,40 /run/media/flavio/Home3}
04 Fedora   ${alignr}${fs_used /run/media/flavio/Linux4} ${alignr}${fs_bar 6,40 /run/media/flavio/Linux4}  ${alignr}${fs_used /run/media/flavio/Home4} ${alignr}${fs_bar 6,40 /run/media/flavio/Home4}
05 Neon     ${alignr}${fs_used /run/media/flavio/Linux5} ${alignr}${fs_bar 6,40 /run/media/flavio/Linux5}  ${alignr}${fs_used /run/media/flavio/Home5} ${alignr}${fs_bar 6,40 /run/media/flavio/Home5}
06 PCLinuxOS${alignr}${fs_used /run/media/flavio/Linux6} ${alignr}${fs_bar 6,40 /run/media/flavio/Linux6}  ${alignr}${fs_used /run/media/flavio/Home6} ${alignr}${fs_bar 6,40 /run/media/flavio/Home6}
07 Mageia   ${alignr}${fs_used /run/media/flavio/Linux7} ${alignr}${fs_bar 6,40 /run/media/flavio/Linux7}  ${alignr}${fs_used /run/media/flavio/Home7} ${alignr}${fs_bar 6,40 /run/media/flavio/Home7}
08 Mint     ${alignr}${fs_used /run/media/flavio/Linux8} ${alignr}${fs_bar 6,40 /run/media/flavio/Linux8}  ${alignr}${fs_used /run/media/flavio/Home8} ${alignr}${fs_bar 6,40 /run/media/flavio/Home8}
09 Void     ${alignr}${fs_used /run/media/flavio/Linux9} ${alignr}${fs_bar 6,40 /run/media/flavio/Linux9}  ${alignr}${fs_used /run/media/flavio/Home9} ${alignr}${fs_bar 6,40 /run/media/flavio/Home9}
10 Manjaro  ${alignr}${fs_used /} ${alignr}${fs_bar 6,40 /}  ${alignr}${fs_used /home} ${alignr}${fs_bar 6,40 /home}
11 Slackware${alignr}${fs_used /run/media/flavio/Linux11} ${alignr}${fs_bar 6,40 /run/media/flavio/Linux11}  ${alignr}${fs_used /run/media/flavio/Home11} ${alignr}${fs_bar 6,40 /run/media/flavio/Home11}
12 MX       ${alignr}${fs_used /run/media/flavio/Linux12} ${alignr}${fs_bar 6,40 /run/media/flavio/Linux12}  ${alignr}${fs_used /run/media/flavio/Home12} ${alignr}${fs_bar 6,40 /run/media/flavio/Home12}
#  --- for each distro, replace its own line with: ---
#  DISTRO    ${alignr}${fs_used /} ${alignr}${fs_bar 6,40 /}  ${alignr}${fs_used /home} ${alignr}${fs_bar 6,40 /home}
$hr

Em cada distro, é necessário fazer 2 adaptações:

  • Usar “/” e “/home” para suas próprias partições.
  • Ajustar os demais caminhos (path), — pois em algumas distros uso /media/LABEL, enquanto em outras uso “/run/media/$USER/LABEL”, — o que é muito fácil, usando CTRL-R + “Replace all”, no Kate

A numeração das distros (inclusive hostname) e das etiquetas (label) das partições, ajuda muito, — e essa indicação no Conky também é minha referência mais rápida para consulta, no dia-a-dia.

\• Resultado final

Esta (abaixo) é a versão mais recente do meu “modelo” de arquivo de configuração do Conky, para até 12 sistemas Linux instalados em paralelo (dualboot), no computador atual:

Conky - 2022-02-12:

conky.config = {
 use_xft = true,
 xftalpha = .8,
 font = 'verdana:size=8',
 update_interval = 1,
 total_run_times = 0,

 -- background = true,

 own_window = true,
 own_window_type = 'normal',
 own_window_transparent = true,
 own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',
 own_window_colour = '000000',
 own_window_argb_visual = true,
 own_window_argb_value = 0,

 double_buffer = true,

 maximum_width = 270,
 minimum_width = 270,

 draw_shades= true,
 default_color= 'white',
 default_shade_color= 'black',

 -- draw_graph_borders= true,
 -- show_graph_range = true,
 show_graph_scale = true,

 alignment = 'bottom_left',
 gap_x = 10,
 gap_y = 41,
 no_buffers = true,
 text_buffer_size = 2048,
 cpu_avg_samples = 2,
 net_avg_samples = 2,
 override_utf8_locale = true,

}

conky.text = [[
${font verdana:pixelsize=32}openSUSE${font}
$hr
${alignc}${font verdana:size=32}${time %H:%M}${font}
${alignc}${font verdana:pixelsize=18}${time %a, %d %b. %Y}${font}

${alignr}up  ${uptime}
$hr
${alignr}${nodename}
${execi 600 lsb_release -ds}
### Slackware ### ${execi 600 cat /etc/slackware-version}
###      Arch ### ${execi 600 hostnamectl | grep Operating | cut -c 21-30}
${sysname} ${kernel} ${alignr}${execi 600 ps --no-headers -o comm 1} ${execi 600 systemctl --version | grep systemd | cut -c 9-11}

${alignc} 120’’
${cpugraph cpu1 30,120} ${alignr}${cpugraph cpu2 30,120}
CPU1: ${cpu cpu1}% ${alignr}CPU2: ${cpu cpu2}%
${cpugraph cpu3 30,120} ${alignr}${cpugraph cpu4 30,120}
CPU3: ${cpu cpu3}% ${alignr}CPU4: ${cpu cpu4}%
${cpugraph cpu5 30,120} ${alignr}${cpugraph cpu6 30,120}
CPU5: ${cpu cpu5}% ${alignr}CPU6: ${cpu cpu6}%

${alignc}CPU  ${cpubar 6,120}  $cpu%

Mem  ${alignr}${mem} / ${memmax}  ${alignr}${membar 6,90}
Swap ${alignr}${swap} / ${swapmax}  ${alignr}${swapbar 6,90}

${if_existing /sys/class/hwmon/hwmon0/temp1_label}\
MB       ${alignr}${hwmon 1 temp 1}°C                         \
CPU       ${alignr}${hwmon 0 temp 1}°C

Core0 ${alignr}${hwmon 0 temp 2}°C          \
Core1 ${alignr}${hwmon 0 temp 3}°C          \
Core2 ${alignr}${hwmon 0 temp 4}°C
Core3 ${alignr}${hwmon 0 temp 5}°C          \
Core4 ${alignr}${hwmon 0 temp 6}°C          \
Core5 ${alignr}${hwmon 0 temp 7}°C\
${else}\
${if_existing /sys/class/hwmon/hwmon1/temp1_label}\
MB       ${alignr}${hwmon 0 temp 1}°C                         \
CPU       ${alignr}${hwmon 1 temp 1}°C

Core0 ${alignr}${hwmon 1 temp 2}°C          \
Core1 ${alignr}${hwmon 1 temp 3}°C          \
Core2 ${alignr}${hwmon 1 temp 4}°C
Core3 ${alignr}${hwmon 1 temp 5}°C          \
Core4 ${alignr}${hwmon 1 temp 6}°C          \
Core5 ${alignr}${hwmon 1 temp 7}°C\
${else}\
MB       ${alignr}${hwmon 0 temp 1}°C                         \
CPU       ${alignr}${hwmon 2 temp 1}°C

Core0 ${alignr}${hwmon 2 temp 2}°C          \
Core1 ${alignr}${hwmon 2 temp 3}°C          \
Core2 ${alignr}${hwmon 2 temp 4}°C
Core3 ${alignr}${hwmon 2 temp 5}°C          \
Core4 ${alignr}${hwmon 2 temp 6}°C          \
Core5 ${alignr}${hwmon 2 temp 7}°C\
${endif}\
${endif}

Fan  ${alignr}${hwmon 1 fan 1} rpm                 Freq. ${alignr} $freq   MHz

Down: ${downspeed eno1}/s ${alignr}Up: ${upspeed eno1}/s
${downspeedgraph eno1 30,120} $alignr${upspeedgraph eno1 30,120}
Total ${totaldown eno1} ${alignr}Total ${totalup eno1}
${alignc} 270’’
${diskiograph 30,270}
Disk I/O ${alignr}${diskio}
$hr
Proc                 ${alignr}PID     CPU
                     ${alignr} %
  ${top name 1} ${alignr}${top pid 1}  ${top cpu 1}
  ${top name 2} ${alignr}${top pid 2}  ${top cpu 2}
  ${top name 3} ${alignr}${top pid 3}  ${top cpu 3}
  ${top name 4} ${alignr}${top pid 4}  ${top cpu 4}
  ${top name 5} ${alignr}${top pid 5}  ${top cpu 5}
  ${top name 6} ${alignr}${top pid 6}  ${top cpu 6}
  ${top name 7} ${alignr}${top pid 7}  ${top cpu 7}
  ${top name 8} ${alignr}${top pid 8}  ${top cpu 8}
$hr
]]

Conky (2)

conky.config = {
 use_xft = true,
 xftalpha = .8,
 font = 'verdana:size=8',
 update_interval = 10,
 total_run_times = 0,

 -- background = true,

 own_window = true,
 own_window_type = 'normal',
 own_window_transparent = true,
 own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',
 own_window_colour = '000000',
 own_window_argb_visual = true,
 own_window_argb_value = 0,

 double_buffer = true,

 maximum_width = 270,
 minimum_width = 270,

 draw_shades= true,
 default_color= 'white',
 default_shade_color= 'black',

 -- draw_graph_borders= true,
 -- show_graph_range = true,
 show_graph_scale = true,

 alignment = 'bottom_left',
 gap_x = 300,
 gap_y = 51,
 no_buffers = true,
 text_buffer_size = 2048,
 cpu_avg_samples = 2,
 net_avg_samples = 2,
 override_utf8_locale = true,

}

conky.text = [[
Mem:               ${alignr 100}up  ${uptime}

Total - Available  ${alignr 100}${exec bash MemInfo.sh; cat MemInfo.txt}
Conky (Mem)        ${alignr 100}${mem}
free               ${alignr 100}${exec free -m | grep Mem | cut -c 25-35} MiB
top                ${alignr 100}${exec top -E m -b -n 1  | grep buff | cut -c 41-50} MiB
neofetch           ${alignr 100}${exec neofetch  --stdout | grep "Memory" | grep -o -P '.{0,0}Memory.{0,9}' | cut -b 8-12} MiB
htop               ${alignr 100}${exec echo q | htop | aha --line-fix | html2text | grep -o -P '.{0,6}/15' | cut -b 1-6}iB
inxi               ${alignr 100}${exec inxi --memory-short | grep -o -P '.{0,0}used.{0,14}' | cut -b 6-14}
screenfetch        ${alignr 100}${exec screenfetch -n -N | grep -o -P '.{0,0}RAM.{0,9}' | cut -b 5-12}

${execi 600 neofetch  --de_version on --stdout | grep "DE:"}
${execi 600 kf5-config --version | grep 'Qt\|KDE'}
${execi 600 konsole -v} ${alignr 60}${execi 600 kate -v}
${execi 600 dolphin -v} ${alignr 60}${execi 600 gwenview -v}

${execi 600 neofetch  --de_version on --stdout | grep "CPU\|GPU"}
$hr
Sites    ${alignr}${fs_used /run/media/flavio/Sites}  /  ${fs_size /run/media/flavio/Sites}  ${alignr}${fs_bar 6,50 /run/media/flavio/Sites}
Works    ${alignr}${fs_used /run/media/flavio/Works}  /   ${fs_size /run/media/flavio/Works}  ${alignr}${fs_bar 6,50 /run/media/flavio/Works}
Warehouse    ${alignr}${fs_used /run/media/flavio/Warehouse}  /   ${fs_size /run/media/flavio/Warehouse}  ${alignr}${fs_bar 6,50 /run/media/flavio/Warehouse}
Depot1 ${alignr}${fs_used /run/media/flavio/Depot1}  /   ${fs_size /run/media/flavio/Depot1}  ${alignr}${fs_bar 6,50 /run/media/flavio/Depot1}
Depot2 ${alignr}${fs_used /run/media/flavio/Depot2}  /   ${fs_size /run/media/flavio/Depot2}  ${alignr}${fs_bar 6,50 /run/media/flavio/Depot2}
$hr
01 openSUSE ${alignr}${fs_used /} ${alignr}${fs_bar 6,40 /}  ${alignr}${fs_used /home} ${alignr}${fs_bar 6,40 /home}
02 Arch     ${alignr}${fs_used /run/media/flavio/Linux2} ${alignr}${fs_bar 6,40 /run/media/flavio/Linux2}  ${alignr}${fs_used /run/media/flavio/Home2} ${alignr}${fs_bar 6,40 /run/media/flavio/Home2}
03 Debian   ${alignr}${fs_used /run/media/flavio/Linux3} ${alignr}${fs_bar 6,40 /run/media/flavio/Linux3}  ${alignr}${fs_used /run/media/flavio/Home3} ${alignr}${fs_bar 6,40 /run/media/flavio/Home3}
04 Fedora   ${alignr}${fs_used /run/media/flavio/Linux4} ${alignr}${fs_bar 6,40 /run/media/flavio/Linux4}  ${alignr}${fs_used /run/media/flavio/Home4} ${alignr}${fs_bar 6,40 /run/media/flavio/Home4}
05 Neon     ${alignr}${fs_used /run/media/flavio/Linux5} ${alignr}${fs_bar 6,40 /run/media/flavio/Linux5}  ${alignr}${fs_used /run/media/flavio/Home5} ${alignr}${fs_bar 6,40 /run/media/flavio/Home5}
06 PCLinuxOS${alignr}${fs_used /run/media/flavio/Linux6} ${alignr}${fs_bar 6,40 /run/media/flavio/Linux6}  ${alignr}${fs_used /run/media/flavio/Home6} ${alignr}${fs_bar 6,40 /run/media/flavio/Home6}
07 Mageia   ${alignr}${fs_used /run/media/flavio/Linux7} ${alignr}${fs_bar 6,40 /run/media/flavio/Linux7}  ${alignr}${fs_used /run/media/flavio/Home7} ${alignr}${fs_bar 6,40 /run/media/flavio/Home7}
08          ${alignr}${fs_used /run/media/flavio/Linux8} ${alignr}${fs_bar 6,40 /run/media/flavio/Linux8}  ${alignr}${fs_used /run/media/flavio/Home8} ${alignr}${fs_bar 6,40 /run/media/flavio/Home8}
09 Void     ${alignr}${fs_used /run/media/flavio/Linux9} ${alignr}${fs_bar 6,40 /run/media/flavio/Linux9}  ${alignr}${fs_used /run/media/flavio/Home9} ${alignr}${fs_bar 6,40 /run/media/flavio/Home9}
10 Manjaro  ${alignr}${fs_used /run/media/flavio/Linux10} ${alignr}${fs_bar 6,40 /run/media/flavio/Linux10}  ${alignr}${fs_used /run/media/flavio/Home10} ${alignr}${fs_bar 6,40 /run/media/flavio/Home10}
11 Slackware${alignr}${fs_used /run/media/flavio/Linux11} ${alignr}${fs_bar 6,40 /run/media/flavio/Linux11}  ${alignr}${fs_used /run/media/flavio/Home11} ${alignr}${fs_bar 6,40 /run/media/flavio/Home11}
12 MX       ${alignr}${fs_used /run/media/flavio/Linux12} ${alignr}${fs_bar 6,40 /run/media/flavio/Linux12}  ${alignr}${fs_used /run/media/flavio/Home12} ${alignr}${fs_bar 6,40 /run/media/flavio/Home12}
# 13 PCLinuxOS${alignr}${fs_used /run/media/flavio/Linux13} ${alignr}${fs_bar 6,40 /run/media/flavio/Linux13}  ${alignr}${fs_used /run/media/flavio/Home6} ${alignr}${fs_bar 6,40 /run/media/flavio/Home6}
#  --- for each distro, replace its own line with: ---
#  DISTRO    ${alignr}${fs_used /} ${alignr}${fs_bar 6,40 /}  ${alignr}${fs_used /home} ${alignr}${fs_bar 6,40 /home}
$hr
]]

Meu modelo anterior, — no computador antigo:

Conky no 2 x Core2 Duo - versão 2019-11-26

Antigas ferramentas

Conky “original”, pronto para ser personalizado (2016)

Comecei a usar o Conky, — para monitorar o hardware e o sistema, — 3 dias após a instalação do Kubuntu 16.04 LTS “Xenial”, em Abril 2016.

Por isso, não chegou a contribuir para detectar e diagnosticar o surto de uso de 100% de CPU causado pelo Baloo, logo na primeira hora do Kubuntu 16.04 instalado.

Até então, eu usava KSysguard (ou o Gnome System Monitor) + Psensor, desde a descoberta de um aquecimento por acúmulo de sujeira no Cooler da CPU, em Nov. 2015. — Mais tarde, também usei Xsensors, para monitorar as tensões elétricas (Volt), quando precisei recorrer a uma fonte provisória durante alguns dias.

Não que, antes de Nov. 2015, eu não tivesse problemas desse tipo, — e piores, pois sem monitoramento, eles se acumulavam, sem que eu percebesse: — Antes de 2015, ainda no tempo do Windows, ele começou a reiniciar de súbito. Depois de alguns dias, abri o gabinete e flagrei a ventoinha do Cooler parada, sabe-se lá desde quanto tempo antes. Portanto, eu devia ter iniciado esse monitoramente muito antes de 2016!
Uso intensivo de CPU (50%) e aquecimento rápido ao abrir o Psensor em um Debian com Xfce

Acontece que KSysguard (KDE) e Gnome System Monitor são relativamente “pesados”, — “consomem” Memória RAM, interferindo naquilo que se quer medir, — o que é tudo que um “medidor” não deve fazer.

Além disso, KSysguard e Gnome System Monitor usavam parâmetros diferentes.

O KSysguard sempre indicava menor uso de RAM do que o Conky, — ao passo que o Gnome System Monitor sempre indicava maior uso de RAM que o Conky, — o que os tornava inúteis para comparação de distros com diferentes ambientes e ferramentas.

Enfim, usar o KSysguard no Gnome, MATE, Xfce exige rodar bibliotecas estranhas a eles, o que falseia a medição da distro + DE, — e vice-versa, usar o Gnome System Monitor no KDE.

Quanto ao Xsensors e o Psensor, não se encontram nos repositórios-padrão de todas as distros.

Por fim, em um Debian com vários ambientes, constatei aquecimento a olhos vistos, causado pela simples abertura do Psensor no Xfce. — Logo ao abrir, o Psensor usava 50% de CPU, — e ao final de 10 minutos a Temperatura do Core0 subia a 58ºC.

E bastava minimizar o Psensor, para cessar o despautério.

Tudo isso afetou minhas primeiras medições de uso de Memória RAM sem PIM, Baloo, Akonadi, em 2016. — Só foi possível obter medidas mais reais, após eliminar a abertura automática do KSysguard, Psensor, Xsensors (e Dolphin!) no início de cada sessão. — O mais próximo da realidade é reiniciar o computador e iniciar qualquer sessão apenas com o Conky (além dos processos básicos do sistema e do ambiente gráfico).

Também impediu de obter números confiáveis, ao comparar vários ambientes e/ou gerenciadores de janelas, — KDE, Lumina, Xfce, Openbox, LXQt-Openbox, — na segunda instalação do Slackware, em 2017.

Aprendizado e ajustes do Conky, de 2016 a 2018

Uso inicial de Memória RAM

Registro do uso inicial de Memória RAM, 1 minuto após o pico inicial de CPU

Apenas para constar, o uso inicial de Memória RAM, — com Restart + Login automático, — nos testes com o Slackware que fiz nos dias 29 e 30 Dezembro 2018, foi:

   18:33 KDE     382 MiB
   13:06 Xfce    265 MiB -> Panel Warning -> 275 MiB
   13:11 LXQt    242 MiB
   13:17 Lumina  212 MiB
   13:21 KDE     385 MiB
   13:41 Lumina  213 MiB
   14:08 KDE     387 MiB
   17:51 Openbox 150 MiB - without Restart (logout KDE --> login Openbox)

Nada muito conclusivo, pois o Xfce e o LXQt logo foram vitimados por erros de configuração, — o que invalidou novas medidas, para tirar uma média, — e o Openbox não chegou a ser testado com Restart.

Mesmo assim, ainda foi um pouco mais exato (exceto Openbox) do que na instalação anterior do Slackware (2017), — quando as medidas foram feitas usando aplicativos desiguais (htop, em Terminais diferentes), — e com mais intervenção manual:

   KDE          402 ~ 412 MiB
   Lumina       238       MiB
   Xfce         281 ~ 302 MiB
   LXQt-Openbox 236       MiB
   Openbox       99 ~ 104 MiB

Em todo caso, o objetivo agora não era fazer medições, — isso foi subproduto, — mas conferir alguns modos de iniciar o Conky automaticamente, em diferentes DEs / WMs.

Características da distros, e uso de RAM após carregar a sessão KDE (29 Dez. 2018)

No entanto, é um exemplo do Conky como ferramenta para registro do uso inicial de Memória RAM, — e esclarece algumas das opções adotadas aqui. — Uma descrição mais detalhada desses registros está no relato do desastre e conserto do Devuan 2 KDE:

Os gráficos de uso de CPU são de 2 minutos (120 pixels), — e o final da passagem do pequeno pico inicial pelo centro (↓) assinala 1 minuto após as notificações de carregamento completo do KDE, conexão de Rede etc.

Naturalmente, essas comparações só adquiriram maior validade após desativar (ou eliminar) todos os mecanismos automáticos de “verificação de atualizações”, — que variam, de uma distro para outra (mintUpdate, mgaapplet, Discover, PackageKit etc.), — e que distorcem o quadro inicial, pois em alguns casos começam a rodar ainda durante o Boot (Debian); e em outros casos, só 5 ou 10 minutos após o início da sessão KDE (Mint, Mageia).

Desde então, passei a verificar atualizações manualmente, por comando, no início ou no final do dia, — ou em todas as distros, uma após outra, uma vez por semana.

Apenas no openSUSE, isto não foi suficiente, — pois logo no início da primeira sessão do dia também roda tarefas de manutenção do Snapper e BtrFS (falta adiá-las por 5 ou 10 minutos). — E no KDE Neon o problema voltou a ocorrer, com a insistente notificação de nova versão (base Ubuntu 18.04).

Efeitos de Widgets na RAM

O widget “Weather”, — que de início, eu usava apenas no Kubuntu 16.04 e no KDE Neon, — foi instalado nas outras 10 distros em 1º Jan. 2018, para tornar consistente a medição do uso inicial de Memória RAM, em todas elas.

O primeiro efeito, claro, foi aumentar o uso inicial de Memória RAM em cerca de 40 MiB, ou um pouco mais.

Observações posteriores mostraram que essa pequena atividade adicional de CPU, — e consequente aumento de uso inicial de RAM, — diminui após 5 a 8 minutos uptime (desde o “Enter” no Grub), aproximando-se um pouco mais dos valores observados até o final de 2018 (+15 ~ 25 MiB).

Tempos depois, de 19 a 21 Abril 2019, instalei também o widget “Moon phase” (Gealach) em todas as distros, — o que causou mais um pequeno aumento no uso inicial de Memória RAM. — Portanto, os dados só podem ser comparados dentro de cada época (sem Widgets, ou só com Weather, ou com ambos).

Referências

Rode man conky no Terminal para consultar um Manual com 2.200 linhas

Embora se encontre vasto material de referência sobre o Conky na web, a documentação que se encontra no próprio computador é a que está mais à mão, — e por princípio, deve ser a mais compatível com a versão instalada.

O Manual completo do Conky, com mais de 2.200 linhas, pode ser lido ou consultado pelo comando man conky no Terminal.

Documentação em /usr/share/doc/conky-all/html/, nas distros *buntu

Ao instalar conky-all nas distros .deb, a pasta /usr/share/doc/conky-all/html/ oferece amplo material de consulta em 4 páginas HTML:

  • config_settings.html
  • docs.html
  • lua.html
  • variables.html

O caminho (path) para esses documentos pode variar, de uma distro para outra, — ou caso se opte por instalar conky-std em distros .deb:

**************************************
********** KDE Neon (16.04) **********
**************************************

flavio@Linux1:~$ ls -oR /usr/share/doc/conky*
/usr/share/doc/conky-all:
total 48
-rw-r--r-- 1 root 3713 Nov 18  2015 AUTHORS.gz
-rw-r--r-- 1 root 1992 Jan  6  2016 changelog.Debian.gz
-rw-r--r-- 1 root 2866 Nov 18  2015 conky.conf
-rw-r--r-- 1 root 1919 Nov 18  2015 conky_no_x11.conf
-rwxr-xr-x 1 root 5274 Nov 18  2015 convert.lua
-rw-r--r-- 1 root 6120 Jul  1  2015 copyright
drwxr-xr-x 2 root 4096 Mar 22  2017 html
-rw-r--r-- 1 root 2633 Jul  1  2015 NEWS.Debian.gz
-rw-r--r-- 1 root 3007 Nov 18  2015 README.md
-rw-r--r-- 1 root  260 Nov 18  2015 TODO

/usr/share/doc/conky-all/html:
total 348
-rw-r--r-- 1 root  22262 Jan  6  2016 config_settings.html
-rw-r--r-- 1 root 210946 Jan  6  2016 docs.html
-rw-r--r-- 1 root   6193 Jan  6  2016 lua.html
-rw-r--r-- 1 root 109064 Jan  6  2016 variables.html

******************************
********** Mageia 6 **********
******************************

flavio@Linux1:~$ ls -oR /media/flavio/Linux2/usr/share/doc/conky*
/media/flavio/Linux2/usr/share/doc/conky:
total 40
-rw-r--r-- 1 root 8665 Dez  4  2016 AUTHORS
-rw-r--r-- 1 root 5303 Dez  4  2016 convert.lua
-rw-r--r-- 1 root  474 Dez  4  2016 COPYING
drwxr-xr-x 2 root 4096 Mar 20  2017 gedit
drwxr-xr-x 2 root 4096 Mar 20  2017 nano
-rw-r--r-- 1 root 3716 Dez  4  2016 README.md
drwxr-xr-x 4 root 4096 Mar 20  2017 vim

/media/flavio/Linux2/usr/share/doc/conky/gedit:
total 20
-rw-r--r-- 1 root 12498 Dez  4  2016 conky.lang
-rw-r--r-- 1 root  1669 Dez  4  2016 README.md

/media/flavio/Linux2/usr/share/doc/conky/nano:
total 12
-rw-r--r-- 1 root 6475 Dez  4  2016 conky.nanorc
-rw-r--r-- 1 root  112 Dez  4  2016 README

/media/flavio/Linux2/usr/share/doc/conky/vim:
total 12
drwxr-xr-x 2 root 4096 Mar 20  2017 ftdetect
-rw-r--r-- 1 root  253 Dez  4  2016 README
drwxr-xr-x 2 root 4096 Mar 20  2017 syntax

/media/flavio/Linux2/usr/share/doc/conky/vim/ftdetect:
total 4
-rw-r--r-- 1 root 162 Dez  4  2016 conkyrc.vim

/media/flavio/Linux2/usr/share/doc/conky/vim/syntax:
total 8
-rw-r--r-- 1 root 7580 Dez  4  2016 conkyrc.vim
flavio@Linux1:~$ ls -oR /media/flavio/Linux3/usr/share/doc/conky*
/media/flavio/Linux3/usr/share/doc/conky-all:
total 80
-rw-r--r-- 1 root  3784 Fev  7  2018 AUTHORS.gz
-rw-r--r-- 1 root   224 Mai 15  2018 changelog.Debian.amd64.gz
-rw-r--r-- 1 root 11757 Mai 15  2018 changelog.Debian.gz
-rw-r--r-- 1 root 17887 Fev  7  2018 changelog.gz
-rw-r--r-- 1 root  2866 Fev  7  2018 conky.conf
-rw-r--r-- 1 root  1919 Fev  7  2018 conky_no_x11.conf
-rw-r--r-- 1 root  5303 Fev  7  2018 convert.lua
-rw-r--r-- 1 root  6121 Fev 28  2018 copyright
drwxr-xr-x 2 root  4096 Mai 16  2018 html
-rw-r--r-- 1 root  2633 Jul  1  2015 NEWS.Debian.gz
-rw-r--r-- 1 root  3716 Fev  7  2018 README.md
-rw-r--r-- 1 root   260 Fev  7  2018 TODO

************************************
********** Debian testing **********
************************************

/media/flavio/Linux3/usr/share/doc/conky-all/html:
total 368
-rw-r--r-- 1 root  22652 Mai 15  2018 config_settings.html
-rw-r--r-- 1 root 224777 Mai 15  2018 docs.html
-rw-r--r-- 1 root   6193 Mai 15  2018 lua.html
-rw-r--r-- 1 root 116854 Mai 15  2018 variables.html
flavio@Linux1:~$ ls -oR /media/flavio/Linux4/usr/share/doc/conky*
/media/flavio/Linux4/usr/share/doc/conky:
total 8
lrwxrwxrwx 1 root   32 Jan  6  2016 changelog.Debian.gz -> ../conky-std/changelog.Debian.gz
-rw-r--r-- 1 root 6120 Jul  1  2015 copyright
lrwxrwxrwx 1 root   27 Jan  6  2016 NEWS.Debian.gz -> ../conky-std/NEWS.Debian.gz

***********************************
********** Kubuntu 16.04 **********
***********************************

/media/flavio/Linux4/usr/share/doc/conky-all:
total 48
-rw-r--r-- 1 root 3713 Nov 18  2015 AUTHORS.gz
-rw-r--r-- 1 root 1992 Jan  6  2016 changelog.Debian.gz
-rw-r--r-- 1 root 2866 Nov 18  2015 conky.conf
-rw-r--r-- 1 root 1919 Nov 18  2015 conky_no_x11.conf
-rw-r--r-- 1 root 5274 Nov 18  2015 convert.lua
-rw-r--r-- 1 root 6120 Jul  1  2015 copyright
drwxr-xr-x 2 root 4096 Abr 27  2016 html
-rw-r--r-- 1 root 2633 Jul  1  2015 NEWS.Debian.gz
-rw-r--r-- 1 root 3007 Nov 18  2015 README.md
-rw-r--r-- 1 root  260 Nov 18  2015 TODO

/media/flavio/Linux4/usr/share/doc/conky-all/html:
total 348
-rw-r--r-- 1 root  22262 Jan  6  2016 config_settings.html
-rw-r--r-- 1 root 210946 Jan  6  2016 docs.html
-rw-r--r-- 1 root   6193 Jan  6  2016 lua.html
-rw-r--r-- 1 root 109064 Jan  6  2016 variables.html

**************************************
********** openSUSE Leap 15 **********
**************************************

flavio@Linux1:~$ ls -oR /media/flavio/Linux5/usr/share/doc/packages/conky*
/media/flavio/Linux5/usr/share/doc/packages/conky:
total 80
-rw-r--r-- 1 root  8656 Dez  4  2016 AUTHORS
-rw-r--r-- 1 root 47261 Dez  4  2016 ChangeLog
-rw-r--r-- 1 root   474 Dez  4  2016 COPYING
-rw-r--r-- 1 root  2931 Dez  4  2016 NEWS
-rw-r--r-- 1 root  3716 Dez  4  2016 README.md
-rw-r--r-- 1 root   401 Abr 30  2018 README.SUSE
-rw-r--r-- 1 root   260 Dez  4  2016 TODO

/media/flavio/Linux5/usr/share/doc/packages/conky-doc:
total 368
-rw-r--r-- 1 root  22652 Dez 18 06:02 config_settings.html
-rw-r--r-- 1 root 224777 Dez 18 06:02 docs.html
-rw-r--r-- 1 root   6193 Dez 18 06:02 lua.html
-rw-r--r-- 1 root 116854 Dez 18 06:02 variables.html

*******************************
********** PCLinuxOS **********
*******************************

flavio@Linux1:~$ ls -oR /media/flavio/Linux6/usr/share/doc/conky*
/media/flavio/Linux6/usr/share/doc/conky:
total 60
-rw-r--r-- 1 root 8728 Fev  7  2018 AUTHORS
-rw-r--r-- 1 root 7940 Fev 26  2018 conkyrc-example
-rw-r--r-- 1 root 5303 Fev  7  2018 convert.lua
-rw-r--r-- 1 root  470 Fev  7  2018 COPYING
drwxr-xr-x 2 root 4096 Fev 26  2018 gedit
drwxr-xr-x 2 root 4096 Fev 26  2018 html
-rw-r--r-- 1 root 1622 Fev  7  2018 LICENSE.BSD
drwxr-xr-x 2 root 4096 Fev 26  2018 nano
-rw-r--r-- 1 root  851 Fev  7  2018 README.cmake
-rw-r--r-- 1 root 3716 Fev  7  2018 README.md
drwxr-xr-x 4 root 4096 Fev 26  2018 vim

/media/flavio/Linux6/usr/share/doc/conky/gedit:
total 20
-rw-r--r-- 1 root 12498 Fev  7  2018 conky.lang
-rw-r--r-- 1 root  1669 Fev  7  2018 README.md

/media/flavio/Linux6/usr/share/doc/conky/html:
total 368
-rw-r--r-- 1 root  22652 Fev 26  2018 config_settings.html
-rw-r--r-- 1 root 224941 Fev 26  2018 docs.html
-rw-r--r-- 1 root   6193 Fev 26  2018 lua.html
-rw-r--r-- 1 root 116854 Fev 26  2018 variables.html

/media/flavio/Linux6/usr/share/doc/conky/nano:
total 12
-rw-r--r-- 1 root 6475 Fev  7  2018 conky.nanorc
-rw-r--r-- 1 root  112 Fev  7  2018 README

/media/flavio/Linux6/usr/share/doc/conky/vim:
total 12
drwxr-xr-x 2 root 4096 Fev 26  2018 ftdetect
-rw-r--r-- 1 root  253 Fev  7  2018 README
drwxr-xr-x 2 root 4096 Fev 26  2018 syntax

/media/flavio/Linux6/usr/share/doc/conky/vim/ftdetect:
total 4
-rw-r--r-- 1 root 162 Fev  7  2018 conkyrc.vim

/media/flavio/Linux6/usr/share/doc/conky/vim/syntax:
total 8
-rw-r--r-- 1 root 7580 Fev  7  2018 conkyrc.vim

***********************************
********** Linux Mint 18 **********
***********************************

flavio@Linux1:~$ ls -oR /media/flavio/Linux7/usr/share/doc/conky*
/media/flavio/Linux7/usr/share/doc/conky-all:
total 48
-rw-r--r-- 1 root 3713 Nov 18  2015 AUTHORS.gz
-rw-r--r-- 1 root 1992 Jan  6  2016 changelog.Debian.gz
-rw-r--r-- 1 root 2866 Nov 18  2015 conky.conf
-rw-r--r-- 1 root 1919 Nov 18  2015 conky_no_x11.conf
-rw-r--r-- 1 root 5274 Nov 18  2015 convert.lua
-rw-r--r-- 1 root 6120 Jul  1  2015 copyright
drwxr-xr-x 2 root 4096 Abr 29  2017 html
-rw-r--r-- 1 root 2633 Jul  1  2015 NEWS.Debian.gz
-rw-r--r-- 1 root 3007 Nov 18  2015 README.md
-rw-r--r-- 1 root  260 Nov 18  2015 TODO

/media/flavio/Linux7/usr/share/doc/conky-all/html:
total 348
-rw-r--r-- 1 root  22262 Jan  6  2016 config_settings.html
-rw-r--r-- 1 root 210946 Jan  6  2016 docs.html
-rw-r--r-- 1 root   6193 Jan  6  2016 lua.html
-rw-r--r-- 1 root 109064 Jan  6  2016 variables.html

*********************************************
********** Slackware (by AlienBOB) **********
*********************************************

flavio@Linux1:~$ ls -oR /media/flavio/Linux8/usr/share/doc/conky*
/media/flavio/Linux8/usr/share/doc/conky-1.10.8:
total 100
-rw-r--r-- 1 root  8719 Fev  7  2018 AUTHORS
-rw-r--r-- 1 root 47261 Fev  7  2018 ChangeLog
-rw-r--r-- 1 root  4254 Mar  1  2018 conky.SlackBuild
-rw-r--r-- 1 root  5303 Fev  7  2018 convert.lua
-rw-r--r-- 1 root   470 Fev  7  2018 COPYING
drwxr-xr-x 2 root  4096 Mar  1  2018 html
-rw-r--r-- 1 root  1622 Fev  7  2018 LICENSE.BSD
-rw-r--r-- 1 root  2931 Fev  7  2018 NEWS
-rw-r--r-- 1 root  3716 Fev  7  2018 README.md
-rw-r--r-- 1 root   260 Fev  7  2018 TODO

/media/flavio/Linux8/usr/share/doc/conky-1.10.8/html:
total 368
-rw-r--r-- 1 root  22652 Mar  1  2018 config_settings.html
-rw-r--r-- 1 root 224941 Mar  1  2018 docs.html
-rw-r--r-- 1 root   6193 Mar  1  2018 lua.html
-rw-r--r-- 1 root 116854 Mar  1  2018 variables.html

*********************************************
********** Arch Linux (by Revenge) **********
*********************************************

flavio@Linux1:~$ ls -oR /media/flavio/Linux9/usr/share/doc/conky*
/media/flavio/Linux9/usr/share/doc/conky-1.11.1_pre:
total 20
-rw-r--r-- 1 root 2866 Dez 17 18:59 conky.conf
-rw-r--r-- 1 root 1909 Dez 17 18:59 conky_no_x11.conf
-rw-r--r-- 1 root 5669 Dez 17 18:59 convert.lua
drwxr-xr-x 2 root 4096 Dez 23 00:20 html

/media/flavio/Linux9/usr/share/doc/conky-1.11.1_pre/html:
total 380
-rw-r--r-- 1 root  23815 Dez 17 18:59 config_settings.html
-rw-r--r-- 1 root 232898 Dez 17 18:59 docs.html
-rw-r--r-- 1 root   6068 Dez 17 18:59 lua.html
-rw-r--r-- 1 root 121630 Dez 17 18:59 variables.html

*****************************
********** Sabayon **********
*****************************

flavio@Linux1:~$ ls -oR /media/flavio/Linux10/usr/share/doc/conky*
/media/flavio/Linux10/usr/share/doc/conky-1.10.8-r3:
total 52
-rw-r--r-- 1 root  3786 Out 27 15:55 AUTHORS.bz2
-rw-r--r-- 1 root 16010 Out 27 15:55 ChangeLog.bz2
-rw-r--r-- 1 root  1427 Fev  7  2018 conky.conf.bz2
-rw-r--r-- 1 root  1120 Fev  7  2018 conky_no_x11.conf.bz2
-rw-r--r-- 1 root  2038 Fev  7  2018 convert.lua.bz2
drwxr-xr-x 2 root  4096 Dez  1 12:27 html
-rw-r--r-- 1 root  1301 Out 27 15:55 NEWS.bz2
-rw-r--r-- 1 root   247 Out 27 15:55 README.gentoo.bz2
-rw-r--r-- 1 root  1687 Out 27 15:55 README.md.bz2
-rw-r--r-- 1 root   249 Out 27 15:55 TODO.bz2

/media/flavio/Linux10/usr/share/doc/conky-1.10.8-r3/html:
total 368
-rw-r--r-- 1 root  22652 Out 27 15:54 config_settings.html
-rw-r--r-- 1 root 224940 Out 27 15:54 docs.html
-rw-r--r-- 1 root   6193 Out 27 15:54 lua.html
-rw-r--r-- 1 root 116854 Out 27 15:54 variables.html

***********************************
********** Kubuntu 19.04 **********
***********************************

flavio@Linux1:~$ ls -oR /media/flavio/Linux11/usr/share/doc/conky*
/media/flavio/Linux11/usr/share/doc/conky-all:
total 48
-rw-r--r-- 1 root 3784 Fev  7  2018 AUTHORS.gz
-rw-r--r-- 1 root 1156 Mai  3  2018 changelog.Debian.gz
-rw-r--r-- 1 root 2866 Fev  7  2018 conky.conf
-rw-r--r-- 1 root 1919 Fev  7  2018 conky_no_x11.conf
-rw-r--r-- 1 root 5303 Fev  7  2018 convert.lua
-rw-r--r-- 1 root 6121 Fev 28  2018 copyright
drwxr-xr-x 2 root 4096 Nov 24 08:52 html
-rw-r--r-- 1 root 2633 Jul  1  2015 NEWS.Debian.gz
-rw-r--r-- 1 root 3716 Fev  7  2018 README.md
-rw-r--r-- 1 root  260 Fev  7  2018 TODO

/media/flavio/Linux11/usr/share/doc/conky-all/html:
total 368
-rw-r--r-- 1 root  22652 Mai  3  2018 config_settings.html
-rw-r--r-- 1 root 224777 Mai  3  2018 docs.html
-rw-r--r-- 1 root   6193 Mai  3  2018 lua.html
-rw-r--r-- 1 root 116854 Mai  3  2018 variables.html

******************************
********** Devuan 2 **********
******************************

flavio@Linux1:~$ ls -oR /media/flavio/Linux12/usr/share/doc/conky*
/media/flavio/Linux12/usr/share/doc/conky:
total 44
-rw-r--r-- 1 root 11562 Dez  9  2016 changelog.Debian.gz
-rw-r--r-- 1 root 17887 Dez  4  2016 changelog.gz
-rw-r--r-- 1 root  6120 Jul  1  2015 copyright
-rw-r--r-- 1 root  2633 Jul  1  2015 NEWS.Debian.gz

/media/flavio/Linux12/usr/share/doc/conky-all:
total 76
-rw-r--r-- 1 root  3750 Dez  4  2016 AUTHORS.gz
-rw-r--r-- 1 root 11562 Dez  9  2016 changelog.Debian.gz
-rw-r--r-- 1 root 17887 Dez  4  2016 changelog.gz
-rw-r--r-- 1 root  2866 Dez  4  2016 conky.conf
-rw-r--r-- 1 root  1919 Dez  4  2016 conky_no_x11.conf
-rw-r--r-- 1 root  5303 Dez  4  2016 convert.lua
-rw-r--r-- 1 root  6120 Jul  1  2015 copyright
drwxr-xr-x 2 root  4096 Fev 19  2018 html
-rw-r--r-- 1 root  2633 Jul  1  2015 NEWS.Debian.gz
-rw-r--r-- 1 root  3716 Dez  4  2016 README.md
-rw-r--r-- 1 root   260 Dez  4  2016 TODO

/media/flavio/Linux12/usr/share/doc/conky-all/html:
total 368
-rw-r--r-- 1 root  22680 Dez  9  2016 config_settings.html
-rw-r--r-- 1 root 223082 Dez  9  2016 docs.html
-rw-r--r-- 1 root   6193 Dez  9  2016 lua.html
-rw-r--r-- 1 root 116596 Dez  9  2016 variables.html

Manual completo do Conky no navegador, a um comando do Terminal

2020-10-12 - A documentação já não se encontra mais nesse local, — pelo menos, no openSUSE Tumblewweed, — mas felizmente, encontrei outro caminho, talvez até mais amigável:

$ ls -oR /usr/share/doc/conky*
ls: cannot access '/usr/share/doc/conky*': No such file or directory


$ man --html=chromium conky

Opening in existing browser session.
[31490:31490:0100/000000.652884:ERROR:sandbox_linux.cc(374)] InitializeSandbox() called with multiple threads in process gpu-process.
[31490:31490:0100/000000.653323:ERROR:broker_posix.cc(43)] Invalid node channel message
[31493:31493:1016/160906.732693:ERROR:broker_posix.cc(43)] Invalid node channel message

Referências oficiais

Sugestões

Experiência pessoal

— … ≠ • ≠ … —

Ferramentas &tc.