Files
crylia-theme/awesome/src/core/rules.lua
Rene Kievits 3bae4f4403 some fixes
2023-04-28 02:29:47 +02:00

102 lines
2.7 KiB
Lua

local ipairs = ipairs
local setmetatable = setmetatable
-- Awesome Libs
local aclient = require('awful.client')
local aplacement = require('awful.placement')
local ascreen = require('awful.screen')
local beautiful = require('beautiful')
local dpi = beautiful.xresources.apply_dpi
local gfilesystem = require('gears.filesystem')
local ruled = require('ruled')
local config = require('src.tools.config')
local capi = {
awesome = awesome,
}
local instance = nil
if not instance then
instance = setmetatable({}, {
__call = function()
capi.awesome.register_xproperty('_NET_WM_BYPASS_COMPOSITOR', 'boolean')
ruled.client.connect_signal('request::rules', function()
ruled.client.append_rule {
rule = {},
properties = {
border_width = dpi(2),
border_color = beautiful.colorscheme.border_color,
maximized = false,
maximized_horizontal = false,
maximized_vertical = false,
focus = aclient.focus.filter,
raise = true,
keys = require('src.bindings.client_keys'),
buttons = require('src.bindings.client_buttons'),
screen = ascreen.preferred,
placement = aplacement.under_mouse + aplacement.no_overlap + aplacement.no_offscreen + aplacement.centered,
},
}
ruled.client.append_rule {
rule_any = {
type = {
'normal',
'dialog',
},
},
properties = {
titlebars_enabled = true,
},
}
ruled.client.append_rule {
rule_any = {
class = {
'proton-bridge',
'1password',
'protonvpn',
'Steam',
},
},
properties = {
minimized = true,
},
}
ruled.client.append_rule {
rule_any = {
class = {
'steam_app_990080',
},
},
callback = function(c)
c:set_xproperty('_NET_WM_BYPASS_COMPOSITOR', true)
c:connect_signal('focus', function()
c:set_xproperty('_NET_WM_BYPASS_COMPOSITOR', true)
end)
c:connect_signal('raised', function()
c:set_xproperty('_NET_WM_BYPASS_COMPOSITOR', true)
end)
end,
}
end)
local data = config.read_json(gfilesystem.get_configuration_dir() .. 'src/config/floating.json')
for _, c in ipairs(data) do
ruled.client.append_rule {
rule = { class = c.WM_CLASS, instance = c.WM_INSTANCE },
properties = {
floating = true,
},
}
end
end,
})
end
return instance