spawn package:xmonad-contrib

Select an application to spawn from a given list
Spawn an application and apply the manage hook when it opens.
Replacement for spawn which launches application on current workspace.
Replacement for spawn which launches application on given workspace.
Spawns a status bar and saves its PID together with the commands that was used to start it. This is useful when the status bars should be restarted with xmonad. Use this in combination with killStatusBar. Note: in some systems, multiple processes might start, even though one command is provided. This means the first PID, of the group leader, is saved.
Spawn a commandline thing, appending the window id to the prefix string you provide. (Make sure to add a space if you need it.) Do your crazy xcompmgr thing.
Spawn the specified dynamic scratchpad
spawn but the description is the string passed
Action to pop up specified named scratchpad, initially starting it on the current workspace. This function almost always ignores its first argument; see Note [Ignored Arguments] for namedScratchpadAction.
Given a ProcessConfig, remember it for spawning external processes later on.
Launch an external application through the system shell and return a Handle to its standard input. Note that the Handle is a text Handle using the current locale encoding.
Same as spawnPipe.
Same as spawnPipe, but forces the char8 encoding, so unicode strings need encodeString. Should never be needed, but some X functions return already encoded Strings, so it may possibly be useful for someone.
Same as spawnPipe, but forces the UTF-8 encoding regardless of locale.
When spawnNamedPipe is executed with a command String and a name String respectively. The command string is spawned with spawnPipe (as long as the name chosen hasn't been used already) and the Handle returned is saved in Xmonad's state associated with the name String.
Spawn the application once and apply the manage hook. Subsequent attempts to spawn this application will be ignored.
Lanch the given application n times on the specified workspace. Subsequent attempts to spawn this application will be ignored.
Like spawnOnce but launches the application on the given workspace.
The first time spawnOnce is executed on a particular command, that command is executed. Subsequent invocations for a command do nothing.
Provides a way to modify a window spawned by a command(e.g shift it to the workspace it was launched on) 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.