ฉันกำลังให้คุณสองเชลล์สคริปต์ มันจะช่วยให้คุณบันทึกการจัดวางของหน้าต่างตำแหน่งและขนาด หากการจัดเรียงหน้าต่างที่คุณต้องการถูกรบกวนคุณจะสามารถกู้คืนการจัดเรียงเหล่านั้นด้วยขนาดและตำแหน่งหน้าต่างที่แน่นอนสำหรับหน้าต่างทั้งหมดที่ใช้สคริปต์เหล่านี้
คุณต้องติดตั้งwmctrl
เว้นแต่คุณจะมีมัน ติดตั้งผ่านเทอร์มินัล
sudo apt-get install wmctrl
สคริปต์เพื่อบันทึกการกำหนดค่า 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
เมื่อทำงานสคริปต์ข้างต้นจะบันทึกตำแหน่งและขนาดหน้าต่างของคุณสำหรับหน้าต่างที่เปิดอยู่ทั้งหมดของคุณไปยังไฟล์ที่มีชื่อ.my_windows_config.txt
อยู่ในไดเรกทอรีบ้านของคุณ มันเป็นไฟล์ข้อความที่ซ่อนอยู่
สคริปต์เพื่อโหลดการกำหนดค่า 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
เมื่อคุณรันสคริปต์ที่สองมันจะคืนค่าตำแหน่งหน้าต่างของคุณด้วยขนาดที่แน่นอนสำหรับหน้าต่างทั้งหมดของคุณ
การใช้
บันทึกสคริปต์เหล่านี้ใน$HOME/bin/
ไดเรกทอรีของคุณ เพิ่มในของคุณ$HOME/bin/
PATH
สำหรับการเพิ่มบรรทัดเหล่านี้ในตอนท้ายของคุณ$HOME/.bashrc
PATH=$HOME/bin:$PATH
export PATH
มันจะช่วยให้คุณสามารถรันสคริปต์เหล่านั้นด้วยชื่อของพวกเขาเท่านั้น ให้สิทธิ์ดำเนินการกับสคริปต์
chmod +x $HOME/bin/save_window_conf.sh
chmod +x $HOME/bin/load_window_conf.sh
เพื่อบันทึกการกำหนดค่าในของคุณ $HOME/.my_windows_config.txt
หลังจากคุณเปิดและปรับหน้าต่างทั้งหมดของคุณทำงานในเทอร์มินัล
save_window_conf.sh
เพื่อโหลดการกำหนดค่าจากของคุณ $HOME/.my_windows_config.txt
load_window_conf.sh
หวังว่ามันจะแก้ปัญหาของคุณ นี่คือภาพหน้าจอ