•
WLR_BACKENDS: The backends the wlroots library should use when phoc launches. See <https://gitlab.freedesktop.org/wlroots/wlroots/-/blob/master/docs/env_vars.md>
A wayland compositor for mobile devices
phoc [OPTIONS...]
phoc is a Wayland compositor for mobile devices using the wlroots library. It's often used with the phosh mobile shell but works perfectly fine on its own.
-h, --help
Print help and exit
-C, --config FILE
Path to the configuration file. (default: phoc.ini).
-E, --exec EXECUTABLE
Executable (session) that will be run at startup
--socket
Wayland socket to listen on for client connections
-S, --shell
Whether to expect a shell to attach
-X, --xwayland
Whether to start XWayland
--no-xwayland
Whether to disable XWayland
--version
Show version information
Configuration is read from phoc.ini, hwdb, gsettings and $XDG_STATE_HOME/outputs.gvdb. For details on output configuration see phoc.ini(5), for details on wakeup key configuration via hwdb see gmobile.udev(5), for details on the gsettings handled by phoc see phoc.gsettings(5). For details on output states see phoc-outputs-states.
phoc honors the following environment variables:
•
WLR_BACKENDS: The backends the wlroots library should use when phoc launches. See <https://gitlab.freedesktop.org/wlroots/wlroots/-/blob/master/docs/env_vars.md>
•
WLR_RENDERER: The renderer the wlroots library should use when phoc launches. See <https://gitlab.freedesktop.org/wlroots/wlroots/-/blob/master/docs/env_vars.md>
•
G_MESSAGES_DEBUG, G_DEBUG and other environment variables supported by glib. <https://docs.gtk.org/glib/running.html>
•
PHOC_DEBUG: Comma separated list of debugging flags. Some of them can also be toggled at runtime, see DBUS INTERFACE below.
help: Show a list of available debug flags
auto-maximize: Maximize toplevels
damage-tracking: Debug damage tracking (can be toggled at runtime)
damage-whole: Damage whole output on each frame (can be toggled at runtime)
fake-builtin: Handle virtual outputs like builtin displays
no-quit: Don't quit when session ends
touch-points: Debug touch points (can be toggled at runtime)
layer-shell: Debug layer shell
cutouts: Debug display cutouts and notches (can be toggled at runtime)
disable-animations: Disable animations
force-shell-reveal: Always reveal shell over fullscreen apps
ignore-state: Ignore any saved output state
Apart from the udev properties for wakeup keys documented in gmobile.udev(5) phoc uses ID_INPUT_KEYBOARD to identify hardware keyboards. You can use hwdb to override these.
phoc allows to enable and disable certain debug flags at runtime via DBus. To see a list of available flags use:
busctl --user introspect mobi.phosh.Phoc.DebugControl /mobi/phosh/Phoc/DebugControl mobi.phosh.Phoc.DebugControl
To toggle individual values:
busctl --user set-property mobi.phosh.Phoc.DebugControl /mobi/phosh/Phoc/DebugControl mobi.phosh.Phoc.DebugControl TouchPoints b true busctl --user set-property mobi.phosh.Phoc.DebugControl /mobi/phosh/Phoc/DebugControl mobi.phosh.Phoc.DebugControl DamageTracking b true busctl --user set-property mobi.phosh.Phoc.DebugControl /mobi/phosh/Phoc/DebugControl mobi.phosh.Phoc.DebugControl LogDomains as 1 all busctl --user set-property mobi.phosh.Phoc.DebugControl /mobi/phosh/Phoc/DebugControl mobi.phosh.Phoc.DebugControl LogDomains as 2 phoc-seat phoc-layer-surface
Note that the flags are not considered stable API so can change between releases.
4 releases since Debian 11 (Bullseye); the text changed 2 times.
--no-xwayland since Arch Linux 2026-11-01;
--shell since Debian 13 (Trixie);
--socket since Arch Linux 2026-11-01;
--version since Debian 13 (Trixie);
--xwayland since Debian 13 (Trixie);
-S since Debian 13 (Trixie);
-X since Debian 13 (Trixie).
--damage-tracking until Debian 12 (Bookworm);
--touch-debug until Debian 12 (Bookworm);
-D until Debian 12 (Bookworm);
-t until Debian 12 (Bookworm).