diff options
author | Vidhu Kant Sharma <vidhukant@vidhukant.com> | 2025-05-14 22:50:39 +0530 |
---|---|---|
committer | Vidhu Kant Sharma <vidhukant@vidhukant.com> | 2025-05-14 22:50:39 +0530 |
commit | 05da0e10926d4ade3b10a55999a0ed1b797caf65 (patch) | |
tree | 97cf6a33e5ce90d57e6894b748b1e18ad690643e /.config/luastatus-scripts-dwm/wireless.lua | |
parent | f9c150cf57732bb7b42c6b2a5db70039161f8c6d (diff) |
Diffstat (limited to '.config/luastatus-scripts-dwm/wireless.lua')
-rw-r--r-- | .config/luastatus-scripts-dwm/wireless.lua | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/.config/luastatus-scripts-dwm/wireless.lua b/.config/luastatus-scripts-dwm/wireless.lua new file mode 100644 index 0000000..34300ad --- /dev/null +++ b/.config/luastatus-scripts-dwm/wireless.lua @@ -0,0 +1,56 @@ +local MIN_DBM, MAX_DBM = -90, -20 +local NGAUGE = 5 +local COLOR_DIM = '#709080' + +local function round(x) + return math.floor(x + 0.5) +end + +local function make_wifi_gauge(dbm) + if dbm < MIN_DBM then dbm = MIN_DBM end + if dbm > MAX_DBM then dbm = MAX_DBM end + local nbright = round(NGAUGE * (1 - 0.7 * (MAX_DBM - dbm) / (MAX_DBM - MIN_DBM))) + + if nbright == 0 then + return "" + elseif nbright == 1 then + return "" + elseif nbright == 2 then + return "" + elseif nbright == 3 then + return "" + elseif nbright == 4 then + return "" + else + return "" + end +end + +widget = { + plugin = 'network-linux', + opts = { + wireless = true, + timeout = 10, + }, + cb = function(t) + if not t then + return nil + end + local r = {} + for iface, params in pairs(t) do + if params.wireless then + local x = "" + if params.wireless.signal_dbm then + x = x .. make_wifi_gauge(params.wireless.signal_dbm) .. " " + end + if params.wireless.ssid then + x = x .. params.wireless.ssid + end + return x + elseif iface ~= 'lo' and (params.ipv4 or params.ipv6) then + r[#r + 1] = string.format('[%s]', iface) + end + end + return r + end, +} |