~ruther/dwl

14063d58bbe2a262cf39b875f89a20493fe86afa — Devin J. Pohly 5 years ago f19d00b
Handle missing XDG_RUNTIME_DIR explicitly

Also update the documentation to indicate that this is a Wayland thing
and not dwl-specific.
2 files changed, 15 insertions(+), 4 deletions(-)

M README.md
M dwl.c
M README.md => README.md +8 -4
@@ 74,16 74,20 @@ this process a SIGTERM and wait for it to terminate (if it hasn't already).
This makes it ideal not only for initialization but also for execing into a
user-level service manager like s6 or `systemd --user`.

You'll have to explicitly set `XDG_RUNTIME_DIR` if your system doesn't do it for
you, e.g. `export XDG_RUNTIME_DIR=/tmp/xdg-runtime-$USER && mkdir -p
$XDG_RUNTIME_DIR`.

More/less verbose output can be requested with flags as well:

* `-q`: quiet (log level WLR_SILENT)
* `-v`: verbose (log level WLR_INFO)
* `-d`: debug (log level WLR_DEBUG)

Note: Wayland requires a valid `XDG_RUNTIME_DIR`, which is usually set up by a
session manager such as `elogind` or `systemd-logind`.  If your system doesn't
do this automatically, you will need to configure it prior to launching `dwl`,
e.g.:

    export XDG_RUNTIME_DIR=/run/user/$(id -u)
    mkdir -p $XDG_RUNTIME_DIR


## Known limitations and issues


M dwl.c => dwl.c +7 -0
@@ 1527,6 1527,13 @@ main(int argc, char *argv[])
		goto usage;
	wlr_log_init(loglevel, NULL);

	// Wayland requires XDG_RUNTIME_DIR for creating its communications
	// socket
	if (!getenv("XDG_RUNTIME_DIR")) {
		fprintf(stderr, "XDG_RUNTIME_DIR must be set\n");
		exit(EXIT_FAILURE);
	}

	/* The Wayland display is managed by libwayland. It handles accepting
	 * clients from the Unix socket, manging Wayland globals, and so on. */
	dpy = wl_display_create();

Do not follow this link