From 5745a2e49f95897bc504e36b3508f7b4d4df01dc Mon Sep 17 00:00:00 2001 From: ndwarshuis Date: Wed, 3 Nov 2021 23:57:10 -0400 Subject: [PATCH] ADD dynamic workspace for unwieldy F5VPN thingy --- bin/xmonad.hs | 14 ++++++++++++++ .../Internal/Concurrent/DynamicWorkspaces.hs | 10 ++++++++++ 2 files changed, 24 insertions(+) diff --git a/bin/xmonad.hs b/bin/xmonad.hs index 0f7df75..9663d8b 100644 --- a/bin/xmonad.hs +++ b/bin/xmonad.hs @@ -173,10 +173,24 @@ xsaneDynamicWorkspace = DynWorkspace t = "XSANE" c = "Xsane" +f5vpnDynamicWorkspace :: DynWorkspace +f5vpnDynamicWorkspace = DynWorkspace + { dwName = "F5Vpn" + , dwTag = t + , dwClass = c + , dwHook = [ className =? c -?> appendShift t ] + , dwKey = 'i' + , dwCmd = Just skip + } + where + t = "F5VPN" + c = "F5 VPN" + allDWs :: [DynWorkspace] allDWs = [ xsaneDynamicWorkspace , wmDynamicWorkspace , gimpDynamicWorkspace + , f5vpnDynamicWorkspace ] -------------------------------------------------------------------------------- diff --git a/lib/XMonad/Internal/Concurrent/DynamicWorkspaces.hs b/lib/XMonad/Internal/Concurrent/DynamicWorkspaces.hs index 7508b39..ccc5e0e 100644 --- a/lib/XMonad/Internal/Concurrent/DynamicWorkspaces.hs +++ b/lib/XMonad/Internal/Concurrent/DynamicWorkspaces.hs @@ -27,6 +27,7 @@ module XMonad.Internal.Concurrent.DynamicWorkspaces ( DynWorkspace(..) + , appendShift , appendViewShift , removeDynamicWorkspace , runWorkspaceMon @@ -175,9 +176,18 @@ spawnOrSwitch tag cmd = do -- | Managehook -- Move windows to new workspace if they are part of a dynamic workspace +-- shamelessly ripped off from appendWorkspace (this analogue doesn't exist) +appendHiddenWorkspace :: String -> X () +appendHiddenWorkspace = addHiddenWorkspaceAt (flip (++) . return) + viewShift :: WorkspaceId -> ManageHook viewShift = doF . liftM2 (.) W.view W.shift +-- NOTE: need to appendHidden because the regular append function will shift +-- to the new workspace, which I don't want for this one +appendShift :: String -> ManageHook +appendShift tag = liftX (appendHiddenWorkspace tag) >> doF (W.shift tag) + appendViewShift :: String -> ManageHook appendViewShift tag = liftX (appendWorkspace tag) >> viewShift tag