aboutsummaryrefslogtreecommitdiff
path: root/.config/awesome/signals
diff options
context:
space:
mode:
authordelta <darkussdelta@gmail.com>2023-04-04 15:43:40 +0200
committerdelta <darkussdelta@gmail.com>2023-04-04 15:43:40 +0200
commitf7116d268aff3fae88d8de408e8c807295618a5c (patch)
tree6f52530d5799769e6af7c63bc5108f16f9aff742 /.config/awesome/signals
parentf0b32f45746c026d402651013b7e98315d6956a1 (diff)
restructure and improve config
Diffstat (limited to '.config/awesome/signals')
-rw-r--r--.config/awesome/signals/awesome.lua32
-rw-r--r--.config/awesome/signals/client.lua34
-rw-r--r--.config/awesome/signals/init.lua5
-rw-r--r--.config/awesome/signals/naughty.lua54
-rw-r--r--.config/awesome/signals/screen.lua56
5 files changed, 181 insertions, 0 deletions
diff --git a/.config/awesome/signals/awesome.lua b/.config/awesome/signals/awesome.lua
new file mode 100644
index 0000000..37b9bdb
--- /dev/null
+++ b/.config/awesome/signals/awesome.lua
@@ -0,0 +1,32 @@
+-- Taken from https://www.reddit.com/r/awesomewm/comments/syjolb/comment/hy0xy35/
+
+awesome.connect_signal('exit', function(reason_restart)
+ if not reason_restart then return end
+
+ local file = io.open('/tmp/awesomewm-last-selected-tags', 'w+')
+
+ for s in screen do
+ file:write(s.selected_tag.index, '\n')
+ end
+
+ file:close()
+end)
+
+awesome.connect_signal('startup', function()
+ local file = io.open('/tmp/awesomewm-last-selected-tags', 'r')
+ if not file then return end
+
+ local selected_tags = {}
+
+ for line in file:lines() do
+ table.insert(selected_tags, tonumber(line))
+ end
+
+ for s in screen do
+ local i = selected_tags[s.index]
+ local t = s.tags[i]
+ t:view_only()
+ end
+
+ file:close()
+end)
diff --git a/.config/awesome/signals/client.lua b/.config/awesome/signals/client.lua
new file mode 100644
index 0000000..31f3d9c
--- /dev/null
+++ b/.config/awesome/signals/client.lua
@@ -0,0 +1,34 @@
+local qvars = require "quarrel.vars"
+local rectangle = require "gears.shape".rectangle
+
+-- io.popen spams logs, don't use
+-- client.connect_signal("property::name", function(c)
+-- if not c.pid then return end
+-- local out = io.popen("readlink /proc/" .. c.pid .. "/exe")
+-- local name = c.name
+-- if out ~= nil then
+-- name = out:read("*a"):sub(0, -2):match("[^\\/]+$") or name
+-- end
+-- c.name = string.lower(name)
+-- end)
+
+client.connect_signal("request::manage", function (c)
+ c.shape = qvars.shape
+ if c.maximized then
+ c.maximized = false
+ c.maximized = true
+ end
+end)
+
+local function handle_corners(c)
+ if c.maximized then
+ c.shape = rectangle
+ c.border_width = 0
+ else
+ c.shape = qvars.shape
+ c.border_width = qvars.border_width
+ end
+end
+
+client.connect_signal("property::maximized", handle_corners)
+client.connect_signal("property::fullscreen", handle_corners)
diff --git a/.config/awesome/signals/init.lua b/.config/awesome/signals/init.lua
new file mode 100644
index 0000000..69c74b5
--- /dev/null
+++ b/.config/awesome/signals/init.lua
@@ -0,0 +1,5 @@
+require "signals.awesome"
+require "signals.naughty"
+require "signals.screen"
+require "signals.client"
+
diff --git a/.config/awesome/signals/naughty.lua b/.config/awesome/signals/naughty.lua
new file mode 100644
index 0000000..49187c0
--- /dev/null
+++ b/.config/awesome/signals/naughty.lua
@@ -0,0 +1,54 @@
+local naughty = require "naughty"
+local awful = require "awful"
+local beautiful = require "beautiful"
+local wibox = require "wibox"
+local qvars = require "quarrel.vars"
+
+naughty.connect_signal("request::display", function(n)
+ naughty.layout.box {
+ notification = n,
+ placement = function(d)
+ return awful.placement.right(d, {
+ margins = beautiful.useless_gap * 2
+ })
+ end,
+ widget_template = {
+ widget = wibox.container.margin,
+ margins = qvars.big_padding,
+ {
+ {
+ widget = naughty.widget.icon,
+ notification = n
+ },
+ {
+ widget = wibox.container.place,
+ valign = "center",
+ halign = "center",
+ {
+ {
+ widget = naughty.widget.title,
+ notification = n
+ },
+ {
+ widget = naughty.widget.message,
+ notification = n
+ },
+ -- spacing = 4,
+ layout = wibox.layout.fixed.vertical,
+ }
+ },
+ fill_space = true,
+ spacing = n.icon and qvars.big_padding or 0,
+ layout = wibox.layout.fixed.horizontal
+ }
+ }
+ }
+end)
+
+naughty.connect_signal("request::display_error", function(message, startup)
+ naughty.notification {
+ urgency = "critical",
+ title = "Oops, an error happened"..(startup and " during startup!" or "!"),
+ message = message
+ }
+end)
diff --git a/.config/awesome/signals/screen.lua b/.config/awesome/signals/screen.lua
new file mode 100644
index 0000000..ea247a3
--- /dev/null
+++ b/.config/awesome/signals/screen.lua
@@ -0,0 +1,56 @@
+local awful = require "awful"
+
+screen.connect_signal("request::desktop_decoration", function(s)
+ awful.tag.add(
+ "1",
+ {
+ screen = s,
+ layout = awful.layout.suit.floating,
+ selected = true
+ }
+ )
+
+ awful.tag.add(
+ "2",
+ {
+ screen = s,
+ layout = awful.layout.suit.floating,
+
+ }
+ )
+
+ awful.tag.add(
+ "3",
+ {
+ screen = s,
+ layout = awful.layout.suit.tile.left,
+ master_width_factor = 0.7
+ }
+ )
+
+ awful.tag.add(
+ "4",
+ {
+ screen = s,
+ layout = awful.layout.suit.tile.top,
+ master_width_factor = 0.2
+ }
+ )
+
+ awful.tag.add(
+ "5",
+ {
+ screen = s,
+ layout = awful.layout.suit.tile.right,
+ master_width_factor = 0.7
+ }
+ )
+
+ awful.tag.add(
+ "6",
+ {
+ screen = s,
+ layout = awful.layout.suit.floating,
+ }
+ )
+end)