diff --git a/src/QBar/Blocks/Battery.hs b/src/QBar/Blocks/Battery.hs
index fd8b5ed52fcde4d2cf47670b5ba744234b2ba454..720bd34ff5db21b23ada57b485c298c1f8eeb494 100644
--- a/src/QBar/Blocks/Battery.hs
+++ b/src/QBar/Blocks/Battery.hs
@@ -72,11 +72,10 @@ batteryBlock = do
     apiPath = "/sys/class/power_supply"
 
     getPluggedState :: IO Bool
-    getPluggedState = do
-      stateAC <- getPluggedStateFromFile "/sys/class/power_supply/AC/online"
-      stateACAD <- fromMaybe False <$> getPluggedStateFromFile "/sys/class/power_supply/ACAD/online"
-      return $ fromMaybe stateACAD stateAC
+    getPluggedState = or . catMaybes <$> mapM getPluggedStateFromFile powerSupplyPaths
       where
+        powerSupplyPaths :: [FilePath]
+        powerSupplyPaths = ["/sys/class/power_supply/AC/online", "/sys/class/power_supply/ACAD/online"]
         getPluggedStateFromFile :: FilePath -> IO (Maybe Bool)
         getPluggedStateFromFile f = do
           line <- tryMaybe $ T.strip <$> TIO.readFile f