L'idée suivante démontre un moyen pratique où l'utilisateur peut déplacer une fenêtre marquée de n'importe quel espace de travail à celui actif dans un environnement XFCE.
MOVABLE_WINDOW_IDX , où MOVABLE_WINDOW_IDX peut être n'importe quel entier allant de 0 à 9 .Super+Shift+Key_MOVABLE_WINDOW_IDX pour marquer cette fenêtre active et pour attribuer son ID de fenêtre mobile correspondant en tant que MOVABLE_WINDOW_IDX .Super+Key_MOVABLE_WINDOW_IDX . Key_MOVABLE_WINDOW_IDX dépend purement de la préférence de clé du clavier de l'utilisateur. Une façon de mettre en œuvre ce concept consiste à par les instructions suivantes. Il convient de noter que cette méthode dépend des packages APT xdotool et wmctrl .
.window_summoner .get_window_id.py et contiendra le contenu suivant 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 )) L'autre fichier sera summon_window.py avec son contenu étant
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 ]))Se décomposer
wmctrl -ir $MOVABLE_WINDOW_ID -t $(wmctrl -d | grep "*" | cut -d' ' -f1) :
wmctrl : Une utilitaire de ligne de commande qui peut interagir avec et manipuler les fenêtres du système de fenêtre x.
-ir $MOVABLE_WINDOW_ID : Le drapeau -ir indique wmctrl d'interagir avec la fenêtre avec l'ID numérique donné ". $MOVABLE_WINDOW_ID est une variable bash qui contient l'ID numérique de la fenêtre que nous voulons déplacer.
-t $(wmctrl -d | grep "*" | cut -d' ' -f1) : L'indicateur -t indique wmctrl de "déplacer la fenêtre sur le bureau avec l'index donné". $(wmctrl -d | grep "*" | cut -d' ' -f1) est une substitution de commande qui obtient l'index de l'espace de bureau / travail actuellement actif. Voici ce qui se passe dans cette substitution de commandement:
wmctrl -d : répertorie tous les ordinateurs de bureau / espaces de travail disponibles.grep "*" : filtre pour l'espace de bureau / travail actuellement actif, qui est indiqué par un astérisque ( * ) dans la sortie de wmctrl -d .cut -d' ' -f1 : extrait le premier champ (qui est l'index de l'espace de bureau / travail) de la sortie de grep "*" . Les deux fichiers restants sont movable_window_id_list.txt et initial_movable_window_id_list.txt . Les deux devraient contenir
0 0 0 0 0 0 0 0 0 0
Lorsque ce dernier fichier doit être en lecture seule, servant uniquement de prototype de valeur initiale de l'autre fichier txt .
Effectuez ce qui suit pour chaque entier de clavier MOVABLE_WINDOW_IDX Vous souhaitez être actif. Raccourci: Super+Shift+Key_MOVABLE_WINDOW_IDX → Commande: python3 /home/$USER/.window_summoner/get_window_id.py MOVABLE_WINDOW_IDX
Raccourci: Super+Key_MOVABLE_WINDOW_IDX → Commande: python3 ~/.window_summoner/summon_window.sh MOVABLE_WINDOW_IDX
où vous remplacez évidemment Key_MOVABLE_WINDOW_IDX par votre clé de choix.
Un exemple est le suivant
Raccourci: Super+Shift+1 → Commande: source ~/.window_summoner/get_window_id.sh 1
Et cela configure la méthode mentionnée qui permet à l'utilisateur de déplacer n'importe quelle fenêtre marquée sur son espace de travail actif.