A picture of a beige cartoon ghost with triangular red sunglasses
Software
Lua-configured input daemon for Xorg
Binding Example → Mouse cursor as volume slider
function volume_slider(x, y, wid) local max_y = lucky.get_geometry(lucky.get_root()).height - 1 local percent = math.floor(((max_y - y) / max_y) * 100) lucky.cmd( 'pactl', 'set-sink-volume', '@DEFAULT_SINK@', tostring(percent) .. '%' ) end lucky.bind("mouse_left", { filter = function(x, y, wid) return x == 0 end, press = volume_slider, motion = volume_slider })
Region selector for X and Wayland
Libraries
A simple argument parser for Zig
Example usage
const allocator = std.heap.page_allocator; var args_iterator = std.process.args(); const options = try accord.parse(&.{ accord.option('s', "string", []const u8, "default", .{}), accord.option('c', "color", u32, 0x000000, .{ .radix = 16 }), accord.option('f', "float", f32, 0.0, .{}), accord.option('m', "mask", accord.Mask(u8), 0, .{}), // option without long option accord.option('a', "", accord.Flag, {}, .{}), // option without short option accord.option(0, "option", accord.Flag, {}, .{}), accord.option('i', "intarray", [2]?u32, .{ 0, 0 }, .{ .array_delimiter = "%" }), }, allocator, &args_iterator); defer options.positionals.deinit(allocator);
Zig library for deserializing Aseprite files
Misc