Pergunta

É a sua maneira padrão para fazer uma janela sem bordas em particular no Linux? Acredito que a borda da janela é desenhada pelo seu gerenciador de janelas, por isso pode ser que eu só precisa usar um gerenciador de janelas particular (que seria achado, eu só preciso saber qual) ... Minha esperança é que todos os gerenciadores de janelas pode seguir algum padrão que me permite fazer isso programaticamente ...

Foi útil?

Solução

Usando Xlib e _MOTIF_WM_HINTS idade:

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);

Estes dias NetWM / EWMH dicas são os preferidos, mas tanto quanto eu Conhecemos todos gerenciadores de janelas modernas ainda suporta isto.

Outras dicas

Com GTK + você pode chamar gtk_window_set_decorated() .

Depois de uma despedida triste "regras janela" Compiz Achei devilspie

Um totalmente rachar-montado programa para freaks e esquisitos que querem um controle preciso sobre o que o Windows faz quando eles aparecem. Se você quiser todas as janelas XChat estar no ambiente de trabalho 3, na parte inferior esquerda, a transparência de 40%, você pode fazê-lo.

Eu usá-lo para ter um sem fronteiras, pegajoso, tarefa ignorada terminal no meu desktop.

Há também um devilspie 2 que usa Lua em vez de s-expressões e afirma ser melhor mantido .

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top