aboutsummaryrefslogtreecommitdiff
path: root/src/Rahm/Desktop/Common.hs
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2022-04-24 20:34:51 -0600
committerJosh Rahm <joshuarahm@gmail.com>2022-10-09 12:19:46 -0600
commit8e2cb3d0e92dd8c09233705471f87d4d582eedfe (patch)
tree0f2bcdf6074b6a8f696c53efb0a83bdd53460275 /src/Rahm/Desktop/Common.hs
parent92deb70d1268317e3b80c8c28e0358f0c9064f3e (diff)
downloadrde-8e2cb3d0e92dd8c09233705471f87d4d582eedfe.tar.gz
rde-8e2cb3d0e92dd8c09233705471f87d4d582eedfe.tar.bz2
rde-8e2cb3d0e92dd8c09233705471f87d4d582eedfe.zip
Add R.D.StackSet as a replacement for StackSet.
Diffstat (limited to 'src/Rahm/Desktop/Common.hs')
-rw-r--r--src/Rahm/Desktop/Common.hs31
1 files changed, 20 insertions, 11 deletions
diff --git a/src/Rahm/Desktop/Common.hs b/src/Rahm/Desktop/Common.hs
index 6d86c0e..273984e 100644
--- a/src/Rahm/Desktop/Common.hs
+++ b/src/Rahm/Desktop/Common.hs
@@ -4,7 +4,6 @@ import Prelude hiding ((!!))
import Control.Monad (void, when, forM_)
import Control.Monad.Trans.Maybe
-import XMonad.Actions.DynamicWorkspaces
import XMonad.Util.Run
import XMonad.Prompt
import XMonad.Prompt.Input
@@ -19,12 +18,11 @@ import Data.List.Safe ((!!))
import Data.Maybe
import Text.Printf
import XMonad hiding (workspaces, Screen)
-import XMonad.StackSet hiding (filter, focus)
import qualified Data.Map as Map
import Rahm.Desktop.DMenu
import Data.Ord (comparing)
-import qualified XMonad.StackSet as S
+import qualified Rahm.Desktop.StackSet as S
import Rahm.Desktop.Windows
-- A location is a workspace and maybe a window with that workspace.
@@ -70,7 +68,7 @@ getString = runQuery $ do
askWindowId :: X (Maybe [Window])
askWindowId = do
windowTitlesToWinId <- withWindowSet $ \ss ->
- Map.fromListWith (++) <$> mapM (\wid -> (,) <$> getString wid <*> return [wid]) (allWindows ss)
+ Map.fromListWith (++) <$> mapM (\wid -> (,) <$> getString wid <*> return [wid]) (S.allWindows ss)
runDMenuPromptWithMap "Window" (Just "#f542f5") windowTitlesToWinId
@@ -103,15 +101,26 @@ withBorderColor color wins fn = do
return ret
+withBorderWidth :: Int -> [Window] -> X a -> X a
+withBorderWidth width ws fn = do
+ d <- asks display
+
+ forM_ ws $ \window ->
+ io $ setWindowBorderWidth d window $ fromIntegral width
+
+ ret <- fn
+
+ forM_ ws $ \window ->
+ io $ setWindowBorderWidth d window 2
+
+ return ret
+
gotoWorkspace :: WorkspaceId -> X ()
-gotoWorkspace wid = do
- addHiddenWorkspace wid
- windows $ S.greedyView wid
+gotoWorkspace wid = windows $ S.greedyView wid
moveLocationToWorkspace :: Location -> WorkspaceId -> X ()
-moveLocationToWorkspace (Location _ (Just win)) wid = do
- addHiddenWorkspace wid
- windows $ shiftWin wid win
+moveLocationToWorkspace (Location _ (Just win)) wid =
+ windows $ S.shiftWin wid win
moveLocationToWorkspace _ _ = return ()
getCurrentWorkspace :: X WorkspaceId
@@ -122,7 +131,7 @@ getCurrentWorkspace = withWindowSet $
getCurrentLocation :: X Location
getCurrentLocation = do
ws <- getCurrentWorkspace
- win <- withWindowSet (return . peek)
+ win <- withWindowSet (return . S.peek)
return (Location ws win)
runMaybeT_ :: (Monad m) => MaybeT m a -> m ()