local gears = require("gears") local awful = require("awful") local wibox = require("wibox") local beautiful = require("beautiful") -- Signal function to execute when a new client appears. 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 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 end) -- Add a titlebar if titlebars_enabled is set to true in the rules. client.connect_signal("request::titlebars", function(c) -- buttons for the titlebar local buttons = gears.table.join( awful.button({}, 1, function() c:emit_signal("request::activate", "titlebar", { raise = true }) awful.mouse.client.move(c) end), awful.button({}, 3, function() c:emit_signal("request::activate", "titlebar", { raise = true }) awful.mouse.client.resize(c) end) ) awful.titlebar(c):setup({ { -- Left awful.titlebar.widget.iconwidget(c), buttons = buttons, layout = wibox.layout.fixed.horizontal, }, { -- Middle { -- Title align = "center", widget = awful.titlebar.widget.titlewidget(c), }, buttons = buttons, layout = wibox.layout.flex.horizontal, }, { -- Right awful.titlebar.widget.floatingbutton(c), awful.titlebar.widget.maximizedbutton(c), awful.titlebar.widget.stickybutton(c), awful.titlebar.widget.ontopbutton(c), awful.titlebar.widget.closebutton(c), layout = wibox.layout.fixed.horizontal(), }, layout = wibox.layout.align.horizontal, }) end) client.connect_signal("focus", function(c) c.border_color = beautiful.border_focus end) client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)