سؤال

هي طريقة قياسية لجعل نافذة معينة بلا حدود على 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().

بعد وداع حزين إلى "قواعد النافذة" وجدتdevilspie.

برنامج Crack-Fressden Concredden for Freaks و Weirdos الذي يريد سيطرة دقيقة على ما يفعله Windows عند ظهوره. إذا كنت تريد أن تكون جميع Windows Xchat على سطح المكتب 3، في أسفل اليسار، عند شفافية 40٪، يمكنك القيام بذلك.

يمكنني استخدامها للحصول على محطة واحدة بلا حدود ومثيرة تخطي المهام على سطح المكتب الخاص بي.

هناك أيضا Devilspie 2. الذي يستخدم LUA بدلا من S-Repressions والمطالبات التي يتم الاحتفاظ بها بشكل أفضل.

https://live.gnome.org/devilspie. http://www.burtonini.com/blog/computers/devilspie.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top