added signals

This commit is contained in:
Noella
2024-03-04 19:26:46 -07:00
parent ee40c1c42c
commit 8464403fca
4 changed files with 73 additions and 70 deletions

View File

@@ -3,6 +3,7 @@ local _M = {
rules = require("main.rules"), rules = require("main.rules"),
layouts = require("main.layouts"), layouts = require("main.layouts"),
taglist = require("main.taglist"), taglist = require("main.taglist"),
signals = require("main.signals"),
user_vars = require("main.user_vars"), user_vars = require("main.user_vars"),
} }

View File

@@ -12,7 +12,6 @@ function _M.get(clientkeys, clientbuttons)
border_color = beautiful.border_normal, border_color = beautiful.border_normal,
focus = awful.client.focus.filter, focus = awful.client.focus.filter,
raise = true, raise = true,
titlebars_enabled = false,
keys = clientkeys, keys = clientkeys,
buttons = clientbuttons, buttons = clientbuttons,
screen = awful.screen.preferred, screen = awful.screen.preferred,
@@ -65,7 +64,7 @@ function _M.get(clientkeys, clientbuttons)
}, },
{ {
rule = { class = "Firefox" }, rule = { instance = "Firefox" },
properties = { properties = {
screen = 1, screen = 1,
tag = RC.tags[2], tag = RC.tags[2],
@@ -74,7 +73,7 @@ function _M.get(clientkeys, clientbuttons)
}, },
{ {
rule = { class = "Discord" }, rule = { instance = "Discord" },
properties = { properties = {
screen = 1, screen = 1,
tag = RC.tags[6], tag = RC.tags[6],

View File

@@ -0,0 +1,68 @@
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)
-- Enable sloppy focus, so that focus follows mouse.
client.connect_signal("mouse::enter", function(c)
c:emit_signal("request::activate", "mouse_enter", { raise = false })
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)

69
rc.lua
View File

@@ -10,7 +10,6 @@ local menubar = require("menubar")
local hotkeys_popup = require("awful.hotkeys_popup") local hotkeys_popup = require("awful.hotkeys_popup")
local main = require("main") local main = require("main")
require("awful.autofocus") require("awful.autofocus")
require("main.error_handling")
beautiful.init(require("theme")) beautiful.init(require("theme"))
@@ -19,6 +18,8 @@ RC.vars = main.user_vars()
RC.layouts = main.layouts() RC.layouts = main.layouts()
RC.tags = main.taglist() RC.tags = main.taglist()
awful.spawn.with_shell("picom -b")
-- Table of layouts to cover with awful.layout.inc, order matters. -- Table of layouts to cover with awful.layout.inc, order matters.
awful.layout.layouts = RC.layouts awful.layout.layouts = RC.layouts
@@ -353,69 +354,3 @@ root.keys(globalkeys)
-- }}} -- }}}
awful.rules.rules = main.rules(clientkeys, clientbuttons) awful.rules.rules = main.rules(clientkeys, clientbuttons)
-- {{{ Signals
-- 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)
-- Enable sloppy focus, so that focus follows mouse.
client.connect_signal("mouse::enter", function(c)
c:emit_signal("request::activate", "mouse_enter", { raise = false })
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)
-- }}}