저는 Ubuntu 16.10(x86-64), 커널 4.8.0-59-generic, Cinnamon 3.0.7에서 conky 1.10.3(conky-all)을 사용하고 있습니다.
diskio에 대한 열(실제로는 diskio_read에 대한 열과 diskio_write에 대한 열)을 만드는 방법은 무엇입니까?
Conky에는 diskio(숫자 제공)와 disiograph(막대 없음)가 있습니다.
시도해 보았으나 비슷한 것을 사용할 수 있는 방법을 찾지 못했습니다 ${execbar $diskio}
.
나는 또한 wlourf의 BARGRAPH WIDGET v2.1이라는 lua 스크립트를 망쳤습니다.http://u-scripts.blogspot.com/2010/07/bargraph-widget.html그러나 사용하고 있음에도 불구하고
{
name="cpu",
--arg="%S",
max=100,
angle=90,
alarm=50,
bg_colour={0x00ff00,0.25},
fg_colour={0x00ff00,1},
alarm_colour={0xff0000,1},
x=0,y=610,
blocks=1,
height=250,width=25,
smooth=true,
mid_colour={{0.5,0xffff00,1}}
}
작동합니다. "cpu" 대신 "diskio"를 입력하면 빈 열이 표시됩니다(반면 conky의 디스크 레코더에는 디스크 IO가 명확하게 표시됩니다).
답변1
name="diskio_read"
diskio_write
주어진 lua 막대 차트 위젯을 사용할 때의 주요 문제점은 이 두 함수가 2.33KiB
에서처럼 단순한 정수 대신 숫자를 반환한다는 것입니다 12345
. 위젯은 tonumber()
반환 값을 변환하기 위해 lua 함수만 사용하는데, 이는 이러한 문자열에서 실패합니다.
max=
또 다른 문제는 디스크 IO가 CPU처럼 100%로 확장되지 않기 때문에 적절한 값(예: 100000000)을 설정해야 한다는 것입니다 .
다른 conky 기능을 사용하지 않는 경우 요청 값의 전역 변수를 재설정하여 첫 번째 문제를 해결할 수 있습니다.사람이 읽을 수 있는:
conky.config = {
format_human_readable = false,
...
bargraph.lua
또는 함수의 setup_bar_graph()
행을 변경하여 위젯 파일을 편집할 수 있습니다 .
value = tonumber(conky_parse(string.format('${%s %s}', t.name, t.arg)))
비슷한 것
local result = conky_parse(string.format('${%s %s}', t.name, t.arg))
value = tonumber(result)
if value==nil then value = my_tonumber(result) end
그리고 function 앞에 tonumber 함수를 추가하세요 conky_main_bars()
.
-- https://unix.stackexchange.com/a/409006/119298
function my_tonumber(n)
local capture = {string.match(n,"^(%d+\.?%d*)([KMGTPB])")}
if #capture<=0 then return 0 end
local v = tonumber(capture[1])
if #capture==1 then return v end
if capture[2]=="K" then return v*1024 end
if capture[2]=="M" then return v*1024*1024 end
if capture[2]=="G" then return v*1024*1024*1024 end
if capture[2]=="T" then return v*1024*1024*1024*1024 end
return v
end
답변2
Bar를 생성하기 위해 내 변수를 어떻게 추가하나요?
이와 같이
${execi 5 nvidia-smi | grep -Eo '...%.+?W' | awk '{print $1}' | cut -c1-2}
GPU-FanSpeed의 NumericValue를 표시합니다(% 제외).