我想在X11中创建一个不可调整大小的窗口,所以我必须将override_redirect窗口属性设置为True。但是,我仍然希望该窗口与所有其他窗口交互并显示在侧槽中(显示当前打开的窗口)。我希望我的窗口与其他窗口重叠并通过
Alt+Tab
进行切换。
此类应用程序的示例是Telegram Desktop。它没有默认的窗口装饰,但看起来仍然像一个功能齐全的 X11 应用程序。
来自这个答案https://stackoverflow.com/a/5558000/23803348
您可以使用
执行此操作,它指定 WM 应允许的大小调整。如果将最小值和最大值设置为与宽度相同,则普通 WM 将不允许调整大小。XSetWMNormalHints()
请注意,这被称为提示是有原因的; WM 可以随意忽略您,大多数平铺 WM 都会。
这是一个例子:
XSizeHints *size_hints = XAllocSizeHints();
size_hints->flags = PMinSize | PMaxSize;
size_hints->min_width = size_hints->max_width = 800;
size_hints->min_height = size_hints->max_height = 600;
XSetWMNormalHints(display, window, size_hints);
XFree(size_hints);