From 76b1b9ee072b99ad0a000ec2719326d4b480ec38 Mon Sep 17 00:00:00 2001
From: Tim Keller <tjkeller.xyz>
Date: Sat, 12 Apr 2025 16:22:26 -0500
Subject: remove unused func and tasklist filter change for max layout

---
 widgets/tasklist.lua | 71 ++++++++++++++++++++++++++++------------------------
 1 file changed, 38 insertions(+), 33 deletions(-)

(limited to 'widgets/tasklist.lua')

diff --git a/widgets/tasklist.lua b/widgets/tasklist.lua
index 3acd07f..76616bf 100644
--- a/widgets/tasklist.lua
+++ b/widgets/tasklist.lua
@@ -5,28 +5,39 @@ local beautiful = require("beautiful")
 
 local separator = { widget = wibox.widget.separator, opacity = 0 }
 
-function tooltip_tag_clients()
-	local text = ""
-	for _, c in ipairs(awful.screen.focused():get_clients(false)) do
-		local ctext = c.name
-		if c == client.focus then
-			ctext = "* " .. ctext
-		end
-		text = text .. ctext .. "\n"
-	end
-	return text:sub(1, -2) -- remove last newline
-end
-
-function create_tasklist(s)
-	local tasklist = awful.widget.tasklist {
+function create_tasklist_widget(s, filter, font_focus)
+	return awful.widget.tasklist {
 		screen  = s,
-		filter  = awful.widget.tasklist.filter.focused,
+		filter  = filter,
 		buttons = tasklist_buttons,
 		widget_template = {
 			id     = "text_role",
 			widget = wibox.widget.textbox,
 			align  = "center",
 		},
+		style = {
+			font_focus = font_focus,
+		},
+	}
+end
+
+function create_tasklist(s)
+	-- allow for different styles for different layouts
+	local tasklist_focused     = create_tasklist_widget(s, awful.widget.tasklist.filter.focused,     beautiful.tasklist_font)
+	local tasklist_currenttags = create_tasklist_widget(s, awful.widget.tasklist.filter.currenttags, beautiful.tasklist_font_focus)
+
+	local change_layout = function(layout)
+		local max = layout == awful.layout.suit.max
+		tasklist_currenttags:set_visible(max)
+		tasklist_focused:set_visible(not max)
+	end
+	change_layout(s.selected_tag.layout)
+
+	-- setup widgets
+	local tasklist = wibox.widget {
+		layout = wibox.layout.stack,
+		tasklist_currenttags,
+		tasklist_focused,
 	}
 
 	local popup = wibox_tooltip(tasklist, awful.widget.tasklist {
@@ -45,6 +56,18 @@ function create_tasklist(s)
 		},
 	})
 
+	-- setup signals to change tasklist filter on layout changes
+	local change_layout_from_tag = function(t)
+		if t.screen ~= s then return end
+		change_layout(t.layout)
+	end
+	tag.connect_signal("property::layout",   change_layout_from_tag)
+	tag.connect_signal("property::selected", change_layout_from_tag)
+	tag.connect_signal("tagged",             change_layout_from_tag)
+	tag.connect_signal("untagged",           change_layout_from_tag)
+	tag.connect_signal("property::screen",   change_layout_from_tag)
+
+	-- return widget
 	return wibox.widget {
 		layout = wibox.layout.align.horizontal,
 		expand = "outside",
@@ -54,22 +77,4 @@ function create_tasklist(s)
 	}
 end
 
----- signal for changing tasklist filter based on layout
----- DOESNT WORK TODO
---local naughty = require("naughty")
---s:connect_signal("property::layout", function()
---	naughty.notify({
---		title = "Hello, AwesomeWM!",
---		text = "This is a notification.",
---		timeout = 5,  -- Timeout in seconds
---		position = "top_right"  -- Position on the screen
---	})
---	if awful.layout.get(s) == awful.layout.suit.max then
---		s.mytasklist.filter = awful.widget.tasklist.filter.currenttags
---	else
---		s.mytasklist.filter = awful.widget.tasklist.filter.focused
---	end
---end
---)
-
 return create_tasklist
-- 
cgit v1.2.3