sábado, 22 de dezembro de 2018

Conky - monitor do sistema

Conky configurado para monitorar alguns itens do hardware e dos sistemas

Vai fazer 3 anos que comecei a usar o Conky em todas as distros, — não importa o ambiente: KDE, Cinnamon, MATE, Xfce, IceWM, — para ter um mínimo de controle do que se passa no computador:

  • A CPU está esquentando demais?
  • O Cooler está funcionando de acordo?
  • A velocidade de download está normal?
  • Computador 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?

Conky instalado em uma sessão Live DVD permitiu interromper super-aquecimento da CPU

Os principais motivos da escolha do Conky, — após tentar outras ferramentas:

  • Leve, — quase não afeta o uso de recursos do sistema
  • Universal, — facilmente 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 quiser enfeitar)
  • Medidas consistentes, entre as mais diversas distros Linux
  • Fácil de instalar, mesmo em sessões Live DVD, com limitação de recursos, — o que já preveniu super-aquecimento da CPU ao instalar o Manjaro, por exemplo

Conky by n00by4ever

Conheço pelo menos 1 ponto “negativo”:

  • 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, — que podem ser integrados a ele, para obter previsão de clima, exibir informações das músicas que está ouvindo etc.

Weather (get new widgets) dispensa complicar o Conky, por enquanto

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

  • Apenas 2 cores, — letras e gráficos + sombra (shade) para destacar do fundo
  • Apenas 1/5 da tela (1280 x 1024), — coluna de 270 pixels
  • Apenas itens realmente necessários
  • Fonte (Verdana) e tamanho legíveis a mais de 60 cm

Por enquanto, abri mão de:

  • Monitorar atividade de disco
  • Temperaturas dos HDDs / SSD

Em algumas distros, widget Weather exigiu instalar QtQuick.XmlListModel (ou equivalente)

O widget Weather dispensa de lidar com previsão do clima no Conky, — é mais completo, não dá trabalho, nem ocupa espaço.

No Debian (acima) e no Devuan, faltava instalar qml-module-qtquick-xmllistmodel, para o Weather funcionar.

Índice


Conky + Weather no Slackware

Isto não é um “tutorial”, — nem pretende abordar tudo sobre o Conky.

Embora possa ser útil ao “usuário médio” ou “iniciante” no Linux, este relato é, antes de tudo, o registro dos passos seguidos na reorganização geral do Conky em 12 distros instaladas em “dualboot”, — para não esquecer o quê (e como) foi feito, — e “consolidar” o que consegui entender, até o momento.

  • 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 e gráficos
  • \• Resultado final
  • Conky em Live Slackware •/
  • Nova sintaxe, nova estrutura
  • Nova pasta, novo nome
  • Conversão pelo Lua
  • Epílogo
  • Antigas ferramentas
  • Uso inicial de Memória RAM
  • Efeitos do Weather na RAM
  • Referências
  • Referências oficiais
  • Sugestões
  • Experiência pessoal
  • Ferramentas &tc.

Iniciando o Conky


Conky com a configuração original, — e mensagens de retorno (até CTRL-C)

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 será visto 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, — e mais tarde interromper o comando, sem fechar o Conky:

$ conky &

Se tudo correr bem, basta “CTRL-C” para recuperar o prompt, — e fechar o Terminal, se quiser. — O Conky segue rodando.

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

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

Configuração padrão


Configuração padrão embutida no Conky do Sabayon (exceto explicações iniciais)

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

••• Exceções: — Esse comando não funcionou no Mageia 6, nem no PCLinuxOS.

Exemplo (abaixo) — Configuração-padrão do Conky 1.10.1 — Kubuntu 16.04 e “derivados”:

flavio@Linux1:~$ conky -C
-- vim: ts=4 sw=4 noet ai cindent syntax=lua
--[[
Conky, a system monitor, based on torsmo

Any original torsmo code is licensed under the BSD license

All code written since the fork of torsmo is licensed under the GPL

Please see COPYING for details

Copyright (c) 2004, Hannu Saransaari and Lauri Hakkarainen
Copyright (c) 2005-2012 Brenden Matthews, Philip Kovacs, et. al. (see AUTHORS)
All rights reserved.

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program.  If not, see .
]]

conky.config = {
    alignment = 'top_left',
    background = false,
    border_width = 1,
    cpu_avg_samples = 2,
        default_color = 'white',
    default_outline_color = 'white',
    default_shade_color = 'white',
    draw_borders = false,
    draw_graph_borders = true,
    draw_outline = false,
    draw_shades = false,
    use_xft = true,
    font = 'DejaVu Sans Mono:size=12',
    gap_x = 5,
    gap_y = 60,
    minimum_height = 5,
        minimum_width = 5,
    net_avg_samples = 2,
    no_buffers = true,
    out_to_console = false,
    out_to_stderr = false,
    extra_newline = false,
    own_window = true,
    own_window_class = 'Conky',
    own_window_type = 'desktop',
    stippled_borders = 0,
    update_interval = 1.0,
    uppercase = false,
    use_spacer = 'none',
    show_graph_scale = false,
    show_graph_range = false
}

conky.text = [[
${scroll 16 $nodename - $sysname $kernel on $machine | }
$hr
${color grey}Uptime:$color $uptime
${color grey}Frequency (in MHz):$color $freq
${color grey}Frequency (in GHz):$color $freq_g
${color grey}RAM Usage:$color $mem/$memmax - $memperc% ${membar 4}
${color grey}Swap Usage:$color $swap/$swapmax - $swapperc% ${swapbar 4}
${color grey}CPU Usage:$color $cpu% ${cpubar 4}
${color grey}Processes:$color $processes  ${color grey}Running:$color $running_processes
$hr
${color grey}File systems:
 / $color${fs_used /}/${fs_size /} ${fs_bar 6 /}
${color grey}Networking:
Up:$color ${upspeed eth0} ${color grey} - Down:$color ${downspeed eth0}
$hr
${color grey}Name              PID   CPU%   MEM%
${color lightgrey} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1}
${color lightgrey} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2}
${color lightgrey} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3}
${color lightgrey} ${top name 4} ${top pid 4} ${top cpu 4} ${top mem 4}
]]

Outro caminho para obter a configuração-padrão é o arquivo /etc/conky/conky.conf.

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

••• Exceções: — Esse arquivo não foi encontrado no Arch Linux nem no Sabayon.

Nas demais 8 distros instaladas aqui, ambos os caminhos estão disponíveis.

Apenas 3 diferenças de configuração padrão entre o Conky 1.10.1 (esq.) e 1.11.1_pre (dir.)

O exame da configuração padrão do Conky nas 12 distros instaladas, — da versão 1.10.1 até 1.11.1_pre, — mostra apenas 3 diferenças relevantes entre os 2 extremos.

As versões instaladas, — 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

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, — 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

Proliferação de arquivos de configuração na pasta pessoal (home), após 2 anos

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

Trata-se de um movimento geral, no sentido de eliminar a proliferação de arquivos de configuração na pasta pessoal, — agrupando-os em ~/.config. — Recentemente, foi a vez do Gimp 2.10 fazer esse movimento. Um levantamento do estado das coisas pode ser visto em “I'm tired of .folders littering my home directory”. Uma pista pode ser encontrada em XDG Base Directory Specifications:

If $XDG_CONFIG_HOME is either not set or empty, a default equal to $HOME/.config should be used.

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, — não têm “nome” (só “extensão”). — Para vê-los, no gerenciador de arquivos, marque “Mostrar arquivos ocultos”.

Configuração pessoal (esq.) se sobrepõe à configuração do sistema (dir.)

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

Note que tudo é feito sem privilégios de Administrador, — pois é assunto pessoal do 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 testadas.

Para conferir, essa opção foi “comentada” (anulada) por 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 “do sistema”:

-- use_xft = true

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

Mensagens de erro no Terminal

O pior que pode acontecer, é o Conky fechar, — e se o Terminal ainda estiver aberto, serão mostradas as 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), — ou sistema com sessão apenas de gerenciador de janelas (WM), — oferece diferentes maneiras de iniciar o Conky automaticamente, no final do Boot e/ou 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 utilizado 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 confirmou 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 isso ficou para ser testado no LXQt (adiante).

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

Na sessão LXQt do Slackware foi simplesmente adicionado 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. — Nada de alterar Composição (transparência).

Sessão Lumina já se iniciou com o Conky, devido à configuração de outro(s) ambiente(s)

