nuclear@0: #include nuclear@0: #include nuclear@0: #include nuclear@0: #include nuclear@0: #include nuclear@0: nuclear@0: #ifdef USE_XRANDR nuclear@0: #include nuclear@0: nuclear@0: char *randr_err_msg[] = { nuclear@0: "RRSetConfigSuccess", nuclear@0: "RRSetConfigInvalidConfigTime", nuclear@0: "RRSetConfigInvalidTime", nuclear@0: "RRSetConfigFailed" nuclear@0: }; nuclear@0: #endif nuclear@0: nuclear@0: #ifdef USE_XF86VM nuclear@0: #include nuclear@0: #endif nuclear@0: nuclear@0: int get_size(Display *dpy, int scr, int *xsz, int *ysz); nuclear@0: int set_size(Display *dpy, int scr, int xsz, int ysz); nuclear@0: nuclear@0: const char *usage = "usage: %s [options]\n" nuclear@0: "options:\n" nuclear@0: " -s x set specified screen size\n" nuclear@0: " -f force size change without current size detection\n" nuclear@0: " -h this usage information\n"; nuclear@0: nuclear@0: int use_xrandr = 1; nuclear@0: int use_xf86vm = 1; nuclear@0: nuclear@0: int main(int argc, char **argv) nuclear@0: { nuclear@0: int i, cur_xres, cur_yres, xres = -1, yres = -1; nuclear@0: int force = 0; nuclear@0: Display *dpy; nuclear@0: int scr; nuclear@0: nuclear@0: for(i=1; ihdisplay == xsz && modes[i]->vdisplay == ysz) { nuclear@0: break; nuclear@0: } nuclear@0: } nuclear@0: if(i == mode_count) { nuclear@0: fprintf(stderr, "requested size unsuppored by the X server configuration\n"); nuclear@0: XFree(modes); nuclear@0: return -1; nuclear@0: } nuclear@0: nuclear@0: if(!XF86VidModeSwitchToMode(dpy, scr, modes[i])) { nuclear@0: fprintf(stderr, "failed to set requested size with xf86vm\n"); nuclear@0: XFree(modes); nuclear@0: return -1; nuclear@0: } nuclear@0: XF86VidModeSetViewPort(dpy, scr, 0, 0); nuclear@0: nuclear@0: XFree(modes); nuclear@0: return 0; nuclear@0: } nuclear@0: #endif nuclear@0: nuclear@0: fprintf(stderr, "not possible to change display size\n"); nuclear@0: return -1; nuclear@0: }