在dwm上设置第三方状态栏

在dwm上设置第三方状态栏

我正在尝试在窗口管理器中设置外部状态栏dwm(特别是我正在尝试使用polybar),但窗口放置存在一些问题:

  • 酒吧需要自己的空间:如果天真地在 dwm 上运行polybar将生成自己的窗口(完全不受欢迎),但即使您更聪明并且通过了,override-redirect = true它也会被放置在现有窗口的顶部,隐藏其内容;如建议的这个 GitHub 问题您需要预留一些空间来dwm放置栏:如何?
  • 我想隐藏:默认dwm栏可以隐藏,释放窗口的屏幕空间,但我想知道如果我强制dwm为其他栏保留一些空间,如何做同样的事情

主要问题是我对 的了解不够dwm,所以我不太熟悉它的源代码来自己制定自定义解决方案,有谁能给我一些建议吗?或者指出一个有用的补丁?

PS:总的来说,我没有找到任何关于设置另一个状态栏的教程dwm(例如这篇 Reddit 帖子要求相同的资源,但没有人做出有用的答案),所以如果有人能够提供类似的东西

答案1

我认为您不会回避深入研究 dwm 源代码。

过去对我有用的一件事是修改 dwm 处理其自己的栏的方式来处理 Polybar。这意味着删除呈现 dwm 栏的代码,但不删除在栏顶部或底部添加空间的代码。

我不使用 dwm,只是将其作为概念证明,不幸的是不再有补丁了,但我可以给出一些提示:

注意:这是参考提交时的代码f09418b。对于其他提交,情况可能有所不同。

  • topbar变量设置为Polybar 配置中变量config.def.h的倒数。bottom
  • bh变量设置dwm.c为条形的高度(以像素为单位)(删除现有分配)
  • 阻止 dwm 显示它自己的栏。这是最困难的部分,因为您不能仅仅设置showbar = 0和处理栏窗口,而是分散在整个代码中。查看使用结构体barwin变量的所有位置。Monitor

对于关于隐藏栏的第二部分,我上面建议的更改可能允许您以相同的方式切换栏。这只会切换 dwm 为栏保留的空间,而不是栏本身。为此,您还需要致电polybar-msg cmd toggle.

答案2

如果您仍在尝试(这不太可能),我只是使用 dwm 添加了 polybar,按照我想要的方式工作。

我正在发布截图。这是我的设置 dwm 与 Polybar

如果你愿意的话,我可以帮助你(或任何人)得到这个。

  • 夏季是:
  1. 跟随Polybar-DWM 模块并安装,请务必阅读自述文件并按照它进行操作。

  2. 拉 dwm 源代码,并添加所需的补丁,如 vanitygaps 等,以及 ANYBAR 补丁和其他Polybar-DWM-模块的自述文件说

  3. 它应该可以工作,但如果没有在这里发布错误,我将非常乐意为您提供帮助。

相关内容