From 864949d7d6b6fbf3ad72687457a2fd56f253dc38 Mon Sep 17 00:00:00 2001 From: Roman Cheplyaka Date: Wed, 4 Feb 2009 11:36:35 +0100 Subject: Remove X.U.SpawnOnWorkspace (superseded by X.A.SpawnOn) darcs-hash:20090204103635-3ebed-9189e11e7e1ce9a6e2e9430016503b1302c9bda9.gz --- XMonad/Util/SpawnOnWorkspace.hs | 81 ----------------------------------------- 1 file changed, 81 deletions(-) delete mode 100644 XMonad/Util/SpawnOnWorkspace.hs (limited to 'XMonad/Util/SpawnOnWorkspace.hs') diff --git a/XMonad/Util/SpawnOnWorkspace.hs b/XMonad/Util/SpawnOnWorkspace.hs deleted file mode 100644 index f93ca24..0000000 --- a/XMonad/Util/SpawnOnWorkspace.hs +++ /dev/null @@ -1,81 +0,0 @@ ------------------------------------------------------------------------------ --- | --- Module : XMonad.Util.SpawnOnWorkspace --- Copyright : (c) 2009 Daniel Schoepe --- License : BSD3-style (see LICENSE) --- --- Maintainer : Daniel Schoepe --- Stability : unstable --- Portability : unportable --- --- Provides a way to spawn an application on a specific workspace by using --- the _NET_WM_PID property that most windows set on creation. Hence this module --- won't work on applications that don't set this property. --- ------------------------------------------------------------------------------ -module XMonad.Util.SpawnOnWorkspace ( - -- * Usage - -- $usage - - -- * Documentation - -- $documentation - - spawnOnWorkspace, - spawnOnWorkspaceHook, - mkSpawnHelper, - SpawnHelper - ) where -import XMonad -import XMonad.Hooks.ManageHelpers -import Data.IORef -import Data.Maybe -import qualified Data.Map as M -import System.Posix.Types - --- $usage --- You can use this module with the following in your @~\/.xmonad\/xmonad.hs@: --- --- > import XMonad --- > import XMonad.Util.SpawnOnWorkspace --- --- > main = do --- > sh <- mkSpawnHelper --- > .. --- --- Then you need to add 'spawnOnWorkspaceHook' to your manage hook: --- --- > manageHook = spawnOnWorkspaceHook sh <+> manageHook defaultConfig --- --- To spawn an application on a specific workspace, add a keybinding: --- --- > ((mod1Mask,xK_o), spawnOnWorkspace sh "urxvt" "3") --- --- For detailed instructions on editing your key bindings, see --- "XMonad.Doc.Extending#Editing_key_bindings". --- - -------------------------------------------------------------------- - --- $documentation - --- | This structure holds the process ids and corresponding --- workspaces for processes created with 'spawnOnWorkspace' -type SpawnHelper = IORef (M.Map ProcessID WorkspaceId) - --- | Creates a new spawn helper. -mkSpawnHelper :: IO SpawnHelper -mkSpawnHelper = newIORef M.empty - --- | Provides a manage hook to react on process spawned with --- 'spawnOnWorkspace'. -spawnOnWorkspaceHook :: SpawnHelper -> ManageHook -spawnOnWorkspaceHook sh = do - pd <- fromMaybe (-1) `fmap` pid - table <- io $ readIORef sh - case M.lookup pd table of - Just ws -> io (modifyIORef sh (M.delete pd)) >> doShift ws - Nothing -> doF id - --- | Spawns a process on the specified workspace. -spawnOnWorkspace :: SpawnHelper -> String -> WorkspaceId -> X () -spawnOnWorkspace sh cmd ws = spawnPID cmd >>= io . modifyIORef sh . flip M.insert ws -- cgit v1.2.3