Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: Can't get seamod: attempt to call a nil value 'cairo_xlib_surface_create' #2044

Closed
keithsplace1 opened this issue Sep 24, 2024 · 5 comments
Labels
bug Bug report or bug fix PR display: x11 Issue related to X11 backend lua Issue or PR related to Lua code wontfix Won't be fixed: not a conky bug, unreasonable effort or can't fix due to external limitations

Comments

@keithsplace1
Copy link

What happened?

Can't get conky seamod rings to work.
I'll try to give you as much info as possible.
Installed on Garuda with Linux 6.10.10-zen1-1-zen x86_64
I know that it works on this machine, and on Garuda, just can't remember how I got it working, which version, whether I used conky-manager 1 or 2, the repo conky. etc. But I have seen on your github you've done alot of conky stuff hoping you can help me.
Here is links to the configs and diagnostics that I hope is helpful.



seamod.lua

If you need other info I hope I can help.
Thanks for any pointers.

Version

conky 1.21.6-pre-fc8fe76 compiled for Linux x86_64

Which OS/distro are you seeing the problem on?

Arch Linux

Conky config

#==============================================================================
#                               conkyrc_seamod
# Date    : 05/02/2012
# Author  : SeaJey
# Version : v0.1
# License : Distributed under the terms of GNU GPL version 2 or later
# 
# This version is a modification of conkyrc_lunatico wich is modification of conkyrc_orange
# 
# conkyrc_orange:    http://gnome-look.org/content/show.php?content=137503&forumpage=0
# conkyrc_lunatico:  http://gnome-look.org/content/show.php?content=142884
#==============================================================================

background yes
update_interval 1

cpu_avg_samples 1
net_avg_samples 2
temperature_unit fahrenheit

double_buffer yes
no_buffers yes
text_buffer_size 2048

gap_x 10
gap_y 30
minimum_size 350 960
maximum_width 400

own_window yes
own_window_type desktop
own_window_transparent yes
own_window_argb_visual yes
own_window_argb_value 0
own_window_hints below
border_inner_margin 0
border_outer_margin 0
alignment top_right

draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no

override_utf8_locale yes
use_xft yes
font caviardreams:size=10
xftalpha 0.5
uppercase no

# Defining colors
default_color FFFFFF
# Shades of Gray
color1 DDDDDD
color2 AAAAAA
color3 888888
# Orange
color4 EF5A29
# Green
color5 77B753

# Loading lua script for drawning rings
lua_load ~/seamod_rings.lua
#lua_draw_hook_post main


# System information using conky capabilities

# Header with base system info

