上記のように、Openboxで「ターミナルをデスクトップの背景パターン」に設定しようとしています。ここ
<layer>below</layer>
Openboxは、ウィンドウがデスクトップの背景として実行され、ステータスバーに表示されず、「ウィンドウ最小化」の影響を受けないように設定できます。そのため、役に立たない画像を壁紙として表示するのではなく、実際に端末があります。
私がバックグラウンドで実行している実際の端末はですterminator
。私はシンボリックリンクを作成しました。terminator-wallpaper-1a
これterminator-wallpaper-1b
はターミネータバイナリへのシンボリックリンクです。名前が違うので違いがわかります。
デュアルモニター設定があり、各モニターにターミネーターの壁紙が欲しいです。
openboxウィンドウのプロパティは次の方法で設定されます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つだけを使用できます。つまり、慎重または活動的でなければなりません。もう一方は入力できません。マウスでクリックしてもカーソルが非アクティブのままであるため、ウィンドウにフォーカスが合わせられません。
この問題をどのように解決できますか?
解決策:
@intikaユーザーと徹底的なトラブルシューティングを終えた後、問題を確認しました。<mouse>
Openbox設定ファイルに次のコードスニペットを追加することで問題が解決しました。
<context name="Desktop">
<mousebind button="Left" action="Press">
<action name="Focus"/>
<action name="Raise"/>
</mousebind>
</context>
答え1
一度に1つのウィンドウ/アプリケーションにのみフォーカスを持つことができます。
Openbox設定では、両方のアプリ/背景画面に焦点が合っていますが、技術的にはこれは不可能であるため、Openboxは1つのアプリにのみ焦点を当てて設定を容易にします(そうしないとこれを行うことはできません)。
<application name="terminator-wallpaper-1a">
<focus>yes</focus>
...
<application name="terminator-wallpaper-1b">
<focus>yes</focus>
この問題を解決する可能性はさまざまで、焦点を最初または2番目の画面デスクトップ/アプリケーション/背景画面に切り替える方法を実装する方向に進化します。
考えられる解決策1:
フォーカス値をnoに設定するか、フォーカスラインをすべて削除してから、マウスクリックでフォーカストランジションをテストできます。
考えられる解決策2:
マウスの位置を使ってフォーカスを設定します。ここにあります。オープンボックス Wikiこの問題については、まず2つの壁紙アプリのフォーカス項目を削除してから、リンクされたドキュメントで説明されている<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:
他にも可能な解決策がたくさんあります。回答にコメントしたら、それに従って編集します。 ;)