From 0bd150185551b6d8835d022c15a5f6e832d51113 Mon Sep 17 00:00:00 2001 From: venomade Date: Wed, 11 Feb 2026 11:42:58 +0000 Subject: Asahi Soft reset of dotfiles specific to Asahi, Sway and Neovim. --- .config/luastatus/wireless.lua | 70 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 .config/luastatus/wireless.lua (limited to '.config/luastatus/wireless.lua') diff --git a/.config/luastatus/wireless.lua b/.config/luastatus/wireless.lua new file mode 100644 index 0000000..e3d53d7 --- /dev/null +++ b/.config/luastatus/wireless.lua @@ -0,0 +1,70 @@ +local MIN_DBM, MAX_DBM = -90, -20 +local COLOR_DIM = '#709080' + +local function clamp(x, lo, hi) + if x < lo then return lo end + if x > hi then return hi end + return x +end + +local function make_wifi_level(dbm) + dbm = clamp(dbm, MIN_DBM, MAX_DBM) + + -- Normalize to [0, 1] + local t = (dbm - MIN_DBM) / (MAX_DBM - MIN_DBM) + + local level + if t < 0.25 then + level = '󰢿' + elseif t < 0.50 then + level = '󰢼' + elseif t < 0.75 then + level = '󰢽' + else + level = '󰢾' + end + + return { + full_text = level, + color = COLOR_DIM, + } +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 + if params.wireless.ssid then + r[#r + 1] = { + full_text = params.wireless.ssid, + color = COLOR_DIM, + } + end + if params.wireless.signal_dbm then + r[#r + 1] = make_wifi_level(params.wireless.signal_dbm) + end + elseif iface ~= 'lo' and (params.ipv4 or params.ipv6) then + r[#r + 1] = { + full_text = string.format('[%s]', iface), + color = COLOR_DIM, + } + end + end + return r + end, + event = [[ + local t = ... + if t.button == 1 then + os.execute('~/.local/bin/rofi-wifimenu &') + end + ]], +} -- cgit 1.4.1-2-gfad0