diff options
author | Roman Cheplyaka <roma@ro-che.info> | 2009-02-04 11:36:35 +0100 |
---|---|---|
committer | Roman Cheplyaka <roma@ro-che.info> | 2009-02-04 11:36:35 +0100 |
commit | 864949d7d6b6fbf3ad72687457a2fd56f253dc38 (patch) | |
tree | b386b80e7c3d69000d28db2106da6c0e3cbc64c7 /XMonad/Util | |
parent | af5b4c9c01ad291da6c92cc7bfcac14f80189ba5 (diff) | |
download | XMonadContrib-864949d7d6b6fbf3ad72687457a2fd56f253dc38.tar.gz XMonadContrib-864949d7d6b6fbf3ad72687457a2fd56f253dc38.tar.xz XMonadContrib-864949d7d6b6fbf3ad72687457a2fd56f253dc38.zip |
Remove X.U.SpawnOnWorkspace (superseded by X.A.SpawnOn)
darcs-hash:20090204103635-3ebed-9189e11e7e1ce9a6e2e9430016503b1302c9bda9.gz
Diffstat (limited to 'XMonad/Util')
-rw-r--r-- | XMonad/Util/SpawnOnWorkspace.hs | 81 |
1 files changed, 0 insertions, 81 deletions
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 <asgaroth_@gmx.de> --- 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 |