(@ Suchipiが提案した方法を使用):

(@ Suchipiが提案した方法を使用):

キーバインディングがありますToggleShowDesktop。を押すと、Menuすべてのウィンドウが最小化され、デスクトップの背景パターンが期待どおりに表示されます。

<keybind key="Menu">
  <action name="ToggleShowDesktop"/>
</keybind>

今問題は、私の壁紙を見たくないということです。terminator起動したら、terminator下のレイヤーに配置された壁紙を使用しました。

<application name="terminator">
  <focus>yes</focus>
  <layer>below</layer>
  <desktop>1</desktop>
  <position>
    <y>0</y>  
    <x>0</x>
  </position> 
  <skip_taskbar>yes</skip_taskbar>
  <maximized>true</maximized>
</application>

ToggleShowDesktop「下」レイヤーが影響を受けないように設定できますか?つまり、通常のウィンドウを最小化したいのですが、最小化しませんterminator。つまり、ターミネータがToggleShowDesktop

Debian Wheezyと一緒に使用していますLXDE

(@ Suchipiが提案した方法を使用):

元の質問からまだ関連性のあるいくつかの詳細を省略しました。

私の設定には2つのモニターと4つの仮想デスクトップがあります。だから私は埋める「8つの壁紙」を持っていますterminator。以前に読んだ内容に基づいて、8つのウィンドウを区別できる必要があると仮定して、8つのterminator.ieシンボルを作成しました。

/usr/bin/terminator-wallpaper-1a  -> terminator
/usr/bin/terminator-wallpaper-1b  -> terminator
/usr/bin/terminator-wallpaper-2a  -> terminator
...

実際、8つの異なるアプリケーション(異なる名前を含む)が作成されました。

同様に.config/openbox/lxde-rc.xml、Iには1つの定義ではなく8つの定義があります。

<application name="terminator-wallpaper-1a">
  <desktop>1</desktop>
  <position>
    <monitor>1</monitor>
  </position>
  ...
</application>

<application name="terminator-wallpaper-1b">
  <desktop>1</desktop>
  <position> 
    <monitor>2</monitor>
  </position>
  ...
</application>

<application name="terminator-wallpaper-2a">
  <desktop>2</desktop>  
  <position> 
    <monitor>1</monitor>
  </position>
  ...
</application>

結局のところ、ログイン後に自動的に始まる/.config/autostart8つのファイルがありました。*.desktop

/.config/autostar/terminator-wallpaper-1a.desktop
/.config/autostar/terminator-wallpaper-1b.desktop
/.config/autostar/terminator-wallpaper-2a.desktop

私の考えでは、これはあまりにも複雑でエレガントではないようですが、これより良い方法はありません。

今@Suchpiの指示に従って、次のことが起こります。

1)部分的にdevilspie動作します。 8つのウィンドウすべてを含む1つの定義matchesが必要であることがわかりましたis

$ cat .devilspie/terminator.ds 
(if
(matches (application_name) "terminator-wallpaper")
(begin
(wintype "desktop")
)
)

obxprop期待どおりに機能していることがわかります。

$ obxprop | egrep '(_OB_APP|_NET_WM_WINDOW_TYPE)'
_OB_APP_TYPE(UTF8_STRING) = "normal"
_OB_APP_TITLE(UTF8_STRING) = "None"
_OB_APP_CLASS(UTF8_STRING) = "Terminator-wallpaper-1"
_OB_APP_NAME(UTF8_STRING) = "terminator-wallpaper-1"
_OB_APP_ROLE(UTF8_STRING) = 
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_DESKTOP

2) これで、部分がxdotoolよりトリッキーになりました。まず、100%使用された解像度が機能しません。つまり、ウィンドウが消えます(見えません)。静的を使用する場合:

xdotool search --class "Terminator-wallpaper-1a" windowunmap --sync windowmap windowsize %1 1920 1056

これはデスクトップ 1 モニタ 1 で動作します。ただし、他のデスクトップで実行しても効果はありません。つまり、次のようになります。

xdotool search --class "Terminator-wallpaper-2a" windowunmap --sync windowmap windowsize %1 1920 1056

