指定されたレイヤーでのみ動作するようにOpenboxでToggleShowDesktopを構成します

マーティンベグター

のキーバインドがあり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つのsymlikを作成しましたterminator

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

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

同様に、.config/openbox/lxde-rc.xml私には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

これは私には過度に複雑でエレガントでないことを静めるように思えますが、それを行うためのより良い方法は見当たりませんでした。

さて、@ Suchipiの指示に従うと、次のようになります。

1)正常にdevilspie動作する部分結局のところ、8つのウィンドウすべてをカバーする定義が1つだけ必要です(の代わりmatchesis):

$ 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つだけであるということです。もう1つは「ピントが合っていない」ので、マウスでクリックしてもピントが合わない。つまり、端末は表示されますが、入力できません。

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

この問題を解決するにはどうすればよいですか?

スチピ

Openboxは、_OB_APP_TYPEプロパティが「デスクトップ」に設定されているウィンドウに、探している機能を提供します(ウィンドウのプロパティobxpropを確認するために使用できます)。したがって_OB_APP_TYPE、これが発生するように、ターミネータウィンドウのを「デスクトップ」に設定する必要があります。

オープンボックスのソースコードを読むと、client.cそれ_OB_APP_TYPEがから継承されいることがわかりました_NET_WM_WINDOW_TYPEそこで、変更できるアプリケーションを探しました_NET_WM_WINDOW_TYPE私が見つけたアプリケーションはと呼ばれていdevilspieます。

まず、インストールします。

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あなたの解像度に置き換えます。また、静的解決の代わりにxdotoolを使用して、Debianのaptリポジトリで見つかったものよりも新しいバージョンをサポートしていることにも注意してください100% 100%xdotoolのgooglecodeページ.deb、の新しいバージョンのパッケージを見つけることができますxdotool

ターミネータウィンドウはすぐに装飾されなくなり、を使用obxpropすると、両方の値が正しく設定されていることがわかります。バインドToggleShowDesktopしたキーを数回押すと、ターミネータウィンドウは常にアクティブなままになります。

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

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

構成ファイルの畳み込みレイヤーの後の出力サイズを計算するにはどうすればよいですか?

分類Dev

Pythonのロギングで動作するように構成されたWatchedFileHandlerとStreamHandlerが機能している人はいますか?

分類Dev

Trueのみで構成されたデータセットをトレーニングするにはどうすればよいですか?Pythonで

分類Dev

SFMLで指定レイヤーを他のレイヤーにどのようにマスクしますか?

分類Dev

外部アドレス指定に外部DNSを使用するようにローカルで構成されたDNSを構成する

分類Dev

Hyper-V VM(Ubuntu 19.10クイック作成)の静的IPアドレスを構成して、再起動するたびにssh構成が更新されないようにするにはどうすればよいですか?

分類Dev

webpackとkarmanwbで動作するようにphantomjsを構成します

分類Dev

Spacemacsの指定されたレイヤーにカスタムキーバインディングを追加するにはどうすればよいですか?

分類Dev

最新バージョンのFirefoxで動作しておらず、ビデオが表示されないため、YouTubeにHTML5プレーヤーを使用しないように強制するにはどうすればよいですか?

分類Dev

Gruntで指定されたディレクトリを使用するようにIISを構成する

分類Dev

Javaで構築されたRESTAPIのhttpポストリプレイ動作を停止するにはどうすればよいですか?

分類Dev

zshパターンマッチング:指定された文字で構成されるファイル名のみを照合します

分類Dev

パルス/ALSA で歪んだオーディオ、JACK で正常に動作します。JACK が正しく動作する理由を分析し、その知識を使用して pulse/alsa 構成を修正するにはどうすればよいですか?

分類Dev

2つの異なるログインページで動作するようにSpringSecurityを構成する

分類Dev

既存のレイヤーファイルに対してDojoレイヤーを構築するにはどうすればよいですか?

分類Dev

HTML5 オーディオ プレーヤーは、ページが読み込まれるまで持続するように構成できますか?

分類Dev

「オフライン」で動作するようにgradleを構成する方法(キャッシュされた依存関係を使用)

分類Dev

その動作がまだ指定されていないタイプに対してのみテンプレート演算子を制限できますか?

分類Dev

サブフォルダーで動作するようにNGINXでさまざまなバージョンのPHPを構成する

分類Dev

hadoop3でイレイジャーコーディング機能を構成するにはどうすればよいですか?デフォルトではコールドファイルの保存にのみ使用されますか?

分類Dev

指定されたセキュリティグループでのみ認証を許可するように、oidcおよびazureアプリでkubernetesを構成するにはどうすればよいですか

