私が経験している問題は、VMWare WorkstationのDebian VMがフルスクリーンモードに入るたびに解像度を1280×1392ピクセルに変更することです。
これで、フルスクリーンモードを終了して入力するたびに手動で解像度を2560 x 1440ピクセルに変更できますが、自動化することを好みます。
まず、手動ストレージ構成の .config/xfce4/xfconf/xfce-perchannel-xml/displays.xml ファイルを変更してみましたが、変更は適用されませんでした。 xfconf-query コマンドを使用して解像度値を設定すると、これらの変更は適用されません。
コマンドラインで解像度を設定できるのはxrandrです。
xrandr --output Virtual1 --mode 2560x1440
今、inotifywaitを使用してdisplay.xmlの変更を監視するスクリプトを設定しようとしています。
しかし、問題はファイルの変更を認識していないようです。
コマンドラインで以下を実行しました(変更を確認したかどうかをテストするため)。
while inotifywait -m -e modify /home/myhomesir/.config/xfce4/xfconf/xfce-perchannel-xml/displays.xml; do whoami ;done
md5sum display.xml
次に、設定ファイルの現在のmd5sumを取得するために実行し、フルスクリーンで終了し、再度実行してmd5sum display.xml
ファイルが変更されたことを確認しました。
md5sum displays.xml
001c0796aba8c0e8b4ea28d59f2e5edc displays.xml
md5sum displays.xml
322e7ea6ca9914caba6fa1365244b27a displays.xml
inotifywaitコマンドの出力を確認すると、どの出力も得られません。
while inotifywait -m -e delete /home/myhomedir/.config/xfce4/xfconf/xfce-perchannel-xml/; do whoami;done
Setting up watches.
Watches established.
なぜこれが起こり、変更を認識しなかったのかご存知ですか?私が観察したところによると、2行が変わりました。
diff displays.xml_wrong displays.xml_correct
9,10c9,10
< <property name="Resolution" type="string" value="1280x1392"/>
< <property name="RefreshRate" type="double" value="59.998367391363502"/>
---
> <property name="Resolution" type="string" value="2560x1440"/>
> <property name="RefreshRate" type="double" value="59.950550105254798"/>
どんな助けでも待ちます。他に提案がある場合はお知らせください。ありがとうございます!
答え1
解決策を見つけたようです。生成イベントと移動イベントを監視した後、xfce4は最初に新しいファイルdisplay.xml.newを作成し、ファイルに直接書き込むのではなくdisplay.xmlに移動するようです。