“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). — Portanto, não chegou a ser testada uma configuração “própria” do Lumina.

Mais uma vez, faltou transparência no Conky, — mas evitei mexer mais do que o mínimo, 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, — combinando 4 opções:

  • 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)

Prefiro a terceira opção, pois basta salvar a sessão uma única vez, — com todos os aplicativos e janelas fechados, — para estabelecer uma “sessão padrão”, apenas com o Conky.

Isso permite monitorar (pelo Conky) o uso mínimo de Memória RAM no início de cada sessão, — sem a interferência de outros aplicativos, — pois se você esquecer algum aberto (minimizado), a segunda opção (padrão do KDE) iria reabri-lo automaticamente, na sessão seguinte, afetando o uso inicial da RAM.

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

A primeira alternativa (com 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 teria de 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 inserido 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 junto, por padrão), ao instalar uma distro KDE.

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


Edição das configurações


Conky recarregado a cada vez que ~/.config/conky/conky.conf é salva (mesmo sem alterações)

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.

Uma “sessão” do Kate facilita reabrir vários documentos abertos antes

Para facilitar esse tipo de trabalho, o Kate também foi configurado para reabrir sua sessão anterior, — com o conky.conf (entre outros textos). — Os arquivos abertos, ao fechar o Kate, ficam incluídos na “última sessão usada”, e reabrem com ele.

Claro, é preciso criar uma “sessão” do Kate:

Kate >> Sessions >> Save session as

Reabertura automática dos últimos arquivos, por padrão, no Featherpad

Embora já soubesse desse recurso, só vim a perceber sua utilidade no antiX (IceWM) e no MX Linux (Xfce), — cujos Geany e FeatherPad já vêm configurados assim, por padrão.

Personalização


Parâmetros originais do Conky 1.11.1_pre (esq.) e personalizados (dir.), — em ordem alfabética

Nessa comparação (acima), foram listados 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 quais foram usados, — e entre eles, quais foram alterados.

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

conky.config = {
    .... .... .... ....
    .... .... .... ....
    .... .... .... ....
}

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

Essas “configurações” (propriamente ditas) vão na primeira parte do ~/.config/conky/conky.conf — na seção delimitada por:

conky.config { ... }

enquanto, na segunda parte, se “desenha” (literalmente) o conteúdo a ser exibido, — espaços e linhas em branco fazem diferença, — na seção delimitada por:

conky.text = [[ ... ]]

Parâmetros ou variáveis do Conky 1.10.1 (esq.) e do 1.11.1_pre (dir.). — ver “Documentação”, adiante

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 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.

Não sei quais desses 27 parâmetros ainda poderia retirar, — por serem desnecessários, — nem se há mais algum que valesse a pena acrescentar.

A única certeza é que, nesses quase 3 anos, encontrei muito pouca coisa para mudar, nos parâmetros, — para não dizer, “quase nada”.

Alterei o alinhamento; — substituí a fonte; — ativei o sombreado; — a largura máxima de 250 pixels teve de ser relaxada; — 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, mais recente, também encontrado na web (ver “Nova sintaxe”, adiante), — fiz na primeira parte dele as mesmas opções, — e apliquei esse “bloco padrão” no Conky das 12 distros.

Foi nesse momento que sumiram coisas como “minimum_size”, — e apareceram outras, como “background = true”, — ambas sem muito sentido, neste caso específico.

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.), — embora este último apresentasse opções divergentes. — De um modo geral, os parâmetros incluídos em ambos são os mais necessários.

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 não têm uso geral (color1, color3).

Parâmetros utilizados


Desarranjo das fontes ao comentar “use_xft = true

Eis os parâmetros utilizados, — o que pude entender sobre eles, — e o que modifiquei.

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

 -- background= true,

A documentação esclarece que “use_xft” define se é para “Usar Xft (anti-aliased font and stuff)”, — explicação, talvez, perfeita, — mas pouco prática, no dia-a-dia do novo usuário Linux.

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, — com Verdana do Wine

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”, — pois se 0 fosse “transparente” não deveria ocultar a sombra das letras e gráficos (“shade”, adiante). — Para mim, a coisa só começa a fazer sentido em termos de “intensidade” (0 = Total).

A menos, é claro, que se diga o contrário, — que se diga “0 = opaco” (mas isto não seria compatível com os fatos do 1º link acima). — Infelizmente, manuais e referências nunca especificam o que significa 1 ou 0; e quando se pesquisa, 99,9999% dos resultados não se referem à transparência do “texto”, mas do “fundo”.

A rigor, fica uma charada inextricável, — de lacuna na documentação e de uso popularizado de conceitos equívocos. — Afinal, “Font” são as letras, ou o “fundo” do assim chamado “Texto”?

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.

Notar que isto foi conjugado com a sombra (“shade”, adiante), — em geral preta. — Valores mais próximos de 0 tendem a fazer o branco “ocultar” a sombra; enquanto valores mais próximos de 1 permitem maior realce à sombra.

E que em nenhum momento usei esse parâmetro para obter (nem ele causou) leves alterações do fundo (ver bloco “own_window”, adiante).

Fonte “verdana:size=8” foi adotada há poucos dias, no Natal, — pois “verdana:pixelsize=10” só dava bom resultado em distros com ttf-mscorefonts-installer (.deb), — mas não em outras, como openSUSE, por exemplo, em que “instalei” Verdana a partir dos arquivos TTF do Wine.

Isso alargou um pouco a coluna do Conky, — e acabou adotado também nas distros onde ele já tinha boa legibilidade, — que melhorou ainda mais.

Foi necessário anular (comentar) o limite de 250 pixels na largura, para não causar desarranjo do texto e sumiço de parte dos gráficos. — Mais tarde, fixei ambas (largura máxima e mínima) em 270 pixels, para eliminar oscilações na largura.

O parâmetro “update_interval” define o intervalo para atualização do Conky, em segundos. — Neste hardware, com KDE Neon, um intervalo de 2 segundos faz o Conky usar 0,50% ~ 1,0% da CPU, — ao passo que a taxa normal de atualização a cada 1 segundo usa 1,0% ~ 2,0% da CPU.

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

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 comentar (anular) com 2 hifens no início da linha.

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

 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,

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á quase 3 anos.

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

Isso acontece, mesmo se antes também comentar “double_buffers”, — que recomenda “own_window = true” em conjunto (na verdade, para evitar “double_buffers” grande demais).

Definir o parâmetro “own_window_type = 'desktop'” elimina a transparência da janela (preto, opaco).

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

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

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

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

Aliás, basta comentar (anular) essa linha, — que uso com “true”, — para perder a transparência.

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, — com cada definição ligada às demais, — e não me sinto animado a tentar melhorar o que está dando certo.

Transparência do Conky no Devuan MATE

Para obter transparência no MATE, — sempre 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 tento desabilitar ícones no desktop.

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

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

Ajustes do Gerenciador de janelas >> Habilitar composição de tela

Opções de Compositor no KDE System settings

Vale lembrar que essas observações dizem respeito a um hardware específico:

Machine

Mobo: ASUSTeK model: P5KPL-AM-CKD-VISUM-SI v: x.xx serial: MB-1234567890
Bios: American Megatrends v: 0305 date: 11/24/2008

CPU

Dual core Intel Core2 Duo E7300 (-MCP-) speed/max: 1596/2660 MHz

Graphics

Card: Intel 82G33/G31 Express Integrated Graphics Controller

Efeitos de transparência ao mudar do Compositor OpenGL2.0 para XRender, no Manjaro

Nesse hardware, todas as distros com KDE automaticamente selecionam Compositor OpenGL 2.0, — pois OpenGL 3.1 não é suportado, — e altero manualmente para XRender, que parece funcionar melhor (além de ser necessário para dar transparência ao Conky, em algumas distros).

Uso de sombra (shade) para destacar letras brancas em áreas muito claras do papel de parede

 double_buffer= true,

 minimum_width= 270,
 maximum_width= 270,
 -- minimum_height= 10,

 draw_shades= true,
 -- draw_outline= false,
 -- draw_borders= false,
 draw_graph_borders= true,
 
 default_color= 'white',
 default_shade_color= 'black',
 -- default_outline_color= 'white',

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

Recomenda-se que seja acompanhado de “own_window = true”.

Conky com variação de largura — imagens sobrepostas no Gimp, transparência 50%

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

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

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

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

