tianbar 1.1.0.1 → 1.1.1.1
raw patch · 8 files changed
+42/−15 lines, 8 files
Files
- scripts/network.js +2/−2
- scripts/volume.js +2/−2
- src/System/Tianbar/Plugin.hs +2/−0
- src/System/Tianbar/Plugin/ExecuteCommand.hs +17/−1
- src/System/Tianbar/Plugin/Socket.hs +6/−4
- src/System/Tianbar/RequestResponse.hs +12/−4
- src/System/Tianbar/StrutProperties.hs +0/−1
- tianbar.cabal +1/−1
scripts/network.js view
@@ -9,7 +9,7 @@ const INACTIVE_COLOR = '#999'; - self.settings_command = 'gnome-control-center network &';+ self.settings_command = 'gnome-control-center network'; self.widget = function () { return $('.widget-network');@@ -319,7 +319,7 @@ $(document).ready(function () { self.widget().click(function () {- $.ajax('tianbar:///execute', {+ $.ajax('tianbar:///spawn', { data: { command: self.settings_command }
scripts/volume.js view
@@ -21,7 +21,7 @@ const self = {}; - self.settings_command = 'gnome-control-center sound &';+ self.settings_command = 'gnome-control-center sound'; function uid() { return $.ajax('tianbar:///root/proc/self/status')@@ -132,7 +132,7 @@ $(document).ready(function () { self.widget().click(function () {- $.ajax('tianbar:///execute', {+ $.ajax('tianbar:///spawn', { data: { command: self.settings_command }
src/System/Tianbar/Plugin.hs view
@@ -10,7 +10,9 @@ URI (..), dir, look,+ lookBS, looks,+ looksBS, newCallback, nullDir, parseURI,
src/System/Tianbar/Plugin/ExecuteCommand.hs view
@@ -2,6 +2,8 @@ -- Execute arbitrary commands +import Control.Concurrent+import Control.Monad import Control.Monad.Trans import System.Process@@ -14,7 +16,9 @@ instance Plugin ExecuteCommand where initialize = return ExecuteCommand - handler = dir "execute" executeHandler+ handler = msum [ dir "execute" executeHandler+ , dir "spawn" launchHandler+ ] executeHandler :: ServerPart ExecuteCommand Response executeHandler = do@@ -22,3 +26,15 @@ command <- look "command" output <- liftIO $ readCreateProcess (shell command) "" stringResponse output+++launchHandler :: ServerPart ExecuteCommand Response+launchHandler = do+ nullDir+ command <- look "command"+ _ <- liftIO $ do+ process <- spawnCommand command+ forkIO $ do+ _ <- waitForProcess process+ return ()+ okResponse
src/System/Tianbar/Plugin/Socket.hs view
@@ -10,9 +10,11 @@ import Control.Monad.State import Control.Monad.Trans.Maybe +import qualified Data.ByteString.UTF8 as U import qualified Data.Map as M import Network.Socket+import qualified Network.Socket.ByteString as SB import System.Tianbar.Callbacks import System.Tianbar.Plugin@@ -42,8 +44,8 @@ return s (callback, index) <- newCallback _ <- liftIO $ forkIO $ void $ forever $ do- sockData <- recv sock 4096- liftIO $ callback [sockData]+ sockData <- SB.recv sock 4096+ liftIO $ callback [U.toString sockData] return () spSock . at index .= Just sock callbackResponse index@@ -53,9 +55,9 @@ nullDir index <- fromData sock <- MaybeT $ getSocket index- dataToSend <- look "data"+ dataToSend <- lookBS "data" -- TODO: resend until done- _ <- liftIO $ send sock dataToSend+ _ <- liftIO $ SB.send sock dataToSend callbackResponse index closeHandler :: ServerPart SocketPlugin Response
src/System/Tianbar/RequestResponse.hs view
@@ -7,7 +7,9 @@ bytestringResponse, jsonResponse, look,+ lookBS, looks,+ looksBS, okResponse, parseURI, serveFile,@@ -75,14 +77,20 @@ return $ Response contents (Just $ U.toString fileType) look :: (MonadPlus m, MonadReader URI m) => String -> m String-look param = looks param >>= \values -> case values of+look = fmap U.toString . lookBS++looks :: (MonadPlus m, MonadReader URI m) => String -> m [String]+looks = fmap (map U.toString) . looksBS++lookBS :: (MonadPlus m, MonadReader URI m) => String -> m B.ByteString+lookBS param = looksBS param >>= \values -> case values of [value] -> return value _ -> mzero -looks :: (MonadPlus m, MonadReader URI m) => String -> m [String]-looks param = asks uriQuery >>= \params -> do+looksBS :: (MonadPlus m, MonadReader URI m) => String -> m [B.ByteString]+looksBS param = asks uriQuery >>= \params -> do let paramTxt = U.fromString param- let isParam (p, value) | p == paramTxt = fmap U.toString value+ let isParam (p, value) | p == paramTxt = value | otherwise = Nothing return $ mapMaybe isParam params
src/System/Tianbar/StrutProperties.hs view
@@ -14,7 +14,6 @@ import GI.Gdk.Structs.Atom import Foreign-import Foreign.C.Types type StrutProperties = (Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int, Int)
tianbar.cabal view
@@ -1,5 +1,5 @@ name: tianbar-version: 1.1.0.1+version: 1.1.1.1 synopsis: A desktop bar based on WebKit description: A desktop bar using WebKit for rendering as much as possible.