Onde encontrar Widgets do Conky para o Virtualbox?

ola,
como informa o titulo do topico estou buscando por widigets do conky que funcione para VirtualBox.
estou testando alguns do Pling
para quem interessar remover os widgets nao usados no “conky manager”
visualizar arquivos ocultos em “show hidden files” e localizar o .conky pasta,
dentro remover as pastas dos widgets nao usados, assim ele nao aparece no “conky manager”

1 curtida

para ir na pasta do “conky” diretamente digitar esse endereço:
~/.conky

Hoje não mais.

Já pesquisei muito por temas, mas o app mudou muito a forma de configuração, ocasionando um certo trabalho para funcionar.

Como o sistema atualmente fornece muitas informações, acabs sendo um pouco útil o app.

Mas tinha em muitos fórum.

Infelizmente, nunca usei – nem posso avaliar – essa coisa de “widgets”.

Só o que posso sugerir, é que você aprenda a usar o Conky – e se liberte desses tais “widgets”, que não conheço.

Que tal, aprender a usar todo o poder do Conky?

2 curtidas

aqui esta o meu conky:

use_xft yes
xftfont DejaVu Sans:size=10
xftalpha 0.8
text_buffer_size 2048

# Update interval in seconds
update_interval 1

# This is the number of times Conky will update before quitting.
total_run_times 0

own_window yes
own_window_transparent no
#own_window_type override
#own_window_type desktop
own_window_type normal # Use 'normal' para compatibilidade com o compositor do Cinnamon

# If own_window is yes, these window manager hints may be used
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

# Use double buffering (reduces flicker, may not work for everyone)
double_buffer yes

# Minimum size of text area
minimum_size 250 500 # Ajustado para ter espaço para todo o conteúdo
# maximum_width 0

# Draw shades?
draw_shades no

# Draw outlines?
draw_outline no

# Draw borders around text
draw_borders no

# Stippled borders?
stippled_borders 0

# border margins
border_margin 5

# border width
border_width 1

# Default colors and also border colors
default_color white
#default_shade_color black
#default_outline_color grey
# own_window_colour 000000 # Comente/remova: Redundante com argb_visual ativado

# Text alignment, other possible values are commented
#alignment top_left
alignment top_right
#alignment bottom_left
#alignment bottom_right
#alignment middle_right

# Gap between borders of screen and text
# same thing as passing -x at command line
gap_x 0
gap_y 0

# Subtract file system buffers from used memory?
no_buffers yes

# set to yes if you want all text to be in uppercase
uppercase no

# number of cpu samples to average
# set to 1 to disable averaging
cpu_avg_samples 2

# number of net samples to average
# set to 1 to disable averaging
net_avg_samples 2

# Force UTF8? note that UTF8 support required XFT
override_utf8_locale yes

# Add spaces to keep things from moving about? This only affects certain objects.
use_spacer none

# --- CONFIGURAÇÕES CRUCIAIS PARA GRÁFICOS E COMPOSITOR ---
own_window_argb_visual yes # <-- ESSENCIAL: Ativa o canal alfa para gráficos e compatibilidade com compositor
own_window_argb_value FF000000 # <-- Define o fundo como preto opaco (FF=255). Se quiser transparência, use um valor menor (ex: 80000000 para semi-transparente)

# ADICIONE ESTAS DUAS LINHAS para melhor compatibilidade com o compositor do Cinnamon
own_window_leader_unit "conky"
own_window_leader_pid ${pid of conky}

# Linhas LUA (se você usa o calendário de lua e o arquivo existe)
lua_load ~/.conky/calendar.lua
lua_draw_hook_pre draw_fig


TEXT
${voffset -30}

${font Zekton:Bold:size=11}${color}INFO: ${font sans-serif:normal:size=8}${color}Conky ${conky_version}
               ${nodename kernel $machine}
               ${execi 6000 bash -c "lsb_release -d | grep 'Descr' | awk '{print \$2 \" \" \$3\" \" \$4\" \" \$5}'"}

