2021-03-05 22:14:02 +00:00
|
|
|
labwc(1)
|
|
|
|
|
|
|
|
|
|
# NAME
|
|
|
|
|
|
2024-03-03 19:33:10 -05:00
|
|
|
labwc - a Wayland stacking compositor
|
2021-03-05 22:14:02 +00:00
|
|
|
|
|
|
|
|
# SYNOPSIS
|
|
|
|
|
|
2024-01-13 19:51:20 +02:00
|
|
|
*labwc* [options...]
|
2021-03-05 22:14:02 +00:00
|
|
|
|
|
|
|
|
# DESCRIPTION
|
|
|
|
|
|
2022-05-31 22:37:26 +01:00
|
|
|
Labwc is a wlroots-based stacking compositor for wayland.
|
2021-04-10 09:19:35 +01:00
|
|
|
|
2022-05-31 22:37:26 +01:00
|
|
|
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.
|
2021-03-05 22:14:02 +00:00
|
|
|
|
2024-03-03 19:33:10 -05:00
|
|
|
# SIGNALS
|
|
|
|
|
|
2022-10-04 21:57:38 +01:00
|
|
|
The compositor will exit or reload its configuration upon receiving SIGTERM
|
2024-03-03 19:33:10 -05:00
|
|
|
and SIGHUP respectively. For example:
|
2022-10-04 21:57:38 +01:00
|
|
|
|
|
|
|
|
```
|
|
|
|
|
kill -s <signal> $LABWC_PID
|
|
|
|
|
killall -s <signal> labwc
|
|
|
|
|
```
|
|
|
|
|
|
2022-10-06 21:54:49 +01:00
|
|
|
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.
|
|
|
|
|
|
2021-03-05 22:14:02 +00:00
|
|
|
# OPTIONS
|
|
|
|
|
|
2022-10-06 21:54:26 +01:00
|
|
|
*-c, --config* <config-file>
|
2022-04-22 17:00:36 +01:00
|
|
|
Specify a config file with path
|
|
|
|
|
|
2022-10-06 21:54:26 +01:00
|
|
|
*-C, --config-dir* <config-directory>
|
2022-04-22 17:00:36 +01:00
|
|
|
Specify a config directory
|
2021-03-05 22:14:02 +00:00
|
|
|
|
2022-10-06 21:54:26 +01:00
|
|
|
*-d, --debug*
|
2024-12-27 22:19:35 +00:00
|
|
|
Enable full logging, including debug information. See *ENVIRONMENT
|
|
|
|
|
VARIABLES* section below for further options.
|
2021-03-05 22:14:02 +00:00
|
|
|
|
2022-10-06 21:54:49 +01:00
|
|
|
*-e, --exit*
|
2024-03-03 19:33:10 -05:00
|
|
|
Exit the compositor by sending SIGTERM to `$LABWC_PID`
|
2022-10-06 21:54:49 +01:00
|
|
|
|
2022-10-06 21:54:26 +01:00
|
|
|
*-h, --help*
|
2021-03-05 22:14:02 +00:00
|
|
|
Show help message and quit
|
|
|
|
|
|
config: support merging multiple config files
Add the -m|--merge-config command line option to iterate backwards over
XDG Base Dir paths and read config/theme files multiple times.
For example if both ~/.config/labwc/rc.xml and /etc/xdg/labwc/rc.xml
exist, the latter will be read first and then the former (if
--merge-config is enabled).
When $XDG_CONFIG_HOME is defined, make it replace (not augment)
$HOME/.config. Similarly, make $XDG_CONFIG_DIRS replace /etc/xdg when
defined.
XDG Base Dir Spec does not specify whether or not an application (or a
compositor!) should (a) define that only the file under the most important
base directory should be used, or (b) define rules for merging the
information from the different files.
ref: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
In the case of labwc there is a use-case for both positions, just to be
clear, the default behaviour, described by position (a) above, does NOT
change.
This change affects the following config/theme files:
- rc.xml
- menu.xml
- autostart
- environment
- themerc
- themerc-override
- Theme buttons, for example max.xbm
Instead of caching global config/theme directories, create lists of paths
(e.g. '/home/foo/.config/labwc/rc.xml', '/etc/xdg/labwc/rc.xml', etc).
This creates more common parsing logic and just reversing the direction
of iteration and breaks early if config-merge is not wanted.
Enable better fallback for themes. For example if a particular theme does
not exist in $HOME/.local/share/themes, it will be searched for in
~/.themes/ and so on. This also applies to theme buttons which now
fallback on an individual basis.
Avoid using stat() in most situations and just go straight to fopen().
Fixes #1406
2024-01-09 22:00:45 +00:00
|
|
|
*-m, --merge-config*
|
|
|
|
|
Merge user config/theme files in all XDG Base Directories
|
|
|
|
|
|
2022-10-06 21:54:49 +01:00
|
|
|
*-r, --reconfigure*
|
2024-03-03 19:33:10 -05:00
|
|
|
Reload the compositor configuration by sending SIGHUP to `$LABWC_PID`
|
2022-10-06 21:54:49 +01:00
|
|
|
|
2022-10-06 21:54:26 +01:00
|
|
|
*-s, --startup* <command>
|
2021-03-05 22:14:02 +00:00
|
|
|
Run command on startup
|
|
|
|
|
|
2024-03-09 17:12:54 +00:00
|
|
|
*-S, --session* <command>
|
|
|
|
|
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.
|
|
|
|
|
|
2022-10-06 21:54:26 +01:00
|
|
|
*-v, --version*
|
2021-03-05 22:14:02 +00:00
|
|
|
Show the version number and quit
|
|
|
|
|
|
2022-10-06 21:54:26 +01:00
|
|
|
*-V, --verbose*
|
2021-03-05 22:14:02 +00:00
|
|
|
Enable more verbose logging
|
|
|
|
|
|
2024-03-03 19:33:10 -05:00
|
|
|
# SESSION MANAGEMENT
|
|
|
|
|
|
2024-03-08 21:59:20 +09:00
|
|
|
To enable the use of graphical clients launched via D-Bus or systemd service
|
2024-03-03 19:33:10 -05:00
|
|
|
activation, labwc can update both activation environments on launch. Provided
|
|
|
|
|
that labwc is aware of an active D-Bus user session (*i.e.*, the environment
|
|
|
|
|
variable `DBUS_SESSION_BUS_ADDRESS` is defined), the compositor will invoke the
|
|
|
|
|
commands
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
dbus-update-activation-environment
|
|
|
|
|
systemctl --user import-environment
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
(when available) to notify D-Bus and systemd with the values of the following
|
|
|
|
|
environment variables:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
WAYLAND_DISPLAY
|
|
|
|
|
DISPLAY
|
|
|
|
|
XDG_CURRENT_DESKTOP
|
|
|
|
|
XDG_SESSION_TYPE
|
|
|
|
|
XCURSOR_SIZE
|
|
|
|
|
XCURSOR_THEME
|
2024-03-05 17:50:53 -05:00
|
|
|
LABWC_PID
|
2024-03-03 19:33:10 -05:00
|
|
|
```
|
|
|
|
|
|
|
|
|
|
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`.
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
2024-12-27 22:19:35 +00:00
|
|
|
# ENVIRONMENT VARIABLES
|
|
|
|
|
|
|
|
|
|
Set the environment variables listed below to enable specific debug options.
|
|
|
|
|
This can be done in either the *environment* file or on the command line, for
|
|
|
|
|
example: *LABWC_DEBUG_FOO=1 labwc*.
|
|
|
|
|
|
|
|
|
|
*LABWC_DEBUG_LIBSFDO*
|
|
|
|
|
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 *-V|--version* option.
|
|
|
|
|
|
|
|
|
|
*LABWC_DEBUG_DIR_CONFIG_AND_THEME*
|
|
|
|
|
Increase logging of paths for config files (for example rc.xml,
|
|
|
|
|
autostart, environment and menu.xml) as well as titlebar buttons.
|
|
|
|
|
|
2025-08-04 12:55:13 +09:00
|
|
|
*LABWC_DEBUG_CONFIG_NODENAMES*
|
2024-12-27 22:19:35 +00:00
|
|
|
Enable logging of all nodenames (for example *policy.placement: Cascade*
|
|
|
|
|
for *<placement><policy>Cascade</policy></placement>*) for config and
|
|
|
|
|
menu files respectively.
|
|
|
|
|
|
|
|
|
|
*LABWC_DEBUG_KEY_STATE*
|
|
|
|
|
Enable logging of press and release events for bound keys (generally
|
|
|
|
|
key-combinations like *Ctrl-Alt-t*)
|
|
|
|
|
|
2021-03-05 22:14:02 +00:00
|
|
|
# SEE ALSO
|
|
|
|
|
|
2024-03-03 19:33:10 -05:00
|
|
|
labwc-actions(5), labwc-config(5), labwc-menu(5), labwc-theme(5)
|