古いconkyウィジェットを新しい1.10+構文に変換しようとしていますが、なぜ機能しないのかわかりません。正しく変換されたことを確認するためにすべてのアクションを実行しましたが、まだ必要なウィジェットは実行されません。コードは次のとおりです。
conky.config = {
-- Conky settings
background = false,
update_interval = 1,
cpu_avg_samples = 2,
net_avg_samples = 2,
override_utf8_locale = true,
double_buffer = true,
no_buffers = true,
text_buffer_size = 2048,
--imlib_cache_size = 0,
temperature_unit = 'celsius',
-- With class override, gets images to display properly (black bg)
own_window_argb_visual = true,
own_window_argb_value = 0,
-- Window specifications
own_window_class = override,
own_window = true,
-- XFCE4 = desktop, sinon 'normal'
own_window_type = 'normal',
own_window_transparent = true,
-- XFCE4 - undecorate not working
own_window_hints = 'sticky,skip_taskbar,skip_pager,below',
border_inner_margin = 0,
border_outer_margin = 0,
minimum_width = 520,
minimum_height = 600,
maximum_width = 520,
alignment = 'top_right',
gap_x = 20,
gap_y = 112,
-- Graphics settings #
draw_shades = false,
draw_outline = false,
draw_borders = false,
draw_graph_borders = false,
-- useless
default_shade_color = 'red',
default_outline_color = 'green',
-- Text settings #
use_xft = true,
override_utf8_locale = true,
font = 'Play:normal:size=8',
xftalpha = 0.9,
uppercase = false,
-- TEXT color
default_color = '333333',
color0 = 'a992e6',
color1 = '323232',
lua_load = './rings-v2_gen.lua',
lua_draw_hook_pre = 'conky_main',
diskio_avg_samples = 2,
};
conky.text = [[
${voffset 12}${color1}${goto 106}${freq_g cpu0} Ghz${alignr 330}${hwmon 1 temp 1} °C
${voffset 16}${color1}${goto 106}${freq_g cpu0} Ghz${alignr 330}${acpitemp} °C
${voffset -3}${goto 120}${color1}CPU 1${alignr 330}${color1}${cpu cpu1}%
${voffset -3}${goto 120}${color1}CPU 2${alignr 330}${color1}${cpu cpu2}%
${voffset -3}${goto 120}${color1}CPU 3${alignr 330}${color1}${cpu cpu3}%
${voffset -3}${goto 120}${color1}CPU 4${alignr 330}${color1}${cpu cpu4}%
${voffset -3}${goto 120}${color1}CPU 5${alignr 330}${color1}${cpu cpu5}%
${voffset -3}${goto 120}${color1}CPU 6${alignr 330}${color1}${cpu cpu6}%
${goto 49}${voffset 12}${color1}${top name 1}${alignr 306}${top cpu 1}%
${goto 50}${color1}${top name 2}${alignr 306}${top cpu 2}%
${goto 50}${color1}${top name 3}${alignr 306}${top cpu 3}%
${font Michroma:size=10}${color0}${goto 80}${voffset 4}CPU
${voffset -130}${goto 378}${font}${color1}${top_io name 1}${alignr 30}${top_io io_write 1}%
${goto 378}${voffset -1}${color1}${top_io name 2}${alignr 30}${top_io io_write 2}%
${goto 378}${voffset -1}${color1}${top_io name 3}${alignr 30}${top_io io_write 3}%
${goto 370}${voffset 4}${color1}disk writes${alignr 30}${diskio_write}%
${goto 370}${color1}disk reads${alignr 30}${diskio_read}%
${font Michroma:size=10}${color0}${goto 418}${voffset 1}IO WAIT
${font Michroma:size=10}${color0}${goto 394}${voffset 59}MEMORY
${font}${goto 324}${voffset -4}${color1}${top_mem name 1}${alignr 40}${top_mem mem 1}%
${goto 324}${color1}${top_mem name 2}${alignr 40}${top_mem mem 2}%
${goto 324}${color1}${top_mem name 3}${alignr 40}${top_mem mem 3}%
${voffset 8}${goto 348}${color1}SWAP${alignr 40}${color1}${swap} / ${color1}${swapmax}
${voffset 1}${goto 348}${color1}RAM ${alignr 40}${color1}${mem} / ${color1}${memmax}
${goto 70}${voffset -81}/${color1}${alignr 310}${fs_used /} / ${fs_size /}
${goto 70}${voffset -1}/boot/efi${color1}${alignr 310}${fs_used /boot/efi} / ${fs_size /boot/efi}
${goto 70}${voffset -1}/mnt/nvme0n1p3${color1}${alignr 310}${fs_used /mnt/nvme0n1p3} / ${fs_size /mnt/nvme0n1p3}
${font Michroma:size=10}${color0}${goto 68}${voffset 8}FILESYSTEM
${font Michroma:size=10}${color0}${voffset 26}${goto 324}INTERNET INFO
${font}${color1}${alignr 54}${voffset -8}WiFi ${color1}${wireless_essid wlan0}
${goto 298}${voffset 2}Up${goto 370}${color1}${totalup wlan0} / ${color1}${upspeed wlan0}
${goto 298}${color1}Down${goto 370}${color1}${totaldown wlan0} / ${color1}${downspeed wlan0}
${goto 300}${voffset 4}Local IP${goto 370}${addr wlan0}
${goto 300}${voffset 0}Public IP${goto 370}${execi 3600 wget -q -O - checkip.dyndns.org | sed -e 's/[^[:digit:]\|.]//g'}
${voffset -24}
${font Michroma:size=10}${alignr 300}${voffset -50}${color0}${time %a} ${color0}${time %x}
${font Michroma:size=18}${alignr 318}${color1}${voffset -4}${time %H}:${time %M}
${font Michroma:bold:size=11}${color0}${voffset 90}${alignc}${execi 3600 awk -F '=' '/PRETTY_NAME/ { print $2 }' /etc/os-release | tr -d '"'}
]];
そしてウィジェットが呼び出すRings-v2_gen.luaファイル
--[[
Ring Meters by londonali1010 (2009)
Modified by La-Manoue (2016)
Automation template by popi (2017)
This script draws percentage meters as rings. It is fully customisable; all options are described in the script.
IMPORTANT: if you are using the 'cpu' function, it will cause a segmentation fault if it tries to draw a ring straight away. The if statement near the end of the script uses a delay to make sure that this doesn't happen. It calculates the length of the delay by the number of updates since Conky started. Generally, a value of 5s is long enough, so if you update Conky every 1s, use update_num > 5 in that if statement (the default). If you only update Conky every 2s, you should change it to update_num > 3; conversely if you update Conky every 0.5s, you should use update_num > 10. ALSO, if you change your Conky, is it best to use "killall conky; conky" to update it, otherwise the update_num will not be reset and you will get an error.
To call this script in Conky, use the following (assuming that you save this script to ~/scripts/rings.lua):
lua_load ~/conky/rings-v2_local.lua
lua_draw_hook_pre ring_stats
Changelog:
+ v2.1.1 -- addedd IO_WAIT ring
+ v2.1.0 -- templated for automation,
+ v2.0.0 -- Changed some values for ArchLinux
+ v1.2.2 -- Added color change for near-limits values / modified placement
+ v1.2.1 -- Fixed minor bug that caused script to crash if conky_parse() returns a nil value (20.10.2009)
+ v1.2 -- Added option for the ending angle of the rings (07.10.2009)
+ v1.1 -- Added options for the starting angle of the rings, and added the "max" variable, to allow for variables that output a numerical value rather than a percentage (29.09.2009)
+ v1.0 -- Original release (28.09.2009)
]]
normal="0xbb07d7"
warn="0xff7200"
crit="0xff000d"
-- seulement quand fond nécessaire
corner_r=35
bg_colour=0x3b3b3b
bg_alpha=0.2
-- blue | 0xbb07d7
-- red | 0xff1d2b
-- green | 0x1dff22
-- pink | 0xff1d9f
-- orange | 0xff8523
-- skyblue | 0x008cff
-- darkgray | 0x323232
settings_table_io = {
{
name='top_io io_perc 1',
arg='',
max=100,
bg_colour=0x3b3b3b,
bg_alpha=0.8,
fg_colour=0xbb07d7,
fg_alpha=0.8,
x=370, y=98,
radius=55,
thickness=12,
start_angle=120,
end_angle=360
},
{
name='top_io io_perc 2',
arg='',
max=100,
bg_colour=0x3b3b3b,
bg_alpha=0.6,
fg_colour=0xbb07d7,
fg_alpha=0.8,
x=370, y=98,
radius=42,
thickness=11,
start_angle=120,
end_angle=360
},
{
name='top_io io_perc 3',
arg='',
max=100,
bg_colour=0x3b3b3b,
bg_alpha=0.4,
fg_colour=0xbb07d7,
fg_alpha=0.8,
x=370, y=98,
radius=30,
thickness=10,
start_angle=120,
end_angle=360
}
}
settings_table = {
{
name='hwmon',
arg='1 temp 1',
max=110,
bg_colour=0x3b3b3b,
bg_alpha=0.8,
fg_colour=0xbb07d7,
fg_alpha=0.8,
x=200, y=120,
radius=97,
thickness=4,
start_angle=0,
end_angle=240
},
{
name='cpu',
arg='cpu1',
max=100,
bg_colour=0x3b3b3b,
bg_alpha=0.7,
fg_colour=0xbb07d7,
fg_alpha=0.8,
x=200, y=120,
radius=88,
thickness=10,
start_angle=0,
end_angle=240
},
{
name='cpu',
arg='cpu2',
max=100,
bg_colour=0x3b3b3b,
bg_alpha=0.633333333333,
fg_colour=0xbb07d7,
fg_alpha=0.8,
x=200, y=120,
radius=77,
thickness=9.5,
start_angle=0,
end_angle=240
},
{
name='cpu',
arg='cpu3',
max=100,
bg_colour=0x3b3b3b,
bg_alpha=0.566666666667,
fg_colour=0xbb07d7,
fg_alpha=0.8,
x=200, y=120,
radius=66.5,
thickness=9.0,
start_angle=0,
end_angle=240
},
{
name='cpu',
arg='cpu4',
max=100,
bg_colour=0x3b3b3b,
bg_alpha=0.5,
fg_colour=0xbb07d7,
fg_alpha=0.8,
x=200, y=120,
radius=56.5,
thickness=8.5,
start_angle=0,
end_angle=240
},
{
name='cpu',
arg='cpu5',
max=100,
bg_colour=0x3b3b3b,
bg_alpha=0.433333333333,
fg_colour=0xbb07d7,
fg_alpha=0.8,
x=200, y=120,
radius=47.0,
thickness=8.0,
start_angle=0,
end_angle=240
},
{
name='cpu',
arg='cpu6',
max=100,
bg_colour=0x3b3b3b,
bg_alpha=0.366666666667,
fg_colour=0xbb07d7,
fg_alpha=0.8,
x=200, y=120,
radius=38.0,
thickness=7.5,
start_angle=0,
end_angle=240
},
{
name='memperc',
arg='',
max=100,
bg_colour=0x3b3b3b,
bg_alpha=0.8,
fg_colour=0xbb07d7,
fg_alpha=0.8,
x=340, y=234,
radius=60,
thickness=15,
start_angle=180,
end_angle=420
},
{
name='swapperc',
arg='',
max=100,
bg_colour=0x3b3b3b,
bg_alpha=0.4,
fg_colour=0xbb07d7,
fg_alpha=0.8,
x=340, y=234,
radius=45,
thickness=12,
start_angle=180,
end_angle=420
},
{
name='fs_used_perc',
arg='/',
max=100,
bg_colour=0x3b3b3b,
bg_alpha=0.8,
fg_colour=0xbb07d7,
fg_alpha=0.8,
x=220, y=280,
radius=40,
thickness=10,
start_angle=0,
end_angle=240
},
{
name='fs_used_perc',
arg='/boot/efi',
max=100,
bg_colour=0x3b3b3b,
bg_alpha=0.6,
fg_colour=0xbb07d7,
fg_alpha=0.8,
x=220, y=280,
radius=29,
thickness=9,
start_angle=0,
end_angle=240
},
{
name='fs_used_perc',
arg='/mnt/nvme0n1p3',
max=100,
bg_colour=0x3b3b3b,
bg_alpha=0.4,
fg_colour=0xbb07d7,
fg_alpha=0.8,
x=220, y=280,
radius=19,
thickness=8,
start_angle=0,
end_angle=240
},
{
name='downspeedf',
arg='wlan0',
max=125000,
bg_colour=0x3b3b3b,
bg_alpha=0.8,
fg_colour=0xbb07d7,
fg_alpha=0.8,
x=290, y=345,
radius=30,
thickness=12,
start_angle=180,
end_angle=420
},
{
name='upspeedf',
arg='wlan0',
max=125000,
bg_colour=0x3b3b3b,
bg_alpha=0.6,
fg_colour=0xbb07d7,
fg_alpha=0.8,
x=290, y=345,
radius=17,
thickness=11,
start_angle=180,
end_angle=420
},
{
name='time',
arg='%H',
max=24,
bg_colour=0x3b3b3b,
bg_alpha=0.4,
fg_colour=0xbb07d7,
fg_alpha=0.8,
x=230, y=406,
radius=10,
thickness=6,
start_angle=0,
end_angle=240
},
{
name='time',
arg='%M',
max=60,
bg_colour=0x3b3b3b,
bg_alpha=0.6,
fg_colour=0xbb07d7,
fg_alpha=0.8,
x=230, y=406,
radius=19,
thickness=9,
start_angle=0,
end_angle=240
},
{
name='time',
arg='%S',
max=60,
bg_colour=0x3b3b3b,
bg_alpha=0.8,
fg_colour=0xbb07d7,
fg_alpha=0.8,
x=230, y=406,
radius=31,
thickness=12,
start_angle=0,
end_angle=240
},
--{{ BATTERY }}
{
name='kernel', --just to avoid unknown viariable '$' in console
arg='',
max=100,
bg_colour=0x3b3b3b,
bg_alpha=0.6,
fg_colour=0xbb07d7,
fg_alpha=0.6,
x=274, y=464,
radius=5,
thickness=13,
start_angle=0,
end_angle=360
},
}
require 'cairo'
function rgb_to_r_g_b(colour,alpha)
return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
end
function draw_ring(cr,t,pt)
local w,h=conky_window.width,conky_window.height
local xc,yc,ring_r,ring_w,sa,ea=pt['x'],pt['y'],pt['radius'],pt['thickness'],pt['start_angle'],pt['end_angle']
local bgc, bga, fgc, fga=pt['bg_colour'], pt['bg_alpha'], pt['fg_colour'], pt['fg_alpha']
local angle_0=sa*(2*math.pi/360)-math.pi/2
local angle_f=ea*(2*math.pi/360)-math.pi/2
local t_arc=t*(angle_f-angle_0)
-- Draw background ring
cairo_arc(cr,xc,yc,ring_r,angle_0,angle_f)
cairo_set_source_rgba(cr,rgb_to_r_g_b(bgc,bga))
cairo_set_line_width(cr,ring_w)
cairo_stroke(cr)
-- Draw indicator ring
cairo_arc(cr,xc,yc,ring_r,angle_0,angle_0+t_arc)
cairo_set_source_rgba(cr,rgb_to_r_g_b(fgc,fga))
cairo_stroke(cr)
end
function conky_ring_stats()
-- 20170715 IO_WAIT
local function setup_rings_io(cr,pt)
local str=''
local value=0
local warn_value=50
local crit_value=70
str=string.format('${%s %s}',pt['name'],pt['arg'])
iowait=0
ioused=tonumber(conky_parse(str))
if ioused>0 then
iowait=100 - ioused
end
value=tonumber(iowait)
if value == nil then value = 0 end
pct=value/pt['max']
draw_ring(cr,pct,pt)
end
local function setup_rings(cr,pt)
local str=''
local value=0
str=string.format('${%s %s}',pt['name'],pt['arg'])
str=conky_parse(str)
value=tonumber(str)
if value == nil then value = 0 end
pct=value/pt['max']
draw_ring(cr,pct,pt)
end
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 cr=cairo_create(cs)
local updates=conky_parse('${updates}')
update_num=tonumber(updates)
if update_num>5 then
for i in pairs(settings_table) do
display_temp=temp_watch()
setup_rings(cr,settings_table[i])
end
-- IO_WAIT
for i in pairs(settings_table_io) do
setup_rings_io(cr,settings_table_io[i])
end
end
cairo_surface_destroy(cs)
cairo_destroy(cr)
end
-- Contrôle de l'espace disque
function disk_watch()
warn_disk=93
crit_disk=98
-- poser une boucle plus tard... pas simple
disk=tonumber(conky_parse("${fs_used_perc /}"))
if disk<warn_disk then
settings_table[10]['fg_colour']=normal
elseif disk<crit_disk then
settings_table[10]['fg_colour']=warn
else
settings_table[10]['fg_colour']=crit
end
disk=tonumber(conky_parse("${fs_used_perc /boot/efi}"))
if disk<warn_disk then
settings_table[11]['fg_colour']=normal
elseif disk<crit_disk then
settings_table[11]['fg_colour']=warn
else
settings_table[11]['fg_colour']=crit
end
disk=tonumber(conky_parse("${fs_used_perc /mnt/nvme0n1p3}"))
if disk<warn_disk then
settings_table[12]['fg_colour']=normal
elseif disk<crit_disk then
settings_table[12]['fg_colour']=warn
else
settings_table[12]['fg_colour']=crit
end
end
-- Contrôle de la température
function temp_watch()
warn_value=70
crit_value=80
temperature=tonumber(conky_parse("${hwmon 1 temp 1}"))
if temperature<warn_value then
settings_table[1]['fg_colour']=normal
elseif temperature<crit_value then
settings_table[1]['fg_colour']=warn
else
settings_table[1]['fg_colour']=crit
end
end
-- Battery color control
function battery_watch()
warn_value=30
crit_value=10
--{{ BATTERY_WATCH }}
if battery>warn_value then
settings_table[index]['fg_colour']=normal
elseif battery>crit_value then
settings_table[index]['fg_colour']=warn
else
settings_table[index]['fg_colour']=crit
end
end
-- Contrôle de l'interface active
-- choice to not probe network interface once conky is running.
-- just call again create_conky.py to update if gateway interface has changed
--function iface_watch()
--
-- iface=conky_parse("${if_existing /proc/net/route enp1s0f2}enp1s0f2${else}wlan0${endif}")
--
-- settings_table[11]['arg']=iface
-- settings_table[12]['arg']=iface
--end
function conky_draw_bg()
if conky_window==nil then return end
local w=conky_window.width
local h=conky_window.height
local cs=cairo_xlib_surface_create(conky_window.display, conky_window.drawable, conky_window.visual, w, h)
cr=cairo_create(cs)
cairo_move_to(cr,corner_r,0)
cairo_line_to(cr,w-corner_r,0)
cairo_curve_to(cr,w,0,w,0,w,corner_r)
cairo_line_to(cr,w,h-corner_r)
cairo_curve_to(cr,w,h,w,h,w-corner_r,h)
cairo_line_to(cr,corner_r,h)
cairo_curve_to(cr,0,h,0,h,0,h-corner_r)
cairo_line_to(cr,0,corner_r)
cairo_curve_to(cr,0,0,0,0,corner_r,0)
cairo_close_path(cr)
cairo_set_source_rgba(cr,rgb_to_r_g_b(bg_colour,bg_alpha))
cairo_fill(cr)
end
function conky_main()
temp_watch()
disk_watch()
--iface_watch()
-- if a battery is found
--{{ BATTERY_ACTIVATE }}
conky_ring_stats()
-- quand fond nécessaire
-- conky_draw_bg()
end
正しく機能するには何を編集する必要がありますか?