Remove X.U.SpawnOnWorkspace (superseded by X.A.SpawnOn)

This commit is contained in:
Roman Cheplyaka
2009-02-04 10:36:35 +00:00
parent fbb9605d76
commit c1b9f308d9
2 changed files with 0 additions and 82 deletions

View File

@@ -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

View File

@@ -206,7 +206,6 @@ library
XMonad.Util.NamedWindows
XMonad.Util.Run
XMonad.Util.Scratchpad
XMonad.Util.SpawnOnWorkspace
XMonad.Util.Themes
XMonad.Util.Timer
XMonad.Util.WindowProperties