local file_path, image_path = ... require("_common_template")(...) local beautiful = require( "beautiful" ) local wibox = require( "wibox" ) local surface = require( "gears.surface" ) local shape = require( "gears.shape" ) -- Let the test request a size and file format local before, after = loadfile(file_path)() local container = wibox.widget { { { { before, shape_border_color = beautiful.border_color, shape_border_width = beautiful.border_width, shape = shape.rounded_rect, widget = wibox.container.background, }, strategy = 'exact', width = 70, height = 40, widget = wibox.container.constraint }, { { { text = " ", widget = wibox.widget.textbox, }, bg = beautiful.bg_normal, shape_border_color = beautiful.border_color, shape_border_width = beautiful.border_width, widget = wibox.container.background, shape = shape.transform(shape.arrow) : rotate_at(15,15,math.pi/2) : translate(0,-8) : scale(0.9, 0.9), }, strategy = 'exact', width = 42, height = 40, widget = wibox.container.constraint }, { { after, shape_border_color = beautiful.border_color, shape_border_width = beautiful.border_width, shape = shape.rounded_rect, widget = wibox.container.background, }, strategy = 'exact', width = 70, height = 40, widget = wibox.container.constraint }, layout = wibox.layout.align.horizontal }, margins = 10, widget = wibox.container.margin, } -- Emulate the event loop for 10 iterations for _ = 1, 10 do awesome:emit_signal("refresh") end -- Get the example fallback size (the tests can return a size if the want) local f_w, f_h = container:fit({dpi=96}, 9999, 9999) -- Save to the output file local img = surface.widget_to_svg(container, image_path..".svg", f_w, f_h) img:finish()