.\" 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 "labwc" "1" "2026\-08\-22" .PP .SH NAME .PP labwc \- a Wayland stacking compositor .PP .SH SYNOPSIS .PP \fBlabwc\fR [options.\&.\&.\&] .PP .SH DESCRIPTION .PP Labwc is a wlroots\-based stacking compositor for wayland.\& .PP It is light\-weight and independent with a focus on simply stacking windows well and rendering some window decorations.\& Where practicable it uses clients for wall\-paper, panels, screenshots and so on.\& .PP .SH SIGNALS .PP The compositor will exit or reload its configuration upon receiving SIGTERM and SIGHUP respectively.\& For example: .PP .nf .RS 4 kill \-s $LABWC_PID killall \-s labwc .fi .RE .PP Each running instance of labwc sets the environment variable `LABWC_PID` to its PID.\& This is useful for sending signals to a specific instance and is what the `\-\-exit` and `\-\-reconfigure` options use.\& .PP .SH OPTIONS .PP \fB\-c, \-\-config\fR .RS 4 Specify a config file with path .PP .RE \fB\-C, \-\-config\-dir\fR .RS 4 Specify a config directory .PP .RE \fB\-d, \-\-debug\fR .RS 4 Enable full logging, including debug information.\& See \fBENVIRONMENT VARIABLES\fR section below for further options.\& .PP .RE \fB\-e, \-\-exit\fR .RS 4 Exit the compositor by sending SIGTERM to `$LABWC_PID` .PP .RE \fB\-h, \-\-help\fR .RS 4 Show help message and quit .PP .RE \fB\-m, \-\-merge\-config\fR .RS 4 Merge user config/theme files in all XDG Base Directories .PP .RE \fB\-r, \-\-reconfigure\fR .RS 4 Reload the compositor configuration by sending SIGHUP to `$LABWC_PID` .PP .RE \fB\-s, \-\-startup\fR .RS 4 Run command on startup .PP .RE \fB\-S, \-\-session\fR .RS 4 Run command on startup and terminate compositor on exit.\& This is useful for session management as it allows the session client to terminate labwc by exiting itself.\& This is a Wayland specific use\-case because under X, xinit starts the server and keeps it alive for as long as the session client.\& Thus either the session client starts the Window Manager, or the Window Manager can be launched independently first.\& On Wayland, the Compositor is both Display Server and Window Manager, so the described session management mechanisms do not work because the Compositor needs to be running before the session can function.\& As some session clients support both X11 and Wayland, this command line option avoids re\-writes and fragmentation.\& .PP .RE \fB\-t, \-\-title\fR .RS 4 Set the window title for labwc to use when it is running in a window (i.\&e.\& nested in a compositor).\& is a format string to be used as the window title, replacing `%o` with the name of the output region.\& This is useful when simulating multiple screens, such as with running labwc with the environment variable `WLR_WL_OUTPUTS=2`.\& In this case, `%o` will be unique per simulated screen.\& .PP .RE \fB\-v, \-\-version\fR .RS 4 Show the version number and quit .PP .RE \fB\-V, \-\-verbose\fR .RS 4 Enable more verbose logging .PP .RE .SH SESSION MANAGEMENT .PP To enable the use of graphical clients launched via D\-Bus or systemd service activation, labwc can update both activation environments on launch.\& Provided that labwc is aware of an active D\-Bus user session (\fBi.\&e.\&\fR, the environment variable `DBUS_SESSION_BUS_ADDRESS` is defined), the compositor will invoke the commands .PP .nf .RS 4 dbus\-update\-activation\-environment systemctl \-\-user import\-environment .fi .RE .PP (when available) to notify D\-Bus and systemd with the values of the following environment variables: .PP .nf .RS 4 WAYLAND_DISPLAY DISPLAY XDG_CURRENT_DESKTOP XDG_SESSION_TYPE XCURSOR_SIZE XCURSOR_THEME LABWC_PID .fi .RE .PP This behavior is enabled by default whenever labwc uses the "DRM" wlroots backend (which implies that labwc is the primary compositor on the console).\& When other backends are employed (for example, when labwc runs nested in another Wayland compositor or an X11 server), updates to the activation environment are disabled by default.\& Updates to the activation environment can be forced by setting the environment variable `LABWC_UPDATE_ACTIVATION_ENV` to one of the truthy values `1`, `true`, `yes` or `on`; or suppressed by setting the variable to one of the falsy values `0`, `false`, `no` or `off`.\& .PP Whenever labwc updates the activation environment on launch, it will also attempt to clear the activation environment on exit.\& For D\-Bus, which does not provide a means for properly un\-setting variables in the activation environment, this is accomplished by setting the session variables to empty strings.\& For systemd, the command `systemctl \-\-user unset\-environment` will be invoked to actually remove the variables from the activation environment.\& .PP A systemd user unit named `labwc\-session.\&target` is also shipped alongside the compositor for users who want to integrate labwc with systemd.\& It binds to the standard `graphical\-session.\&target`, so systemd user services can start and stop in sync with the labwc session when they declare a WantedBy or PartOf relationship to that target.\& Labwc does not activate the target itself; users opt in by adding lines like the following to their \fBautostart\fR and \fBshutdown\fR files: .PP .nf .RS 4 systemctl \-\-user \-\-no\-block start labwc\-session\&.target systemctl \-\-user stop graphical\-session\&.target .fi .RE .PP The example \fBautostart\fR and \fBshutdown\fR files shipped with labwc include these commented out.\& To have a user service automatically started with the session, enable it so the corresponding symlink under the graphical\-session.\&target.\&wants directory exists, for example by running "systemctl \-\-user enable dms.\&service".\& .PP .SH ENVIRONMENT VARIABLES .PP Set the environment variables listed below to enable specific debug options.\& This can be done in either the \fBenvironment\fR file or on the command line, for example: \fBLABWC_DEBUG_FOO=1 labwc\fR.\& .PP \fBLABWC_DEBUG_LIBSFDO\fR .RS 4 Enable debug and info logging for libsfdo, for example for parsing of desktop files and searching for icons.\& Note that libsfdo error logging is always enabled regardless of this environment variable but will only be shown with the \fB\-V|\-\-version\fR option.\& .PP .RE \fBLABWC_DEBUG_DIR_CONFIG_AND_THEME\fR .RS 4 Increase logging of paths for config files (for example rc.\&xml, autostart, environment and menu.\&xml) as well as titlebar buttons.\& .PP .RE \fBLABWC_DEBUG_CONFIG_NODENAMES\fR .RS 4 Enable logging of all nodenames (for example \fBpolicy.\&placement: Cascade\fR for \fBCascade\fR) for config and menu files respectively.\& .PP .RE \fBLABWC_DEBUG_KEY_STATE\fR .RS 4 Enable logging of press and release events for bound keys (generally key\-combinations like \fBCtrl\-Alt\-t\fR).\& .PP .RE .SH SEE ALSO .PP labwc\-actions(5), labwc\-config(5), labwc\-menu(5), labwc\-theme(5)