Como posso obter a resolução do monitor sem o serviço lightdm?

0

Em um aplicativo de desktop, preciso detectar a resolução do monitor de tempos em tempos. O código é como:

Display *d;
Screen *s;
d = XOpenDisplay(":0");
if (NULL == d) {
    g_print("XOpenDisplay failed\n");
    return;
}
s = DefaultScreenOfDisplay(d);
if (NULL == s) {
    g_print("DefaultScreenOfDisplay failed\n");
    return;
}

g_print("Display size: %dx%d\n", s->width, s->height);

Mas outro requisito precisa que eu desative o serviço lightdm e o servidor X também, do qual esse trecho de código depende.

Existe outro método para detectar resolução sem suporte a Xlib? Obrigado

    
por user297907 02.07.2018 / 12:58

2 respostas

0

Encontrar a resolução do monitor (nativo / máximo) é possível mesmo sem um servidor X, consultando as informações do EDID diretamente. Consulte Como obter o EDID para um único monitor? . A experiência pode variar dependendo da placa gráfica e dos drivers.

    
por 02.07.2018 / 13:15
0

Você pode tentar o comando xrandr

    
por 02.07.2018 / 13:21