phoc() phoc()

phoc - 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.

Print help and exit
Path to the configuration file. (default: phoc.ini).
Executable (session) that will be run at startup
Wayland socket to listen on for client connections
Whether to expect a shell to attach
Whether to start XWayland
Whether to disable XWayland
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:

  • help: Show a list of available debug flags
  • auto-maximize: Maximize toplevels
  • damage-tracking: Debug damage tracking
  • damage-whole: Damage whole output on each frame
  • no-quit: Don't quit when session ends
  • touch-points: Debug touch points
  • layer-shell: Debug layer shell
  • cutouts: Debug display cutouts and notches
  • 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.

phoc.ini(5) phoc.gsettings(5) phoc-outputs-states(1) gmobile.udev(5) phosh(1) busctl