私のデバイスAでは、dwmを使用してx11を実行しています。デバイスBからデバイスAへsshを介してデバイスAから続いているウィンドウのxprop出力を取得したいと思います。 dwm デバイス A の端末で端末エミュレータを実行すると、xprop -id "$(xdotool getactivewindow)"
xprop が端末エミュレータの出力として表示されます。ただし、sshを介してこのコマンドを実行すると、次の出力が表示されます。
Error: DISPLAY environment variable is empty. Is there an Xorg or other X server running? You can try setting 'export DISPLAY=:0' and trying again.
Failed creating new xdo instance.
xprop: unable to open display ''
これを行うとexport DISPLAY=:0
(:0はデバイスAの端末エミュレータで$ DISPLAYを確認したときの値です)、上記のコマンドは次のエラーを生成します。
Authorization required, but no authorization protocol specified
Failed creating new xdo instance.
Authorization required, but no authorization protocol specified
xprop: unable to open display ':0'
この問題をどのように解決しますか(ライセンス契約または必要な契約の指定)?
答え1
ディストリビューションがX認証を実行する方法によって異なりますが、わかりませんdwm
。 1つの方法は、「MIT Magic Cookie」を~/.Xauthority
使用して変更できxauth
ますman xauth
。
これを行うと、ps axu | grep X
Xサーバーへのコマンドラインが表示され、私のディストリビューションにはここにオプションが含まれています-auth /name/to/authfile
。このファイルを直接コピーして~/.Xauthority
(vsなどの読み取り権限が必要sudo
)、他のユーザーまたはSSH接続を承認できます。
これは、お客様のディストリビューションに適用される場合と適用されない場合があります。
xhost +
(また、これが正しいクッキーを得るよりも安全性が低いというアドバイスもあります)。