実際には他のデスクトップでも機能しますが、xdotool影響を与えたい特定のデスクトップでコマンドを実行する場合にのみ可能です。つまり、デスクトップに切り替え2て実行するxdotool search --class "Terminator-wallpaper-2a"必要があります。

windowsize %1また、ここにも当てはまるか知りたいです。

2019-12-07 アップデート:

だから私は今、Debian Buster(Openbox 3.6)で同じシステムを設定しようとしましたが、新しい問題に直面しました。新しいバージョンのOpenboxでいくつかのプロパティが変更されたようです。

すべてが以前と同じようです。

terminator-wallpaper-1a --profile wallpaper -b &
terminator-wallpaper-1b --profile wallpaper -b &
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

デスクトップとして2つの端末があります。しかし、問題は、これらの端末の1つだけが実際に使用できることです。もう一つは「無焦点」なのにマウスでクリックしても焦点が合いません。つまり、端末は見えますが、入力することはできません。

この問題は以前のOpenboxバージョンでは存在しませんでした。

この問題をどのように解決できますか?

ベストアンサー1

_OB_APP_TYPEOpenboxは、プロパティが「デスクトップ」に設定されているウィンドウに対してあなたが探している機能を提供します(obxpropウィンドウのプロパティを調べるために使用できます)。そのためには、_OB_APP_TYPE終了者ウィンドウを「デスクトップ」に設定する必要があります。

openboxのソースコードを読んclient.cでください。私が見つけたアプリはです。_OB_APP_TYPE_NET_WM_WINDOW_TYPE_NET_WM_WINDOW_TYPEdevilspie

まず、以下をインストールしてください。

sudo apt-get install devilspie

次に、設定ファイル用のフォルダを作成しますdevilspie

mkdir ~/.devilspie

それでは、名前付きアプリケーションをdevilspie見つけてterminatorそのウィンドウタイプをに設定するように指示する設定ファイルを追加しますdesktop~/.devilspie/terminator.ds

(if
(is (application_name) "terminator")
(begin
(wintype "desktop")
)
)

これで実行するとdevilspie(またはdevilspie -a新しく作成されたウィンドウの代わりに既存のウィンドウに影響を与えると)、変更されたがまだ変更されていないobxpropターミネータが使用されたことがわかります。ウィンドウのマッピングを解除して再マッピングしてみましょう(X11という用語で、これは描画を停止してウィンドウの描画を開始することを意味します)。これにより、openboxはこの値を認識します。_NET_WM_WINDOW_TYPE_OB_APP_TYPExdotool

xdotoolをインストールします。

sudo apt-get install xdotool

次に、次のスクリプトを実行してterminatorウィンドウを見つけてマッピングを解除し、マッピングが解放されるのを待ってから再マップします。また、マッピングを解除して再マッピングすると最大化が失われたため、ウィンドウのサイズを変更しました。

xdotool search --class "terminator" windowunmap --sync windowmap windowsize %1 1024 768

1024 768あなたの決心に変えなさい 。また、xdotoolDebian apt repoのバージョンよりも最新のバージョンは、静的100% 100%解析の代わりに使用をサポートしています。最新バージョンの.debパッケージで最新バージョンを見つけることができます。xdotoolxdotoolのgooglecodeページ。

終了者ウィンドウはすぐに装飾されていない状態に変わります。今すぐ使用すると、両方のobxprop値が正しく設定されていることがわかります。今バウンドキーを数回押すと、終端ToggleShowDesktopウィンドウは常にアクティブになります。

これを永久にするには、ログイン時に次のコマンドを実行する必要があります。これLXSessionのLXDE Wikiページこれを行ういくつかの方法(グローバル、ユーザー別、プロファイル別など)を示します。これらの設定をユーザーにのみ適用し、LXDEプロファイル(デフォルト)の下で実行~/.config/lxsession/LXDE/autostartするコマンドを編集して追加する必要があると仮定すると、ターミネータウィンドウをレンダリングした後にxdotoolコマンドを実行する必要があることに注意してください(sleep 1s & xdotool ...)。必要に応じて、これらのコマンドをopenboxのキーバインディングとして設定することもできます。

おすすめ記事