2021年9月30日木曜日

[Debian]Awesome Window ManagerでCPUの稼働状況をカラフルに表示する

Debianを入れたASUS PN50はRyzen 4700Uで、CPUコアが8個ある。 Awesome Window Managerを使っているのだけど、それぞれのコアの稼働状況がカラフルに見られると楽しいのでスクリプトを書いてみた。
負荷が高くなるほど赤くなるようにした。 負荷をかけるとピコピコ表示が変わるので良い感じ。

ステータスバー

ソースはこちら。
Lua言語は初めて使ったので、rc.lua内で使われていたfunction, if, return くらいしか知らないのですごく冗長。

  vicious = require('vicious')
-- cpu widget
cpuwidget = wibox.widget.textbox()

function load_color(rate)
    local color
    if rate >= 80 then
        colro = "#FF0000"
    elseif rate >= 70 then
        color = "#FF4000"
    elseif rate >= 60 then
        color = "#FF8000"
    elseif rate >= 50 then
        color = "#FFBF00"
    elseif rate >= 40 then
        color = "#FFFF00"
    elseif rate >= 30 then
        color = "#BFFF00"
    elseif rate >= 20 then
        color = "#80FF00"
    elseif rate >= 10 then
        color = "#40FF00"
    else
        color = "#0000FF"
    end
    return color
end

function load_html(rate)
    local color = load_color(rate)
    return string.format('<span bgcolor="%s">%d</span>', color, rate)
end

vicious.register(cpuwidget, vicious.widgets.cpu,
                 function(widget, args)
                     local all = args[1]
                     local cpu1 = args[2]
                     local cpu2 = args[3]
                     local cpu3 = args[4]
                     local cpu4 = args[5]
                     local cpu5 = args[6]
                     local cpu6 = args[7]
                     local cpu7 = args[8]
                     local cpu8 = args[9]
                     return string.format('<span color="#cccccc"> | </span>CPU <span color="#cccccc">%s (%s %s %s %s %s %s %s %s)</span><span color="#cccccc"> | </span>',
                                          load_html(all),
                                          load_html(cpu1), load_html(cpu2), load_html(cpu3), load_html(cpu4),
                                          load_html(cpu5), load_html(cpu6), load_html(cpu7), load_html(cpu8))
                 end)
  

0 件のコメント:

コメントを投稿