web-dev-qa-db-ja.com

モニターを起動した後、ウィンドウの再配置を停止するにはどうすればよいですか?

私はマルチモニター設定のラップトップを持っています。1つはHDMIで、もう1つはVGAです。省エネ設定を5分後に画面を暗くし、10分後に画面をオフに設定し、サスペンドを「なし」に設定しました。 PCをロックし、10が経過した後、再ログインすると、開いているすべてのウィンドウがラップトップの画面に移動します。毎回並べ替えることなく、すべてのウィンドウを所定の位置に保持したいと思います。これに対する解決策はありますか?

システムインフォメーション:

  • リストアイテム

  • OS:Kubuntu 18.0464ビット

  • KDE Plasmaバージョン:5.12.6
  • グラフィックカード:Intel Corporation Skylake GT2 [HD Graphics 520](rev 07)
2
Waqleh

サスペンドの前後にこの単純なシェルスクリプトを使用します。

#!/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
2
Ipor Sircer