![Ubuntu 22.04 で現在アクティブなウィンドウを取得するにはどうすればいいですか?](https://rvso.com/image/1072183/Ubuntu%2022.04%20%E3%81%A7%E7%8F%BE%E5%9C%A8%E3%82%A2%E3%82%AF%E3%83%86%E3%82%A3%E3%83%96%E3%81%AA%E3%82%A6%E3%82%A3%E3%83%B3%E3%83%89%E3%82%A6%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%81%84%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
Ubuntu 22.04 がリリースされて以来、この質問は普通になりました。
現在アクティブなウィンドウ名を取得する必要があるシェル スクリプトを書いているので、そのためのツールを検索した後、xdotool を使用することにしました。
しかし、ターミナルまたは設定を起動すると、xdotool getwindowfocus getwindowname
エラーが発生します。
xdo_get_focused_window_sane failed (code=1)
xdo_focus_window reported an error
このエラーを修正するにはどうすればよいでしょうか。また、現在アクティブなウィンドウ名を取得するにはどうすればよいでしょうか。
答え1
xdotool
Xorgディスプレイマネージャでのみ機能し、Waylandでは機能しません。また、WaylandはUbuntu 22.04のデフォルトです。Waylandでフォーカスされたウィンドウを選択する同等の方法はありません。この機能が必要な場合は、Xorgの使用に切り替えるそうすれば、以前使用していた方法が機能するようになります。
Waylandを使い続け、これを理解するためにかなり深く掘り下げても構わないのであれば、ウィンドウマネージャまたはコンポジターの開いているウィンドウを取得する方法を使用できます。これはWM間で移植可能ではなく、すべての状況で可能というわけではありません。Gnomeに関するこの質問それは実際にはまったく不可能です。