分類Dev

docker-指定されたポートでリッスンしないように構成します

分類Dev

NameNode は、構成されたレプリケーション 3 よりも、特定のファイル レプリケーションが設定された値であることをどのように認識しますか?

分類Dev

自動生成された値だけで構成されるテーブルにどのように挿入しますか?

分類Dev

CloudFormationテンプレートでElasticBeanstalk起動構成のセキュリティグループを指定するにはどうすればよいですか?

分類Dev

ポート8080でリッスンするように構成されたTomcatのコネクタは、起動に失敗しました

分類Dev

C ++ 11で動作するようにFlycheckを構成する

分類Dev

宣言されたタイプのみに従うようにStatePrinterを構成しますか?

分類Dev

Spring-Bootの自動構成されたJavaMailSenderで、Jasyptライブラリを使用して暗号化された(ユーザー名/パスワード)プロパティをサポートするにはどうすればよいですか?

Related 関連記事

  1. 1

    構成ファイルの畳み込みレイヤーの後の出力サイズを計算するにはどうすればよいですか?

  2. 2

    Pythonのロギングで動作するように構成されたWatchedFileHandlerとStreamHandlerが機能している人はいますか?

  3. 3

    Trueのみで構成されたデータセットをトレーニングするにはどうすればよいですか?Pythonで

  4. 4

    SFMLで指定レイヤーを他のレイヤーにどのようにマスクしますか?

  5. 5

    外部アドレス指定に外部DNSを使用するようにローカルで構成されたDNSを構成する

  6. 6

    Hyper-V VM(Ubuntu 19.10クイック作成)の静的IPアドレスを構成して、再起動するたびにssh構成が更新されないようにするにはどうすればよいですか?

  7. 7

    webpackとkarmanwbで動作するようにphantomjsを構成します

  8. 8

    Spacemacsの指定されたレイヤーにカスタムキーバインディングを追加するにはどうすればよいですか?

  9. 9

    最新バージョンのFirefoxで動作しておらず、ビデオが表示されないため、YouTubeにHTML5プレーヤーを使用しないように強制するにはどうすればよいですか?

  10. 10

    Gruntで指定されたディレクトリを使用するようにIISを構成する

  11. 11

    Javaで構築されたRESTAPIのhttpポストリプレイ動作を停止するにはどうすればよいですか?

  12. 12

    zshパターンマッチング:指定された文字で構成されるファイル名のみを照合します

  13. 13

    パルス/ALSA で歪んだオーディオ、JACK で正常に動作します。JACK が正しく動作する理由を分析し、その知識を使用して pulse/alsa 構成を修正するにはどうすればよいですか?

  14. 14

    2つの異なるログインページで動作するようにSpringSecurityを構成する

  15. 15

    既存のレイヤーファイルに対してDojoレイヤーを構築するにはどうすればよいですか?

  16. 16

    HTML5 オーディオ プレーヤーは、ページが読み込まれるまで持続するように構成できますか?

  17. 17

    「オフライン」で動作するようにgradleを構成する方法(キャッシュされた依存関係を使用)

  18. 18

    その動作がまだ指定されていないタイプに対してのみテンプレート演算子を制限できますか?

  19. 19

    サブフォルダーで動作するようにNGINXでさまざまなバージョンのPHPを構成する

  20. 20

    hadoop3でイレイジャーコーディング機能を構成するにはどうすればよいですか?デフォルトではコールドファイルの保存にのみ使用されますか?

  21. 21

    指定されたセキュリティグループでのみ認証を許可するように、oidcおよびazureアプリでkubernetesを構成するにはどうすればよいですか

  22. 22

    docker-指定されたポートでリッスンしないように構成します

  23. 23

    NameNode は、構成されたレプリケーション 3 よりも、特定のファイル レプリケーションが設定された値であることをどのように認識しますか?

  24. 24

    自動生成された値だけで構成されるテーブルにどのように挿入しますか?

  25. 25

    CloudFormationテンプレートでElasticBeanstalk起動構成のセキュリティグループを指定するにはどうすればよいですか?

  26. 26

    ポート8080でリッスンするように構成されたTomcatのコネクタは、起動に失敗しました

  27. 27

    C ++ 11で動作するようにFlycheckを構成する

  28. 28

    宣言されたタイプのみに従うようにStatePrinterを構成しますか?

  29. 29

    Spring-Bootの自動構成されたJavaMailSenderで、Jasyptライブラリを使用して暗号化された(ユーザー名/パスワード)プロパティをサポートするにはどうすればよいですか?

ホットタグ

アーカイブ