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
> 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.
More information about the community