]> git.madduck.net Git - etc/awesome.git/commitdiff

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

alsa/bat textbox resize fix
authorcopycat-killer <dada@archlinux.info>
Sat, 7 Jan 2017 14:12:41 +0000 (15:12 +0100)
committercopycat-killer <dada@archlinux.info>
Sat, 7 Jan 2017 14:12:41 +0000 (15:12 +0100)
README.rst
widgets/abase.lua
widgets/alsa.lua
widgets/base.lua
widgets/bat.lua
widgets/cpu.lua

index f6938bde0e3234853ed9e49edf48ad457e1f588b..6c7bb01c0f863c14ac4840e8837f22fae3e3c733 100644 (file)
@@ -15,7 +15,7 @@ Description
 
 **Note:** the update to 4.x is still in progress: if you experience issues, please report them in order to speed up the process.
 
-Successor of awesome-vain_, this module provides new layouts, a set of widgets and utility functions, in order to improve Awesome_ usability and configurability.
+Successor of awesome-vain_, this module provides new layouts, a set of widgets and utility functions, with the aim of improving Awesome_ usability and configurability.
 
 Read the wiki_ for all the info.
 
index fb20d768222e974e83f6af9b2360c05a5290eaf5..60d86ab2fa44be30e333fbac69531194c5a12ada 100644 (file)
@@ -12,8 +12,7 @@ local wibox        = require("wibox")
 
 local setmetatable = setmetatable
 
--- Basic template for custom widgets
--- Asynchronous version
+-- Basic template for custom widgets (asynchronous version)
 -- lain.widgets.abase
 
 local function worker(args)
index 7500097b05eac9e0cc3bcc695d9f4b44551e5522..670765acf826e21ffd8a2454fbb08e1657464186 100644 (file)
@@ -7,7 +7,7 @@
                                                   
 --]]
 
-local newtimer     = require("lain.helpers").newtimer
+local helpers      = require("lain.helpers")
 local read_pipe    = require("lain.helpers").read_pipe
 
 local wibox        = require("wibox")
@@ -19,7 +19,7 @@ local setmetatable = setmetatable
 
 -- ALSA volume
 -- lain.widgets.alsa
-local alsa = { last_level = "0", last_status = "" }
+local alsa = helpers.make_widget_textbox()
 
 local function worker(args)
     local args     = args or {}
@@ -29,11 +29,12 @@ local function worker(args)
     alsa.cmd           = args.cmd or "amixer"
     alsa.channel       = args.channel or "Master"
     alsa.togglechannel = args.togglechannel
-    alsa.widget        = wibox.widget.textbox('')
+    alsa.last_level    = "0"
+    alsa.last_status   = ""
 
     function alsa.update()
         mixer = read_pipe(string.format("%s get %s", alsa.cmd, alsa.channel))
-        l,  = string.match(mixer, "([%d]+)%%.*%[([%l]*)")
+        l, s  = string.match(mixer, "([%d]+)%%.*%[([%l]*)")
 
         -- HDMIs can have a channel different from Master for toggling mute
         if alsa.togglechannel then
@@ -51,9 +52,9 @@ local function worker(args)
     end
 
     timer_id = string.format("alsa-%s-%s", alsa.cmd, alsa.channel)
-    newtimer(timer_id, timeout, alsa.update)
+    helpers.newtimer(timer_id, timeout, alsa.update)
 
-    return setmetatable(alsa, { __index = alsa.widget })
+    return alsa
 end
 
 return setmetatable(alsa, { __call = function(_, ...) return worker(...) end })
index cd84e361220f79f2d24c98d3a1e5fe198437ddce..642a858b7109d91bfc73e7c1cfdbfe1d02d1aac0 100644 (file)
@@ -8,7 +8,6 @@
 
 local newtimer     = require("lain.helpers").newtimer
 local read_pipe    = require("lain.helpers").read_pipe
-
 local wibox        = require("wibox")
 
 local setmetatable = setmetatable
