local gears = require('gears') local awful = require('awful') require('awful.autofocus') local beautiful = require('beautiful') -- Theme beautiful.init(require('theme')) -- Layout require('layout') -- Init all modules require('module.notifications') require('module.auto-start') require('module.decorate-client') require('module.quake-terminal') -- Backdrop causes bugs on some gtk3 applications -- require('module.backdrop') require('module.exit-screen') require('module.dashboard') -- Setup all configurations require('configuration.client') require('configuration.tags') _G.root.keys(require('configuration.keys.global')) -- Create a wibox for each screen and add it awful.screen.connect_for_each_screen(function(s) -- If wallpaper is a function, call it with the screen if beautiful.wallpaper then if type(beautiful.wallpaper) == "string" then if beautiful.wallpaper:sub(1, #"#") == "#" then gears.wallpaper.set(beautiful.wallpaper) elseif beautiful.wallpaper:sub(1, #"/") == "/" then gears.wallpaper.maximized(beautiful.wallpaper, s) end else beautiful.wallpaper(s) end end end) -- Signal function to execute when a new client appears. _G.client.connect_signal('manage', function(c) -- Set the windows at the slave, -- i.e. put it at the end of others instead of setting it master. if not _G.awesome.startup then awful.client.setslave(c) end if _G.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 end) -- Enable sloppy focus, so that focus follows mouse. _G.client.connect_signal('mouse::enter', function(c) c:emit_signal('request::activate', 'mouse_enter', {raise = true}) end) -- Make the focused window have a glowing border _G.client.connect_signal('focus', function(c) c.border_color = beautiful.border_focus end) _G.client.connect_signal('unfocus', function(c) c.border_color = beautiful.border_normal end)