inotifywaitがxfce4構成ファイル内の行の変更を検出できませんでした。

inotifywaitがxfce4構成ファイル内の行の変更を検出できませんでした。

私が経験している問題は、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に移動するようです。

関連情報