.\" Generated by scdoc 1.11.5 .\" Complete documentation for this program is not available as a GNU info page .ie \n(.g .ds Aq \(aq .el .ds Aq ' .nh .ad l .\" Begin generated content: .TH "wleave.json" "5" "2026\-10\-23" .PP .SH NAME .PP wleave.\&json \- layout JSON file and configuration options .PP .SH TOP\-LEVEL\-OPTIONS .PP The top\-level options directly correspond to their long\-version command\-line option counter parts.\& Button layout is specified in the extra \fB"button"\fR field.\& .PP \fB"buttons"\fR: .RS 4 See section \fBLAYOUT\fR for structure .PP .RE \fB"button\-layout"\fR: <\fB"grid"\fR> .RS 4 Specify the way buttons should be laid out, "grid" being the default.\& Currently, only "grid" is supported.\& .PP .RE \fB"css"\fR: .RS 4 Specify a custom CSS file instead of the default one .PP .RE \fB"service"\fR: .RS 4 Run the application as a service, with all instances of wleave opening this one.\& Allows faster startup at the cost of running in the background.\& .br \fBDefault\fR: false .PP .RE \fB"buttons\-per\-row"\fR: .RS 4 Set the number of buttons per row, or use a fraction to specify the number of rows to be used (e.\&g.\& "1/1" for all buttons in a single row, "1/5" to distribute the buttons over 5 rows) .br \fBDefault\fR: "3" .PP .RE \fB"column\-spacing"\fR: px" / "%"> .RS 4 Set space between button columns .br \fBDefault\fR: "8px" .PP .RE \fB"row\-spacing"\fR: px" / "%"> .RS 4 Set space between button rows .br \fBDefault\fR: "8px" .PP .RE \fB"margin"\fR: px" / "%"> .RS 4 Set margin on all sides .br \fBDefault\fR: "20%" (of window size) .PP .RE \fB"margin\-left"\fR px" / "%"> .RS 4 Set margin for left of buttons .br Falls back to the value set by \fBmargin\fR .PP .RE \fB"margin\-right"\fR px" / "%"> .RS 4 Set margin for right of buttons .br Falls back to the value set by \fBmargin\fR .PP .RE \fB"margin\-top"\fR px" / "%"> .RS 4 Set margin for top of buttons .br Falls back to the value set by \fBmargin\fR .PP .RE \fB"margin\-bottom"\fR px" / "%"> .RS 4 Set margin for bottom of buttons .br Falls back to the value set by \fBmargin\fR .PP .RE \fB"button\-aspect\-ratio"\fR .RS 4 Set the aspect ratio of the buttons, either as a float (as a number or string) or a ratio (e.\&g.\& "5/4").\& .br If unspecified, the buttons fill all available space between the margins.\& .PP .RE \fB"close\-on\-lost\-focus"\fR: <\fBtrue\fR/\fBfalse\fR> .RS 4 Closes the menu if focus is lost .br \fBDefault\fR: false .PP .RE \fB"show\-keybinds"\fR: <\fBtrue\fR/\fBfalse\fR> .RS 4 Show the associated key binds for each button .br \fBDefault\fR: false .PP .RE \fB"protocol"\fR: <\fB"layer\-shell"\fR/\fB"xdg"\fR/\fB"none"\fR> .RS 4 The layer\-shell protocol is the intended protocol to be used with wleave, however it requires compositor support .br \fBDefault\fR: "layer\-shell" .PP .RE \fB"no\-version\-info"\fR: <\fBtrue\fR/\fBfalse\fR> .RS 4 Hides the version label .br \fBDefault\fR: false .PP .RE \fB"delay\-command\-ms"\fR: .RS 4 The number of milliseconds to wait after an action before the associated command is executed .br \fBDefault\fR: 100 .PP .RE .SH LAYOUT .PP wleave buttons may have the following properties: .PP .PD 0 .IP \(bu 4 \fB"label"\fR (string) \- internal name of the button that can be used in CSS as an identifier .IP \(bu 4 \fB"action"\fR (command string or object or list thereof) \- the action that will be executed via shell upon pressing the button .IP \(bu 4 \fB"text"\fR (string) \- the visible label text of the button .IP \(bu 4 \fB"keybind"\fR (string) \- a GTK key name associated with the button .IP \(bu 4 \fB"icon"\fR (path string) \- filename to load an icon image from .IP \(bu 4 \fB"height"\fR (\fBoptional\fR, number) \- value in the range 0.\&0 to 1.\&0 to override the placement of the label in the button .IP \(bu 4 \fB"width"\fR (\fBoptional\fR, number) \- value in the range 0.\&0 to 1.\&0 to override the placement of the label in the button .IP \(bu 4 \fB"circular"\fR (\fBoptional\fR, boolean, default false) .PD .PP The action field can be an object with exactly one of `shell` or `executable` properties set.\& The `shell` action executes the given command in the system shell, while the `executable` action executes the specified binary, assuming it in `$PATH`.\& \`executable` actions get filtered if the specified executable does not exist, allowing multiple possible options.\& .PP Any extra properties in the `action` objects are interpreted as filters.\& Currently, only environment variable filtering is implemented, where the values fields prefixed with `$` are matched as conditions for the given action.\& .PP The action field can also be an array where the first matching command is picked.\& .PP For example, in the following example, the `loginctl lock\-session` command is executed on GNOME, while other desktop environments will try either `gtklock` or `swaylock` in that order.\& .PP .nf .RS 4 "action": [ { "$DESKTOP_SESSION": "gnome", "shell": "loginctl lock\-session" }, { "executable": "gtklock" }, { "executable": "swaylock" } ] .fi .RE .PP .SH FILE .PP Example file: .PP .nf .RS 4 { "close\-on\-lost\-focus": true, "show\-keybinds": true, "buttons\-per\-row": "1/1", "buttons": [ { "label": "lock", "action": "swaylock", "text": "Lock", "keybind": "l", "icon": "/usr/share/wleave/icons/lock\&.svg" } ] } .fi .RE .PP .SH AUTHORS .PP Based on Wlogout by Haden Collins .\& For more information about wlogout, see .\& Rewrite by Natty , see .\& .PP .SH SEE ALSO .PP \fBwleave\fR(5) \fBwleave\fR(1)