${voffset -50}

${font Zekton:Bold:size=11}${color}DATA ${hr 2}
${font Monospace:style=Bold:pixelsize=35}${color}${alignc}${time %H:%M:%S}

${voffset -130}

${voffset -5}${offset 90}${color}${font Open Sans:size=10}${time %B %Y}

${voffset 80}

${font Zekton:Bold:size=11}SYSTEM ${hr 2}

${voffset -40}

${color orange}CPU: ${color} ${freq_g} GHz ${execi 300 nproc} cores
${color orange}Total: ${color} ${cpu}% ${alignr}
${cpubar}
${voffset -18}
${cpugraph 12,0}
${voffset -18}
${font sans-serif:normal:size=8}${color orange}RAM ${color}${alignc} $mem / $memmax $alignr $memperc%
$membar
${font sans-serif:normal:size=8}${color orange}SWAP: ${color}$swap $swapperc% ${alignr}
${swapbar}
${font sans-serif:normal:size=8}${color orange}Battery: ${color}${battery_percent BAT0}% ${alignr}
${color}${battery_bar BAT0}

${voffset -40}

${font Zekton:Bold:size=11}${color}HD ${hr 2}
${voffset -10}
${font StyleBats:Bold:size=16}h${font sans-serif:normal:size=8}${color}Disco Total: ${execi 60 ~/.conky/conky_raw_disk_size.sh}

${voffset -40}

${font Pie charts for maps:Bold:size=14}7${font}${font sans-serif:normal:size=8}${color}Root:${fs_used /}/${fs_size /}
${fs_bar}

${voffset -40}

${font Pie charts for maps:Bold:size=14}m${font sans-serif:normal:size=8}${color}Home: ${fs_free /home}/${fs_size /home}
${fs_bar /home}

${voffset -210}

${voffset 170}NETWORK ${hr 2}
${if_existing /proc/net/route enp0s3}
${voffset -6}${font PizzaDude Bullets:size=14}O${font}  Up: ${upspeed enp0s3} kb/s
${voffset 4}${font PizzaDude Bullets:size=14}U${font}   Down: ${downspeed enp0s3} kb/s
${voffset 4}${font PizzaDude Bullets:size=14}N${font}   Upload: ${alignr}${totalup enp0s3}
${voffset 4}${font PizzaDude Bullets:size=14}T${font}   Download: ${alignr}${totaldown enp0s3}


