Je vous propose deux scripts shell. Il vous aidera à enregistrer votre disposition des positions et de la taille des fenêtres . Si vos dispositions de fenêtres souhaitées sont perturbées, vous pourrez restaurer ces dispositions avec la taille et les positions exactes de toutes les fenêtres à l'aide de ce script.
Vous devez installer à wmctrl
moins que vous ne l'ayez déjà. Installer via terminal,
sudo apt-get install wmctrl
Script pour enregistrer la configuration de Windows
# Script_Name: save_window_conf.sh
#!/bin/bash
if [ -f $HOME/.my_windows_config.txt ]; then
echo -e "Information: Previous configuration file \"$HOME/.my_windows_config.txt\" already exists.\nTo save a new configuration remove it manually using the following command,\n\n\trm $HOME/.my_windows_config.txt"
exit 1
else
wmctrl -p -G -l | awk '($2 != -1)&&($3 != 0)&&($NF != "Desktop")' | awk '{print $1}' | while read mywinid
do
xwininfo -id "$mywinid" >> $HOME/.my_windows_config.txt
done
fi
À l'exécution, le script ci-dessus enregistrera la position et la taille de vos fenêtres pour toutes vos fenêtres ouvertes dans un fichier nommé .my_windows_config.txt
dans votre répertoire personnel. Il s'agit d'un fichier texte masqué.
Script pour recharger la configuration de Windows
# Script_Name: load_window_conf.sh
#!/bin/bash
file=$HOME/.my_windows_config.txt
declare -a mywinid
declare -a x
declare -a y
declare -a width
declare -a height
nl=$(cat "$file" | grep xwininfo |wc -l)
for i in $(seq 1 $nl)
do
mywinid[i]=$(cat "$file" | grep "xwininfo" | awk -v p="$i" '{if(NR==p) print $4}')
x[i]=$(cat "$file" | grep "Absolute upper-left X" | awk -v p="$i" '{if(NR==p) print $NF}')
y[i]=$(cat "$file" | grep "Absolute upper-left Y" | awk -v p="$i" '{if(NR==p) print $NF}')
width[i]=$(cat "$file" | grep "Width" | awk -v p="$i" '{if(NR==p) print $NF}')
height[i]=$(cat "$file" | grep "Height" | awk -v p="$i" '{if(NR==p) print $NF}')
done
for it in $(seq 1 $nl)
do
wmctrl -i -r "${mywinid[$it]}" -e 0,"${x[$it]}","${y[$it]}","${width[it]}","${height[it]}"
done
Lorsque vous exécutez le deuxième script, il restaurera la position de vos fenêtres avec la taille exacte pour toutes vos fenêtres.
Usage
Enregistrez ces scripts dans votre $HOME/bin/
répertoire. Ajoutez $HOME/bin/
votre PATH
. Pour cela, ajoutez ces lignes à la fin de votre$HOME/.bashrc
PATH=$HOME/bin:$PATH
export PATH
Il vous permettra d'exécuter ces scripts avec leur nom uniquement. Donnez la permission d'exécution des scripts,
chmod +x $HOME/bin/save_window_conf.sh
chmod +x $HOME/bin/load_window_conf.sh
Pour enregistrer la configuration dans votre $HOME/.my_windows_config.txt
Après avoir ouvert et ajusté toutes vos fenêtres exécutées dans le terminal,
save_window_conf.sh
Pour recharger la configuration depuis votre $HOME/.my_windows_config.txt
load_window_conf.sh
J'espère que cela résoudra votre problème. Voici une capture d'écran,