====== X11 ====== * [[https://www.x.org/wiki/|x.org]] * 教程:[[https://tronche.com/gui/x/]] * [[https://silaoa.github.io/2020/2020-04-25-Cygwin%E7%B3%BB%E5%88%97%EF%BC%88%E5%8D%81%E4%BA%8C%EF%BC%89%EF%BC%9A%E4%BA%86%E8%A7%A3X.html|了解X系统]] ===== Tips ===== * X11没有topmost, 参考[[https://tronche.com/gui/x/xlib/window/configure.html#XWindowChanges|XWindowChanges]] * 列举窗口示例, 编译指令 ''g++ -lX11 list_win.cpp -o list_win'' #include #include int main() { auto display = XOpenDisplay(nullptr); auto root_window = DefaultRootWindow(display); Window root_return, parent_return; Window * child_list = nullptr; unsigned int child_num = 0; XQueryTree(display, root_window, &root_return, &parent_return, &child_list, &child_num); for(unsigned int i = 0; i < child_num; ++i) { auto window = child_list[i]; XWindowAttributes attrs; char* title = nullptr; XGetWindowAttributes(display, window, &attrs); XFetchName(display, window, &title); std::cout << "#" << i <<":" << "(" << attrs.width << ", " << attrs.height << ")"; if(title){ std::cout << title; } std::cout << std::endl; XFree(title); } XFree(child_list); XCloseDisplay(display); return 0; } * https://linux.die.net/man/3/xquerytree