index f63b1fa2700644e1ce7e695f7cab2c2bc56daee5..8e483f75dd8a2127fd1c54541be0d731ab8dc8e4 100644 (file)
@@ -7,7 +7,7 @@
                                                                                                                        
 --]]
 
-local newtimer     = require("lain.helpers").newtimer
+local helpers      = require("lain.helpers")
 local first_line   = require("lain.helpers").first_line
 
 local naughty      = require("naughty")
@@ -27,7 +27,7 @@ local setmetatable = setmetatable
 -- lain.widgets.bat
 
 local function worker(args)
-    local bat       = {}
+    local bat       = helpers.make_widget_textbox()
     local args      = args or {}
     local timeout   = args.timeout or 30
     local batteries = args.batteries or (args.battery and {args.battery}) or {"BAT0"}
@@ -35,8 +35,6 @@ local function worker(args)
     local notify    = args.notify or "on"
     local settings  = args.settings or function() end
 
-    bat.widget = wibox.widget.textbox('')
-
     bat_notification_low_preset = {
         title   = "Battery low",
         text    = "Plug the cable!",
@@ -165,9 +163,9 @@ local function worker(args)
         end
     end
 
-    newtimer(battery, timeout, bat.update)
+    helpers.newtimer(battery, timeout, bat.update)
 
-    return setmetatable(bat, { __index = bat.widget })
+    return bat
 end
 
 return setmetatable({}, { __call = function(_, ...) return worker(...) end })
index 737b6fa454c2cfefe01fb44fd83d65b60d8ef071..c33c7eb68736692b9eede3e456b0cf616b474e8d 100644 (file)
@@ -25,28 +25,26 @@ local cpu = { core = {} }
 
 local function worker(args)
     local args     = args or {}
-         local timeout  = args.timeout or 2
-         local settings = args.settings or function() end
+    local timeout  = args.timeout or 2
+    local settings = args.settings or function() end
 
-         cpu.widget = wibox.widget.textbox('')
+    cpu.widget = wibox.widget.textbox('')
 
-         function update()
+    function update()
         -- Read the amount of time the CPUs have spent performing
-                   -- different kinds of work. Read the first line of /proc/stat
-                   -- which is the sum of all CPUs.
+        -- different kinds of work. Read the first line of /proc/stat
+        -- which is the sum of all CPUs.
         local times = lines_match("cpu","/proc/stat")
 
-        for index,time in pairs(times)
-        do
+        for index,time in pairs(times) do
             local coreid = index - 1
-            local core = cpu.core[coreid] or
-                  { last_active = 0 , last_total = 0, usage = 0 }
-            local at = 1
-            local idle = 0
-            local total = 0
-
-            for field in string.gmatch(time, "[%s]+([^%s]+)")
-            do
+            local core   = cpu.core[coreid] or
+                           { last_active = 0 , last_total = 0, usage = 0 }
+            local at     = 1
+            local idle   = 0
+            local total  = 0
+
+            for field in string.gmatch(time, "[%s]+([^%s]+)") do
                 -- 4 = idle, 5 = ioWait. Essentially, the CPUs have done
                 -- nothing during these times.
                 if at == 4 or at == 5 then
@@ -62,15 +60,14 @@ local function worker(args)
                 -- Read current data and calculate relative values.
                 local dactive = active - core.last_active
                 local dtotal  = total - core.last_total
-
-                local usage = math.ceil((dactive / dtotal) * 100)
+                local usage   = math.ceil((dactive / dtotal) * 100)
 
                 core.last_active = active
                 core.last_total  = total
                 core.usage       = usage
 
                 -- Save current data for the next run.
-                cpu.core[coreid] = core;
+                cpu.core[coreid] = core
             end
         end
 
@@ -82,6 +79,7 @@ local function worker(args)
     end
 
     newtimer("cpu", timeout, update)
+
     return cpu.widget
 end