From a712bc07bdedaecc2291249fac57c7b167aac28e Mon Sep 17 00:00:00 2001 From: Alexander Gehrke Date: Tue, 10 Dec 2019 14:49:03 +0100 Subject: [PATCH] Make screens in rules configurable from localconf.lua --- localconf.lua.template | 6 +++++- rules.lua | 26 ++++++++++++++++++++------ 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/localconf.lua.template b/localconf.lua.template index 9c96435..37fde47 100644 --- a/localconf.lua.template +++ b/localconf.lua.template @@ -5,7 +5,11 @@ local awful = awful conf.modkey = "Mod4" -- screen number, on which rules will put clients by default -conf.rule_screen=1 +conf.screen = { + main = 1, + mail = 2, + chat = 3, +} -- default layout for tags conf.default_layout = awful.layout.suit.fair diff --git a/rules.lua b/rules.lua index 59179ae..1f29a85 100644 --- a/rules.lua +++ b/rules.lua @@ -1,5 +1,6 @@ local awful = require("awful") awful.rules = require("awful.rules") +local localconf = require("localconf") local beautiful = require("beautiful") local binder = binder or require("separable.binder") @@ -13,6 +14,13 @@ local function popup_urgent(client, message) end end) end +if not localconf.screen then + localconf.screen = {} +end +local screen_main = localconf.screen.main or 1 +local screen_chat = localconf.screen.chat or screen.count() +local screen_mail = localconf.screen.mail or screen.count() +print("Screens: main: ".. screen_main .. ", chat: ".. screen_chat .. ", mail: " .. screen_mail) screen2 = screen:count() > 1 and 2 or 1 @@ -78,9 +86,9 @@ awful.rules.rules = { properties = { floating = true, size_hints_honor = true } }, { - rule_any = { class = {"Pidgin"}, instance = {"Weechat"} }, + rule_any = { class = {"Pidgin"}, instance = {"Weechat"}, name = {"Weechat"}}, properties = { - tag = "3", opacity = 0.8 + screen = chat, tag = "3", opacity = 0.8 }, callback = function(c) popup_urgent(c, "new chat message") end }, @@ -112,14 +120,14 @@ awful.rules.rules = { { rule = { class = "Steam", name = "Friends" }, properties = { - tag = "3" + screen = screen_chat, tag = "3" }, callback = awful.client.setmaster }, { rule = { class = "Steam", name = "Chat" }, properties = { - tag = "3" + screen = screen_chat, tag = "3" }, callback = awful.client.setslave }, @@ -129,10 +137,16 @@ awful.rules.rules = { tag = "F1" } }, + { + rule = { class = "rocketchat" }, + properties = { + screen = screen_chat, tag = "5" + } + }, { rule = { class = "Telegram" }, properties = { - tag = "3" + screen = screen_chat, tag = "3" }, callback = awful.client.setslave }, @@ -151,7 +165,7 @@ awful.rules.rules = { rule_any = { instance = {"Gmutt"}, name = {"Gmutt"} }, properties = { tag = "4", - screen = screen2 + screen = screen_mail } }, {