他们是一个标准的方式来使一个特定的窗口无边界在Linux上? 我相信窗口边框是由窗口pipe理器绘制的,所以可能只是需要使用特定的窗口pipe理器(这样会发现,我只需要知道哪一个)…我希望是所有的窗口pipe理者可能会遵循一些标准,使我可以通过编程来实现这一点…
使用Xlib和旧的_MOTIF_WM_HINTS
:
struct MwmHints { unsigned long flags; unsigned long functions; unsigned long decorations; long input_mode; unsigned long status; }; enum { MWM_HINTS_FUNCTIONS = (1L << 0), MWM_HINTS_DECORATIONS = (1L << 1), MWM_FUNC_ALL = (1L << 0), MWM_FUNC_RESIZE = (1L << 1), MWM_FUNC_MOVE = (1L << 2), MWM_FUNC_MINIMIZE = (1L << 3), MWM_FUNC_MAXIMIZE = (1L << 4), MWM_FUNC_CLOSE = (1L << 5) }; Atom mwmHintsProperty = XInternAtom(display, "_MOTIF_WM_HINTS", 0); struct MwmHints hints; hints.flags = MWM_HINTS_DECORATIONS; hints.decorations = 0; XChangeProperty(display, window, mwmHintsProperty, mwmHintsProperty, 32, PropModeReplace, (unsigned char *)&hints, 5);
这些天NetWM / EWMH提示是首选,但据我所知,所有的现代窗口经理仍然支持这一点。
使用GTK +,你可以调用gtk_window_set_decorated()
。
在向Compiz“窗口规则” 哀悼后,我发现了devilspie
一个完全疯狂的计划,怪胎和怪人谁想要精确控制什么时候出现窗户。 如果你想要所有的XChat窗口在桌面上3,在左下角,透明度为40%,你可以做到这一点。
我使用它在我的桌面上有一个无边界,粘性,任务跳过的终端。
还有一个devilspie 2使用Lua而不是s表达式和声称更好地维护。
https://live.gnome.org/DevilsPie http://www.burtonini.com/blog/computers/devilspie