Por fim, foram fixadas larguras mínima e máxima de 270 pixels, — para evitar oscilações, — e o problema desapareceu. •/

Talvez o mais “correto” fosse corrigir excessos (ou insuficiência) de espaços em branco nos blocos de “texto” de Temperatura, Processos etc. (adiante), — mas isso pode ser muito trabalhoso e demorado.

Os parâmetros “draw_outline” e “draw_borders” já vêm desabilitados por padrão, — e como não serão usados, essas linhas poderiam ser retirados das configurações pessoais, para simplificar.

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

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

Na maioria dos casos, tenho usado letras brancas e sombra preta, — graduando “xftalpha” para reforçar um ou outro, conforme o papel de parede.

Em raros casos, experimentei uma porção mínima de azul no branco (mintcream), para fundos “empoeirados” (avermelhados); ou sombra cinza escuro, ou ouro escuro, — mas é difícil melhorar alguma coisa. — O mais prático é procurar outro papel de parede, se quero ter um Conky padronizado em todas as distros (o que também facilita muito a leitura, com tudo sempre nos mesmos lugares).

Conky alinhado à direita — e discordância do KSysguard, quanto ao uso de Memória RAM

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

Já tentei usar “alignment = 'bottom_right'”, — quando o papel de parede dificulta a leitura do lado esquerdo da tela, — mas acabei concluindo que é mais prático trocar o papel de parede.

A definição de “gap_y” parece só fazer efeito acima de um mínimo já previsto pelo Painel do KDE

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

De início, usava “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”.

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

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 sugerem que a expressão está sendo usada como sinônimo / abreviação de “Buffers + Cache” (buffers + cached).

Desabilitar esse parâmetro faz com que a Memória pareça estar quase toda usada (mem); e a Memória “Disponível” (memeasyfree) pareça em vias de se acabar, — o que não faz sentido, exceto para alarmar o usuário, — dando a falsa impressão de que vai “faltar Memória” a qualquer momento.

Uptime        Mem      Swap      Free   EasyFree    NB = False

1 day    2,66 GiB    70 MiB   289 MiB   1,19 GiB   3,56 / 3,85
3 days   2,34 GiB   394 MiB   283 MiB   1,50 GiB   3,56 / 3,85
4 days   2,73 GiB   363 MiB   230 MiB   1,12 GiB   3,62 / 3,85

