diff options
| author | jao <jao@gnu.org> | 2018-11-21 20:52:03 +0000 | 
|---|---|---|
| committer | jao <jao@gnu.org> | 2018-11-21 20:52:03 +0000 | 
| commit | b1eb899495ed996200a9e99c33bcc8f5a4896af9 (patch) | |
| tree | 8c1e1d2178ceaf8d1a66a6886f151320112e114e /src/Plugins/Monitors | |
| parent | e9a9b580bc1a2d42da83a93741d1aab78a178644 (diff) | |
| download | xmobar-b1eb899495ed996200a9e99c33bcc8f5a4896af9.tar.gz xmobar-b1eb899495ed996200a9e99c33bcc8f5a4896af9.tar.bz2 | |
Wireless: simple auto-detection of interface name
Diffstat (limited to 'src/Plugins/Monitors')
| -rw-r--r-- | src/Plugins/Monitors/Wireless.hs | 12 | 
1 files changed, 10 insertions, 2 deletions
| diff --git a/src/Plugins/Monitors/Wireless.hs b/src/Plugins/Monitors/Wireless.hs index eeef9a9..9397e50 100644 --- a/src/Plugins/Monitors/Wireless.hs +++ b/src/Plugins/Monitors/Wireless.hs @@ -42,12 +42,14 @@ parseOpts argv =  wirelessConfig :: IO MConfig  wirelessConfig = -  mkMConfig "<essid> <quality>" ["essid", "quality", "qualitybar", "qualityvbar", "qualityipat"] +  mkMConfig "<essid> <quality>" +            ["essid", "quality", "qualitybar", "qualityvbar", "qualityipat"]  runWireless :: String -> [String] -> Monitor String  runWireless iface args = do    opts <- io $ parseOpts args -  wi <- io $ getWirelessInfo iface +  iface' <- if "" == iface then io findInterface else return iface +  wi <- io $ getWirelessInfo iface'    na <- getConfigValue naString    let essid = wiEssid wi        qlty = fromIntegral $ wiQuality wi @@ -60,3 +62,9 @@ runWireless iface args = do    qvb <- showVerticalBar qlty (qlty / 100)    qipat <- showIconPattern (qualityIconPattern opts) (qlty / 100)    parseTemplate [ep, q, qb, qvb, qipat] + +findInterface :: IO String +findInterface = do +  c <- readFile "/proc/net/wireless" +  let nds = lines c +  return $ if length nds > 2 then takeWhile (/= 'c') (nds!!2) else [] | 
