
On Tue, Dec 20, 2011 at 14:47, adam vogt
On Mon, Dec 19, 2011 at 12:41 PM, Norbert Zeh
wrote: - Display a certain type of window (say emacs) on a certain screen (screen, not workspace)
You can't really address screens that way; a screen holds a workspace, and workspaces are addressable. You can determine the workspace currently on a screen, though, and use that. Alternately you could use IndependentScreens which effectively gives each screen its own set of workspaces, which change in concert across all screens.
- Toggle manage hooks (e.g., using a key binding). As an example, I normally want no special handling of emacs windows, but for certain tasks I want every emacs window to pop up on my left screen. Since I do not want to reconfigure
doShiftScreen :: ScreenId -> ManageHook doShiftScreen screenId = flip whenJust doShift =<< liftX (screenWorkspace screenId) -- fairly sure this typechecks
And then use it exactly as you would use doShift.
You *can* have conditional ManageHooks, using ExtensibleState. I suspect it's easier to use something in the same vein as FloatNext, though (but that would mean remembering to activate it before creating each window). I am tempted to say this is the wrong solution, though. Looking at it from a higher level, I think what you really want is IndependentScreens + TopicSpaces; you would then be able to arrange that, in a given topicspace, emacs always opens on a particular screen. (I don't know how well those two compose, though.) -- brandon s allbery allbery.b@gmail.com wandering unix systems administrator (available) (412) 475-9364 vm/sms