Um teste (acima) de 4 dias de trabalho intenso, — abrindo e fechando Dolphin, Chromium, KDiff3, LibreOffice, Gwenview, Kate / KWrite, Gimp, Konsole, KSysguard, KDE System settings, KRuler / ScreenRuler etc., — mostrou que não existe o menor risco de “faltar” Memória RAM (nem sequer, 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! — Se gostasse de sofrer, teria ficado com o Windows.

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

Por isso, foi mantido o padrão do Conky, — e para isso nem seria necessário incluir 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. — Foram mantidos os valores-padrão.

Enfim, “override_utf8_locale = true” força o uso de UTF8, — e foi necessário, pelo menos uma vez, para exibir corretamente alguns caracteres.

Texto e gráficos


Diferentes alturas do Conky, conforme a implementação das fontes de letra em cada distro

Uma das primeiras providências, — a partir do modelo usado como base, — foi “limpar” (quase) toda formatação “local” de fontes, tamanhos e cores na área de “texto”, delimitada por conky.text [[ ... ]].

Mesmo assim, o conky.text [[ ... ]] ainda contém inúmeras formatações “locais” de alinhamento ${alignr} (à direita), ${alignc} (centralizado), além de espaços.

No final, as formatações “locais” de fonte permaneceram apenas no cabeçalho, — e só para tamanhos:

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

À medida em que mais linhas foram acrescentadas, essas formatações “locais” de tamanho de fonte no cabeçalho acabaram sendo ajustadas, — para compensar excessos de altura do Conky, — que em algumas distros extrapola o espaço deixado pelo Painel (e sua margem reservada).

Em último caso, linhas horizontais são anuladas (comentadas) com um “#”, em algumas distros.

Outra coisa que pode fazer diferença é eliminar a linha em branco após “conky.text = [[” (para subir), — e/ou logo antes de “]]” (para descer).

Abaixo, algumas variações de tamanho de fonte no cabeçalho, — para ajustar a altura em diferentes distros:

KDE Neon

conky.text = [[

${font verdana:pixelsize=32}KDE Neon${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 60 lsb_release -ds} (${execi 60 lsb_release -c -s})
Kernel ${sysname} ${kernel}

Mageia 6

conky.text = [[

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

${alignr}up  ${uptime}
${hr}
${alignr}${nodename}
${execi 60 lsb_release -ds}
Kernel ${sysname} ${kernel}

Debian

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

${alignr}up ${uptime}
${hr}
${alignr}${nodename}
${execi 60 lsb_release -ds}
Kernel ${sysname} ${kernel}

Kubuntu 16.04

conky.text = [[

${font verdana:pixelsize=32}Kubuntu 16.04${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 60 lsb_release -ds} (${execi 60 lsb_release -cs})
Kernel ${sysname} ${kernel}

openSUSE

conky.text = [[

${font verdana:size=22}openSUSE${font}
$hr
${alignc}${font verdana:size=26}${time %H:%M}${font}
${alignc}${font verdana:size=14}${time %a, %d %b. %Y}${font}

${alignr}up  ${uptime}
${alignr}${nodename}
# ${hr}
${execi 60 lsb_release -ds}
Kernel ${sysname} ${kernel}

PCLinuxOS

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

${alignr}up  ${uptime}
${hr}
${alignr}${nodename}
${execi 60 lsb_release -ds}
Kernel ${sysname} ${kernel}

Mint 18

conky.text = [[

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

${alignr}up  ${uptime}
${hr}
${alignr}${nodename}
${execi 60 lsb_release -ds}
# (${execi 60 lsb_release -c -s})
Kernel ${sysname} ${kernel}

Slackware

conky.text = [[

${font verdana:size=24}${alignc}Slackware$font
${font verdana:size=32}$alignc${time %H:%M}$font
${font verdana:size=18}${alignc}${time %a, %d %b. %Y}${font}
$hr
${alignr}up $uptime
${alignr}${nodename_short}
# ${exec 60 lsb_release -ds} - ${exec disp=${DISPLAY#:}; disp=${disp%.[0-9]}; cat $HOME/.desktop-session/desktop-code.$disp 2>/dev/null}
Kernel ${sysname} ${kernel}

Arch Linux

conky.text = [[
${font verdana:pixelsize=28}Arch KDE${font}
# ${hr}
${alignc}${font verdana:size=28}${time %H:%M}${font}
${alignc}${font verdana:pixelsize=18}${time %a, %d %b. %Y}${font}
${hr}
${alignr}up  ${uptime}
# ${hr}
${alignr}${nodename}
${execi 600 hostnamectl | grep Operating | cut -c 21-30}
# ${execi 60 lsb_release -ds} (${execi 60 lsb_release -c -s})
Kernel ${sysname} ${kernel}

Sabayon

conky.text = [[
${font verdana:size=24}Sabayon${font}
${font verdana:size=32}$alignc${time %H:%M}${font}
${font verdana:size=14}${alignc}${time %a, %d %b. %Y}${font}
$hr
${alignr}up $uptime
${alignr}${nodename}
${execi 60 lsb_release -ds} - ${exec disp=${DISPLAY#:}; disp=${disp%.[0-9]}; cat $HOME/.desktop-session/desktop-code.$disp 2>/dev/null}
Kernel ${sysname} ${kernel}

Kubuntu 19.04

conky.text = [[
${font verdana:size=22}Kubuntu 19.04${font}
${hr}
${font verdana:size=28}${alignc}${time %H:%M}${font}
${font verdana:pixelsize=16}${alignc}${time %a, %d %b. %Y}${font}

${alignr}up  ${uptime}
# ${hr}
${alignr}${nodename}
${execi 60 lsb_release -ds}
Kernel ${sysname} ${kernel}

Devuan

conky.text = [[

${font verdana:size=24}Devuan 2 Beta${font}
${hr}
${font verdana:size=32}${alignc}${time %H:%M}${font}
${font verdana:size=18}${alignc}${time %a, %d %b. %Y}${font}

${alignr}up ${uptime}
${hr}
${alignr}${nodename}
${execi 60 lsb_release -ds}
Kernel ${sysname} ${kernel}
# ${hr}

Cada “declaração local” de fonte precisa ser “encerrada” no final da linha, — para voltar à fonte definida nos parâmetros.

É importante não deixar espaços em branco no final das linhas, pois fazem diferença

Abstraindo as formatações “locais” de tamanho de fonte, temos o seguinte “conteúdo”, — composto de variáveis, delimitadas por ${...}, — e textos arbitrários (legendas):

KDE Neon
$hr
${time %H:%M}
${time %a, %d %b. %Y}

${alignr}up  ${uptime}
$hr
${alignr}${nodename}
${execi 60 lsb_release -ds} (${execi 60 lsb_release -c -s})
Kernel ${sysname} ${kernel}

“KDE Neon” é apenas um texto arbitrário, — alterado à mão, ao copiar a configuração de uma distro para outra recém-instalada, — e a primeira linha horizontal (horizontal rule) já foi eliminada no Arch e no Sabayon, por questão de espaço.

A variável “time” é usada nas duas linhas seguintes, — uma vez para mostrar as horas, — outra vez para indicar o dia da semana e a data. (ver “Referências”, adiante)

Em algumas distros, “a%” e “b%” exibem abreviações com maiúscula inicial, — em outras, só minúsculas. — Imagino que essa definição esteja nos arquivos de sistema de cada distro.

Segue-se uma linha em branco, — necessária para separar visualmente as informações seguintes, — que daí por diante usam sempre a fonte e o tamanho de letra definidos nos parâmetros gerais da configuração pessoal.

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

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

$ uptime -p
up 3 days, 31 minutes

$ uptime -s
2019-01-04 16:58:55

A variável “nodename” exibe o Hostname, — Linux1 a Linux12 (exceto no PCLinuxOS, meio xucro, até hoje).

A variável “execi” executa um comando shell a cada intervalo de tempo indicado, — neste caso, 60 segundos, — onde um “exec” rodaria o comando a cada atualização do Conky, consumindo recursos sem necessidade (convenhamos que a distro não muda a todo instante).

O comando solicitado é o “lsb_release”, — uma vez com a opção “-ds” e outra (entre parêntesis) com “-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 -d
Description:    KDE neon User Edition 5.14

$ lsb_release -s
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

$ lsb_release -c
Codename:       n/a

$ lsb_release -d
Description:    openSUSE Leap 15.0

$ lsb_release -s
n/a

Às vezes, a segunda parte não é necessária, — ou não dá bom resultado.

No Arch Linux, “lsb_release” foi substituído por:

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

o que é quase como escrever, à mão: “Arch Linux”.

No Slackware, foi usado outro caminho, — cuja validade ainda está sob dúvida:

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

Informações de uso CPU no Conky, — com a legenda de “120 segundos” realocada

As informações de uso de CPU estão entre 2 linhas em branco, — e mais outra, no meio, — para destaque visual:

${alignc} 120’’
${cpugraph cpu1 30,120} ${alignr}${cpugraph cpu2 30,120}
CPU1: ${cpu cpu1}% ${alignr}CPU2: ${cpu cpu2}%

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

A primeira linha é apenas uma indicação de “120 segundos”, — alinhamento centralizado, — e um espaço em branco antes, para centralizar melhor.

A segunda linha desenha 2 gráficos de atividade de CPU1 e CPU2, — altura 30 pixels, largura 120 pixels (120 segundos), — um no alinhamento normal (à esquerda), o outro alinhado à direita.

A terceira linha informa os valores numéricos, — nos mesmos alinhamentos dos gráficos acima.

Após uma linha em branco, um gráfico de barra da CPU, — centralizado, com legenda à esquerda e valor à direita, — separados por 2 espaços, para destacar.

Quando o espaço vertical aperta, a primeira linha é anulada (comentada), — e a legenda vai para o centro da terceira linha, abaixo dos gráficos:

# ${alignc} 120’’
${cpugraph cpu1 30,120} ${alignr}${cpugraph cpu2 30,120}
CPU1: ${cpu cpu1}% ${alignr} 120’’              ${alignr}CPU2: ${cpu cpu2}%

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

Bloco de informações de Memória no Conky

O bloco de informações da Memória é um malabarismo para reunir 6 informações + 2 gráficos em apenas 4 linhas, — com direito a desperdiçar uma linha no meio, para maior destaque.

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

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

Buffers      ${alignr}$buffers               ${alignr}Livre      ${alignr}${memfree}
Cache     ${alignr}$cached               ${alignr}Disp      ${alignr}${memeasyfree}

Indicações de uso de Memória pelo Conky, Free, Top e Htop

Mantido o parâmetro “no_buffers = true” (padrão), a variável “mem” não inclui “buffers” nem “cached”, — memória aproveitada para agilizar o sistema (em vez de ficar desperdiçada), mas que pode ser devolvida para outros usos, sempre que necessário.

Por consequência, temos 2 medidas diferentes, — memória “Livre” (memfree), que de fato está sem uso algum, — e memória “Disponível” (memeasyfree), facilmente liberada para uso.

Na imagem (acima), Conky, Top, Free e Htop apresentaram os seguintes resultados, — refletindo semelhanças / diferenças técnicas, — e talvez, tempos diferentes de atualização (o comando “free -h” foi acionado por último, com PrtScn em seguida):

RAM         Used      Free    Buffer     Cache   Buff/Cache   Avail    (used Swap)
                                                            
Conky   2.4  GiB   828 MiB   101 MiB   794 MiB                1.43 GiB   278 MiB
Htop    2.4  GiB                                                         278 MiB
Top     2150 MiB   830 MiB                          944 MiB   1243 MiB   278 MiB
Free    2.1  GiB   829 MiB                          943 MiB   1.2  GiB   277 MiB

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

O bloco de Temperaturas, Tensões (Voltagens), Cooler, Frequência e Rede repete alguns malabarismos 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, do lado esquerdo temos:

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 buscam os valores em hwmon0 e hwmon1, — números indicados após um espaço:

/sys/class/hwmon/hwmon0 $ ls -1
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

/sys/class/hwmon/hwmon1 $ ls -1
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

Voltagens com apenas uma casa decimal, — embora haja soluções (pouco inteligíveis)

Do lado direito, ainda não consegui obter 2 casas decimais, pelo menos processo, — então vou usando provisoriamente um truque:

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

O truque consiste em executar o sensors a intervalos de 10 segundos e extrair, de cada linha, os caracteres de 20 a 25:

         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)

Mais tarde, optei por extrair até o 27º caractere, para simplificar o arquivo de configuração pessoal do Conky, pois o resultado já vem com o “V” de Volt.

O bloco de informações de Rede repete a mesma 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. — Manter os gráficos de Rede alinhados e com o mesmo tamanho de CPU1 e CPU2 facilita identificar alguns eventos, pela sincronização no tempo.

Em algumas distros, a rede é “eth0”, em vez de “enp1s0”.

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

No openSUSE, hwmon0 e hwmon1 se invertem, — praticamente, a cada Boot!, — embora isso às vezes também ocorra com alguma outra distro.

Após tentar várias outras soluções, funcionou o IF / ELSE / ENDIF, — para detectar qual deles está com temp3_input, no momento, — pois temp1 e temp2 existem em ambos, nesta máquina:

${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}

Bloco de Processos no Conky

O bloco de Processos é 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

Bloco de partições no Conky

O bloco 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.

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, — e como todas são de 25 GiB, isso pode ser omitido.

Sites    ${alignr}${fs_used /media/flavio/Sites} / ${fs_size /media/flavio/Sites}  ${alignr}${fs_bar 6,50 /media/flavio/Sites}
Works    ${alignr}${fs_used /media/flavio/Works} /  ${fs_size /media/flavio/Works}  ${alignr}${fs_bar 6,50 /media/flavio/Works}
XTudo    ${alignr}${fs_used /media/flavio/XTudo} /  ${fs_size /media/flavio/XTudo}  ${alignr}${fs_bar 6,50 /media/flavio/XTudo}
Armazem1 ${alignr}${fs_used /media/flavio/Armazem1} /  ${fs_size /media/flavio/Armazem1}  ${alignr}${fs_bar 6,50 /media/flavio/Armazem1}
Armazem2 ${alignr}${fs_used /media/flavio/Armazem2} /  ${fs_size /media/flavio/Armazem2}  ${alignr}${fs_bar 6,50 /media/flavio/Armazem2}
$hr
a1 Neon      ${alignr}${fs_used /} ${alignr}${fs_bar 6,40 /} ${alignr}${fs_used /home} ${alignr}${fs_bar 6,40 /home}
a2 Mageia    ${alignr}${fs_used /media/flavio/Linux2} ${alignr}${fs_bar 6,40 /media/flavio/Linux2} ${alignr}${fs_used /media/flavio/Home2} ${alignr}${fs_bar 6,40 /media/flavio/Home2}
a3 Debian    ${alignr}${fs_used /media/flavio/Linux3} ${alignr}${fs_bar 6,40 /media/flavio/Linux3} ${alignr}${fs_used /media/flavio/Home3} ${alignr}${fs_bar 6,40 /media/flavio/Home3}
b4 Kubuntu   ${alignr}${fs_used /media/flavio/Linux4} ${alignr}${fs_bar 6,40 /media/flavio/Linux4} ${alignr}${fs_used /media/flavio/Home4} ${alignr}${fs_bar 6,40 /media/flavio/Home4}
b5 o.Leap    ${alignr}${fs_used /media/flavio/Linux5} ${alignr}${fs_bar 6,40 /media/flavio/Linux5} ${alignr}${fs_used /media/flavio/Home5} ${alignr}${fs_bar 6,40 /media/flavio/Home5}
b6 PCLOS     ${alignr}${fs_used /media/flavio/Linux6} ${alignr}${fs_bar 6,40 /media/flavio/Linux6} ${alignr}${fs_used /media/flavio/Home6} ${alignr}${fs_bar 6,40 /media/flavio/Home6}
c7 Mint      ${alignr}${fs_used /media/flavio/Linux7} ${alignr}${fs_bar 6,40 /media/flavio/Linux7} ${alignr}${fs_used /media/flavio/Home7} ${alignr}${fs_bar 6,40 /media/flavio/Home7}
c8 Slack     ${alignr}${fs_used /media/flavio/Linux8} ${alignr}${fs_bar 6,40 /media/flavio/Linux8}  ${alignr}${fs_used /media/flavio/Home8} ${alignr}${fs_bar 6,40 /media/flavio/Home8}
c9 Arch      ${alignr}${fs_used /media/flavio/Linux9} ${alignr}${fs_bar 6,40 /media/flavio/Linux9} ${alignr}${fs_used /media/flavio/Home9} ${alignr}${fs_bar 6,40 /media/flavio/Home9}
10 Sabayon   ${alignr}${fs_used /media/flavio/Linux10} ${alignr}${fs_bar 6,40 /media/flavio/Linux10} ${alignr}${fs_used /media/flavio/Home10} ${alignr}${fs_bar 6,40 /media/flavio/Home10}
11 Kubuntu d ${alignr}${fs_used /media/flavio/Linux11} ${alignr}${fs_bar 6,40 /media/flavio/Linux11} ${alignr}${fs_used /media/flavio/Home11} ${alignr}${fs_bar 6,40 /media/flavio/Home11}
12 Devuan    ${alignr}${fs_used /media/flavio/Linux12} ${alignr}${fs_bar 6,40 /media/flavio/Linux12} ${alignr}${fs_used /media/flavio/Home12} ${alignr}${fs_bar 6,40 /media/flavio/Home12}

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

  • Usar “/” e “/home” para suas próprias partições.
  • Ajustar os demais caminhos (path), — algumas usam apenas /media/LABEL, outras usam “/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 é a referência mais prática para consulta.

As letras à esquerda (a1, b5, c9 etc.) ajudam a lembrar os HDDs (sda, sdb, sdc); e economizo espaço nas últimas 3 distros, pois sei que estão no SSD externo (sdd). — O alinhamento agradece.

\• Resultado final


Esse levantamento foi inicialmente publicado em 22 Dez. 2018, — antes de migrar para a nova sintaxe (adiante), — e prosseguiu com sucessivas revisões dos arquivos de configuração do Conky de todas as distros, até 10 Jan. 2019.

A cada passo, foi atualizado um “modelo”, — tanto para ajudar a padronizar as distros instaladas, — quanto para aplicar em sessões Live DVD e em novas distros.

Versão 2019-01-19:

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,
 -- draw_graph_borders = true,
 
 default_color = 'white',
 default_shade_color = 'black',

 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,

}

conky.text = [[

${font verdana:pixelsize=32}KDE Neon${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} (${execi 60 lsb_release -cs})
### Slackware ### ${execi 600 cat /etc/slackware-version}
###      Arch ### ${execi 600 hostnamectl | grep Operating | cut -c 21-30}
###   Sabayon ### ${execi 600 lsb_release -ds} - ${exec disp=${DISPLAY#:}; disp=${disp%.[0-9]}; cat $HOME/.desktop-session/desktop-code.$disp 2>/dev/null}
Kernel ${sysname} ${kernel}

# ${alignc} 120’’
${cpugraph cpu1 30,120} ${alignr}${cpugraph cpu2 30,120}
# CPU1: ${cpu cpu1}% ${alignr}CPU2: ${cpu cpu2}%
CPU1: ${cpu cpu1}% ${alignr}120’’               ${alignr}CPU2: ${cpu cpu2}%

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

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

Buffers      ${alignr}$buffers               ${alignr}Livre      ${alignr}${memfree}
Cache     ${alignr}$cached               ${alignr}Disp      ${alignr}${memeasyfree}

${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}

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
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
Sites    ${alignr}${fs_used /PATH/Sites} / ${fs_size /PATH/Sites}  ${alignr}${fs_bar 6,50 /PATH/Sites}
Works    ${alignr}${fs_used /PATH/Works} /  ${fs_size /PATH/Works}  ${alignr}${fs_bar 6,50 /PATH/Works}
XTudo    ${alignr}${fs_used /PATH/XTudo} /  ${fs_size /PATH/XTudo}  ${alignr}${fs_bar 6,50 /PATH/XTudo}
Armazem1 ${alignr}${fs_used /PATH/Armazem1} /  ${fs_size /PATH/Armazem1}  ${alignr}${fs_bar 6,50 /PATH/Armazem1}
Armazem2 ${alignr}${fs_used /PATH/Armazem2} /  ${fs_size /PATH/Armazem2}  ${alignr}${fs_bar 6,50 /PATH/Armazem2}
$hr
a1 Neon      ${alignr}${fs_used /PATH/Linux1} ${alignr}${fs_bar 6,40 /PATH/Linux1} ${alignr}${fs_used /PATH/Home1} ${alignr}${fs_bar 6,40 /PATH/Home1}
a2 Mageia    ${alignr}${fs_used /PATH/Linux2} ${alignr}${fs_bar 6,40 /PATH/Linux2} ${alignr}${fs_used /PATH/Home2} ${alignr}${fs_bar 6,40 /PATH/Home2}
a3 Debian    ${alignr}${fs_used /PATH/Linux3} ${alignr}${fs_bar 6,40 /PATH/Linux3} ${alignr}${fs_used /PATH/Home3} ${alignr}${fs_bar 6,40 /PATH/Home3}
b4 Kubuntu   ${alignr}${fs_used /PATH/Linux4} ${alignr}${fs_bar 6,40 /PATH/Linux4} ${alignr}${fs_used /PATH/Home4} ${alignr}${fs_bar 6,40 /PATH/Home4}
b5 o.Leap    ${alignr}${fs_used /PATH/Linux5} ${alignr}${fs_bar 6,40 /PATH/Linux5} ${alignr}${fs_used /PATH/Home5} ${alignr}${fs_bar 6,40 /PATH/Home5}
b6 PCLOS     ${alignr}${fs_used /PATH/Linux6} ${alignr}${fs_bar 6,40 /PATH/Linux6} ${alignr}${fs_used /PATH/Home6} ${alignr}${fs_bar 6,40 /PATH/Home6}
c7 Mint      ${alignr}${fs_used /PATH/Linux7} ${alignr}${fs_bar 6,40 /PATH/Linux7} ${alignr}${fs_used /PATH/Home7} ${alignr}${fs_bar 6,40 /PATH/Home7}
c8 Slack     ${alignr}${fs_used /PATH/Linux8} ${alignr}${fs_bar 6,40 /PATH/Linux8}  ${alignr}${fs_used /PATH/Home8} ${alignr}${fs_bar 6,40 /PATH/Home8}
c9 Arch      ${alignr}${fs_used /PATH/Linux9} ${alignr}${fs_bar 6,40 /PATH/Linux9} ${alignr}${fs_used /PATH/Home9} ${alignr}${fs_bar 6,40 /PATH/Home9}
10 Sabayon   ${alignr}${fs_used /PATH/Linux10} ${alignr}${fs_bar 6,40 /PATH/Linux10} ${alignr}${fs_used /PATH/Home10} ${alignr}${fs_bar 6,40 /PATH/Home10}
11 Kubuntu d ${alignr}${fs_used /PATH/Linux11} ${alignr}${fs_bar 6,40 /PATH/Linux11} ${alignr}${fs_used /PATH/Home11} ${alignr}${fs_bar 6,40 /PATH/Home11}
12 Devuan    ${alignr}${fs_used /PATH/Linux12} ${alignr}${fs_bar 6,40 /PATH/Linux12} ${alignr}${fs_used /PATH/Home12} ${alignr}${fs_bar 6,40 /PATH/Home12}
#  --- em cada distro, substituir sua linha por: ---
#  DISTRO    ${alignr}${fs_used /} ${alignr}${fs_bar 6,40 /} ${alignr}${fs_used /home} ${alignr}${fs_bar 6,40 /home}
]]

Nesse “modelo” foram mantidos 3 parâmetros anulados (comentados), — o primeiro, por dúvida; e os outros dois, só para documentar que estão valendo (padrão).

Ficam documentados, também, 4 maneiras encontradas para obter os nomes e versões de diferentes distros.

No bloco referente à CPU, ficam 2 maneiras de apresentar a legenda indicativa de “120 segundos”, — conforme o espaço vertical permita, ou não, — embora tenha padronizado pela segunda.

No bloco de Temperaturas, optei por padronizar o IF / ELSE / ENDIF, — para determinar quais itens estão em “hwmon0” ou em “hwmon1”, — pois eventualmente, uma ou outra distro (além do openSUSE) também inverte as localizações.

No PCLinuxOS, após uma atualização do lm_sensors, no Natal, deixou de existir “hwmon1”. — Ficou sem Temperatura de Core0 e Core1. — O problema se resolveu após rodar “sudo sensors-detect” (a verificar, se nunca tinha feito isso antes).

No bloco de uso das Partições, o modelo indica “/PATH/”, — a substituir, conforme o padrão de cada distro, — e uma linha de comentário fornece os caminhos para a partição-raiz e a partição-home da própria distro.

Em sessões Live DVD, esse bloco inteiro é “comentado” (desabilitado), — pois em geral, não convém montar partições dos HDDs / SSD.

Conky em Live Slackware •/


Conky em sessão Live DVD do Slackware

O teste da ISO mais recente do Slackware by AlienBOB permitiu comprovar o “modelo” de arquivo de configuração personalizada, — e também a facilidade de instalar o Conky em sessão Live DVD.

Para isso, foi baixado e descompactado o Slackware-14.2-conky.tar com os pacotes pré-construídos, — e seguidas as demais instruções:

live@darkstar:~/Downloads/Slackware-14.2-conky$ su
Por favor, informe sua PRÓPRIA senha como autenticação.
{Informe sua própria senha)
Senha : 
root@darkstar:/home/live/Downloads/Slackware-14.2-conky# ls -1
Readme.txt
conky
conky-1.10.8-x86_64-1_SBo.tgz
imlib2
imlib2-1.4.10-x86_64-1_SBo.tgz
lua
lua-5.1.5-x86_64-1_SBo.tgz
tolua++
tolua++-1.0.93-x86_64-1_SBo.tgz

root@darkstar:/home/live/Downloads/Slackware-14.2-conky# installpkg *.tgz
Verifying package conky-1.10.8-x86_64-1_SBo.tgz.
Installing package conky-1.10.8-x86_64-1_SBo.tgz:
PACKAGE DESCRIPTION:
# conky (light-weight system monitor for X)
#
# Conky is a system monitor for X originally based on the torsmo code.
# Since its original conception, Conky has changed a fair bit from
# its predecessor.  Conky can display just about anything, either on
# your root desktop or in its own window.  Conky has many built-in
# objects, as well as the ability to execute programs and scripts, then
# display the output from stdout.
#
# Homepage: http://conky.sourceforge.net
#
Executing install script for conky-1.10.8-x86_64-1_SBo.tgz.
Package conky-1.10.8-x86_64-1_SBo.tgz installed.
Verifying package imlib2-1.4.10-x86_64-1_SBo.tgz.
Installing package imlib2-1.4.10-x86_64-1_SBo.tgz:
PACKAGE DESCRIPTION:
# imlib2 (successor to Imlib)
#
# Imlib2 can load image files from disk in one of many formats, save
# images to disk in one of many formats, render image data onto other
# images, render images to an X-Windows drawable, produce pixmaps and
# pixmap masks of images, apply filters to images, rotate images,
# accept RGBA data for images, scale images, and more.
#
Executing install script for imlib2-1.4.10-x86_64-1_SBo.tgz.
Package imlib2-1.4.10-x86_64-1_SBo.tgz installed.
Verifying package lua-5.1.5-x86_64-1_SBo.tgz.
Installing package lua-5.1.5-x86_64-1_SBo.tgz:
PACKAGE DESCRIPTION:
# lua (a powerful, fast, light-weight, embeddable scripting language)
#
# Lua combines simple procedural syntax with powerful data description
# constructs based on associative arrays and extensible semantics.
# Lua is dynamically typed, runs by interpreting bytecode for a
# register-based virtual machine, and has automatic memory management
# with incremental garbage collection, making it ideal for
# configuration, scripting, and rapid prototyping.
#
Executing install script for lua-5.1.5-x86_64-1_SBo.tgz.
Package lua-5.1.5-x86_64-1_SBo.tgz installed.
Verifying package tolua++-1.0.93-x86_64-1_SBo.tgz.
Installing package tolua++-1.0.93-x86_64-1_SBo.tgz:
PACKAGE DESCRIPTION:
# tolua++ (tool to integrate C/C++ code with Lua)
#
# Tolua++ is an extended version of tolua, a tool to integrate C/C++
# code with Lua. tolua++ includes new features oriented to c++ such as:
# - support for std::string as a basic type (this can be turned off
# by a command line option);
# - support for class templates.
#
# Homepage: https://github.com/LuaDist/toluapp
#
Package tolua++-1.0.93-x86_64-1_SBo.tgz installed.

O pacote foi baixado às 3:04, — o Conky rodou às 3:12, — e a personalização foi concluída às 3:24.

Nova sintaxe, nova estrutura


Conly 1.10.8 sem “old configuration syntax”, no Sabyon (à direita)

Ao adotar o Conky, em Abril 2016, usei um arquivo antigo, — sintaxe e estrutura 1.9, — e desde então, apenas vim fazendo experiências e ajustes.

Com a instalação do Sabayon, pela primeira vez o Conky 1.10 se recusou a trabalhar com o arquivo de configuração <1.10, — que até hoje é aceito (interpretado) nas demais distros, — inclusive no Arch Linux, que já está no Conky 1.11.1_pre.

Na imagem (acima), comparação das versões 1.10.8 do Debian testing (esq.) e 1.11.1_pre do Arch Linux (centro), — ambas com suporte à antiga sintaxe, — e a versão 1.10.8 do Sabayon (dir.), compilada sem esse suporte.

Essas informações podem ser obtidas pelo comando:

$ conky -v

Modelo padrão mais recente (esq.) e modelo reorganizado por Séverin Dupouy (dir.)

Um tópico de Abril 2018 assinala o fim dessa compatibilidade, no Gentoo (base do Sabayon), — bem como o uso do convert.lua para conversão dos arquivos antigos (ver adiante).

Em vez da conversão, optei por outro caminho, — obter um arquivo ~/conkyrc “default” atual, com a nova estrutura e a nova sintaxe, — e personalizar cada item da configuração, usando como guia as opções adotadas nos arquivos antigos.

A nova estrutura delimita com clareza o conteúdo das 2 partes, — configurações gerais e “texto” a ser exibido:

conky.config = {
    .... .... .... ....
    .... .... .... ....
    .... .... .... ....
}

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

A nova sintaxe, — sinal de “igual”, 2 hifens em vez de “#”, true / false em vez de yes / no, aspas, vírgulas etc., — deve ser estritamente observada na primeira parte.

Inseri espaços, onde o modelo copiado usa “=” grudado no nome do parâmetro, — mas não pode haver nenhum espaço em «'verdana:size=8'», por exemplo.

Daí, a decisão de obter um modelo pronto, e apenas editar a primeira parte, — ao passo que na segunda parte basta copiar o bloco de “texto” antigo e colar entre [[ ... ... ]].

Acontece que o modelo padrão mais recente (9 Dez. 2018) apresenta a maior parte das configurações por ordem alfabética (mas não todas!, o que é confuso), — e acabei achando mais prático utilizar, como modelo, um ~/.conkyrc de Séverin Dupouy, — com as configurações agrupadas em conjuntos funcionais (e quase todo na ordem “tradicional”), o que o torna bem mais legível.

Comparação do novo arquivo ~/.conkyrc (esq.) com o antigo, para fazer as mesmas configurações

Devido à nova sintaxe, não basta copiar as antigas configurações, — teria de reproduzi-las à mão (a menos que usasse lua convert.lua; ver adiante). — No entanto, basta emparelhar os 2 arquivos, para identificar as opções a serem reproduzidas.

Para isso, foi feita uma segunda cópia do arquivo antigo, — sem os comentários (#) que o tornavam tão extenso. — A ordenação era muito semelhante à usada por Séverin Dupouy.

Observe que a última linha do “bloco” de configurações gerais não precisa terminar em vírgula, — mas ao levá-la para o início do “bloco”, a falta de vírgula foi suficiente para encerrar o Conky. — Por outro lado, a vírgula no final da última linha não faz mal algum, e é uma boa precaução.

Algumas linhas não tinham correspondência no novo modelo, mas não fizeram falta, — e talvez mais algumas também pudessem ser eliminadas (valores padrão), — mas achei preferível manter as que “recebi”, e apenas “comentá-las” com 2 hifens, para começar.

Primeira parte do ~/.conkyrc copiada, editada e aplicada (esq.)

Numa comparação com o “bloco” de configurações usado por Séverin Dupouy, é fácil identificar as opções editadas, — bem como o deslocamento de 1 linha (font) para o alto; e a eliminação de 2 linhas desnecessárias (color1, color2).

O parâmetro font estava no final, — provavelmente porque, na velha sintaxe, era comum usar xftfont, — e apenas tenha sido convertido, sem alterar a posição.

Aplicação do novo “bloco de configurações” do Conky, no Slackware

Embora mais trabalhoso que o convert.lua (adiante), esse processo “manual” foi uma ótima oportunidade para revisar as velhas configurações, — feitas um tanto às cegas, aqui e ali, ao longo de quase 3 anos, — e o resultado é mais amigável.

Backup dos antigos arquivos ~/.conkyrc

Com isso, o novo “bloco” de configurações conky.config = {... ... ...} estava pronto para ser aplicado (e testado) no Conky das demais distros, — mas não sem ter feito um backup geral, primeiro.

Copiando o novo bloco “conky.config {...}”, — até a linha “conky.text [[

A aplicação do novo “bloco” de configurações, — incluindo a linha “conky.text [[”, — podia ser feita sem preocupação, sem gastar 1 minuto.

Mas não esqueça de acrescentar “]]” no final do arquivo, antes de salvar, — ou terá de abrir o Terminal e reiniciar o Conky.

De início, ainda perdi algum tempo, apagando os comentários do arquivo antigo, — para conferir os parâmetros, — mas logo ficou claro que isso não era necessário.

Falta dos “]]” finais encerra o Conky, — e “gap_y = 40” faz diferença no Devuan 2 KDE

Tendo ao lado um arquivo “Conkyrc_NEW.txt”, como modelo, — o único “erro” possível estava nele mesmo, por conter “gap_y = 40”, — que fez diferença no KDE do Devuan 2.

Foi deixada a linha em branco logo após os “[[” do início do “texto”, — que em alguns casos ajuda a “empurrar para baixo”, — e eliminada a linha em branco antes dos “]]” do final, que em alguns casos afasta o Conky do Painel.

Uma vez constatado que não havia com que me preocupar, o processo foi bastante rápido, — considerando que o dia também foi aproveitado para atualizar todas as distros, — e várias outras coisas:

2018-12-01 - 15:46 - Sabayon

2018-12-22 -  9:47 - Backup old Conkyrc's

2018-12-24 - 16:07 - Mint 18 KDE

2018-12-25 -  9:24 - Slackware
             16:03 - Devuan 2
             17:31 - Kubuntu 19.04 (development branch)
             17:44 - Arch
             18:00 - PCLinuxOS
             18:56 - openSUSE Leap 15
             19:16 - Kubuntu 16.04
             20:25 - Debian testing
             20:36 - KDE Neon (16.04)
             20:43 - Mageia 6

2018-12-26 - 15:14 - mkdir + mv ~/.conkyrc >> ~/.config/conky/conky.conf

Nova pasta, novo nome


Save ~/.conkyrc as ~/.config/conky/conky.conf

Uma vez aplicadas a nova estrutura e a nova sintaxe, foi feita a padronização também do nome e da localização do arquivo de configuração, — de ~/.conkyrc para ~/.config/conky/conky.conf — começando pelo KDE Neon (Linux1, no computador).

Essa mudança ainda não se tornou obrigatória, no caso do Conky.

       -c | --config= FILE
              Config file to load instead of $HOME/.config/conky/conky.conf

Embora o Manual (acima) ensine como mandar o Conky usar outro arquivo de configuração em vez de ~/.config/conky/conky.conf, a verdade é que essa pasta ainda nem existia, em nenhuma das 12 distros instaladas aqui.

flavio@Linux1:~$ ls -oR /media/flavio/Home2/flavio/.config | grep conky
flavio@Linux1:~$ ls -oR /media/flavio/Home3/flavio/.config | grep conky
-rw-r--r-- 1 flavio   12288 Out 19  2016 http_conky.wikia.com_0.localstorage
-rw-r--r-- 1 flavio       0 Out 19  2016 http_conky.wikia.com_0.localstorage-journal
flavio@Linux1:~$ ls -oR /media/flavio/Home4/flavio/.config | grep conky
-rw-rw-r--  1 flavio   250 Abr 27  2016 conky-manager.json
flavio@Linux1:~$ ls -oR /media/flavio/Home5/flavio/.config | grep conky
flavio@Linux1:~$ ls -oR /media/flavio/Home6/flavio/.config | grep conky
flavio@Linux1:~$ ls -oR /media/flavio/Home7/flavio/.config | grep conky
flavio@Linux1:~$ ls -oR /media/flavio/Home8/flavio/.config | grep conky
flavio@Linux1:~$ ls -oR /media/flavio/Home9/flavio/.config | grep conky
flavio@Linux1:~$ ls -oR /media/flavio/Home10/flavio/.config | grep conky
flavio@Linux1:~$ ls -oR /media/flavio/Home11/flavio/.config | grep conky
ls: cannot open directory '/media/flavio/Home11/flavio/.config/mc': Permission denied
flavio@Linux1:~$ ls -oR /media/flavio/Home12/flavio/.config | grep conky
flavio@Linux1:~$ ls -oR ~/.config | grep conky
-rw------- 1 flavio  298 Set  8  2016 conky.desktop
ls: cannot open directory '/home/flavio/.config/mc/mcedit': Permission denied

Portanto, ainda foi preciso criar essas pastas, agora.

Aliás, o arquivo de configuração pessoal nunca foi criado automaticamente, ao instalar o Conky, — cabe ao usuário criá-lo, — e o Conky continuava obedecendo, automaticamente, aos arquivos ~/.conkyrc criados nos últimos 3 anos.

  $ conky -v
  ...
       * Local configfile: $HOME/.conkyrc
  ...

Um exame das versões pelo comando $ conky -v (acima) mostrou que em todas as distros Local configfile continua apontando para $HOME/.conkyrc. — Portanto, o Manual do Conky apenas começou a preparar a mudança.

Depois de “salvar como”, — em novo local e com novo nome, — bastou deletar o antigo arquivo ~/.conkyrc do KDE Neon, reiniciar o Conky, — e ele se apresentou tal como antes, — agora, lendo as (mesmas) configurações no ~/.config/conky/conky.conf.

O passo seguinte foi mover / renomear os arquivos de configuração das outras 11 distros:

 $ history | grep conky
 .......
 1318  2018-12-26_20:06:47 mkdir /media/flavio/Home2/flavio/.config/conky
 1319  2018-12-26_20:07:19 mv /media/flavio/Home2/flavio/.conkyrc /media/flavio/Home2/flavio/.config/conky/conky.conf
 1320  2018-12-26_20:08:32 mkdir /media/flavio/Home3/flavio/.config/conky/
 1321  2018-12-26_20:09:01 mv /media/flavio/Home3/flavio/.conkyrc /media/flavio/Home3/flavio/.config/conky/conky.conf
 1322  2018-12-26_20:12:17 mkdir /media/flavio/Home4/flavio/.config/conky/
 1323  2018-12-26_20:12:23 mkdir /media/flavio/Home5/flavio/.config/conky/
 1324  2018-12-26_20:12:29 mkdir /media/flavio/Home6/flavio/.config/conky/
 1325  2018-12-26_20:12:34 mkdir /media/flavio/Home7/flavio/.config/conky/
 1326  2018-12-26_20:12:41 mkdir /media/flavio/Home8/flavio/.config/conky/
 1327  2018-12-26_20:12:49 mkdir /media/flavio/Home9/flavio/.config/conky/
 1328  2018-12-26_20:13:11 mkdir /media/flavio/Home10/flavio/.config/conky/
 1329  2018-12-26_20:13:17 mkdir /media/flavio/Home11/flavio/.config/conky/
 1330  2018-12-26_20:13:24 mkdir /media/flavio/Home12/flavio/.config/conky/
 1331  2018-12-26_20:13:40 mv /media/flavio/Home4/flavio/.conkyrc /media/flavio/Home4/flavio/.config/conky/conky.conf
 1332  2018-12-26_20:13:48 mv /media/flavio/Home5/flavio/.conkyrc /media/flavio/Home5/flavio/.config/conky/conky.conf
 1333  2018-12-26_20:13:54 mv /media/flavio/Home6/flavio/.conkyrc /media/flavio/Home6/flavio/.config/conky/conky.conf
 1334  2018-12-26_20:14:01 mv /media/flavio/Home7/flavio/.conkyrc /media/flavio/Home7/flavio/.config/conky/conky.conf
 1335  2018-12-26_20:14:08 mv /media/flavio/Home8/flavio/.conkyrc /media/flavio/Home8/flavio/.config/conky/conky.conf
 1336  2018-12-26_20:14:13 mv /media/flavio/Home9/flavio/.conkyrc /media/flavio/Home9/flavio/.config/conky/conky.conf
 1337  2018-12-26_20:14:18 mv /media/flavio/Home10/flavio/.conkyrc /media/flavio/Home10/flavio/.config/conky/conky.conf
 1338  2018-12-26_20:14:24 mv /media/flavio/Home11/flavio/.conkyrc /media/flavio/Home11/flavio/.config/conky/conky.conf
 1339  2018-12-26_20:14:31 mv /media/flavio/Home12/flavio/.conkyrc /media/flavio/Home12/flavio/.config/conky/conky.conf

Kate tenta reabrir os arquivos da “última sessão”

Depois disso, é claro que o Kate não iria encontrar o arquivo ~/.conkyrc de sua “última sessão”, em nenhuma distro. — Basta fechar a aba vazia e abrir o novo ~/.config/conky/conky.conf, — e ele toma seu lugar na “sessão” do Kate.

Conversão pelo Lua


Script convert.lua copiado e tornado executável

Uma vez que, no Slackware, o script convert.lua já veio descompactado, bastou copiá-lo para /home e torná-lo executável.

Conversão de um “conkyrc” (cópia) para a nova estrutura e a nova sintaxe

Em seguida, rodar o comando, — para converter uma cópia do antigo ~/.conkyrc:

$ lua convert.lua conkyrc-OLD conkyrc-NEW

Arquivo ~/.conkyrc convertido, — mas com a “sujeira” mantida

O arquivo convertido apresenta-se corretamente dividido em conky.config = {... ...} e conky.text = [[... ...]], — o “#” inicial de cada linha foi substituído por 2 hífens (só no primeiro bloco!), yes substituído por true etc., — e não há dúvida de que tudo esteja correto.

Porém, permanece a velha profusão de comentários, — muito úteis, nos primeiros dias, — mas que podem ser dispensados, quando já nos familiarizamos com o Conky.

Por isso, preferi o trabalho “manual”, — que afinal, só precisou ser feito 1 vez, — e deixou um “bloco” de configurações bastante limpo, organizado e legível.

Epílogo


Nova compilação do Conky no Sabayon voltou a suportar a antiga sintaxe

10 Jan 2019 - Ao abrir o Chromium do Sabayon, — “On startup >> Continue where you left off”, — as páginas da documentação em HTML desapareceram:

/usr/share/doc/conky-1.10.8-r3/html/config_settings.html
Your file was not found
It may have been moved or deleted.
ERR_FILE_NOT_FOUND

De 1.10.8-r3 passou para 1.10.8.-r4, — e um comando conky -v revela que a nova revisão voltou a oferecer suporte à velha sintaxe:

De qualquer modo, a falta de suporte na “r3” foi um ótimo estímulo para revisar, reorganizar, padronizar tudo, — e aprender mais, e me divertir bastante. — Feliz 2019!

Antigas ferramentas


Conky “original”, pronto para ser personalizado (2016), — KSysguard e Psensor minimizados

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 CPU causado pelo Baloo, logo na primeira hora do Kubuntu 16.04 instalado.

Até então, eu usava KSysguard + 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 (“Voltagens”), quando precisei recorrer a uma fonte provisória durante alguns dias.

Não que, antes de Nov. 2015, não tivesse problemas desse tipo, — e piores, pois sem monitoramento, eles se acumulavam a um ponto perigoso: — Anos atrás, certa vez flagrei a ventoinha do Cooler parada, sabe-se lá desde quanto tempo antes!

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 usam parâmetros diferentes.

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

Comandos como htop e free, também parecem discordar quanto ao uso de Memória RAM. — Trata-se, apenas, de conceitos ou cálculos diferentes. — O que importa é a soma de Livre + Buffers + Cache = Realmente disponível (“Easy Free”), pois Buffers e Cache são imediatamente esvaziados, a qualquer instante, se necessário.

Quanto ao Xsensors e o Psensor, não se encontram nos repositórios-padrão de todas as distros, — o que também dificulta a comparação entre distros diferentes. — Além disso, omo avaliar o uso de Memória RAM, se numa distro você usa Xsensors, Psensor, e em outras você usa o comando “watch sensors”, ora em um Terminal mais “leve”, ora em um Terminal mais “pesado”?

Enfim, 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 as 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


Padrão adotado para registrar o 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, — nesses testes com o Slackware, dias 29 e 30 Dezembro, 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 Xfce e LXQt logo foram vitimados por erros de configuração, — que invalidaram novas medidas, — e Openbox não chegou a ser testado com Restart + Login automático + Conky.

Mas talvez seja um pouco mais exato (exceto Openbox, sem Restart) do que na segunda instalação do Slackware, — quando as medidas foram feitas com 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 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 1 minuto 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 de “atualização automática”, — 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); em outros casos, só 5 ou 10 minutos após o início da sessão KDE.

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 do Weather na RAM


O widget “Weather”, — que até então, usava apenas no Kubuntu 16.04 e no KDE Neon, — foi instalado nas outras 10 distros em 1º Jan. 2018, das 13:30 às 17:20.

O primeiro efeito, foi aumentar bastante o uso inicial de Memória RAM, — com o aparecimento dos processos “http.so” (vários) e “kio_http_cache_cleaner” logo após o Boot.

Os valores de uso de RAM após o “pico” inicial de uso de CPU, — cerca de 1 minuto após carregar o Plasma KDE, Painel, notificar conexão de Rede etc., — situavam-se cerca de 40+ MiB acima do que se observava antes.

Paralelamente ao uso maior de RAM, permanecia uma atividade pequena de CPU, — que antes não se registrava.

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 upload (desde a opção no Grub), aproximando-se dos valores observados até o final de 2018 (+15 ~ 25 MiB).

Infelizmente, isso complica a observação diária do uso inicial de Memória RAM pelas distros Linux instaladas.

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 instalada no próprio computador é a que está mais à mão, — e deve ser a mais compatível com a versão usada.

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

Documentação encontrada 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

Referências oficiais



Sugestões



Experiência pessoal



— … ≠ • ≠ … —

Ferramentas &tc.