在潜入之前,Awesome WM 可以做到这一点吗?

phd*_*lnx 4 lua window-managers archlinux awesome-wm

我一直在尝试不同的平铺 WM,看看哪一种最适合我的需求。每次我尝试一个新的时,它看起来都不错,但我发现其他东西不太像我喜欢的那样工作。我的要求随着我的发展而发展。最初,我不想进入 Awesome 因为必须学习 Lua 不在我的愿望清单上,但也许我应该尝试一下,如果它可以比其他平铺 WM 更好地做我想做的事情。

我将尽可能具体地说明我想要什么。我正在运行 3440x1440 显示器。我想使用尽可能多的垂直空间(意思是,全宽、持久但大部分为空的状态栏不是一个选项,但我确实喜欢通知区域和日期/时间)。

我知道它可能不会完全按照我想要的方式做所有事情,这很好。如果它或多或少地完成了我想要的大部分工作,我可以在 Awesome 和其他平铺 WM 之间权衡我的选择(实际上,只有 i3,这是我现在正在使用的,但我愿意接受更好的建议)。如果人们不只是对它不能做的事情说不,而是说“不,但它可以……”,我将非常感激。换句话说,请随意提出可能也有帮助的替代方案。

  • 将屏幕分成 3 列,最初为 30/45/25,右侧列水平分割;在我的工作会议期间,根据需要完全可调整和调整大小;
  • 持久布局;关闭磁贴中的最后一个应用程序时,我不希望该磁贴消失而其余磁贴调整大小。只需显示一个空白区域并保留所有瓷砖。
  • 选项卡式磁贴,因此我可以查看磁贴中正在运行哪些应用程序(类似于 i3)。
  • 用键盘调整大小的瓷砖到 1 个方向;当使中间的列/瓷砖更宽时,我希望它进入另一个瓷砖的特定方向,而另一边则保持不变。
  • 我希望始终在特定磁贴中启动某些应用程序。例如,终端总是在最右边的一列顶部/底部,浏览器/Spotify 总是在中间,原子/IDE 总是在左边。某些应用程序应始终处于浮动状态。显然,我希望能够在启动后将它们发送到不同的磁贴。
  • 我不想要 100% 宽度的状态栏。它将大部分是空的,这是对屏幕空间的浪费。最好,我想要一个磁贴的状态栏部分,例如在最右边的磁贴中,用它调整大小。否则,我希望将其固定为 30%,并允许不在其下方的图块使用屏幕的整个高度。我使用状态栏的原因是静音;我实际上只想要一个永久可见的通知区域和日期时间。我不需要“开始菜单”,dmenu 或类似的东西是完美的,我相信它已经集成了。

提前谢谢了!

Emm*_*lee 5

一般的答案是“很棒的配置就是代码,它可以为所欲为”。但是有一个问题!可以像您描述的那样配置 Awesome 吗?是的,完全。至少有 2 个分布足够接近(我的 [1] 和 worron[2])(至少对于平铺工作流程,而不是外观)。

“捕获”是您描述的工作流程并不是真正的“很棒的方式”。Awesome通常用作自动平铺机。您拥有描述工作流(代码、网络、互联网)的布局,并根据他们的编程管理客户。一旦您有了正确的布局,就很少需要手动管理磁贴。这并不意味着你不能,我做到了,但可能值得跳出框框思考,看看你是否可以进一步自动化你的工作流程。

此外,默认布局系统不是很现代,并且很难实现您请求的功能。我的布局系统(见下面的链接)可以用作模块或分支,并支持上述所有功能。Awesome 是极其可配置的,它的组件可以由模块替换。

https://github.com/awesomeWM/awesome/pull/644

布局“序列化”文档在这里:

https://elv13.github.io/libraries/awful.layout.html#awful.layout.suit.dynamic.manual

它类似于 i3,但具有更多的布局和容器。至于“留空”部分,则是使用fill_strategy进行配置:

https://awesomewm.org/doc/api/classes/wibox.layout.ratio.html#wibox.layout.ratio.inner_fill_strategy

作为结论,我会注意到你问的是“工作完全一样i3”。如果你想要这样的东西,那么,使用 i3。Awesome 是一个窗口管理器框架。它的目标和目的是创建一个定制的桌面外壳/WM。如果这是你想要的,那就继续学习吧,没有什么比你能摆脱它的可能性和控制水平更接近的了。但是,要达到“拥有自己的完美桌面”需要花费时间和精力。我们的用户完美的桌面:

https://github.com/awesomeWM/awesome/issues/1395

[1] https://gfycat.com/SmallTerribleAdamsstaghornedbeetle

[2] https://www.youtube.com/watch?v=-yNALqST1-Y