On Mon, Dec 19, 2011 at 12:41 PM, Norbert Zeh <
nzeh@cs.dal.ca> 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.
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.comwandering unix systems administrator (available) (412) 475-9364 vm/sms