使用可能な出力の変更に合わせてxfceを自動的に調整するにはどうすればよいですか?


11

xfceでは、[設定]-> [ディスプレイ]を実行して、好みの出力モニターを変更できます。私が見つけられなかったのは、利用可能な出力の変化に合わせて自動的に調整することです。

たとえば、DVIディスプレイを使用しているがラップトップをドッキング解除した場合、XFCEは、ディスプレイが機能していないことを自動的に認識せず、出力を変更します。Gnomeがこれを実行しましたが、どのサービスを使用しているかはわかりません。常に少なくとも1つの作業出​​力が自動的に得られるようにする方法が必要です。

サイドノート:これは私の別の質問に関連しています。デスクトップ環境ではなくウィンドウマネージャを使用する場合、ドック/ドックの解像度を自動的に更新するにはどうすればよいですか?、ただし、xfce用であり、汎用ウィンドウマネージャー用ではありません。


1
今まで見た中で最高:unix.stackexchange.com/a/120945/14907
akostadinov

@akostadinov回答が回答になるはずです。私は先に進み、それを一つに変えます。
アレクサンドルドゥビンスキー

回答:


6
$ xrandr --auto

xrandrのmanページから:

--auto:接続されているが無効な出力の場合、優先モード(または優先モードがない場合は96dpiに近いもの)を使用してそれらを有効にします。切断されているが有効な出力の場合、これはそれらを無効にします。


これは、少なくとも私のセットアップでは動作します。
pl1nk

しかし、これは1回限りのコマンドであり、サービスではありませんか?
アレクサンドルドゥビンスキー

0

この質問に対する回答は、Unix StackExchange:https ://unix.stackexchange.com/questions/101809/how-can-i-automatically-update-my-monitor-layout-in-xfce/120945#120945 ただし、そうではないためこの質問を別のサイトの質問の複製としてマークすることが可能です。ここで答えをコピーします。


1つの方法はudevルールを作成することですが、より移植性の高いものが欲しいので、このbashスクリプトがあります。inotifywaitのサポートに依存しており、何らかの種類のループはなく、効率的であると見なされます。

external-lcd.sh

#!/bin/sh
# inspired of:                                                                                            
#   http://unix.stackexchange.com/questions/4489/a-tool-for-automatically-applying-randr-configuration-   when-external-display-is-p                                                                                
#   http://ozlabs.org/~jk/docs/mergefb/                                                                   
#   http://superuser.com/questions/181517/how-to-execute-a-command-whenever-a-file-changes/181543#181543  

export MONITOR2=/sys/class/drm/card0-VGA-1/status                                                         

while inotifywait -e modify,create,delete,open,close,close_write,access $MONITOR2;                        

dmode="$(cat $MONITOR2)"                                                                                  

do                                                                                                        
    if [ "${dmode}" = disconnected ]; then                                                                
         /usr/bin/xrandr --auto                                                                           
         echo "${dmode}"                                                                                  
    elif [ "${dmode}" = connected ];then                                                                  
         /usr/bin/xrandr --output VGA1 --auto --right-of LVDS1                                            
         echo "${dmode}"                                                                                  
    else /usr/bin/xrandr --auto                                                                           
         echo "${dmode}"                                                                                  
    fi                                                                                                    
done 

ファイルを実行可能にすることを忘れないでください(chmod +x external-lcd.sh)。次に、DEを起動するたびに起動します。

これをarchlinuxで使用しているので、動作するはずです。xrandrパラメーターを変更するか、arandr構成を使用するように交換できます。


-1

デスクトップに依存しないハードウェアイベント検出(udev)の背後にあるテクノロジーは、xfceのような趣味のプロジェクトではかなり新しいため、このようなオプションはありません。

とを掘り下げるD-Busと良い結果が得られるかもしれませんudev。まずは、udevがremoveイベント実行していないのを見てください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.