dwmにサードパーティのステータスバーを設定する

dwmにサードパーティのステータスバーを設定する

dwmウィンドウマネージャ(特に私が使用したいもの)で外部ステータスバーを設定しようとしていますが、ウィンドウの配置polybarにはいくつかの問題があります。

  • バーには独自のスペースが必要です。素直にdwmを実行すると、polybar独自のウィンドウが作成されますが(完全に望ましくない)、よりスマートで合格しても、提案されているようにコンテンツを非override-redirect = true表示にしながら既存のウィンドウの上に配置されます。このGitHubの問題dwmバーのための少しスペースを残す必要があります。どのように?
  • 隠したいもの:デフォルトの列を非表示にしてウィンドウの画面スペースを解放できますが、他の列のためにいくつかのスペースを予約するよう強制する場合は、同じことを行う方法をdwm知りたいです。dwm

最大の問題は、私がそれについて十分に知らないdwmので、カスタムソリューションを直接作成するためのソースコードに慣れていないことです。誰でも私にアドバイスを与えることができますか?それとも役に立つパッチを指摘しますか?

PS:通常、他のステータスバーの設定に関するチュートリアルが見つかりませんでしたdwm(例:このRedditの投稿同じリソースを要求しましたが、誰も役に立つ答えを提供していません。)

答え1

私はあなたがdwmソースコードを掘り下げることを躊躇しないと思います。

過去に私にとって効果的だったことの1つは、dwmがPolybarを処理するために独自のバーを処理する方法を修正することでした。これは、dwm列をレンダリングするコードを削除することを意味しますが、列の上部または下部にスペースを追加するコードは削除しません。

私はdwmを使わずに概念証明でこれを行います。残念ながら、もはやパッチはありませんが、いくつかのヒントを与えることができます。

注:参考資料の提出時のコードです。f09418b。他の提出物の場合、状況は異なる場合があります。

  • topbarPolybar設定で、変数を変数の逆数に設定しますconfig.def.hbottom
  • バーの高さのbh変数をピクセル単位で設定します(既存の割り当てを削除).dwm.c
  • dwmが独自の列を表示するのを防ぎます。バーウィンドウだけを設定しshowbar = 0て処理できず、コード全体に分散しているため、これが最も難しい部分です。構造変数が使用されているすべての場所を表示しますbarwinMonitor

バーを非表示にするための2番目の部分では、上記の変更で同じ方法でバーを切り替えることができます。これは、列自体ではなく列のdwmによって予約されているスペースのみを切り替えます。これを行うには、また電話する必要がありますpolybar-msg cmd toggle

答え2

それでも試している場合は(可能性が低い)、dwmを使用してポリバーを追加したところ、必要に応じて機能します。

スクリーンショットを投稿しています。これは私の設定です。 dwmとポリバー

あなたが望むなら、私はあなた(または誰でも)がこれを得るのを助けることができます。

  • 夏は:
  1. フォローするPolybar-DWMモジュールインストールするには、Readmeを必ず読んでフォローしてください。

  2. dwmソースコードを取得し、vanitygapsなどの必須パッチやANYBARパッチなどを追加します。ポリバー-DWM-モジュール式読書によると

  3. うまくいきますが、ここにバグが掲載されていない場合は、お手伝いします。

関連情報