Linux 上のボーダーレス ウィンドウ
-
19-09-2019 - |
質問
Linux 上で特定のウィンドウをボーダーレスにする標準的な方法ですか?ウィンドウの境界線はウィンドウ マネージャーによって描画されると思います。そのため、特定のウィンドウ マネージャーを使用する必要があるだけかもしれません (つまり、検索する必要があります。どれであるかを知る必要があるだけです)...私の希望は、すべてのウィンドウ マネージャーが、これをプログラムで実行できるようにする何らかの標準に従うことです。
解決
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 との悲しい別れの後に見つけた「ウィンドウ ルール」デビルスパイ
ウィンドウが表示されたときの動作を正確に制御したいフリークや変人向けの完全に欠陥だらけのプログラムです。すべての XChat ウィンドウを左下のデスクトップ 3 に 40% の透明度で配置したい場合は、それを実行できます。
私はこれを使用して、デスクトップ上にボーダーレスで粘着性のある、タスクをスキップしたターミナルを配置します。
もあります デビルスピー2 これは s 式の代わりに Lua を使用しており、保守性が向上していると主張しています。
https://live.gnome.org/DevilsPie http://www.burtonini.com/blog/computers/devilspie
所属していません StackOverflow