Anexando uma janela a outra

Eu queria anexar uma janela do Pamac-Installer a uma janela do BigBashView, algo similar ao que pode ser feito com o Zenity usando a opção attach.

Só que o Pamac-Installer e a maioria dos programas não tem essa opção.

Dessa forma passei várias horas procurando como fazer isso com comandos no terminal, não encontrei uma solução completa, mas o xsetprop que chegava muito perto de solucionar, então fiz uma pequena alteração no código, que está publicada aqui: GitHub - biglinux/xsetprop: Program for setting X window properties, like xprop, but for 'set' only(not 'get') and allow setting list of atoms ( or patch for xprop ).

E agora é só passar o id da janela que irá ser anexada e o id da janela que vai receber o anexo, veja o exemplo:

xsetprop -id=0x00400006 --atom WM_TRANSIENT_FOR --value 0x05600011 -f 32x

Isso faz a janela de ID 0x00400006 ser anexada à janela de ID 0x00400006

Você pode ver o ID de todas as janelas com o comando:

wmctrl -p -l

Para remover a janela anexada da barra de tarefas do sistema, pode utilizar esse comando:

wmctrl -i -r 0x00400006 -b add,skip_pager,skip_taskbar

E para tornar um modal, que torna um pouco mais bonita a apresentação:

wmctrl -i -r 0x00400006 -b toggle,modal

E para ficar ainda mais simples, pode utilizar um script em shell:

#!/bin/bash
W1="0x00400006"
W2="0x05600011"

xsetprop -id=$W1 --atom WM_TRANSIENT_FOR --value $W2 -f 32x wmctrl -i -r $W1 -b add,skip_pager,skip_taskbar wmctrl -i -r $W1 -b toggle,modal

Assim basta trocar o ID da variável W1 que representa a janela a ser anexada, e o ID da variável W2 que é a janela a receber o anexo.

3 Curtidas

:partying_face: :clap:

Nem imagino como chegou nisso…
Não é atoa que esse BRUNO é BIG…
É só a mente estar saudável que as inovações inéditas são produzidas…
Parabéns grande amigo!

2 Curtidas

O que mais posso acrescentar? Só obrigado né?

Parabéns Bruno!

T+