diff options
Diffstat (limited to 'awesome')
-rw-r--r-- | awesome/bar.lua | 8 | ||||
-rw-r--r-- | awesome/widgets/battery.lua | 24 | ||||
-rw-r--r-- | awesome/widgets/classiclayoutbox.lua | 111 |
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) |