summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--awesome/bar.lua8
-rw-r--r--awesome/widgets/battery.lua24
-rw-r--r--awesome/widgets/classiclayoutbox.lua111
3 files changed, 32 insertions, 111 deletions
diff --git a/awesome/bar.lua b/awesome/bar.lua
index 4adddb3..c03466e 100644
--- a/awesome/bar.lua
+++ b/awesome/bar.lua
@@ -7,6 +7,7 @@ local beautiful = require("beautiful")
local widget_cpu_usage = require("widgets.cpu")
local widget_ram_usage = require("widgets.ram")
local widget_temperature = require("widgets.temperature")
+local widget_battery = require("widgets.battery")
local classiclayoutbox = require("widgets.classiclayouts")
local volume_control = require("widgets.pavolctld")
local widget_volume = volume_control.textbox
@@ -68,6 +69,12 @@ local widgets = {
widget_volume,
wibox.widget.textbox "%",
},
+ bat = {
+ layout = wibox.layout.fixed.horizontal,
+ buttons = volume_buttons,
+ wibox.widget.textbox "BAT: ",
+ widget_battery,
+ },
}
-- left widget group func
@@ -97,6 +104,7 @@ function widgets.right_widgets(s) return wibox.widget {
widgets.cpu,
widgets.ram,
widgets.vol,
+ widgets.bat,
},
{
widget = wibox.widget.separator,
diff --git a/awesome/widgets/battery.lua b/awesome/widgets/battery.lua
new file mode 100644
index 0000000..f6e6860
--- /dev/null
+++ b/awesome/widgets/battery.lua
@@ -0,0 +1,24 @@
+local awful = require("awful")
+local wibox = require("wibox")
+local naughty = require("naughty")
+
+local widget = wibox.widget.textbox()
+
+-- update widget on lowbat output
+local lowbat_pid = awful.spawn.with_line_callback("lowbat", {
+ stdout = function(stdout)
+ widget:set_text(stdout)
+ end,
+ stderr = function(stderr)
+ naughty.notify({
+ preset = naughty.config.presets.critical,
+ title = "lowbat error",
+ text = stderr
+ })
+ end,
+})
+
+-- kill current lowbat on refresh/exit
+awesome.connect_signal("exit", function() awful.spawn("kill " .. lowbat_pid) end)
+
+return widget
diff --git a/awesome/widgets/classiclayoutbox.lua b/awesome/widgets/classiclayoutbox.lua
deleted file mode 100644
index 412cb77..0000000
--- a/awesome/widgets/classiclayoutbox.lua
+++ /dev/null
@@ -1,111 +0,0 @@
----------------------------------------------------------------------------
---- Layoutbox widget.
---
--- @author Julien Danjou <julien@danjou.info>
--- @copyright 2009 Julien Danjou
--- @classmod awful.widget.layoutbox
----------------------------------------------------------------------------
-
-local setmetatable = setmetatable
-local capi = { screen = screen, tag = tag }
-local layout = require("awful.layout")
-local tooltip = require("awful.tooltip")
-local wibox = require("wibox")
-local surface = require("gears.surface")
-
-local layout_icons = {
- cornernw = "",
- cornerne = "",
- cornersw = "",
- cornerse = "",
- fairh = "",
- fairv = "EEH",
- max = "[M]",
- floating = "><>",
- magnifier = "[M]",
- fullscreen = "",
- spiral = "",
- dwindle = "",
- tile = "[]=",
- tiletop = "TTT",
- tilebottom = "TTT",
- tileleft = "=[]",
-}
-
-local function get_screen(s)
- return s and capi.screen[s]
-end
-
-local layoutbox = { mt = {} }
-
-local boxes = nil
-
-local function update(w, screen)
- screen = get_screen(screen)
- local name = layout.getname(layout.get(screen))
- w._layoutbox_tooltip:set_text(name or "[no name]")
-
- if name == "max" and #screen.clients > 0 then
- w.textbox.text = " [" .. #screen.clients .. "] " -- TODO manage / unmanage signal
- return
- end
-
- w.textbox.text = layout_icons[name]
- w.textbox.text = " " .. w.textbox.text .. " "
-end
-
-local function update_from_tag(t)
- local screen = get_screen(t.screen)
- local w = boxes[screen]
- if w then
- update(w, screen)
- end
-end
-
---- Create a layoutbox widget. It draws a picture with the current layout
--- symbol of the current tag.
--- @param screen The screen number that the layout will be represented for.
--- @return An imagebox widget configured as a layoutbox.
-function layoutbox.new(screen)
- screen = get_screen(screen or 1)
-
- -- Do we already have the update callbacks registered?
- if boxes == nil then
- boxes = setmetatable({}, { __mode = "kv" })
- capi.tag.connect_signal("property::selected", update_from_tag)
- capi.tag.connect_signal("property::layout", update_from_tag)
- capi.tag.connect_signal("property::screen", function()
- for s, w in pairs(boxes) do
- if s.valid then
- update(w, s)
- end
- end
- end)
- layoutbox.boxes = boxes
- end
-
- -- Do we already have a layoutbox for this screen?
- local w = boxes[screen]
- if not w then
- w = wibox.widget {
- {
- id = "textbox",
- widget = wibox.widget.textbox
- },
- layout = wibox.layout.fixed.horizontal
- }
-
- w._layoutbox_tooltip = tooltip {objects = {w}, delay_show = 1}
-
- update(w, screen)
- boxes[screen] = w
- end
-
- return w
-end
-
-function layoutbox.mt:__call(...)
- return layoutbox.new(...)
-end
-
-return setmetatable(layoutbox, layoutbox.mt)