Skip to main content

gears

The gears library provides utility functions used throughout AwesomeWM/SomeWM. It includes timers, shapes, color manipulation, filesystem helpers, and more.

Upstream documentation: The gears library spans multiple sections in the AwesomeWM docs:

Key Modules

ModulePurpose
gears.timerPeriodic and one-shot timers
gears.shapeDrawing shapes (rounded rectangles, circles, etc.)
gears.colorColor parsing and manipulation
gears.surfaceCairo surface helpers
gears.filesystemFile and directory utilities
gears.stringString manipulation
gears.tableTable utilities
gears.mathMath helpers
gears.wallpaperWallpaper setting

Common Patterns

Timers

local gears = require("gears")

-- Repeating timer
local mytimer = gears.timer({
timeout = 60,
autostart = true,
callback = function()
-- runs every 60 seconds
end
})

-- One-shot delayed call
gears.timer.delayed_call(function()
-- runs once on next iteration
end)

Shapes

local gears = require("gears")

-- Rounded rectangle
widget.shape = function(cr, w, h)
gears.shape.rounded_rect(cr, w, h, 8)
end

Behavioral Notes

SomeWM's gears implementation is fully compatible with AwesomeWM.