Unexpected flickering/shadow/border?

Author: lalityalamanchiliCreated Jul 13, 2026Updated Jul 13, 2026

https://github.com/user-attachments/assets/578c1973-b89f-4f78-81ca-6a0542d743b2

lua
local colors = require("colors")

sbar.add("item", "apple.logo", {
    position = "left",

    icon = {
        string = "",
        color = colors.text,
        font = {
            size = 18,
        },
        y_offset = 2,
    },

    label = {
        drawing = false,
    },

    padding_left = 8,
    padding_right = 10,
})

local spaces = {}
local space_names = {}

sbar.exec("aerospace list-workspaces --all", function(space_list)
    for name in space_list:gmatch("[^\r\n]+") do
        local item_name = "space." .. name


        local left_spacer = sbar.add("item", "left_spacer", {
            position = "left",

            width = 4,

            icon = {
                drawing = false,
            },

            label = {
                drawing = false,
            },

            background = {
                drawing = false,
            },
        })

        local space = sbar.add("item", item_name, {
            position = "left",

            icon = {
                drawing = false,
            },

            label = {
                drawing = false,
            },

            width = 12,

            background = {
                drawing = true,
                color = colors.grey,
                height = 12,
                corner_radius = 999,
            },
        })

        spaces[name] = space
        table.insert(space_names, item_name)

        -- Don't add a gap after workspace 6
        if name ~= "6" then
            local spacer_name = item_name .. ".gap"

            sbar.add("item", spacer_name, {
                position = "left",

                width = 8,

                icon = {
                    drawing = false,
                },

                label = {
                    drawing = false,
                },

                background = {
                    drawing = false,
                },
            })

            table.insert(space_names, spacer_name)
        else
            local spacer_name = item_name .. ".gap"

            sbar.add("item", spacer_name, {
                position = "left",

                width = 4,

                icon = {
                    drawing = false,
                },

                label = {
                    drawing = false,
                },

                background = {
                    drawing = false,
                },
            })

            table.insert(space_names, spacer_name)
        end


        space:subscribe("aerospace_workspace_changed", function(env)
            local selected = env.FOCUSED_WORKSPACE == name

            sbar.animate("tanh", 12, function()
                space:set({
                    width = selected and 28 or 12,

                    background = {
                        color = selected and colors.text or colors.grey,
                    },
                })
            end)
        end)
    end

    table.insert(space_names, 1, "left_spacer")

    sbar.add("bracket", space_names, {
        position = "left",
        background = {
            color = colors.with_alpha(0xff000000, 0.2),
            height = 24,
            corner_radius = 999,
        },
    })

    local front_app = sbar.add("item", "front_app", {
        position = "left",

        icon = {
            drawing = false,
        },

        label = {
            string = "",
            color = colors.text,

            font = {
                size = 18,
            },
        },

        y_offset = 1,
        padding_left = 16,
        padding_right = 8,
    })

    local function update_front_app()
        sbar.exec(
            [[osascript -e 'tell application "System Events" to get name of first application process whose frontmost is true']],
            function(app)
                front_app:set({
                    label = {
                        string = app:gsub("%s+$", ""),
                    },
                })
            end
        )
    end

    update_front_app()

    front_app:subscribe("front_app_switched", function()
        update_front_app()
    end)

    front_app:subscribe("forced", function()
        update_front_app()
    end)
end)