Ideal screen rotation

Rui Miguel Silva Seabra rms at 1407.org
Sat Nov 7 11:20:37 CET 2009


On Fri, Nov 06, 2009 at 08:24:13PM +0000, Neil Jerram wrote:
> 2009/11/6 Rui Miguel Silva Seabra <rms at 1407.org>:
> > On Fri, Nov 06, 2009 at 04:40:04PM +0100, Helge Hafting wrote:
> >>
> >> Well, you cannot expect every app to have such preferences, this device
> >> runs generic linux apps that aren't made specially for the freerunner.
> >> Now, of course the app loader can do this, similiar to how we already
> >> request the cpu/backlight when launching some apps.
> >>
> >> But there is a problem. The user may switch between several apps with
> >> different rotation needs. (xmahjongg needs landscape, tetris needs
> >> portrait, ...)  How will omnewrotate be notified about this?
> >
> > The proper way is to define a set of DBUS signals.
> 
> Thanks to everyone for your replies on this topic.
> 
> I agree with Helge, in that I don't think DBUS is a good solution,
> because I really want a solution that works for existing apps.

You have no solution for existing apps other than causing a full
stop on rotation once you get the desired rotation (which is what I
do for apps that work better on landscape).

> I suppose for existing apps there could be a DBUS proxy that somehow
> works out the best orientation and then sends a DBUS signal on the
> app's behalf.  But that seems complicated.

Not smart either, because you'd have a buttload of work for little gain,
and there will always be one more app which isn't supported yet, etc...

> Also I'm not sure why DBUS helps at all.  Once a program somewhere has
> worked out the best orientation, why not just call xrandr directly?

DBUS helps a lot because you can define a standard set of signals:
  1. screen rotation apps could listen for specific screen rotation signals
  2. apps which have specific needs can broadcast said needs to DBUS

This means minimal aditional work for everyone.

> Another thought that occurred to me is that if this was a window
> manager responsibility, perhaps the window manager could infer
> preferred orientation simply from the requested window size?  (i.e.
> requesting width > height implies a preference for landscape).

The only way this could be the window manager's job, was if the window
manager had auto-rotation routings. AFAICT, E doesn't yet.

Of course "rotator" apps only come up because people feel the need
and writing a simple daemon is simpler than patching a quite evolved
window manager.

> That should often work for apps that were designed for the desktop.  I
> would guess that apps written for the FR might not request specific
> sizes, because they'd know that they will always be fullscreen anyway
> - so for those apps some explicit configuration would be needed
> somewhere (prefer-portrait, prefer-landscape, or auto-rotate).

So "rotators" would need to parse all the configurations? I still think
DBUS is the way to do it well, but I'm open for proof otherwise.

Rui



More information about the community mailing list