TEXT
${font CaviarDreamsBold:size=12}${color4}SYSTEM ${hr 2}
${offset 15}${font}${color1}$sysname $kernel $machine
${offset 15}${font}${color1}$nodename
${offset 15}${font}${color1}Logged In: $USER
${offset 15}${font}${color1}Uptime: $uptime
${offset 15}${font}${color4}CPU Temp:  ${color1}${execi 30 sensors -f | grep "Core 0" | cut -d "+" -f2 | cut -c1-8}${alignr}${color orange}GPU Temp: ${color}${execi 10 nvidia-smi -q -d TEMPERATURE | awk '/GPU Current Temp/ {print $5}'C
${offset 15}${font}${color4}CPU Fan:   ${color1}${hwmon 3 fan 1} RPM${alignr}${color orange}GPU%: ${color}${exec nvidia-settings -tq GPUUtilization | awk -F '[,= ]' '{ print $2 }'}%
${offset 15}${font}${color4}Case Temp:  ${color1}${hwmon 0 temp 1F${alignr}${color orange}GPU Fan: ${color}${execi 60 nvidia-settings -q [fan:0]/GPUCurrentFanSpeed -t} %
${offset 15}${font}${color4}Nvme Temp:  ${color1}${hwmon nvme temp 1}.0°F
# Showing CPU Graph
${offset 122}${cpugraph 25,190 666666 666666}${voffset -27}
${offset 90}${font CaviarDreamsBold:size=11}${color5}CPU
# Showing TOP 5 CPU-consumers
${offset 105}${font}${color4}${top name 1}${alignr}${top cpu 1}%
${offset 105}${font}${color1}${top name 2}${alignr}${top cpu 2}%
${offset 105}${font}${color2}${top name 3}${alignr}${top cpu 3}%
${offset 105}${font}${color3}${top name 4}${alignr}${top cpu 4}%
#Showing memory part with TOP 5
${voffset 6}
${offset 90}${font CaviarDreamsBold:size=11}${color5}MEM
${offset 105}${font}${color4}${top_mem name 1}${alignr}${top_mem mem 1}%
${offset 105}${font}${color1}${top_mem name 2}${alignr}${top_mem mem 2}%
${offset 105}${font}${color2}${top_mem name 3}${alignr}${top_mem mem 3}%
${offset 105}${font}${color3}${top_mem name 4}${alignr}${top_mem mem 4}%
# Showing disk partitions: root, home and Data
${voffset 6}
${offset 145}${diskiograph 20,175 666666 666666}${voffset -27}
${offset 90}${font CaviarDreamsBold:size=11}${color5}DISKS
#${voffset 5}
${offset 15}${font}${color1}SDA: ${font}${fs_size /}${alignr}${font}Used: ${font}${fs_free /}
${offset 15}${font}${color1}Storage: ${font}${fs_size /mnt/Storage1}${alignr}${font}Free: ${font}${fs_free /mnt/Storage1}
${offset 15}${font}${color1}NAS1: ${font}${fs_size /media/DUDENETNAS1}${alignr}${font}Free: ${font}${fs_free /media/DUDENETNAS1}
${offset 15}${font}${color1}NAS2: ${font}${fs_size /media/DUDENETNAS2}${alignr}${font}Free: ${font}${fs_free /media/DUDENETNAS2}
${offset 15}${font}${color1}OMV:  ${font}${fs_size /media/openmediavault/storage}${alignr}${font}Free: ${font}${fs_free /media/openmediavault/storage}
${offset 15}${font}${color1}OMV2: ${font}${fs_size /media/omvintel/storage}${alignr}${font}Free: ${font}${fs_free /media/omvintel/storage}

#Network data (my desktop have only LAN). ETHERNET ring is mostly useless but looks pretty, main info is in the graphs
${offset 90}${font CaviarDreamsBold:size=11}${color5}ETHERNET            
${offset 15}${color1}${font}Up: ${alignr}${font}$color2${upspeed enp3s0} / ${totalup}
${offset 15}${upspeedgraph enp3s0 20,285 4B1B0C FF5C2B -t}
${offset 15}${color1}${font}Down: ${alignr}${font}$color2${downspeed enp3s0} / ${totaldown}
${offset 15}${downspeedgraph enp3s0 20,285 324D23 77B753 -t}
${offset 90}${font CaviarDreamsBold:size=11}${color5}ADDRESS
${offset 15}${font}${color1}Wan: ${execi 3600 wget -q -O - checkip.dyndns.org | sed -e 's/[^[:digit:]\|.]//g'}
${offset 15}${font}${color1}Lan: ${addr enp3s0}
  
${offset 15}${font}${color1}Inbound Ports: ${tcp_portmon 1 32767 count}   
${offset 15}${font}${color1}Outbound Ports: ${tcp_portmon 32768 61000 count}
${goto 90}${font}${color}${offset 10}IP${alignr}DPORT
${goto 90}${font}${color1}${tcp_portmon 1 65535 rip  0}${alignr 1}${tcp_portmon 1 65535 rport  0}
${goto 90}${font}${color1}${tcp_portmon 1 65535 rip  1}${alignr 1}${tcp_portmon 1 65535 rport  1}
${goto 90}${font}${color1}${tcp_portmon 1 65535 rip  2}${alignr 1}${tcp_portmon 1 65535 rport  2}
${goto 90}${font}${color1}${tcp_portmon 1 65535 rip  3}${alignr 1}${tcp_portmon 1 65535 rport  3}
${goto 90}${font}${color1}${tcp_portmon 1 65535 rip  4}${alignr 1}${tcp_portmon 1 65535 rport  4}
${goto 90}${font}${color1}${tcp_portmon 1 65535 rip  5}${alignr 1}${tcp_portmon 1 65535 rport  5}

${offset 15}${font CaviarDreamsBold:size=11}${color4}Conky Ver. ${font}${color1}${conky_version}${color4}  ${hr 2}

Stack trace

No response

Relevant log output

No response

@keithsplace1 keithsplace1 added bug Bug report or bug fix PR triage Issue that hasn't been verified labels Sep 24, 2024
@keithsplace1
Copy link
Author

keithsplace1 commented Sep 24, 2024

FYI, things that I tried so far is Garuda repo conky, conky-manager, installed conky-cairo, conky-cairo-nv,
many of the lua rings links I could find to resolve.
At one point the first error was the "attempt to call a nil value (global 'cairo_xlib_surface_create')"

@keithsplace1
Copy link
Author

keithsplace1 commented Sep 26, 2024

Using Garuda Linux 6.10.10-zen1-1-zen (x86_64)
conky 1.21.6-pre-fc8fe76 compiled for Linux x86_64

Compiled in features:

System config file: /etc/conky/conky.conf
Package library path: /usr/lib/conky

General:

  • math
  • hddtemp
  • portmon
  • IPv6
  • Curl
  • RSS
  • wireless
  • support for IBM/Lenovo notebooks
  • nvidia
  • builtin default configuration
  • old configuration syntax
  • Imlib2
  • OSS mixer support
  • apcupsd
  • iostats
  • ncurses
  • Internationalization support
  • PulseAudio

Lua bindings:

  • Cairo
  • Imlib2
  • RSVG
    X11:
  • Xdamage extension
  • Xinerama extension (virtual display)
  • Xshape extension (click through)
  • XDBE (double buffer extension)
  • Xft
  • ARGB visual
  • Own window
  • Mouse events
    Wayland:
  • ARGB visual
  • Mouse events

Music detection:

  • CMUS
  • MPD
  • MOC

Default values:

  • Netdevice: eno1
  • Local configfile: $HOME/.conkyrc
  • Localedir: /usr/share/locale
  • Maximum netdevices: 256
  • Maximum text size: 16384
  • Size text buffer: 256
Lua Sources
--==============================================================================
--                            seamod_rings.lua
--
--  Date    : 05/02/2012
--  Author  : SeaJey
--  Version : v0.1
--  License : Distributed under the terms of GNU GPL version 2 or later
--
--  This version is a modification of lunatico_rings.lua wich is modification of conky_orange.lua 
--
--  conky_orange.lua:    http://gnome-look.org/content/show.php?content=137503&forumpage=0
--  lunatico_rings.lua:  http://gnome-look.org/content/show.php?content=142884
--==============================================================================
require 'cairo'
gauge = {
{
name='cpu',                    arg='cpu1',                  max_value=100,
x=65,                          y=150,
graph_radius=54,
graph_thickness=5,
graph_start_angle=180,
graph_unit_angle=2.7,          graph_unit_thickness=2.7,
graph_bg_colour=0xffffff,      graph_bg_alpha=0.1,
graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.3,
hand_fg_colour=0xEF5A29,       hand_fg_alpha=1.0,
txt_radius=0,
txt_weight=0,                  txt_size=9.0,
txt_fg_colour=0xEF5A29,        txt_fg_alpha=1.0,
graduation_radius=28,
graduation_thickness=0,        graduation_mark_thickness=1,
graduation_unit_angle=27,
graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
caption='',
caption_weight=1,              caption_size=9.0,
caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.3,
},
{
name='cpu',                    arg='cpu2',                  max_value=100,
x=65,                          y=150,
graph_radius=48,
graph_thickness=5,
graph_start_angle=180,
graph_unit_angle=2.7,          graph_unit_thickness=2.7,
graph_bg_colour=0xffffff,      graph_bg_alpha=0.1,
graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.3,
hand_fg_colour=0xEF5A29,       hand_fg_alpha=1.0,
txt_radius=0,
txt_weight=0,                  txt_size=9.0,
txt_fg_colour=0xEF5A29,        txt_fg_alpha=1.0,
graduation_radius=28,
graduation_thickness=0,        graduation_mark_thickness=1,
graduation_unit_angle=27,
graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
caption='',
caption_weight=1,              caption_size=9.0,
caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.3,
},
{
name='cpu',                    arg='cpu3',                  max_value=100,
x=65,                          y=150,
graph_radius=42,
graph_thickness=5,
graph_start_angle=180,
graph_unit_angle=2.7,          graph_unit_thickness=2.7,
graph_bg_colour=0xffffff,      graph_bg_alpha=0.1,
graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.3,
hand_fg_colour=0xEF5A29,       hand_fg_alpha=1.0,
txt_radius=0,
txt_weight=0,                  txt_size=9.0,
txt_fg_colour=0xEF5A29,        txt_fg_alpha=1.0,
graduation_radius=28,
graduation_thickness=0,        graduation_mark_thickness=1,
graduation_unit_angle=27,
graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
caption='',
caption_weight=1,              caption_size=9.0,
caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.3,
},
{
name='cpu',                    arg='cpu4',                  max_value=100,
x=65,                          y=150,
graph_radius=36,
graph_thickness=5,
graph_start_angle=180,
graph_unit_angle=2.7,          graph_unit_thickness=2.7,
graph_bg_colour=0xffffff,      graph_bg_alpha=0.1,
graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.3,
hand_fg_colour=0xEF5A29,       hand_fg_alpha=1.0,
txt_radius=0,
txt_weight=0,                  txt_size=9.0,
txt_fg_colour=0xEF5A29,        txt_fg_alpha=1.0,
graduation_radius=28,
graduation_thickness=0,        graduation_mark_thickness=1,
graduation_unit_angle=27,
graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
caption='',
caption_weight=1,              caption_size=9.0,
caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.3,
},
{
name='cpu',                    arg='cpu5',                  max_value=100,
x=65,                          y=150,
graph_radius=30,
graph_thickness=5,
graph_start_angle=180,
graph_unit_angle=2.7,          graph_unit_thickness=2.7,
graph_bg_colour=0xffffff,      graph_bg_alpha=0.1,
graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.3,
hand_fg_colour=0xEF5A29,       hand_fg_alpha=1.0,
txt_radius=0,
txt_weight=0,                  txt_size=9.0,
txt_fg_colour=0xEF5A29,        txt_fg_alpha=1.0,
graduation_radius=28,
graduation_thickness=0,        graduation_mark_thickness=1,
graduation_unit_angle=27,
graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
caption='',
caption_weight=1,              caption_size=9.0,
caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.3,
},
{
name='cpu',                    arg='cpu6',                  max_value=100,
x=65,                          y=150,
graph_radius=24,
graph_thickness=5,
graph_start_angle=180,
graph_unit_angle=2.7,          graph_unit_thickness=2.7,
graph_bg_colour=0xffffff,      graph_bg_alpha=0.1,
graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.3,
hand_fg_colour=0xEF5A29,       hand_fg_alpha=1.0,
txt_radius=0,
txt_weight=0,                  txt_size=9.0,
txt_fg_colour=0xEF5A29,        txt_fg_alpha=1.0,
graduation_radius=28,
graduation_thickness=0,        graduation_mark_thickness=1,
graduation_unit_angle=27,
graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
caption='',
caption_weight=1,              caption_size=9.0,
caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.3,
},
{
name='cpu',                    arg='cpu7',                  max_value=100,
x=65,                          y=150,
graph_radius=18,
graph_thickness=5,
graph_start_angle=180,
graph_unit_angle=2.7,          graph_unit_thickness=2.7,
graph_bg_colour=0xffffff,      graph_bg_alpha=0.1,
graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.3,
hand_fg_colour=0xEF5A29,       hand_fg_alpha=1.0,
txt_radius=0,
txt_weight=0,                  txt_size=9.0,
txt_fg_colour=0xEF5A29,        txt_fg_alpha=1.0,
graduation_radius=28,
graduation_thickness=0,        graduation_mark_thickness=1,
graduation_unit_angle=27,
graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
caption='',
caption_weight=1,              caption_size=9.0,
caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.3,
},
{
name='cpu',                    arg='cpu8',                  max_value=100,
x=65,                          y=150,
graph_radius=12,
graph_thickness=5,
graph_start_angle=180,
graph_unit_angle=2.7,          graph_unit_thickness=2.7,
graph_bg_colour=0xffffff,      graph_bg_alpha=0.1,
graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.3,
hand_fg_colour=0xEF5A29,       hand_fg_alpha=1.0,
txt_radius=0,
txt_weight=0,                  txt_size=9.0,
txt_fg_colour=0xEF5A29,        txt_fg_alpha=1.0,
graduation_radius=28,
graduation_thickness=0,        graduation_mark_thickness=1,
graduation_unit_angle=27,
graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
caption='',
caption_weight=1,              caption_size=9.0,
caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.3,
},
{
name='memperc',                arg='',                      max_value=100,
x=65,                          y=325,
graph_radius=54,
graph_thickness=10,
graph_start_angle=180,
graph_unit_angle=2.7,          graph_unit_thickness=2.7,
graph_bg_colour=0xffffff,      graph_bg_alpha=0.1,
graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.3,
hand_fg_colour=0xEF5A29,       hand_fg_alpha=1.0,
txt_radius=42,
txt_weight=0,                  txt_size=9.0,
txt_fg_colour=0xEF5A29,        txt_fg_alpha=1.0,
graduation_radius=23,
graduation_thickness=0,        graduation_mark_thickness=2,
graduation_unit_angle=27,
graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.5,
caption='',
caption_weight=1,              caption_size=10.0,
caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.3,
},
{
name='fs_used_perc',           arg='/media/files',                     max_value=100,
x=65,                          y=490,
graph_radius=54,
graph_thickness=7,
graph_start_angle=180,
graph_unit_angle=2.7,          graph_unit_thickness=2.7,
graph_bg_colour=0xffffff,      graph_bg_alpha=0.1,
graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.3,
hand_fg_colour=0xEF5A29,       hand_fg_alpha=1.0,
txt_radius=64,
txt_weight=0,                  txt_size=9.0,
txt_fg_colour=0xEF5A29,        txt_fg_alpha=1.0,
graduation_radius=23,
graduation_thickness=0,        graduation_mark_thickness=2,
graduation_unit_angle=27,
graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
caption='Files',
caption_weight=1,              caption_size=12.0,
caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.5,
},
{
name='fs_used_perc',           arg='/home/',                     max_value=100,
x=65,                          y=490,
graph_radius=42,
graph_thickness=7,
graph_start_angle=180,
graph_unit_angle=2.7,          graph_unit_thickness=2.7,
graph_bg_colour=0xffffff,      graph_bg_alpha=0.1,
graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.3,
hand_fg_colour=0xEF5A29,       hand_fg_alpha=1.0,
txt_radius=32,
txt_weight=0,                  txt_size=9.0,
txt_fg_colour=0xEF5A29,        txt_fg_alpha=1.0,
graduation_radius=23,
graduation_thickness=0,        graduation_mark_thickness=2,
graduation_unit_angle=27,
graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
caption='Home',
caption_weight=1,              caption_size=12.0,
caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.5,
},
{
name='fs_used_perc',           arg='/',                     max_value=100,
x=65,                          y=490,
graph_radius=30,
graph_thickness=7,
graph_start_angle=180,
graph_unit_angle=2.7,          graph_unit_thickness=2.7,
graph_bg_colour=0xffffff,      graph_bg_alpha=0.1,
graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.3,
hand_fg_colour=0xEF5A29,       hand_fg_alpha=1.0,
txt_radius=22,
txt_weight=0,                  txt_size=9.0,
txt_fg_colour=0xEF5A29,        txt_fg_alpha=1.0,
graduation_radius=23,
graduation_thickness=0,        graduation_mark_thickness=2,
graduation_unit_angle=27,
graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
caption='Root',
caption_weight=1,              caption_size=12.0,
caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.5,
},
{
name='downspeedf',           arg='wlan0',                     max_value=100,
x=65,                          y=690,
graph_radius=54,
graph_thickness=7,
graph_start_angle=180,
graph_unit_angle=2.7,          graph_unit_thickness=2.7,
graph_bg_colour=0xffffff,      graph_bg_alpha=0.1,
graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.3,
hand_fg_colour=0xEF5A29,       hand_fg_alpha=0,
txt_radius=64,
txt_weight=0,                  txt_size=9.0,
txt_fg_colour=0xEF5A29,        txt_fg_alpha=1.0,
graduation_radius=28,
graduation_thickness=0,        graduation_mark_thickness=1,
graduation_unit_angle=27,
graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
caption='Down',
caption_weight=1,              caption_size=12.0,
caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.5,
},
{
name='upspeedf',           arg='wlan0',                     max_value=100,
x=65,                          y=690,
graph_radius=42,
graph_thickness=7,
graph_start_angle=180,
graph_unit_angle=2.7,          graph_unit_thickness=2.7,
graph_bg_colour=0xffffff,      graph_bg_alpha=0.1,
graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.3,
hand_fg_colour=0xEF5A29,       hand_fg_alpha=0,
txt_radius=30,
txt_weight=0,                  txt_size=9.0,
txt_fg_colour=0xEF5A29,        txt_fg_alpha=1.0,
graduation_radius=28,
graduation_thickness=0,        graduation_mark_thickness=1,
graduation_unit_angle=27,
graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
caption='Up',
caption_weight=1,              caption_size=12.0,
caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.5,
},
}
-- converts color in hexa to decimal
function rgb_to_r_g_b(colour, alpha)
return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
end
-- convert degree to rad and rotate (0 degree is top/north)
function angle_to_position(start_angle, current_angle)
local pos = current_angle + start_angle
return ( ( pos * (2 * math.pi / 360) ) - (math.pi / 2) )
end
-- displays gauges
function draw_gauge_ring(display, data, value)
local max_value = data['max_value']
local x, y = data['x'], data['y']
local graph_radius = data['graph_radius']
local graph_thickness, graph_unit_thickness = data['graph_thickness'], data['graph_unit_thickness']
local graph_start_angle = data['graph_start_angle']
local graph_unit_angle = data['graph_unit_angle']
local graph_bg_colour, graph_bg_alpha = data['graph_bg_colour'], data['graph_bg_alpha']
local graph_fg_colour, graph_fg_alpha = data['graph_fg_colour'], data['graph_fg_alpha']
local hand_fg_colour, hand_fg_alpha = data['hand_fg_colour'], data['hand_fg_alpha']
local graph_end_angle = (max_value * graph_unit_angle) % 360
-- background ring
cairo_arc(display, x, y, graph_radius, angle_to_position(graph_start_angle, 0), angle_to_position(graph_start_angle, graph_end_angle))
cairo_set_source_rgba(display, rgb_to_r_g_b(graph_bg_colour, graph_bg_alpha))
cairo_set_line_width(display, graph_thickness)
cairo_stroke(display)

-- arc of value
local val = value % (max_value + 1)
local start_arc = 0
local stop_arc = 0
local i = 1
while i <= val do
    start_arc = (graph_unit_angle * i) - graph_unit_thickness
    stop_arc = (graph_unit_angle * i)
    cairo_arc(display, x, y, graph_radius, angle_to_position(graph_start_angle, start_arc), angle_to_position(graph_start_angle, stop_arc))
    cairo_set_source_rgba(display, rgb_to_r_g_b(graph_fg_colour, graph_fg_alpha))
    cairo_stroke(display)
    i = i + 1
end
local angle = start_arc

-- hand
start_arc = (graph_unit_angle * val) - (graph_unit_thickness * 2)
stop_arc = (graph_unit_angle * val)
cairo_arc(display, x, y, graph_radius, angle_to_position(graph_start_angle, start_arc), angle_to_position(graph_start_angle, stop_arc))
cairo_set_source_rgba(display, rgb_to_r_g_b(hand_fg_colour, hand_fg_alpha))
cairo_stroke(display)

-- graduations marks
local graduation_radius = data['graduation_radius']
local graduation_thickness, graduation_mark_thickness = data['graduation_thickness'], data['graduation_mark_thickness']
local graduation_unit_angle = data['graduation_unit_angle']
local graduation_fg_colour, graduation_fg_alpha = data['graduation_fg_colour'], data['graduation_fg_alpha']
if graduation_radius > 0 and graduation_thickness > 0 and graduation_unit_angle > 0 then
    local nb_graduation = graph_end_angle / graduation_unit_angle
    local i = 0
    while i < nb_graduation do
        cairo_set_line_width(display, graduation_thickness)
        start_arc = (graduation_unit_angle * i) - (graduation_mark_thickness / 2)
        stop_arc = (graduation_unit_angle * i) + (graduation_mark_thickness / 2)
        cairo_arc(display, x, y, graduation_radius, angle_to_position(graph_start_angle, start_arc), angle_to_position(graph_start_angle, stop_arc))
        cairo_set_source_rgba(display,rgb_to_r_g_b(graduation_fg_colour,graduation_fg_alpha))
        cairo_stroke(display)
        cairo_set_line_width(display, graph_thickness)
        i = i + 1
    end
end

-- text
local txt_radius = data['txt_radius']
local txt_weight, txt_size = data['txt_weight'], data['txt_size']
local txt_fg_colour, txt_fg_alpha = data['txt_fg_colour'], data['txt_fg_alpha']
local movex = txt_radius * math.cos(angle_to_position(graph_start_angle, angle))
local movey = txt_radius * math.sin(angle_to_position(graph_start_angle, angle))
cairo_select_font_face (display, "caviardreams", CAIRO_FONT_SLANT_NORMAL, txt_weight)
cairo_set_font_size (display, txt_size)
cairo_set_source_rgba (display, rgb_to_r_g_b(txt_fg_colour, txt_fg_alpha))
if txt_radius > 0 then
    cairo_move_to (display, x + movex - (txt_size / 2), y + movey + 3)
    cairo_show_text (display, value)
    cairo_stroke (display)
end

-- caption
local caption = data['caption']
local caption_weight, caption_size = data['caption_weight'], data['caption_size']
local caption_fg_colour, caption_fg_alpha = data['caption_fg_colour'], data['caption_fg_alpha']
local tox = graph_radius * (math.cos((graph_start_angle * 2 * math.pi / 360)-(math.pi/2)))
local toy = graph_radius * (math.sin((graph_start_angle * 2 * math.pi / 360)-(math.pi/2)))
cairo_select_font_face (display, "caviardreams", CAIRO_FONT_SLANT_NORMAL, caption_weight);
cairo_set_font_size (display, caption_size)
cairo_set_source_rgba (display, rgb_to_r_g_b(caption_fg_colour, caption_fg_alpha))
cairo_move_to (display, x + tox + 5, y + toy + 5)
-- bad hack but not enough time !
if graph_start_angle < 105 then
    cairo_move_to (display, x + tox - 30, y + toy + 1)
end
cairo_show_text (display, caption)
cairo_stroke (display)

end
-- loads data and displays gauges
function go_gauge_rings(display)
local function load_gauge_rings(display, data)
local str, value = '', 0
str = string.format('${%s %s}',data['name'], data['arg'])
str = conky_parse(str)
value = tonumber(str)
draw_gauge_ring(display, data, value)
end
for i in pairs(gauge) do
    load_gauge_rings(display, gauge[i])
end

end

--                                                                         MAIN
function conky_main()
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)
local display = cairo_create(cs)

local updates = conky_parse('${updates}')
update_num = tonumber(updates)

if update_num > 5 then
    go_gauge_rings(display)
end

cairo_surface_destroy(cs)
cairo_destroy(display)

end

Still get this when running conky:
conky: llua_do_call: function conky_main execution failed: /home/keith/conky/conky_orange/conky_orange.lua:407: attempt to call a nil value (global 'cairo_xlib_surface_create')

@Caellian
Copy link
Collaborator

Caellian commented Sep 29, 2024

cairo_xlib was separated from default namespace for Wayland compatibility.

After require('cairo'), add:

require('cairo_xlib')

See #1978 and #1867 for details.

@Caellian Caellian closed this as not planned Won't fix, can't repro, duplicate, stale Sep 29, 2024
@Caellian Caellian added wontfix Won't be fixed: not a conky bug, unreasonable effort or can't fix due to external limitations display: x11 Issue related to X11 backend lua Issue or PR related to Lua code and removed triage Issue that hasn't been verified labels Sep 29, 2024
@Caellian Caellian changed the title [Bug]: Can't get seamod [Bug]: Can't get seamod: attempt to call a nil value 'cairo_xlib_surface_create' Sep 29, 2024
@Nasdrovia69
Copy link

cairo_xlib a été séparé de l'espace de noms par défaut pour la compatibilité Wayland.

Après require('cairo'), ajouter:

require('cairo_xlib')

Voir #1978 et #1867 pour plus de détails.

Thank you !!!!!

@Caellian
Copy link
Collaborator

Caellian commented Nov 1, 2024

Thank you !!!!!

de nada

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Bug report or bug fix PR display: x11 Issue related to X11 backend lua Issue or PR related to Lua code wontfix Won't be fixed: not a conky bug, unreasonable effort or can't fix due to external limitations
Projects
None yet
Development

No branches or pull requests

3 participants