[openbox] Two x displays (not xinerama) support

Andrew Gallant jamslam at gmail.com
Mon Aug 8 15:01:43 EDT 2011


On Mon, Aug 8, 2011 at 7:09 AM, Dave Foster <daf at minuslab.net> wrote:
>
> On Jul 18, 2011, at 3:34 AM, Mikael Magnusson wrote:
>
>> On 18 July 2011 01:27, Freddie <freddie_signup at gmx.co.uk> wrote:
>>> On Sun, 17 Jul 2011, Mikael Magnusson wrote:
>>>>
>>>> It's technically possible, but it doesn't mesh well with the wm-spec
>>>> which openbox follows. Ie, any pagers and panels would be terminally
>>>> confused about those windows, there is only a single 'which desktop is
>>>> this window on' property per window, and one global 'which desktop is
>>>> the user on' property on the root window. For this specific case,
>>>> maybe you could simply mark all windows on monitor two as 'All
>>>> Desktops'? Unless you also want to switch virtual desktop on monitor
>>>> 2, but you didn't say that :).
>>>
>>> This is actually the conclusion I've come to. The next problem is finding
>>> how to mark windows on monitor 2 as omnipresent, as so far I've only come
>>> across "ToggleOmnipresent", which isn't quite what I want. Am I missing an
>>> action/property?
>>
>> You're not, I was just sure there was one, but there isn't :). You
>> could do some silly cludge in the master branch with the If action, to
>> only call the toggle action if it isn't currently omnipresent, but it
>> might be better to simply let you say "All" to the SendToDesktop
>> action. However, if you're already using an applications rule to send
>> a window to monitor 2, just make it omnipresent in that rule
>> obviously. Is it a big problem that you press the key twice and can't
>> tell if you already made it omnipresent or not?
>
> Sorry to necromance here, but just wanted to add that once I got Dana interested in such a daemon-like application, and myself started coding one, but did not get very far as X programming scares me.  Maybe Dana can pick it back up again :)
>
> The way I'd envision it working: post-move hook, it checks which monitor it is on, and applies a rule (make omipresent).  Would obviously be beneficial to be generic.

After failing to build my own window manager (using Python), I am
currently modifying Openbox to support the original idea in this
thread: changing desktops on a per monitor basis. I've been wanting
this feature for so long, and since I added a third monitor to my
setup, I've found it to be nearly essential. It's going to be a bit
more than a post-move hook :-)

As Mikael mentioned, this violates the EWMH spec and is essentially
incompatible with all existing pagers. (I need to make one of those
too.) I'm adding a new property called _NET_VISIBLE_DESKTOPS that
should provide all the information an outside application (like a
pager) needs. (Maybe I'll submit it to the EWMH people, but they
haven't updated the spec in a long time...) The _NET_CURRENT_DESKTOP
property is still relevant, I think.

Ideally, this should only change behavior on multi-head setups using
Xinerama. Hopefully I'll make a public branch of Openbox available
soon; I plan on keeping it up to date with Dana's master branch.

The only window managers I know of that exhibit this feature are
Xmonad and i3; except the latter ties each desktop to a specific
monitor that can't be used on other monitors. That is, only Xmonad
gets this right in my opinion.

>
>
>>
>>> As an aside, what do other xinerama users do about setting background
>>> images? I wanted to set two images, one for each monitor. The only tool I've
>>> found to allow placing an image at a coordinate is hokum, which actually
>>> works quite well.
>>
>> http://projects.l3ib.org/nitrogen/
>
> Cheers for the plug :)

Nitrogen is awesome! Thanks :-)

- Andrew


More information about the openbox mailing list