labwc/docs/labwc.1.scd
Johan Malm 698c7ace07 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-18 20:20:36 +00:00

65 lines
1.3 KiB
Markdown

labwc(1)
# NAME
labwc - a wayland stacking compositor
# SYNOPSIS
*labwc* [options...]
# DESCRIPTION
Labwc is a wlroots-based stacking compositor for wayland.
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.
The compositor will exit or reload its configuration upon receiving SIGTERM
and SIGHUP respectively. For example:
```
kill -s <signal> $LABWC_PID
killall -s <signal> labwc
```
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.
# OPTIONS
*-c, --config* <config-file>
Specify a config file with path
*-C, --config-dir* <config-directory>
Specify a config directory
*-d, --debug*
Enable full logging, including debug information
*-e, --exit*
Exit the compositor
*-h, --help*
Show help message and quit
*-m, --merge-config*
Merge user config/theme files in all XDG Base Directories
*-r, --reconfigure*
Reload the compositor configuration
*-s, --startup* <command>
Run command on startup
*-v, --version*
Show the version number and quit
*-V, --verbose*
Enable more verbose logging
# SEE ALSO
labwc-config(5), labwc-theme(5), labwc-actions(5)