Um WM pode subir ou baixar janelas?

2

A partir do gerenciamento de janelas no Linux (pelo menos no Ubuntu usando o Gnome com o Compiz), as janelas são organizadas em uma pilha. Mudar para uma janela diferente da que está em foco trará a primeira para o topo da pilha, logo acima da última.

Então é teoricamente possível dizer ao WM para levantar ou abaixar janelas naquela pilha e levantá-las para o mais alto ou abaixá-las para a parte inferior?

Se sim, o Python XLib seria capaz de fazer isso? Existe algum WM que já tenha esse recurso?

    
por Benjamin 27.08.2011 / 18:02

2 respostas

2

Sim, as janelas estão dispostas em uma pilha e podem ser levantadas e abaixadas ou levadas para a parte superior ou inferior. Em alguns gerenciadores de janelas, eles podem até ficar no topo ou "grudar" em todos os painéis (também conhecidos como espaços de trabalho).

Veja o send_event() method e o sistema X Window relevante documentação para mais informações, mas sim, você deve ser capaz de fazer isso. Você pode querer olhar para a saída de xev (1) para obter mais ajuda sobre o que precisa ser alterado (a partir do servidor X em execução POV).

Se esta é a sua própria janela (por exemplo, no Tkinter), então olhe para as operações do WM. Já existem métodos lower() e raise() como parte da classe TopLevel do Tkinter. Verifique a documentação da sua biblioteca para detalhes.

    
por 27.08.2011 / 18:31
1

Sim, um gerenciador de janelas pode levantar e abaixar janelas. Na verdade, o gerenciador de janelas é normalmente responsável por abaixar, elevar, mover, redimensionar, focalizar e geralmente gerenciar janelas.

As funções da biblioteca X para baixar e abrir uma janela são XRaiseWindow e XLowerWindow . Existem mais funções para atuar na ordem de empilhamento . Eles não parecem estar disponíveis no Python Xlib, mas você pode alcançá-los facilmente com a ajuda de ctypes.

    
por 27.08.2011 / 19:57