Окна без границ в Linux - PullRequest
       40

Окна без границ в Linux

5 голосов
/ 15 декабря 2009

Является ли это стандартным способом сделать конкретное окно без границ в Linux? Я полагаю, что граница окна нарисована вашим оконным менеджером, так что, возможно, мне просто нужно использовать определенный оконный менеджер (который будет найден, мне просто нужно знать какой) ... Я надеюсь, что все оконные менеджеры могут следовать некоторому стандарту, который позволяет мне делать это программно ...

Ответы [ 3 ]

19 голосов
/ 15 декабря 2009

Использование 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 предпочтительны, но, насколько я знаю, все современные оконные менеджеры все еще поддерживают это.

1 голос
/ 12 июня 2013

После грустного прощания с Compiz "правила окна" я нашел devilspie

Полностью взломанная программа для уродов и чудаков, которым нужен точный контроль над тем, что делают окна при их появлении. Если вы хотите, чтобы все окна XChat были на рабочем столе 3, в левом нижнем углу с прозрачностью 40%, вы можете сделать это.

Я использую его, чтобы на моем рабочем столе был липкий терминал с пропуском задач и без полей.

Существует также devilspie 2 , который использует Lua вместо s-выражений и утверждает, что его лучше поддерживать.

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

1 голос
/ 15 декабря 2009

С GTK + вы можете звонить gtk_window_set_decorated().

...