summaryrefslogtreecommitdiffhomepage
path: root/src/Plugins/Monitors/Wireless.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Plugins/Monitors/Wireless.hs')
-rw-r--r--src/Plugins/Monitors/Wireless.hs34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/Plugins/Monitors/Wireless.hs b/src/Plugins/Monitors/Wireless.hs
new file mode 100644
index 0000000..4ac0c10
--- /dev/null
+++ b/src/Plugins/Monitors/Wireless.hs
@@ -0,0 +1,34 @@
+-----------------------------------------------------------------------------
+-- |
+-- Module : Plugins.Monitors.Wireless
+-- Copyright : (c) Jose Antonio Ortega Ruiz
+-- License : BSD-style (see LICENSE)
+--
+-- Maintainer : Jose Antonio Ortega Ruiz
+-- Stability : unstable
+-- Portability : unportable
+--
+-- A monitor reporting ESSID and link quality for wireless interfaces
+--
+-----------------------------------------------------------------------------
+
+module Plugins.Monitors.Wireless (wirelessConfig, runWireless) where
+
+import Plugins.Monitors.Common
+import IWlib
+
+wirelessConfig :: IO MConfig
+wirelessConfig =
+ mkMConfig "<essid> <quality>" ["essid", "quality", "qualitybar"]
+
+runWireless :: [String] -> Monitor String
+runWireless (iface:_) = do
+ wi <- io $ getWirelessInfo iface
+ let essid = wiEssid wi
+ qlty = wiQuality wi
+ fqlty = fromIntegral qlty
+ e = if essid == "" then "N/A" else essid
+ q <- if qlty >= 0 then showWithColors show qlty else showWithPadding ""
+ qb <- showPercentBar fqlty (fqlty / 100)
+ parseTemplate [e, q, qb]
+runWireless _ = return "" \ No newline at end of file