#lua #border #awesome-wm
Вопрос:
Я пытаюсь отредактировать свои .config/awesome/theme.lua
.config/theme/rc.lua
файлы и для AwesomeWM. У меня есть следующие строки в 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`
Это навсегда создает неприятную зеленую границу вокруг полибара, и моя проблема в том, что я хочу удалить ее. Я попытался вставить это rc.lua
перед приведенными выше строками:
ruled.client.append_rule {
rule = { class = "polybar" },
properties = { client.border_width = 0 }
}
но это не работает. Я просмотрел Reddit и документацию AwesomeWM, но это лучшее, что я мог придумать, и это не работает. Кто-нибудь знает, как я могу это сделать, если я вообще могу это сделать (удалите неприятную границу 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 } }
Я попытался заменить «класс» на «экземпляр» и «имя» (не совсем уверен, в чем разница), и я попытался использовать как заглавную «Полибар», так и строчную «полибар», но это не сработало.
Ответ №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, я не могу использовать ruled., а скорее должен использовать ужасные правила.
- «Полибар» может работать, а «полибар» — нет.
Итак, для решения:
В какой-то момент 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,
Затем это удалило ширину границы и, следовательно, границу. Затем я ниже добавил отдельную часть, которая добавляет ширину границы ко всему, кроме полибара:
{ rule = { },
except_any = { class = { "Polybar" } },
properties = { border_width = beautiful.border_width }
},
В случае, если я захочу удалить границу с чем-либо еще в будущем, я могу сделать это так:
except_any = { class = { "Polybar", "OtherApp1", "OtherApp2", "OtherApp3" } },