PHOC(1)

πŸ’– PHOC(1) β€” aka the manual page bestie πŸ’–

okay so welcome to phoc(1), the manual page for phoc β€” a Wayland compositor for mobile devices 🫢 this is the whole thing, every flag, every env var, no skips, no cap.


✨ NAME ✨

phoc β€” a Wayland compositor for mobile devices πŸ“±πŸ’…


🌸 SYNOPSIS 🌸

phoc [OPTIONS...]

πŸ¦‹ DESCRIPTION πŸ¦‹

So phoc is a Wayland compositor for mobile devices, and it's built on the wlroots library. That's the whole vibe. It's super often paired up with the phosh mobile shell β€” they're like the iconic duo πŸ’ž β€” but here's the thing, phoc works perfectly fine on its own too. It does not need phosh to function. Main character energy fr fr. πŸ‘‘


πŸ’… OPTIONS πŸ’…

  • -h, --help β€” prints the help and then dips out (exits).
  • -C, --config FILE β€” the path to the configuration file. default is phoc.ini.
  • -E, --exec EXECUTABLE β€” the executable (session) that gets run at startup, like your little launch-day bestie.
  • --socket β€” the 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 β€” shows version information πŸŽ€

πŸŽ€ CONFIGURATION πŸŽ€

Configuration gets read from phoc.ini, hwdb, gsettings and $XDG_STATE_HOME/outputs.gvdb. That's four sources, she's reading all of them, periodt.

  • For the deets on output configuration β†’ see phoc.ini(5)
  • For the deets on wakeup key configuration via hwdb β†’ see gmobile.udev(5)
  • For the deets on the gsettings that phoc handles β†’ see phoc.gsettings(5)
  • For the deets on output states β†’ see phoc-outputs-states

🌈 ENVIRONMENT VARIABLES 🌈

phoc honors the following environment variables, bestie:

  • 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 β€” a 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 the whole output on each frame (can be toggled at runtime)
    • fake-builtin β€” handle virtual outputs like builtin displays
    • no-quit β€” don't quit when the 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 the shell over fullscreen apps
    • ignore-state β€” ignore any saved output state

🧚 UDEV PROPERTIES 🧚

besides the udev properties for wakeup keys that are documented over in gmobile.udev(5), phoc also uses ID_INPUT_KEYBOARD to identify hardware keyboards ⌨️. and yeah β€” you can use hwdb to override these. slay.


πŸ’œ DBUS INTERFACE πŸ’œ

phoc lets you enable and disable certain debug flags at runtime via DBus. so iconic of her.

to see a list of the 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
⚠️ important bestie: the flags are not considered stable API, so they can change between releases. don't build your whole life on them, iykyk 😭

⭐ See also ⭐

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


and that's the whole page!! πŸŽ€ the footer on this one is just phoc() β€” like, no version number, no date, that's it, she's mysterious πŸ’€ but you got every option, every env var, every flag, all of it. ur so welcome, go be a compositor girlboss πŸ‘‘πŸ’–

πŸ“¦ where this page comes from