local icons = require 'icons' local colors = require 'colors' local settings = require 'settings' -- Execute the event provider binary which provides the event "cpu_update" for -- the cpu load data, which is fired every 2.0 seconds. sbar.exec 'killall sk-cpu-load >/dev/null; sk-cpu-load cpu_update 2.0' local cpu = sbar.add('graph', 'widgets.cpu', 42, { position = 'right', graph = { color = colors.blue }, background = { height = 22, color = { alpha = 0 }, border_color = { alpha = 0 }, drawing = true, }, icon = { string = icons.cpu }, label = { string = 'cpu ??%', font = { family = settings.font.numbers, style = settings.font.style_map['Bold'], size = 9.0, }, align = 'right', padding_right = 0, width = 0, y_offset = 4, }, padding_right = settings.paddings + 6, }) cpu:subscribe('cpu_update', function(env) -- Also available: env.user_load, env.sys_load local load = tonumber(env.total_load) cpu:push { load / 100. } local color = colors.blue if load > 30 then if load < 60 then color = colors.yellow elseif load < 80 then color = colors.orange else color = colors.red end end cpu:set { graph = { color = color }, label = 'cpu ' .. env.total_load .. '%', } end) cpu:subscribe('mouse.clicked', function(env) sbar.exec "open -a 'Activity Monitor'" end) -- Background around the cpu item sbar.add('bracket', 'widgets.cpu.bracket', { cpu.name }, { background = { color = colors.bg1 }, }) -- Background around the cpu item sbar.add('item', 'widgets.cpu.padding', { position = 'right', width = settings.group_paddings, })