aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Rahm/Desktop/Keys.hs35
-rw-r--r--src/Rahm/Desktop/Keys/Wml.hs1
2 files changed, 18 insertions, 18 deletions
diff --git a/src/Rahm/Desktop/Keys.hs b/src/Rahm/Desktop/Keys.hs
index 91ce13a..b136c62 100644
--- a/src/Rahm/Desktop/Keys.hs
+++ b/src/Rahm/Desktop/Keys.hs
@@ -4,9 +4,11 @@ import Control.Monad
( filterM,
forM_,
unless,
+ when,
)
import Control.Monad.Trans.Maybe
- ( runMaybeT,
+ ( MaybeT (..),
+ runMaybeT,
)
import Control.Monad.Writer
( WriterT,
@@ -81,6 +83,7 @@ import Rahm.Desktop.Keys.Wml
readNextWorkspace,
readWindowsetMacro,
readWorkspaceMacro,
+ workspaceName,
)
import Rahm.Desktop.Layout (nLayouts)
import Rahm.Desktop.Layout.ConsistentMosaic
@@ -134,7 +137,8 @@ import Rahm.Desktop.Workspaces
withScreen,
)
import Rahm.Desktop.XMobarLog.PendingBuffer
- ( pushAddPendingBuffer,
+ ( addStringToPendingBuffer,
+ pushAddPendingBuffer,
pushPendingBuffer,
)
import Text.Printf (printf)
@@ -537,32 +541,23 @@ keymap = runKeys $ do
sendMessage rotateLayout
bind xK_s $ do
- forM_ [(False, justMod), (True, shiftMod)] $ \(doSwap, f) ->
+ forM_ [(False, justMod), (True, shiftMod)] $ \(doView, f) ->
f $
doc
- ( if doSwap
- then "Swap a windowset with another windowset."
+ ( if doView
+ then "Shift a windowset to a workspace and goto that workspace."
else "Shift a windowset to a workspace"
)
- $ pushPendingBuffer (if doSwap then "S " else "s ") $ do
+ $ pushPendingBuffer (if doView then "S " else "s ") $ do
maybeLocs <- runMaybeT readNextLocationSet
+ addStringToPendingBuffer " "
forM_ maybeLocs $ \locations -> do
let locationWindows = mapMaybe locationWindow locations
withBorderColor "#00ffff" locationWindows $ do
runMaybeT_ $ do
- if doSwap
- then do
- otherWindows <-
- lift $
- mapMaybe locationWindow . fromMaybe []
- <$> runMaybeT readNextLocationSet
- lift $
- windows $
- W.swapWindows (zip locationWindows otherWindows)
- else do
- workspace <- readNextWorkspace
- mapM_ (lift . moveLocationToWorkspaceFn workspace) locations
+ workspace <- readNextWorkspace
+ mapM_ (lift . moveLocationToWorkspaceFn workspace) locations
lift $ setAlternateWindows locationWindows
forM_ locations $ \loc ->
@@ -571,6 +566,10 @@ keymap = runKeys $ do
Just win -> do
lift $ setAlternateWorkspace win (locationWorkspace loc)
+ wsName <- MaybeT $ return (workspaceName workspace)
+ when doView $
+ lift $ windows $ W.greedyView wsName
+
altMod $ spawnX "sudo -A systemctl suspend && xsecurelock"
bind xK_space $ do
diff --git a/src/Rahm/Desktop/Keys/Wml.hs b/src/Rahm/Desktop/Keys/Wml.hs
index 0311c97..71551e8 100644
--- a/src/Rahm/Desktop/Keys/Wml.hs
+++ b/src/Rahm/Desktop/Keys/Wml.hs
@@ -34,6 +34,7 @@ module Rahm.Desktop.Keys.Wml
locationSetForKeysT,
locationSetForKeys,
readNextWorkspaceName,
+ workspaceName,
)
where