1 # Copyright (C) 2008 Dag Odenhall <dag.odenhall@gmail.com>
2 # Licensed under the Academic Free License version 3.0
4 require 'amazing/widget'
5 require 'amazing/proc_file'
10 description "Various memory related data"
11 field :total, "Total kilobytes of memory"
12 field :free, "Free kilobytes of memory"
13 field :buffers, "Buffered kilobytes of memory"
14 field :cached, "Cached kilobytes of memory"
15 field :usage, "Percentage of used memory"
16 field :swap_total, "Total kilobytes of swap"
17 field :swap_free, "Free kilobytes of swap"
18 field :swap_cached, "Cached kilobytes of swap"
19 field :swap_usage, "Percentage of used swap"
23 meminfo = ProcFile.parse_file("meminfo")[0]
24 @total = meminfo["MemTotal"].to_i
25 @free = meminfo["MemFree"].to_i
26 @buffers = meminfo["Buffers"].to_i
27 @cached = meminfo["Cached"].to_i
28 @usage = ((@total - @free - @cached - @buffers) * 100) / @total.to_f
29 @swap_total = meminfo["SwapTotal"].to_i
30 @swap_free = meminfo["SwapFree"].to_i
31 @swap_cached = meminfo["SwapCached"].to_i
32 @swap_usage = ((@swap_total - @swap_free - @swap_cached) * 100) / @swap_total.to_f