1
윈도우를 생성하는 간단한 xlib 프로그램이 있습니다. XCreateSimpleWindow 함수에 0, 0을 전달했기 때문에 화면의 왼쪽 위 모서리에 창을 표시해야한다고 생각하지만 위쪽 중앙에 있습니다. 왜 ?Xlib : 윈도우가 틀린 위치에 생성되었습니다.
#include <X11/Xlib.h>
#include <stdio.h>
#include <stdlib.h>
int
main(int argc, char* argv[])
{
Display* display;
int screen_num;
Window win;
unsigned int display_width,display_height;
unsigned int width, height;
char *display_name = getenv("DISPLAY");
display = XOpenDisplay(display_name);
screen_num = DefaultScreen(display);
display_width = DisplayWidth(display, screen_num);
display_height = DisplayHeight(display, screen_num);
width = (display_width/3);
height = (display_height/3);
win = XCreateSimpleWindow(display, RootWindow(display, screen_num), 0, 0, width, height, 1, BlackPixel(display, screen_num), WhitePixel(display, screen_num));
XMapWindow(display, win);
XSync(display, False);
while(1) { }
}
윈도우 매니저가없는 디스플레이에서 실행하려면 어떻게해야합니까? VNC를 사용하여 서버에 연결하고 있습니다. – Ashot
VNC 서버를 시작한 다음 창 관리자를 죽이는 것이 가장 쉬운 방법 일 것입니다. vnc 서버의 매개 변수를 올바르게 설정하여 창 관리자를 시작하지 않는 특별 시작 스크립트를 사용하는 방법은 아마도 수행해야 할 작업 일 것입니다. 예를 들어 vncserver -name에 특수 이름을 전달하고 xstartup의 VNCDESKTOP에서이를 확인합니다. – AProgrammer
창 관리자를 사용하지 않도록 설정했는데 제대로 작동하지만 창 관리자가 없어도 아무 것도 할 수 없습니다. 창을 이동하거나 크기를 조정할 수 없습니다. 그것을 사용하지 않고 다른 방법이 있습니까? – Ashot