dotfiles/awesome/main/rules.lua

87 lines
2.4 KiB
Lua

-- Standard awesome library
local awful = require("awful")
-- Theme handling library
local beautiful = require("beautiful")
local _M = {}
-- reading
-- https://awesomewm.org/apidoc/libraries/awful.rules.html
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
function _M.get(clientkeys, clientbuttons)
local rules = {
-- All clients will match this rule.
{ 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
},
},
-- Floating clients.
{ rule_any = {
instance = {
"copyq", -- Includes session name in class.
"pinentry"
},
class = {
"Tor Browser", -- Needs a fixed window size to avoid fingerprinting by screen size.
"steamwebhelper",
"mate-calc",
"steam_app_2060480",
"Alacritty",
"discord",
"Spotify"
},
-- Note that the name property shown in xprop might be set slightly after creation of the client
-- and the name shown there might not match defined rules here.
name = {
"Friends List",
"infinitefusion", -- Pokémon Infinite Fusion
"Picture-in-picture",
"review files to import", -- Hydrus import window
"Spotify"
},
role = {
"AlarmWindow", -- Thunderbird's calendar.
"ConfigManager", -- Thunderbird's about:config.
"pop-up", -- e.g. Google Chrome's (detached) Developer Tools.
}
},
properties = {
floating = true
}
},
-- Add titlebars to normal clients and dialogs
{ rule_any = {
type = { "normal", "dialog" }
},
properties = {
titlebars_enabled = false
}
},
-- Set Firefox to always map on the tag named "2" on screen 1.
-- { rule = { class = "Firefox" },
-- properties = { screen = 1, tag = "2" } },
}
return rules
end
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
return setmetatable({}, { __call = function(_, ...) return _M.get(...) end })