【问题标题】:How do I disable the window border in theme.lua/rc.lua (AwesomeWM)如何在 theme.lua/rc.lua (AwesomeWM) 中禁用窗口边框
【发布时间】:2021-08-22 22:12:41
【问题描述】:

我正在尝试为 AwesomeWM 编辑我的 .config/awesome/theme.lua.config/theme/rc.lua 文件。我在theme.lua 文件中有以下几行:

theme.border_width = dpi(5)
theme.border_normal = "#14ff1b"
theme.border_focus = "#00158f"

效果非常好 - 非活动窗口上的浅绿色边框和活动窗口上的蓝色边框。问题是我也在运行 polybar(在删除默认栏的 rc.lua 行之后)并在 rc.lua 中像这样启动它(当我从 .xinitrc 启动它时它是不合适的AwesomeWM 重新加载后):

awful.spawn.with_shell("killall -q polybar") -- necesarry for a reload
awful.spawn.with_shell("polybar mybar") -- mybar is the name of the bar in `.config/polybar/config`

这会永久性地在 polybar 周围给我一个令人讨厌的绿色边框,我的问题是我想删除它。我试着在上面几行之前把它放在rc.lua

ruled.client.append_rule {
    rule = { class = "polybar" },
    properties = { client.border_width = 0 }
}

但这不起作用。我查看了 Reddit 和 AwesomeWM 文档,但这是我能想到的最好的,但它不起作用。有谁知道我怎么能做到这一点,如果我能做到的话(从 Polybar 中移除令人讨厌的 5dp 边框,同时基本上将其保留在其他所有东西上)。

另外,我尝试将其更改为client.border_width = xresources.apply_dpi(0),因为默认的theme.lua 文件将dpi() 设置为xresources.apply_dpi(),并将边框宽度设置为dpi(2)(我将其更改为5),但这并没有也不行。

更新 1:我在 reddit 上发布了这个,在回复和阅读更多文档后,我写了这个,但仍然不起作用:

{ rule = { class = "Polybar" },
    properties = { border_width = 0 } }

我尝试将“class”替换为“instance”和“name”(不太确定有什么区别),并尝试同时使用大写的“Polybar”和小写的“polybar”,但这些都不起作用。

【问题讨论】:

    标签: lua border awesome-wm


    【解决方案1】:

    在你的 rc.lua 中试试这样的东西,它对我有用

    ruled.client.connect_signal("request::rules", function()
        ...
        ...
        ruled.client.append_rule {
            id = "Polybar",
            rule_any = {
                class = {"Ploybar"}
            },
            properties = {
                border_width = 0,
            }
        }
        ...
        ...
    }
    

    【讨论】:

      【解决方案2】:

      好的,所以我想通了。我在 reddit 上发帖询问,从中得到了两条有用的信息:

      • 由于我不使用 nightly,我不能使用 rule.,而必须使用 awesome.rules。
      • “Polybar”可能有效,而“polybar”可能无效。

      所以对于解决方案:

      rc.lua 中的某一时刻,您会得到以下信息:

      awful.rules.rules = {
          { rule = { },
            properties = { border_width = beautiful.border_width,
                           border_color = beautiful.border_normal,
                           focus = awful.client.focus.filter,
                           raise = true,
                           keys = clientkeys,
                           buttons = clientbuttons,
                           screen = awful.screen.preferred,
                           placement = awful.placement.no_overlap+awful.placement.no_offscreen
            }
          }
          ...
      

      所以,这为所有应用设置了一堆东西。然后我注释掉了这一行的这一部分:

            properties = { -- border_width = beautiful.border_width,
      

      这然后删除了边框宽度,因此边框。然后我在下面添加了一个单独的部分,它将边框宽度添加到除了 polybar 之外的所有内容:

          { rule = { },
            except_any = { class = { "Polybar" } },
            properties = { border_width = beautiful.border_width }
          },
      

      如果我以后想从其他任何地方删除边框,我可以这样做:

      except_any = { class = { "Polybar", "OtherApp1", "OtherApp2", "OtherApp3" } },
      

      【讨论】:

        猜你喜欢
        • 2016-03-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多