【问题标题】:Before diving in, is this possible with Awesome WM?在深入研究之前,Awesome WM 可以做到这一点吗?
【发布时间】:2018-01-06 18:53:32
【问题描述】:

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

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

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

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

非常感谢!

【问题讨论】:

  • 改用 i3wm i3wm.org
  • 你能证明你的答案吗?你的回复很少,几乎没有回答我的问题。我现在正在使用 i3,它无法进行持久布局,这是我最大的抱怨。
  • 你在 i3 中有持久的布局:i3wm.org/docs/layout-saving.html
  • 不,它没有。可以恢复的已保存布局与持久布局不同,这意味着在最后一个应用程序关闭后,磁贴将保持为空。 Awesome 似乎有一些东西可以使用 fill_strategy 使其半持久化,但我一直无法弄清楚它是如何工作的。

标签: lua archlinux window-managers awesome-wm


【解决方案1】:

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

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

此外,默认布局系统不是很现代,很难实现您要求的功能。我的布局系统(见下面的链接)可以用作模块或分支,并支持上述所有功能。 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

【讨论】:

  • 感谢您的详尽回答!也许我误解了一件事,我并没有说或意思是“像 i3 一样工作”。我在这里的原因是因为 i3 不能做我想做的事。保存/恢复布局只工作一次,但不是持久的,所以一旦我关闭最后一个应用程序,它就会关闭容器并调整所有内容的大小。我需要我在中间部分关注的内容,因为显示器太宽,并且调整到左边缘或右边缘的图块会使我的工作内容向左或向右移动太远。我将进一步查看您提供的链接。再次感谢!
  • 如果你想要 3 个“固定”列,也许一个更好的选择是在你的物理屏幕中创建 3 个虚拟屏幕(Awesome screen 模块有它的 API)。调整大小将更加复杂,因为您将不得不调整虚拟屏幕的大小而不是布局。根据您的口味,它可能有一些优点。最明显的是您拥有 3 组虚拟工作区(标签),无需使用选项卡和空白空间进行管理。另一方面,您将无法轻松观看全屏电影(全屏模式将仅限于单个虚拟屏幕)。
  • 是的,我不希望它们像那样固定。全屏需要是可能的,并且也需要调整大小/拆分,但需要手动进行。 i3 对此感到沮丧,因为我经常需要打开虚假程序以保持我的“工作”程序为中心。我正试图围绕真棒的配置,但文档太学术(如果这是正确的词?),描述了每个设置的作用,但不足以说明它应该如何实现。我也找不到好的指南或示例。
【解决方案2】:

您正在寻找的 WM 是 herbstluftwm (hlwm)。它是一个手动平铺窗口管理器。您正在谈论的瓷砖在 hlwm 中称为框架。每个框架可以包含多个窗口。框架也可以是空的。只有当你杀死一个框架时,其他框架才会自动调整大小。您可以垂直和水平添加新框架并调整它们的大小。每个框架也可以有不同的布局来组织里面的窗口。您正在寻找的布局是最大的。这会将框架内的窗口相互堆叠。但是,它不会向您显示 i3 之类的标签。 hlwm 允许您创建规则以始终在某些框架和工作区中打开某些应用程序。 hlwm 没有内置状态栏。我个人喜欢使用tint2。它可以替代您将正在运行的应用程序视为选项卡的要求。

【讨论】:

    猜你喜欢
    • 2016-05-30
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-08
    • 1970-01-01
    相关资源
    最近更新 更多