A ideia a seguir demonstra uma maneira conveniente em que o usuário pode mover uma janela marcada de qualquer espaço de trabalho para o ativo em um ambiente XFCE.
MOVABLE_WINDOW_IDX , onde MOVABLE_WINDOW_IDX pode ser qualquer número inteiro que varia de 0 a 9 .Super+Shift+Key_MOVABLE_WINDOW_IDX para marcar essa janela ativa e atribuir seu ID de janela móvel correspondente como MOVABLE_WINDOW_IDX .Super+Key_MOVABLE_WINDOW_IDX . Key_MOVABLE_WINDOW_IDX depende puramente da preferência de teclado do usuário. Uma maneira de implementar esse conceito é através das seguintes instruções. Vale a pena notar que esse método depende dos pacotes APT xdotool e wmctrl .
.window_summoner .get_window_id.py e conterá o seguinte conteúdo import subprocess
import sys
import re
import os
rm_newline = lambda str_ : re . sub ( ' n ' , '' , str_ )
current_dpath , _ = os . path . split ( sys . argv [ 0 ]); del _
MOVABLE_WINDOW_IDX = int ( sys . argv [ 1 ])
with open ( current_dpath + '/' + 'movable_window_id_list.txt' , 'r' ) as file :
MOVABLE_WINDOWS_ID = rm_newline ( file . read ()). split ( ' ' )
MOVABLE_WINDOWS_ID [ MOVABLE_WINDOW_IDX ] = rm_newline ( subprocess . check_output ([ 'xdotool' , 'getactivewindow' ]). decode ( sys . stdout . encoding ))
with open ( current_dpath + '/' + 'movable_window_id_list.txt' , 'w' ) as file :
MOVABLE_WINDOWS_ID = file . write ( ' ' . join ( MOVABLE_WINDOWS_ID )) O outro arquivo será summon_window.py com seu conteúdo sendo
import subprocess
import sys
import re
import os
rm_newline = lambda str_ : re . sub ( ' n ' , '' , str_ )
current_dpath , _ = os . path . split ( sys . argv [ 0 ]); del _
MOVABLE_WINDOW_IDX = int ( sys . argv [ 1 ])
with open ( current_dpath + '/' + 'movable_window_id_list.txt' , 'r' ) as file :
MOVABLE_WINDOWS_ID = rm_newline ( file . read ()). split ( ' ' )
os . system ( """wmctrl -ir %s -t $(wmctrl -d | grep "*" | cut -d' ' -f1)""" % ( MOVABLE_WINDOWS_ID [ MOVABLE_WINDOW_IDX ]))
os . system ( 'xdotool windowactivate %s' % ( MOVABLE_WINDOWS_ID [ MOVABLE_WINDOW_IDX ]))Para quebrar
wmctrl -ir $MOVABLE_WINDOW_ID -t $(wmctrl -d | grep "*" | cut -d' ' -f1) :
wmctrl : Um utilitário de linha de comando que pode interagir e manipular o X Window System Windows.
-ir $MOVABLE_WINDOW_ID : o sinalizador -ir diz ao wmctrl para "interagir com a janela com o ID numérico fornecido". $MOVABLE_WINDOW_ID é uma variável Bash que contém o ID numérico da janela que queremos mover.
-t $(wmctrl -d | grep "*" | cut -d' ' -f1) : o sinalizador -t diz wmctrl para "mover a janela para a área de trabalho com o índice fornecido". $(wmctrl -d | grep "*" | cut -d' ' -f1) é uma substituição de comando que obtém o índice da área de trabalho/área de trabalho atualmente ativa. Aqui está o que está acontecendo nessa substituição de comando:
wmctrl -d : lista todos os desktops/workspaces disponíveis.grep "*" : filtros para o espaço de trabalho/trabalho atualmente ativo, que é indicado por um asterisco ( * ) na saída de wmctrl -d .cut -d' ' -f1 : extrai o primeiro campo (que é o índice da área de trabalho/espaço de trabalho) da saída do grep "*" . Os dois arquivos restantes são movable_window_id_list.txt e initial_movable_window_id_list.txt . Ambos devem conter
0 0 0 0 0 0 0 0 0 0
onde o último arquivo deve ser somente leitura, servindo apenas como um protótipo de valor inicial do outro arquivo txt .
Faça o seguinte para cada teclado inteiro MOVABLE_WINDOW_IDX Você deseja estar ativo. Atalho: Super+Shift+Key_MOVABLE_WINDOW_IDX → comando: python3 /home/$USER/.window_summoner/get_window_id.py MOVABLE_WINDOW_IDX
Atalho: Super+Key_MOVABLE_WINDOW_IDX → comando: python3 ~/.window_summoner/summon_window.sh MOVABLE_WINDOW_IDX
Onde obviamente você substitui Key_MOVABLE_WINDOW_IDX pela chave de escolha.
Um exemplo é o seguinte
Atalho: Super+Shift+1 → Comando: source ~/.window_summoner/get_window_id.sh 1
E isso configura o método mencionado que permite ao usuário mover qualquer janela marcada para sua área de trabalho ativa.