NAME
merde —
MOUSE Wayland desktop
session
SYNOPSIS
merde |
[-c path] |
merde |
-h |
merde |
-v |
DESCRIPTION
merde starts the MERDE Wayland compositor
and window manager. It creates the session display and control socket,
installs configured key bindings, starts enabled desktop companions, and
optionally opens the terminal. Under LiDM it is normally run through the
private /usr/libexec/merde-session wrapper and
/usr/libexec/swc-launch.
Without -c, configuration is searched in
this order: $XDG_CONFIG_HOME/merde/config.lua,
$HOME/.config/merde/config.lua,
/etc/merde/config.lua, then the stock
/usr/share/merde/merde.default.lua.
OPTIONS
-cpath,--configpath- Load only the named configuration file.
-h,--help- Print usage and exit.
-v,--version- Print the MERDE version and exit.
WINDOW MANAGEMENT
Current configurable bindings are shown by merde-run-dialog(1) in key binding mode. MERDE also reserves these fixed bindings:
Alt+HJKL- Move the focused window.
Alt+Shift+HJKL- Resize the focused window.
Alt+1..9,0- Select workspace 1 through 10.
Alt+Shift+1..9,0- Move the focused window to workspace 1 through 10.
Alt+mouse-left,Logo+mouse-left- Move a window with the pointer.
Alt+mouse-right,Alt+Ctrl+mouse-left- Resize a window with the pointer.
ENVIRONMENT
XDG_CONFIG_HOME- Selects the first user configuration directory.
XDG_RUNTIME_DIR- Holds the private merde runtime directory.
WAYLAND_DISPLAY- Set by
merdefor programs started inside the session. MERDE_RUNTIME_DIR- Passed to MERDE companions and points at the session runtime directory.
RUNTIME INTERFACES
The runtime directory is private to the logged-in user. Its text files are replaced atomically, so readers see either the previous complete version or the next one.
state.txt is a line-oriented,
space-separated list of key=value fields. Its first
line is format=1. It then contains one session line,
one focus line, zero or more output lines, and zero or more window
lines:
workspace=N workspaces=N focused=ID windows=N output=ID workspace=N x=N y=N w=N h=N usable_x=N ... window=ID workspace=N title=TEXT app=TEXT x=N y=N ...
Every line begins with its record type. Consumers must ignore
unknown records and fields so the format can be extended. The
title and app values use
percent encoding: ASCII letters, digits, -._~ appear
literally and every other byte is %HH with uppercase
hexadecimal digits.
COMPANION LIFECYCLE
The bar, wallpaper, and notifier are long-lived companions.
merde starts each enabled command once, records its
process identifier, and stops it when the session ends. An exited companion
is not automatically restarted; use merdectl restart
to start it again. Shutdown sends SIGTERM, waits up
to 250 milliseconds, then sends SIGKILL.
Companions inherit the session environment and receive
MERDE_RUNTIME_DIR,
MERDE_SESSION_SOCKET,
MERDE_NOTIFY_FIFO,
MERDE_SCREENSHOT_DIRECTORY,
MERDE_WALLPAPER_IMAGE, and
MERDE_COMPONENT. The launcher is a compositor popup,
not a companion. The screenshot command is started on demand and is not
monitored afterward.
FILES
- $XDG_RUNTIME_DIR/merde/session.sock
- Datagram control socket used by merdectl(1).
- $XDG_RUNTIME_DIR/merde/state.txt
- Current output, workspace, and window state.
- $XDG_RUNTIME_DIR/merde/keybindings.txt
- Rendered key binding help.
- $XDG_RUNTIME_DIR/merde/notifications.fifo
- Input for the notification companion.
- $XDG_RUNTIME_DIR/merde/screenshots.log
- Paths written by the screenshot tool.
EXIT STATUS
The merde utility exits 0 on
success, and >0 if an error occurs.
DIAGNOSTICS
When started by LiDM, session standard output and standard error are written to $XDG_RUNTIME_DIR/merde-session.log. Companion start and exit failures, malformed configuration, control failures, and compositor errors appear there. LiDM authentication and session-launch failures appear in /var/log/lidm.log.
RATIONALE
The long-lived visual components run outside the session process so their failure cannot take down the compositor and each can be replaced without changing MERDE's window-management code. The launcher remains inside the session because it controls compositor-owned popup state; screenshots are short-lived requests rather than services.
SEE ALSO
havoc(1), merde-bar(1), merde-notify(1), merde-run-dialog(1), merde-screenshot(1), merde-wallpaper(1), merdectl(1), merde-config(5)