![如何在唤醒显示器后停止窗口重新定位?](https://linux22.com/image/139527/%E5%A6%82%E4%BD%95%E5%9C%A8%E5%94%A4%E9%86%92%E6%98%BE%E7%A4%BA%E5%99%A8%E5%90%8E%E5%81%9C%E6%AD%A2%E7%AA%97%E5%8F%A3%E9%87%8D%E6%96%B0%E5%AE%9A%E4%BD%8D%EF%BC%9F.png)
我有一台带有多显示器设置的笔记本电脑,一个是 HDMI,另一个是 VGA。我将节能设置设置为 5 分钟后调暗屏幕,并在 10 分钟后关闭屏幕,并将暂停设置为从不。我锁定我的电脑,10 点过去后,当我重新登录时,所有打开的窗口都将移至笔记本电脑屏幕!我想将所有窗口保留在适当的位置,而不必每次都重新排序。有针对这个的解决方法吗?
系统信息:
项目清单
操作系统:Kubuntu 18.04 64位
- KDE 等离子版本:5.12.6
- 显卡:英特尔公司 Skylake GT2 [HD Graphics 520](修订版 07)
答案1
在挂起之前和之后使用这个简单的 shell 脚本:
#!/bin/bash
# Get the coordinates of the active window's
# top-left corner, and the window's size.
# This can be saved & loaded
getpos(){
wmctrl -l -G > /dev/shm/winposs
}
setpos(){
while read -r id g x y w h host app;do
IFS=" ," read ta tb a b c d <<<$(xprop -id "$id" _NET_FRAME_EXTENTS 2>/dev/null)
[ -z $d ] && continue
wmctrl -i -r $id -e "$g,$((x-$d)),$((y-$c)),$((w+$d+$b)),$((h+$c+$a))" 2>/dev/null
done < /dev/shm/winposs
}
case $1 in
get) echo getting window positions
getpos
;;
set) echo setting window positions
setpos
;;
run) getpos
shift
${@}
setpos
;;
*) echo "Usage: ${0##*/}"' [get|set|run <command>]'
;;
esac