On Sat, Sep 08, 2012 at 11:30:38PM +0200, marco candrian wrote:

not sure if I'm right here - probably not. anyway.

would be a patch for loadavg on top of:

[v3.4.10] [v3.4.7] rename bsd volume widget

cheers
marco

> ---
>  loadavg/init.lua |   73 +++++++++++++++++++++++++++++++++++++++++++++++++++--
>  loadavg/readme   |   15 +++++++++++
>  2 files changed, 85 insertions(+), 3 deletions(-)
> 

> diff --git a/loadavg/init.lua b/loadavg/init.lua
> index 5a5220c..9c08db1 100644
> --- a/loadavg/init.lua
> +++ b/loadavg/init.lua
> @@ -1,6 +1,6 @@
>  ------------------------------------
>  -- Author: Marco Candrian        --
> --- Copyright 2009 Marco Candrian --
> +-- Copyright 2012 Marco Candrian --
>  ------------------------------------
>  
>  local io = io
> @@ -34,6 +34,15 @@ defaults.shorttimer =  5 -- loadavg won't change faster it 
> seems anyway
>  defaults.longtimer =  60
>  defaults.prefix = ""
>  defaults.suffix = ""
> +defaults.warn_limit_1min = 0.8
> +defaults.warn_limit_1min_prefix = '<span foreground="#669966">'
> +defaults.warn_limit_1min_suffix = '</span>'
> +defaults.warn_limit_5min = 0.8
> +defaults.warn_limit_5min_prefix = '<span foreground="#cccc66">'
> +defaults.warn_limit_5min_suffix = '</span>'
> +defaults.warn_limit_15min = 0.8
> +defaults.warn_limit_15min_prefix = '<span foreground="#ff6666">'
> +defaults.warn_limit_15min_suffix = '</span>'
>  defaults.command = "xterm -e top"
>  local settings = { }
>  for key, value in pairs(defaults) do
> @@ -72,13 +81,71 @@ function set_suffix(e)
>      settings.suffix = e or defaults.suffix
>  end
>  
> +-- commands to issue warn-colors
> +-- 1 min (first field)
> +function set_warn_limit_1min(e)
> +    settings.warn_limit_1min = e or defaults.warn_limit_1min
> +end
> +function set_warn_limit_1min_prefix(e)
> +    settings.warn_limit_1min_prefix = e or defaults.warn_limit_1min_prefix
> +end
> +function set_warn_limit_1min_suffix(e)
> +    settings.warn_limit_1min_suffix = e or defaults.warn_limit_1min_suffix
> +end
> +-- 5 min (second field)
> +function set_warn_limit_5min(e)
> +    settings.warn_limit_5min = e or defaults.warn_limit_5min
> +end
> +function set_warn_limit_5min_prefix(e)
> +    settings.warn_limit_5min_prefix = e or defaults.warn_limit_5min_prefix
> +end
> +function set_warn_limit_5min_suffix(e)
> +    settings.warn_limit_5min_suffix = e or defaults.warn_limit_5min_suffix
> +end
> +-- 15 min (third field)
> +function set_warn_limit_15min(e)
> +    settings.warn_limit_15min = e or defaults.warn_limit_15min
> +end
> +function set_warn_limit_15min_prefix(e)
> +    settings.warn_limit_15min_prefix = e or defaults.warn_limit_15min_prefix
> +end
> +function set_warn_limit_15min_suffix(e)
> +    settings.warn_limit_15min_suffix = e or defaults.warn_limit_15min_suffix
> +end
> +
>  local function update ()
>      local f = io.open("/proc/loadavg")
>  
>      local loadavg
> -    loadavg = f:read(14)
> +    local str1
> +    local str5
> +    local str15
> +
> +    loadavg = f:read(4)
> +
> +    if tonumber(loadavg) > tonumber(settings.warn_limit_1min) then
> +      str1 = settings.warn_limit_1min_prefix .. loadavg .. 
> settings.warn_limit_1min_suffix
> +    else
> +      str1 = loadavg
> +    end
> +
> +    f:read(1)
> +    loadavg = f:read(4)
> +    if tonumber(loadavg) > tonumber(settings.warn_limit_5min) then
> +      str5 = settings.warn_limit_5min_prefix .. loadavg .. 
> settings.warn_limit_5min_suffix
> +    else
> +      str5 = loadavg
> +    end
> +
> +    f:read(1)
> +    loadavg = f:read(4)
> +    if tonumber(loadavg) > tonumber(settings.warn_limit_15min) then
> +      str15 = settings.warn_limit_15min_prefix .. loadavg .. 
> settings.warn_limit_15min_suffix
> +    else
> +      str15 = loadavg
> +    end
>      f:close()
> -    widget.text = settings.prefix .. loadavg .. settings.suffix
> +    widget.text = settings.prefix .. str1 .. " " .. str5 .. " " .. str15 .. 
> settings.suffix
>  end
>  
>  setmetatable(_M, { __call = function () 
> diff --git a/loadavg/readme b/loadavg/readme
> index aa765c7..2aa275b 100644
> --- a/loadavg/readme
> +++ b/loadavg/readme
> @@ -21,6 +21,17 @@ Settings Available (with default values):
>  
>   - set_suffix(""): Sets the text after the loadavg info.
>  
> + - set_warn_limit_1min: limit on starting using prefix/suffix below
> + - set_warn_limit_1min_prefix: Pango Text Markup
> + - set_warn_limit_1min_suffix: Pango Text Markup
> + 
> + - set_warn_limit_5min: limit on starting using prefix/suffix below
> + - set_warn_limit_5min_prefix: Pango Text Markup
> + - set_warn_limit_5min_suffix: Pango Text Markup
> + 
> + - set_warn_limit_15min: limit on starting using prefix/suffix below
> + - set_warn_limit_15min_prefix: Pango Text Markup
> + - set_warn_limit_15min_suffix: Pango Text Markup
>  
>  
>  Implementation:
> @@ -36,3 +47,7 @@ Then may configure it like this:
>    obvious.loadavg.set_command("urxvt -e htop")
>    obvious.loadavg.set_prefix('<span foreground="#cccccc" 
> font_size="x-large">')
>    obvious.loadavg.set_suffix("</span>")
> +
> +  obvious.loadavg.set_warn_limit_5min(1.50)
> +  obvious.loadavg.set_warn_limit_5min_prefix('<span foreground="#cc3333">')
> +  obvious.loadavg.set_warn_limit_5min_suffix('</span>')


-- 
   (o_  It rocks: LINUX + Command-Line-Interface
   //\                           GPG: 0x59D90F4D
   V_/_                     http://www.calmar.ws

-- 
To unsubscribe, send mail to [email protected].

Reply via email to