私はUbuntu 16.10(x86-64)、カーネル4.8.0-59-generic、Cinnamon 3.0.7でconky 1.10.3(conky-all)を使用しています。
diskioの列(実際にはdisco_readの列とdisco_writeの列)を作成する方法は?
Conkyにはdisco(数値提供)と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つの関数が単純な整数の代わりに数値を2.33KiB
返すことです12345
。ウィジェットはtonumber()
戻り値を変換するためにlua関数のみを使用します。これはこれらの文字列では失敗します。
max=
もう1つの問題は、ディスク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を表示します(%を除く)。