1 # Copyright 2008 Dag Odenhall <dag.odenhall@gmail.com>
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
7 # http://www.apache.org/licenses/LICENSE-2.0
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
15 require 'amazing/widget'
16 require 'amazing/proc_file'
20 class Battery < Widget
21 description "Remaining battery power in percentage"
22 option :battery, "Battery number", 1
23 field :state, "Charging state, :charged, :charging or :discharging"
24 field :percentage, "Power percentage"
25 default { @percentage.to_i }
28 batinfo = ProcFile.parse_file("acpi/battery/BAT#@battery/info")[0]
29 batstate = ProcFile.parse_file("acpi/battery/BAT#@battery/state")[0]
30 remaining = batstate["remaining capacity"].to_i
31 lastfull = batinfo["last full capacity"].to_i
32 @state = batstate["charging state"].to_sym
33 @percentage = (remaining * 100) / lastfull.to_f
48 @state == :discharging