Skip to content
Snippets Groups Projects
Forked from Librem5 / debs / pkg-phoc
1732 commits behind the upstream repository.

Phone compositor

Code coverage

wlroots based Phone compositor as used on the Librem5.

Phoc is pronounced like the English word fog.

Building

We use the meson (and thereby Ninja) build system for phosh. The quickest way to get going is to do the following:

meson . _build
ninja -C _build
ninja -C _build install

This assumes you have wlroots installed on your system. If you don't have that and/or want to build from source run:

git submodule update --init
meson . _build
ninja -C _build

This will fetch a matching version of wlroots and build that as well.

Running

To run from the source tree use

_build/run

Test

After making source changes run

xvfb-run ninja -C _build test

to see if anything broke.

Configuration

phoc's behaviour can be configured via GSettings. For your convienience, a set of scripts to manipulate config values is available in helpers directory.

  • scale-to-fit toggles automatic scaling of applications that don't fit the screen. This setting is enabled per application using its reported app-id. For instance, to enable scaling of GNOME Maps windows use:

    helpers/scale-to-fit org.gnome.Maps on
  • auto-maximize toggles automatic maximization of Wayland windows. Disabling it allows windows to be resized and moved, which may be desired when running phoc on desktop-like setups.

     helpers/auto-maximize off

Outputs are configured via phoc.ini config file - see src/phoc.ini.example for more information.

Debugging

phoc uses glib so the G_MESSAGES_DEBUG environment variable can be used to enable more log messages and G_DEBUG to assert on warnings and criticals. The log domains all start with phoc- and are usally phoc-<sourcefile>. All wlroots related messages are logged with phoc-wlroots. See https://developer.gnome.org/glib/stable/glib-running.html for more details on these environment variables.

There's also a PHOC_DEBUG enviroment variable to turn on some debugging features. Use PHOC_DEBUG=help phoc to see supported flags.