Мне нужно программно получить поворот экрана. Я использую Qt и расширение X XRandr. Я пытаюсь сделать следующее:
Display *dpy;
Window root;
XRRScreenConfiguration *conf;
Rotation rotation;
int screen;
dpy = QX11Info::display();
root = QX11Info::appRootWindow();
conf = XRRGetScreenInfo(dpy, root);
screen = DefaultScreen(dpy);
XRRRotations(dpy, screen, &rotation);
qDebug() << "CURRENT ROTATION:" << rotation;
Проблема в том, что независимо от текущей ориентации экрана, установленной в приложении «Настройки экрана» из Ubuntu, выход CURRENT ROTATION всегда равен 1.
Кто-нибудь знает почему?
Спасибо
Я наконец нашел ответ на этот вопрос. Я использую Qt. Некоторые из звонков из Qt, чтобы получить окно и экран X11.
Display *dpy;
Window root = this->winId();
dpy = QX11Info::display();
XRRScreenResources *scrres = XRRGetScreenResources(dpy, root);
XRRCrtcInfo *crtcInfo = XRRGetCrtcInfo(dpy, scrres, *scrres->crtcs);
crtcInfo->rotation can be 1, 2, 4, or 8
Надеюсь, это поможет кому-то в будущем.