Por uma série de acidentes enquanto experimentava window managers hoje,
Você vai precisar de:
Com isso, podemos escrever um pequeno script para apresentar um menu e selecionar a janela escolhida.
#!/bin/bash option="$( wmctrl -xl | # \1 \2 \3 \4 \5 # win-id desktop class hostname title sed -r 's|([^ ]* +)([^ ]* +)([^ ]* +)([^ ]* +)(.*)|\1 \3 \5|' | sort -k 3 | dmenu -i -l 10 )" || exit 1 wmctrl -ia "${option%% *}"
wmctrl -l lista as janelas existentes. A opção -x inclui a classe da janela na listagem. O sed não é estritamente necessário, mas deixa a lista menos poluída removendo campos desnecessários; você pode alterar essa linha para escolher os campos. O ID da janela é meio irrelevante para o usuário, mas precisamos dele para poder passá-lo ao wmctrl para ativar a janela.
sort -k 3 ordena o menu pelo título da janela. Você pode comentar essa linha fora se não quiser ordenar a lista, ou mudar os parâmetros para obter uma ordem diferente (e.g., sort -k 2 para ordenar pela classe).
Quanto ao dmenu, a opção -i faz com que ele ignore maiúsculas vs. minúsculas ao filtrar as opções pelo texto digitado pelo usuário. -l 10 indica que queremos uma opção por linha, e que no máximo 10 linhas devem ser mostradas de cada vez. Por padrão, o dmenu usa apenas uma linha e mostra as opções lado a lado. (Uma coisa meio ruim do dmenu é que ele não dá nenhuma indicação de que é possível scrollar o menu; ele só mostra as primeiras N opções e as demais ficam escondidas.)
wmctrl -a JANELA ativa a primeira janela cujo título contenha a string specificada. Como queremos que a seleção seja inambígua, utilizamos a opção -i, que permite especificar o ID da janela ao invés do título. Para extrair o ID da seleção, removemos tudo depois do primeiro espaço na string ("${option%% *}").
Salve o script no local de sua preferência, dê permissão de execução a ele (chmod +x nome-do-script), e associe-o a alguma tecla de atalho no seu ambiente gráfico favorito. Por exemplo, no IceWM isso pode ser feito adicionando no ~/.icewm/keys uma linha como:
key "Super+Tab" /caminho/do/script
substituindo Super+Tab pelo atalho de sua preferência (Super é a tecla "janelinha").
Para mais informações e possibilidades, consulte a manpage dos programas.
Disponha. :)
Copyright © 2010-2023 Vítor De Araújo
O conteúdo deste blog, a menos que de outra forma especificado, pode ser utilizado segundo os termos da licença Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International.
Powered by Blognir.
Deivid P Mendonça, 2015-11-08 23:33:57 -0200 #
Passando apenas para agradecer. Já tinha tentado algo parecido com o wmctrl e zenity, entranto, achei melhor sua abordagem. Também foi bom conhecer o "dmenu".