यहाँ xrandr के लिए एक उदाहरण कॉल है:संबंधित xrandr, सी प्रोग्रामिंग
$ xrandr --output LVDS --mode 1680x1050 --pos 0x0 --rotate normal --output S-video --off --output DVI-0 --mode 1024x768 --pos 1680x104 --rotate normal
एक प्रणाली है जहाँ कि कॉल सफलता है के बारे में सोचो, विभिन्न संकल्पों के साथ काम कर रहे दो स्क्रीन (एलवीडीएस और डीवीआई -0) हैं। DVI-0 एक बीच में दाईं ओर स्थित है।
मैं सी प्रोग्राम में इन सभी सूचनाओं को कैसे प्राप्त कर सकता हूं? मैंने xrandr स्रोत कोड की जांच की, लेकिन मुझे इसे पढ़ने में मुश्किल हुई और --pos मूल्य से पूछताछ करने का कोई स्पष्ट तरीका नहीं है (संपादित करें: यह सादे दृष्टि में छिपा हुआ है, ernestopheles 'उत्तर के लिए धन्यवाद)।
मुझे पता है कि मैं XGetWindowProperty के साथ _NET_WORKAREA से पूछ सकता हूं, लेकिन जहां तक मैंने देखा कि यह स्क्रीन की स्थिति नहीं बताता है, केवल आदर्श आयताकार का आकार जिसमें उनमें सभी शामिल हैं।
xrandr कोड के किसी अन्य अध्ययन के बाद, यह कोड समाधान के आगे एक कदम लगता है। फिर भी मुझे विश्वास नहीं है, xrandr.c लाइन 2 9 40 के आसपास मानता है कि crtc_info अनुपलब्ध हो सकता है। मैं अभी भी संकल्प और स्थिति पाने के लिए दूसरी तरफ याद करता हूं।
#include <stdio.h> #include <X11/extensions/Xrandr.h> int main() { Display *disp; XRRScreenResources *screen; XRROutputInfo *info; XRRCrtcInfo *crtc_info; int iscres; int icrtc; disp = XOpenDisplay(0); screen = XRRGetScreenResources (disp, DefaultRootWindow(disp)); for (iscres = screen->noutput; iscres > 0;) { --iscres; info = XRRGetOutputInfo (disp, screen, screen->outputs[iscres]); if (info->connection == RR_Connected) { for (icrtc = info->ncrtc; icrtc > 0;) { --icrtc; crtc_info = XRRGetCrtcInfo (disp, screen, screen->crtcs[icrtc]); fprintf(stderr, "==> %dx%d+%dx%d\n", crtc_info->x, crtc_info->y, crtc_info->width, crtc_info->height); XRRFreeCrtcInfo(crtc_info); } } XRRFreeOutputInfo (info); } XRRFreeScreenResources(screen); return 0; }
हाय मैं सोच रहा था कि अगर आप अपने कोड आज के बारे में आश्वस्त थे लिंक करने के लिए -lX11 -lXrandr साथ संकलन? या अगर आपको बेहतर तरीका मिल गया है? – yatg
मैंने xrandr उपलब्ध नहीं होने पर इस और xinerma के एक संयोजन का उपयोग करने के लिए सोचा था: http://stackoverflow.com/a/836376/5062337 – yatg