aboutsummaryrefslogtreecommitdiffstats
path: root/XMonad/Util
diff options
context:
space:
mode:
authorRoman Cheplyaka <roma@ro-che.info>2009-02-04 11:36:35 +0100
committerRoman Cheplyaka <roma@ro-che.info>2009-02-04 11:36:35 +0100
commit864949d7d6b6fbf3ad72687457a2fd56f253dc38 (patch)
treeb386b80e7c3d69000d28db2106da6c0e3cbc64c7 /XMonad/Util
parentaf5b4c9c01ad291da6c92cc7bfcac14f80189ba5 (diff)
downloadXMonadContrib-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.hs81
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