local awful = require("awful") local beautiful = require("beautiful") local gears = require("gears") local mouse_utils = require("utils.mouse") -- Focus clients under mouse client.connect_signal("mouse::enter", function(c) c:emit_signal("request::activate", "mouse_enter", {raise = false}) end) client.connect_signal("manage", function (c) -- Set the window as a slave (put it at the end of others instead of setting it as master) if not awesome.startup then awful.client.setslave(c) end if awesome.startup and not c.size_hints.user_position and not c.size_hints.program_position then -- Prevent clients from being unreachable after screen count changes. awful.placement.no_offscreen(c) end -- Unminimize and unmaximize the other clients for _, o in ipairs(client.get()) do o.minimized = false o.maximized = false o.fullscreen = false end gears.timer.delayed_call(function() local geometry = c:geometry() local x = geometry.x + geometry.width/2 local y = geometry.y + geometry.height/2 mouse.coords({x = x, y = y}, true) end) end) -- Reload config when screen geometry changes screen.connect_signal("property::geometry", awesome.restart) -- =================================================================== -- Garbage collection (allows for lower memory consumption) -- =================================================================== collectgarbage("setpause", 110) collectgarbage("setstepmul", 1000) client.connect_signal("property::maximized", function(focused) local hide = focused.maximized or focused.fullscreen for _, c in ipairs(client.get()) do if not c.floating and c.screen == focused.screen and c.first_tag == focused.first_tag then c.minimized = hide end end focused.minimized = false end) client.connect_signal("unmanage", function(unmanaged) if unmanaged.maximized then for _, c in ipairs(client.get()) do if not c.floating and c.screen == unmanaged.screen then c.minimized = false end end end end) client.connect_signal("focus", function(c) if #c.screen.clients > 1 then c.border_color = beautiful.border_focus end gears.timer.delayed_call(mouse_utils.move_mouse_onto_focused_client) end) client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)