我正在尝试在窗口管理器中设置外部状态栏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,按照我想要的方式工作。
如果你愿意的话,我可以帮助你(或任何人)得到这个。
- 夏季是:
跟随Polybar-DWM 模块并安装,请务必阅读自述文件并按照它进行操作。
拉 dwm 源代码,并添加所需的补丁,如 vanitygaps 等,以及 ANYBAR 补丁和其他Polybar-DWM-模块的自述文件说
它应该可以工作,但如果没有在这里发布错误,我将非常乐意为您提供帮助。