${font}Local Ip: ${alignr}${addr enp0s3}
${font}External Ip: ${alignr}${execi 3600 wget -q -O /dev/stdout http://checkip.dyndns.org/ | cut -d : -f 2- | cut -d \< -f -1}
${voffset 4}
${endif}

precisa instalar o ncal, ja que o cal nativo do sistema nao se faz reconhecido e liberar a leitura do lua calendar para fazer o calendario corretamente e o conky_raw_disk_size.sh para fazer que o conky mostre o tamanho do disco.

lembrando que o conky foi feito para exibir o VirtualBox nessa resolucao 1440x900

para instalar no linux mint rodei:

sudo apt -y install ncal
chmod +x ~/.conky/conky_raw_disk_size.sh
chmod +x ~/.conky/calendar.lua

o conteudo do conky_raw_disk_size.sh

#!/bin/bash
# Script para obter o tamanho bruto do disco principal dinamicamente (ex: 15G, 100G)

# O seu disco principal é 'sda'.
# Este script foi projetado para extrair o tamanho do disco 'sda'.
# Para outros discos (ex: 'vda', 'nvme0n1'), o valor de DISK_DEVICE precisaria ser ajustado,
# ou uma lógica mais complexa para detectar o disco principal seria necessária.
DISK_DEVICE="sda"

# Obtém o tamanho do disco principal 'sda' usando 'lsblk', 'grep' e 'awk'.
# 'lsblk' é executado sem opções problemáticas, 'grep' filtra a linha do disco principal,
# e 'awk' extrai a quarta coluna (o tamanho).
RAW_SIZE_DETECTED=$(lsblk 2>/dev/null | grep "^${DISK_DEVICE} " | awk '{print $4}')

if [ -z "$RAW_SIZE_DETECTED" ]; then
    echo "N/A" # Retorna "N/A" se não conseguir ler
else
    echo "$RAW_SIZE_DETECTED"
fi

o conteudo do calendar.lua:

require 'cairo'
require 'imlib2'
--------------------------------------------------------------------------------
function conky_draw_fig()
if conky_window == nil then return end
local cs = cairo_xlib_surface_create(conky_window.display, conky_window.drawable, conky_window.visual, conky_window.width, conky_window.height)
cr = cairo_create(cs)
local updates=tonumber(conky_parse('${updates}'))
--####################################################################################################
if updates>5 then -- starts the display
--####################################################################################################
--title text color
tred,tgreen,tblue,talpha=0.6,0.8,0.4,1
--title text font
tfont="Roboto"
--title text size
tfontsize=11
--###################################################
--main body text color
bred,bgreen,bblue,balpha=1,1,1,1
--main body text font
mfont="Roboto"
--main body text size
mfontsize=10
--###################################################
--highlight text color
hred,hgreen,hblue,halpha=0.6,0.6,0.6,1
--highlight font
hfont="Roboto"
--highlight size
hfontsize=10
--###################################################
--surrounding numbers 1=om, 0=off
surround=1
--surrounding dates text color
sred,sgreen,sblue,salpha=0.6,0.6,0.6,0.4
--surrounding font
sfont="Roboto"
--surounding size
sfontsize=10
--###################################################
--indicator box enter 1 for box or 0 for no box
box=1
--use the following 2 numbers to adjust box position
xadjust=-6
yadjust=-3
--set the box dimensions
width=11
height=11
--box color
xred,xgreen,xblue,xalpha=0.3,0.8,0.9,1
--###################################################
--calendar this month ###############################
--###################################################
--position
across=35
down=160
--rotate - this will require repositioning above
rotate=0
--###################################################
--horizontal gap between dates
gaph=30
--###################################################
--gap between day titles and first line
gapt=25
--###################################################
--gap between calendar line
gapl=20
--###################################################
--spacer -- this can help with alignment enter 0, 1 space or 2 spaces between the ""
spacer=""
--###################################################
--calendar calcs
year=os.date("%G")
today=tonumber(os.date("%d"))
t1 = os.time( {    year=year,month=03,day=01,hour=00,min=0,sec=0} );
t2 = os.time( {    year=year,month=02,day=01,hour=00,min=0,sec=0} );
feb=(os.difftime(t1,t2))/(24*60*60)
local monthdays={ 31, feb, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
local day=tonumber(os.date("%w"))+1
local day_num = today
local remainder=day_num % 7
start_day=day-(day_num % 7)
if start_day<0 then start_day=7+start_day end     
month=os.date("%m")
mdays=monthdays[tonumber(month)]
mdaystm=mdays
x=mdays+start_day
dnum={}
dnumh={}
if mdays+start_day<36 then 
dlen=35
plen=29 
else 
dlen=42 
plen=36
end
for i=1,dlen do
if i<=start_day then dnum[i]="  " 
else dn=i-start_day
if dn=="nil" then dn=0 end
if dn<=9 then dn=(spacer .. dn) end
if i>x then dn="" end
dnum[i]=dn
dnumh[i]=dn
if dn==(spacer .. today) or dn==today then
dnum[i]=""
end 
if dn==(spacer .. today) or dn==today then
dnumh[i]=dn
place=i 
else dnumh[i]="  " 
end 
end
end--for
--###################################################
cairo_rotate (cr,(math.pi/180)*(rotate))
--print calendar titles
--###################################################
cairo_select_font_face (cr, tfont, CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD);
cairo_set_font_size (cr, tfontsize);
cairo_set_source_rgba (cr,tred,tgreen,tblue,talpha)
dys={"Dom","Seg","Ter","Qua","Qui","Sex","Sab"}
--------------------------------
--use these settings to mess around with positioning
turn=0
ta=0
move=0
rot=0
--------------------------------
for i=1,7 do
cairo_move_to (cr, across+(gaph*(i-1)), down+(i*move))
cairo_rotate (cr,(math.pi/180)*(rot))
cairo_show_text (cr, dys[i])
cairo_rotate (cr,(math.pi/180)*(rot*-1))
end
cairo_select_font_face (cr, mfont, CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD);
cairo_set_font_size (cr, mfontsize);
cairo_set_source_rgba (cr,bred,bgreen,bblue,balpha)
for i=1,plen,7 do
fn=i
for i=fn,fn+6 do
cairo_move_to (cr, across+(gaph*(i-fn))-((((fn-1)/7)+ta)*turn), (i*move)+down+gapt+(gapl*((fn-1)/7)))
cairo_rotate (cr,(math.pi/180)*(rot))
cairo_show_text (cr, dnum[i])
cairo_rotate (cr,(math.pi/180)*(rot*-1))
end
end
cairo_select_font_face (cr, hfont, CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD);
cairo_set_font_size (cr, hfontsize);
cairo_set_source_rgba (cr,hred,hgreen,hblue,halpha)
for i=1,plen,7 do
fn=i
for i=fn,fn+6 do
cairo_move_to (cr, across+(gaph*(i-fn))-((((fn-1)/7)+ta)*turn), (i*move)+down+gapt+(gapl*((fn-1)/7)))
cairo_rotate (cr,(math.pi/180)*(rot))
cairo_show_text (cr, dnumh[i])
cairo_rotate (cr,(math.pi/180)*(rot*-1))
end
end
--###############################################################################
if surround==1 then
thisstart=tonumber(start_day)+1
thisend=tonumber(start_day)+mdays
previous=tonumber(start_day)
nextmon=dlen-thisend
pmon=tonumber(month)-1
if pmon==0 then pmon=12 end
pmon=monthdays[pmon]
snum={}
for i=1,dlen do
snum[i]=""
end
for i=tonumber(thisend)+1,tonumber(thisend)+nextmon do
snum[i]=i-tonumber(thisend)
end
for i=1,previous do
snum[i]=pmon-(previous-(i))
end
cairo_select_font_face (cr, sfont, CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD);
cairo_set_font_size (cr, sfontsize);
cairo_set_source_rgba (cr,sred,sgreen,sblue,salpha)
for i=1,plen,7 do
fn=i
for i=fn,fn+6 do
cairo_move_to (cr, across+(gaph*(i-fn))-((((fn-1)/7)+ta)*turn), (i*move)+down+gapt+(gapl*((fn-1)/7)))
cairo_rotate (cr,(math.pi/180)*(rot))
cairo_show_text (cr, snum[i])
cairo_stroke (cr)
cairo_rotate (cr,(math.pi/180)*(rot*-1))
end
end
end
--box aound
if box==1 then
cairo_set_source_rgba (cr,xred,xgreen,xblue,xalpha)
cairo_set_line_width (cr,1)
if place>0 and place<8 then
cy=down+gapt
elseif
place>7 and place<15 then
cy=down+gapt+gapl
elseif
place>13 and place<23 then
cy=down+gapt+gapl+gapl
elseif
place>21 and place<29 then
cy=down+gapt+gapl+gapl+gapl
elseif
place>28 and place<36 then
cy=down+gapt+gapl+gapl+gapl+gapl
end
placey=place %7
if placey==1 then
cx=across
elseif
placey==2 then
cx=across+(gaph*1)
elseif
placey==3 then
cx=across+(gaph*2)
elseif
placey==4 then
cx=across+(gaph*3)
elseif
placey==5 then
cx=across+(gaph*4)
elseif
placey==6 then
cx=across+(gaph*5)
elseif
placey==0 then
cx=across+(gaph*6)
end
cairo_arc (cr,cx-xadjust,cy+yadjust,width,-height, 2 * math.pi)
cairo_stroke (cr)
end
--###################################################
cairo_rotate (cr,(math.pi/180)*(rotate*-1))
--end of calendar
--###################################################
--#################################################################################
end--end if 5
end--end main function

ficando assim:

caso o NETWORK nao esteja funcionando corretamente, acredito que esteja usando o nome alterado, lembrando que no VirtualBox usa o enp0s3
verificar com o comando ip link show e substituir.

os widgets seria esse que aparece logo apos o BROWSE:

pensei em fazer separadamente o INFO, DATA, SYSTEM, HD e NETWORK, mas ficaria muitos campos para selecionar, coloquei tudo no mesmo conkyrc.

depois de fazer alguns testes ficou assim:


no linux Mint ↑


no GXDE_OS ↑

mantive alguns scripts e foi criado outros, vou deixar aqui o conteudo para poder ser replicado.

Instalacao:
usei VirtualBox com a linux UBUNTU/DEBIAN com a resolucao 1440x900

instalar o .deb
https://mxrepo.com/mx/repo/pool/main/c/conky-manager/conky-manager_2.7+dfsg1-6mx23+5_amd64.deb

instalar o ncal, pois o cal nativo do linux pode nao reconhecer.
apt -y install ncal

com isso o “conky manager” instala no sistema e cria a pasta depois de iniciado:
~/.conky

nessa pasta criar o conky.config com o seguinte conteudo:

conky.config = {
    -- Configurações visuais e de janela
    use_xft = true,
    font = 'DejaVu Sans:size=10',
    xftalpha = 0.8,
    text_buffer_size = 2048,
    update_interval = 1,
    total_run_times = 0,
    own_window = true,
    own_window_transparent = false,
    own_window_type = 'normal',
    own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',
    double_buffer = true,
    minimum_width = 230,
    minimum_height = 500,
    draw_shades = false,
    draw_outline = false,
    draw_borders = false,
    stippled_borders = 0,
    border_width = 1,
    default_color = 'white',
    alignment = 'top_right',
    gap_x = 0,
    gap_y = 0,
    no_buffers = true,
    uppercase = false,
    cpu_avg_samples = 2,
    net_avg_samples = 2,
    override_utf8_locale = true,
    use_spacer = 'none',
    own_window_argb_visual = true,
    own_window_argb_value = 0xFF000000,
    lua_load = '~/.conky/simple_calendar.lua',
    lua_draw_hook_pre = 'draw_simple_calendar',

};

conky.text = [[
${voffset -30}

${font Zekton:Bold:size=11}${color}INFO: ${font sans-serif:normal:size=8}${color}Conky ${conky_version}
${offset 48}${nodename kernel $machine}
${offset 48}${execi 6000 bash -c "lsb_release -d | grep 'Descr' | awk '{print \$2 \" \" \$3\" \" \$4\" \" \$5}'"}
${voffset -10}
${font Zekton:Bold:size=11}${color}DATA ${hr 2}
${font DejaVu Sans:style=Bold:pixelsize=35}${color}${alignc}${time %H:%M:%S}
${voffset -60}
${offset 90}${color}${font Open Sans:size=10}${execpi 5 date +"%B %Y" | sed 's/January/Janeiro/;s/February/Fevereiro/;s/March/Março/;s/April/Abril/;s/May/Maio/;s/June/Junho/;s/July/Julho/;s/August/Agosto/;s/September/Setembro/;s/October/Outubro/;s/November/Novembro/;s/December/Dezembro/'}${alignr}${lua simple_calendar}
${voffset 120}
${font Zekton:Bold:size=11}SYSTEM ${hr 2}
${voffset -20}
${color orange}CPU: ${color} ${freq_g} GHz ${execi 300 nproc} cores
${color orange}Total: ${color} ${cpu}% ${alignr}
${cpubar}
${voffset -18}
${cpugraph 12,0}
${voffset -18}
${font sans-serif:normal:size=8}${color orange}RAM ${color}${alignc} $mem / $memmax $alignr $memperc%
$membar
${font sans-serif:normal:size=8}${color orange}SWAP: ${color}${execi 5 ~/.conky/get_swap_info.sh} ${alignr}
${swapbar}
${font sans-serif:normal:size=8}${color orange}Battery: ${color}${if_existing /sys/class/power_supply/BAT0/capacity}${battery_percent BAT0}% ${alignr}${color}${battery_bar BAT0}${else}NO BATTERY${endif}
${color}${battery_bar BAT0}
${voffset 0}
${font Zekton:Bold:size=11}${color}HD ${hr 2}
${voffset -20}
${font sans-serif:normal:size=8}${color}Disco Total: ${execi 60 ~/.conky/raw_disk_size.sh}
${voffset -20}
${font}${font sans-serif:normal:size=8}${color}Root:${fs_used /}/${fs_size /}
${fs_bar}
${voffset -20}
${font sans-serif:normal:size=8}${color}Home: ${fs_free /home}/${fs_size /home}
${fs_bar /home}
${voffset 0}
${font Zekton:Bold:size=11}NETWORK ${hr 2}
${voffset -35}
${if_existing /proc/net/route enp0s3}
${font DejaVu Sans:size=10}${if_match "${execi 1 ~/.conky/net_status.sh}"=="ativo"}${color green}U${color}${else}${color red}U${color}${endif}${font} Up: ${upspeed enp0s3} kb/s
${offset 18}Total: ${totalup enp0s3}
${voffset 4}${font DejaVu Sans:size=10}${if_match "${execi 1 ~/.conky/net_status.sh}"=="ativo"}${color green}D${color}${else}${color red}D${color}${endif}${font} Down: ${downspeed enp0s3} kb/s
${offset 18}Total: ${totaldown enp0s3}

${font}Local Ip: ${alignr}${addr enp0s3}
${font}External Ip: ${alignr}${execi 3600 curl -s ipinfo.io/ip}
${endif}
${voffset -40}
]]

dentro dessa pasta criar + 4 arquivos:

get_swap_info.sh
net_status.sh
simple_calendar.lua
raw_disk_size.sh

explicando:
get_swap_info.sh: informa quanto do disco tem usado para SWAP
net_status.sh: informa mudando as cores de UPLOAD e DOWNLOAD
simple_calendar.lua: mostra o calendario, destacando o dia atual
raw_disk_size.sh: informa o tamanho TOTAL do disco usado

aqui o conteudo:
get_swap_info.sh

#!/bin/bash
# Obtém as informações de swap em MiB
SWAP_INFO=$(free -m | grep Swap)
TOTAL_SWAP=$(echo $SWAP_INFO | awk '{print $2}')
USED_SWAP=$(echo $SWAP_INFO | awk '{print $3}')
FREE_SWAP=$(echo $SWAP_INFO | awk '{print $4}')

if [ "$TOTAL_SWAP" -eq 0 ]; then
    echo "NO SWAP"
else
    SWAP_PERC=$(awk "BEGIN {print int(($USED_SWAP / $TOTAL_SWAP) * 100)}")
    echo "${USED_SWAP}MiB / ${TOTAL_SWAP}MiB (${SWAP_PERC}%)"
fi

net_status.sh

#!/bin/bash

# Define a interface de rede (substitua 'enp0s3' se a sua for diferente)
INTERFACE="enp0s3"

# Arquivo temporário para armazenar o último valor de tráfego
LAST_TRAFFIC_FILE="/tmp/conky_net_traffic_${INTERFACE}"

# Obtém o tráfego de entrada e saída atual
# O '/proc/net/dev' é a forma mais confiável de pegar o tráfego diretamente do kernel.
# Os campos são (para cada interface):
# bytes_recebidos pacotes_recebidos erros dropados fifo frames multicast compressed
# bytes_enviados pacotes_enviados erros dropados fifo colisões carrier compressed
CURRENT_RX=$(cat /proc/net/dev | grep "$INTERFACE" | awk '{print $2}')
CURRENT_TX=$(cat /proc/net/dev | grep "$INTERFACE" | awk '{print $10}')

# Verifica se o arquivo temporário existe
if [ ! -f "$LAST_TRAFFIC_FILE" ]; then
    # Se não existir, cria o arquivo com os valores atuais
    echo "$CURRENT_RX $CURRENT_TX" > "$LAST_TRAFFIC_FILE"
    echo "inativo" # Considera inativo na primeira execução
    exit 0
fi

# Lê os valores de tráfego anteriores
read -r LAST_RX LAST_TX < "$LAST_TRAFFIC_FILE"

# Atualiza o arquivo temporário com os valores atuais
echo "$CURRENT_RX $CURRENT_TX" > "$LAST_TRAFFIC_FILE"

# Calcula a diferença no tráfego
DIFF_RX=$((CURRENT_RX - LAST_RX))
DIFF_TX=$((CURRENT_TX - LAST_TX))

# Define um limiar mínimo de tráfego (em bytes) para considerar como "ativo"
# 100 bytes é um valor baixo que deve pegar qualquer atividade de rede.
THRESHOLD=100

if [ "$DIFF_RX" -gt "$THRESHOLD" ] || [ "$DIFF_TX" -gt "$THRESHOLD" ]; then
    echo "ativo"
else
    echo "inativo"
fi

simple_calendar.lua

-- simple_calendar.lua
require 'cairo'
local status, cairo_xlib = pcall(require, 'cairo_xlib')
if not status then cairo_xlib = setmetatable({}, { __index = function(_, key) return _G[key] end }) end

local function hex_to_rgba(hex) hex = hex:gsub("#",""); local r = tonumber("0x"..hex:sub(1,2)) / 255; local g = tonumber("0x"..hex:sub(3,4)) / 255; local b = tonumber("0x"..hex:sub(5,6)) / 255; return r, g, b, 1 end

function conky_draw_simple_calendar()
    if not conky_window then return end
    local w = conky_window.width; local h = conky_window.height
    local surface = cairo_xlib_surface_create(conky_window.display, conky_window.drawable, conky_window.visual, w, h)
    local cr = cairo_create(surface)

    local font_name = "DejaVu Sans Mono"
    local font_size = 14
    local header_font_size = 16
    local day_spacing_x = 34
    local day_spacing_y = 18
    local start_x = 0
    local start_y = 170 #185
    local colour_weekdays = "#FFA500" -- Laranja
    local colour_days = "#ffffff"
    local colour_today = "#00ff00"
    local colour_past_days = "#888888"
    local week_starts = "monday"

    local now = os.date("*t")
    local year, month, day = now.year, now.month, now.day
    local first_day = os.time{year=year, month=month, day=1}
    local start_weekday = tonumber(os.date("%w", first_day))
    if week_starts == "monday" then if start_weekday == 0 then start_weekday = 7 end start_weekday = start_weekday - 1 end
    local days_in_month = os.date("*t", os.time{year=year, month=month+1, day=0}).day

    cairo_select_font_face(cr, font_name, CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL)

    -- Desenha o cabeçalho
    cairo_set_font_size(cr, header_font_size)
    local weekdays = (week_starts == "monday") and {"Seg", "Ter", "Qua", "Qui", "Sex", "Sab", "Dom"} or {"Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb"}
    for i = 0, 6 do
        local weekday_text = weekdays[i+1]
        local extents = cairo_text_extents_t:create()
        cairo_text_extents(cr, weekday_text, extents)
        local text_width = extents.width
        local x_position = start_x + i * day_spacing_x + (day_spacing_x - text_width) / 2 -- Centraliza o texto

        cairo_set_source_rgba(cr, hex_to_rgba(colour_weekdays))
        cairo_move_to(cr, x_position, start_y)
        cairo_show_text(cr, weekday_text)

        -- Desenha a linha vertical
        local line_x = start_x + (i + 1) * day_spacing_x
        cairo_set_source_rgba(cr, hex_to_rgba("#888888")) -- Cor da linha (cinza claro)
        cairo_move_to(cr, line_x, start_y - 10) -- Inicia um pouco acima do cabeçalho
        cairo_line_to(cr, line_x, start_y + 6 * day_spacing_y) -- Vai até a 6ª linha de dias (margem extra)
        cairo_stroke(cr)
    end

    -- Desenha os dias do mês
    cairo_set_font_size(cr, font_size)
    local current_x = start_x
    local current_y = start_y + day_spacing_y
    local day_counter = 1
    for i = 0, 5 do -- Weeks
        for j = 0, 6 do -- Days
            local draw_day = day_counter - start_weekday
            if draw_day >= 1 and draw_day <= days_in_month then
                local day_text = tostring(draw_day)
                local extents = cairo_text_extents_t:create()
                cairo_text_extents(cr, day_text, extents)
                local text_width = extents.width
                local x_position = start_x + (j + 1) * day_spacing_x - text_width - 3

                if draw_day == day then
                    cairo_set_source_rgba(cr, hex_to_rgba(colour_today))
                elseif draw_day < day then
                    cairo_set_source_rgba(cr, hex_to_rgba(colour_past_days))
                else
                    cairo_set_source_rgba(cr, hex_to_rgba(colour_days))
                end
                cairo_move_to(cr, x_position, current_y)
                cairo_show_text(cr, day_text)
            end
            day_counter = day_counter + 1
        end
        current_y = current_y + day_spacing_y
        if day_counter - start_weekday > days_in_month then break end
    end

    cairo_destroy(cr)
    cairo_surface_destroy(surface)
end

raw_disk_size.sh

#!/bin/bash
# Script para obter o tamanho bruto do disco principal dinamicamente (ex: 15G, 100G)

# O seu disco principal é 'sda'.
# Este script foi projetado para extrair o tamanho do disco 'sda'.
# Para outros discos (ex: 'vda', 'nvme0n1'), o valor de DISK_DEVICE precisaria ser ajustado,
# ou uma lógica mais complexa para detectar o disco principal seria necessária.
DISK_DEVICE="sda"

# Obtém o tamanho do disco principal 'sda' usando 'lsblk', 'grep' e 'awk'.
# 'lsblk' é executado sem opções problemáticas, 'grep' filtra a linha do disco principal,
# e 'awk' extrai a quarta coluna (o tamanho).
RAW_SIZE_DETECTED=$(lsblk 2>/dev/null | grep "^${DISK_DEVICE} " | awk '{print $4}')

if [ -z "$RAW_SIZE_DETECTED" ]; then
    echo "N/A" # Retorna "N/A" se não conseguir ler
else
    echo "$RAW_SIZE_DETECTED"
fi

apos criar os arquivos devemos tratar as permissoes para que eles aparecam no conky, digite no terminal:

chmod +x ~/.conky/raw_disk_size.sh
chmod +x ~/.conky/simple_calendar.lua
chmod +x ~/.conky/net_status.sh
chmod +x ~/.conky/get_swap_info.sh

assim deve aparecer como no printscreen mostrado acima, fiz o teste no linux Mint e GDXE_OS, funcionou tudo certo seguindo os passos acima.
Instalando o ncal, criando os arquivos e colocando o conteudo, tratando as permissoes.
qualquer duvida pode perguntar aqui.

substituir no final no conky.config e no comeco do net_status.sh.