// feh's Go tools bundle (novox/hq ADR 0188, ADR 0193, ADR 0208): the wallpaper's tools, served by the // node's runtime as the operator account. package main import ( "fmt" "os" stdio "git.novox.be/novox/mesh-sdk/go" ) func main() { if err := stdio.Serve("", tools()); err != nil { fmt.Fprintln(os.Stderr, err) os.Exit(1) } } func tools() []stdio.Tool { return []stdio.Tool{ { Name: "feh_set", Description: "Set the wallpaper in the operator's session: one image for every monitor, or one per " + "monitor in the X screen order, filled, centred, scaled to fit, stretched or tiled. Lasts until the " + "next session start, when the declared wallpaper returns; the declared one is untouched.", Input: map[string]any{ "type": "object", "properties": map[string]any{ "images": map[string]any{"type": "array", "items": map[string]any{"type": "string"}, "description": "image files on this machine, absolute or under the account's home; one per monitor, or one for all"}, "mode": map[string]any{"type": "string", "enum": modes, "description": "default fill"}, }, "required": []string{"images"}, }, Run: func(args map[string]any) (any, error) { images, err := texts(args, "images") if err != nil { return nil, err } mode, err := text(args, "mode", false) if err != nil { return nil, err } return Set(images, mode) }, }, { Name: "feh_current", Description: "The wallpaper: the declared one the session start sets (images and mode, read from " + "~/.fehbg), and the one feh_set put up in this session, if any.", Run: func(map[string]any) (any, error) { return Current() }, }, } }