aboutsummaryrefslogtreecommitdiff
path: root/src/Rahm/Desktop/StackSet.hs
diff options
context:
space:
mode:
authorJosh Rahm <rahm@google.com>2023-12-07 12:38:10 -0700
committerJosh Rahm <rahm@google.com>2023-12-07 12:38:10 -0700
commit33879cd90b0dd488540f7526d3eceab152a23d0f (patch)
treee47060d7caf24fb4cd399a1c7f8377e7275cef8f /src/Rahm/Desktop/StackSet.hs
parent83543b4972edcebf3d9e568ed6a556ce074daa06 (diff)
downloadrde-33879cd90b0dd488540f7526d3eceab152a23d0f.tar.gz
rde-33879cd90b0dd488540f7526d3eceab152a23d0f.tar.bz2
rde-33879cd90b0dd488540f7526d3eceab152a23d0f.zip
WIP trying to use pin-window as a layout. Not really working too well
Diffstat (limited to 'src/Rahm/Desktop/StackSet.hs')
-rw-r--r--src/Rahm/Desktop/StackSet.hs8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/Rahm/Desktop/StackSet.hs b/src/Rahm/Desktop/StackSet.hs
index 2dc8787..94c044e 100644
--- a/src/Rahm/Desktop/StackSet.hs
+++ b/src/Rahm/Desktop/StackSet.hs
@@ -1,6 +1,7 @@
module Rahm.Desktop.StackSet
( masterWindow,
allVisibleWindows,
+ shiftWinNoFocus,
differentiateWithFocus,
concatMapTiledWindows,
windowsOnWorkspace,
@@ -273,6 +274,13 @@ differentiateWithFocus thing lst =
getFocusedWindow :: StackSet i l a s sd -> Maybe a
getFocusedWindow (StackSet cur _ _ _) = W.focus <$> (W.stack . W.workspace) cur
+shiftWinNoFocus :: (Ord a, Eq s, Eq i) => i -> a -> StackSet i l a s sd -> StackSet i l a s sd
+shiftWinNoFocus n w s = case findTag w s of
+ Just from | n `tagMember` s && n /= from -> go from s
+ _ -> s
+ where go from = onWorkspace n (focusDown . insertUp w) . onWorkspace from (delete' w)
+ onWorkspace n f s = view (currentTag s) . f . view n $ s
+
sinkBy :: (Eq a, Eq i, Ord a) => a -> a -> StackSet i l a s sd -> StackSet i l a s sd
sinkBy win toSinkBy ss =
case (findTag win ss, findTag toSinkBy ss) of