diff options
| author | venomade <venomade@venomade.com> | 2026-02-11 11:42:58 +0000 |
|---|---|---|
| committer | venomade <venomade@venomade.com> | 2026-02-11 11:42:58 +0000 |
| commit | 0bd150185551b6d8835d022c15a5f6e832d51113 (patch) | |
| tree | 10bf3f3443df49a44eb47b328b73b7e76b0a4924 /.config/luastatus/wireless.lua | |
| parent | 8d688d1107c46b6dfdcaf02fa5c9c4c8a4640e65 (diff) | |
Asahi
Soft reset of dotfiles specific to Asahi, Sway and Neovim.
Diffstat (limited to '.config/luastatus/wireless.lua')
| -rw-r--r-- | .config/luastatus/wireless.lua | 70 |
1 files changed, 70 insertions, 0 deletions
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 + ]], +} |
