如何在唤醒显示器后停止窗口重新定位?

如何在唤醒显示器后停止窗口重新定位?

我有一台带有多显示器设置的笔记本电脑,一个是 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

相关内容