web-dev-qa-db-ja.com

モニターを接続/切断するときに「正しい」xrandr呼び出しを行う

だから私は仕事に持って行って大きなモニターに接続するラップトップを持っています。今、仕事に就くときは次のことをします

  1. ラップトップをモニターに接続します
  2. 実行xrandr --output DP1 --mode 2560x1600 --right-of eDP1 --output eDP1 --mode 1920x1080
  3. ウィンドウマネージャーを再起動します。 (私はi3を使用しているので、実際には非常に安価な手順です)

私が仕事を辞めるとき、私は次のことをします:

  1. 実行xrandr --output eDP1 --mode 1920x1080 --output DP1 --off
  2. ウィンドウマネージャーを再起動します。
  3. モニターを外します。

これは迷惑です。このモニターに接続するたびに上記の設定が自動的に適用される必要があることをラップトップに「伝える」方法はありますか?

3
azani

この質問にはすでに 答え があります。要約すると、次の点になります。

  • 発生するイベントはありません。ポーリングが唯一の方法です
  • ポーリングは常に悪いですが、いくつかの方法(リンクされた回答で説明されているように)は他の方法よりもパフォーマンスが高く軽量です

別の方法は、次のようなスクリプトを作成し(テストされていませんが、アイデアは明確です)、おそらくキーストロークを使用してそのスクリプトを実行することです。

# cat <<EOF >/usr/local/bin/fastxrr
#!/bin/sh
if xrandr | grep "eDP1 (connected)"
then
    xrandr SETUP FOR CONNECTED SCREEN
else
    xrandr SETUP FOR DISCONNECTED SCREEN
fi
EOF
# chmod +x /usr/local/bin/fastxrr
1
xanoetux