thinkpad bat widget integrated

This commit is contained in:
luke bonham 2013-09-26 11:35:59 +02:00
parent 356705836a
commit 22fa9400bc
3 changed files with 79 additions and 70 deletions

View File

@ -4,7 +4,7 @@
Lain Lain
Layouts, widgets and utilities for Awesome WM Layouts, widgets and utilities for Awesome WM
User contributed widgets section Users contributed widgets section
Licensed under GNU General Public License v2 Licensed under GNU General Public License v2
* (c) 2013, Luke Bonham * (c) 2013, Luke Bonham

View File

@ -1,4 +1,6 @@
--[[ --[[
tpbat.lua tpbat.lua
Battery status widget for ThinkPad laptops that use SMAPI Battery status widget for ThinkPad laptops that use SMAPI
lain.widgets.contrib.tpbat lain.widgets.contrib.tpbat
@ -12,21 +14,24 @@
--]] --]]
local debug = { getinfo = debug.getinfo }
local newtimer = require("lain.helpers").newtimer local newtimer = require("lain.helpers").newtimer
local first_line = require("lain.helpers").first_line local first_line = require("lain.helpers").first_line
local beautiful = require("beautiful") local beautiful = require("beautiful")
local naughty = require("naughty") local naughty = require("naughty")
local wibox = require("wibox") local wibox = require("wibox")
local smapi = require("lain.widgets.contrib.tpbat.smapi") -- Ugly :(
local string = { format = string.format } local string = { format = string.format }
local math = { floor = math.floor } local math = { floor = math.floor }
local tostring = tostring local tostring = tostring
local setmetatable = setmetatable local setmetatable = setmetatable
-- ThinkPad SMAPI-enabled battery info widget package.path = debug.getinfo(1,"S").source:match[[^@?(.*[\/])[^\/]-$]] .. "?.lua;" .. package.path
local tpbat = { } local smapi = require("smapi")
-- ThinkPad SMAPI-enabled battery info widget
-- lain.widgets.contrib.tpbat
local tpbat = { }
local tpbat_notification = nil local tpbat_notification = nil
function tpbat:hide() function tpbat:hide()
@ -41,6 +46,8 @@ function tpbat:show(t_out)
tpbat:hide() tpbat:hide()
local bat = self.bat local bat = self.bat
local t_out = t_out or 0
if bat == nil or not bat:installed() then return end if bat == nil or not bat:installed() then return end
local mfgr = bat:get('manufacturer') or "no_mfgr" local mfgr = bat:get('manufacturer') or "no_mfgr"
@ -63,7 +70,7 @@ function tpbat:show(t_out)
end end
local str = string.format("%s : %s %s (%s)\n", bat.name, mfgr, model, chem) local str = string.format("%s : %s %s (%s)\n", bat.name, mfgr, model, chem)
str = str .. string.format("\n%s \t\t\t %s", status:upper(), msg) .. string.format("\n%s \t\t\t %s", status:upper(), msg)
tpbat_notification = naughty.notify({ tpbat_notification = naughty.notify({
preset = { fg = beautiful.fg_normal }, preset = { fg = beautiful.fg_normal },
@ -141,13 +148,13 @@ function tpbat.register(args)
bat_now.perc = tostring(bat_now.perc) bat_now.perc = tostring(bat_now.perc)
end end
widget = tpbat.widget -- 'widget' needed in rc.lua (following convention) widget = tpbat.widget
settings() settings()
end end
newtimer("tpbat", timeout, update) newtimer("tpbat", timeout, update)
widget:connect_signal('mouse::enter', function () tpbat:show(0) end) widget:connect_signal('mouse::enter', function () tpbat:show() end)
widget:connect_signal('mouse::leave', function () tpbat:hide() end) widget:connect_signal('mouse::leave', function () tpbat:hide() end)
return tpbat.widget return tpbat.widget

View File

@ -1,4 +1,6 @@
--[[ --[[
smapi.lua smapi.lua
Interface with thinkpad battery information Interface with thinkpad battery information