lightdmサービスなしでモニターの解像度を取得するには?

lightdmサービスなしでモニターの解像度を取得するには?

デスクトップアプリケーションでは、時々モニターの解像度を検出する必要があります。コードは以下のように表示されます。

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);

ただし、もう1つの要件は、このコードが依存するlightdmサービスとXサーバーも終了する必要があることです。

Xlibサポートなしで解像度を検出する他の方法はありますか?ありがとう

ベストアンサー1

Xサーバーがなくても、EDID情報を直接照会して(デフォルト/最大)モニター解像度を見つけることができます。バラよりシングルモニターのEDIDを取得するには?。経験はグラフィックカードとドライバーによって異なります。

おすすめ記事