説明されているように、Openboxで「デスクトップの壁紙としてのターミナル」を設定しようとしています ここ
Openboxには<layer>below</layer>
を設定する可能性があり、ウィンドウがデスクトップの背景として実行され、ステータスバーに表示されず、「ウィンドウの最小化」の影響を受けません。だから、無駄な画像を壁紙として表示する代わりに、私は実際に端末を持っています。
私がバックグラウンドとして実行している実際の端末はterminator
であり、ターミネーターバイナリへのシンボリックリンクであるシンボリックリンクterminator-wallpaper-1a
とterminator-wallpaper-1b
を作成しました。名前が違うようにするためだけに、私はそれらを区別することができます。
デュアルモニターのセットアップがあり、各モニターにターミネーターの壁紙が必要です。
オープンボックスウィンドウのプロパティはdevilspie
によって設定されます。
(if
(matches (application_name) "terminator-wallpaper")
(begin
(wintype "desktop")
)
)
そして、これをopenbox構成に入れて、各壁紙が対応するモニター/デスクトップに移動するようにします。
<application name="terminator-wallpaper-1a">
<focus>yes</focus>
<layer>below</layer>
<desktop>1</desktop>
<position>
<y>0</y>
<x>0</x>
<monitor>1</monitor>
</position>
<skip_taskbar>yes</skip_taskbar>
<maximized>true</maximized>
</application>
<application name="terminator-wallpaper-1b">
<focus>yes</focus>
<layer>below</layer>
<desktop>1</desktop>
<position>
<y>0</y>
<x>0</x>
<monitor>2</monitor>
</position>
<skip_taskbar>yes</skip_taskbar>
<maximized>true</maximized>
</application>
最後に、これが私がすべてを始める方法です:
devilspie &
terminator-wallpaper-1a -b &
terminator-wallpaper-1b -b &
xdotool set_desktop 0
xdotool search --class 'Terminator-wallpaper-1a' windowunmap --sync windowmap windowsize %1 1920 1180
xdotool search --class 'Terminator-wallpaper-1b' windowunmap --sync windowmap windowsize %1 1920 1180
すべてがうまく機能し、他のすべてのウィンドウを最小化すると、実際にターミネーターの壁紙が表示されます。しかし、実際に使用できるのはそのうちの1つだけです。つまり、集中的、またはアクティブです。もう1つは入力できません。マウスでクリックしてもカーソルが非アクティブであるため、ウィンドウにフォーカスが移動することはありません。
どうすればこれを修正できますか?
ユーザー@intikaによる徹底的なトラブルシューティングの結果、問題を特定しました。 openbox設定ファイルのセクション<mouse>
に次のスニペットを追加すると、問題が修正されました。
<context name="Desktop">
<mousebind button="Left" action="Press">
<action name="Focus"/>
<action name="Raise"/>
</mousebind>
</context>
一度に1つのウィンドウ/アプリケーションのみにフォーカスを設定できます。
Openboxの構成では、両方のアプリケーション/壁紙に焦点が当てられますが、技術的にはこれは不可能です。したがって、openboxは、1つのアプリケーションのみに焦点を当てることで、構成を軽減します(それ以外の場合はできません)。
<application name="terminator-wallpaper-1a">
<focus>yes</focus>
...
<application name="terminator-wallpaper-1b">
<focus>yes</focus>
この問題を修正する可能性はたくさんあります。それらは、フォーカスを1番目または2番目の画面のデスクトップ/アプリケーション/壁紙に切り替える方法の実装を中心に進化しています。
考えられる解決策1:
フォーカス値をnoに設定するか、フォーカスラインをまとめて削除してから、マウスクリックでフォーカスの切り替えをテストすることができます。
考えられる解決策2:
マウスの位置を使用してフォーカスを設定します。これが openbox wiki です。まず、両方の壁紙アプリのフォーカスエントリを削除してから、メインセクション<focus></focus>
の下のopenbox構成に以下を追加します。リンクされたドキュメントに記載されています
<followMouse>yes</followMouse>
<!-- move focus to a window when you move the mouse into it -->
これは他のウィンドウにも影響を与えることに注意してください...
アプリケーションセクションでfollowMouse
を使用することもできますが、これはopenboxで処理されるとは思いません。
考えられる解決策2:
Xdotoolをキーボードショートカットと一緒に使用するか、フォーカスを切り替えます。実際、キーボードショートカットに次のようなコマンドを割り当てることができます。また、このソリューションでは、デュアル<focus>yes</focus>
を削除/編集して構成を修正する必要があります。
xdotool search --class 'Terminator-wallpaper-1b' windowactivate
Xdotoolと同じように、wmctrlもこの問題に使用できます。
#Lists currently open windows
wmctrl -l
#Set focus to windows with title containing STRING
wmctrl -a STRING
注:
<focus>yes</focus>
# if the window should try be given focus when it appears. if this is set
# to yes it doesn't guarantee the window will be given focus. some
# restrictions may apply, but Openbox will try to
注2:
他にも多くの可能な解決策があります、あなたは答えにコメントすることができます、そして私はそれに応じてそれを編集します;)