You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
テクニカル諏訪子 88addb5050 Merge branch 'master' of 2 years ago
.gitlab/issue_templates Add issue template 5 years ago
build-aux build: Compile gschemas on install 2 years ago
data data: Add icons for disabled camera and mic 2 years ago
debian Document changes and release 0.8.1 2 years ago
docs Add PhoshHksInfo 2 years ago
po po: Add Creole Haitian translation 2 years ago
protocol Phoshからの新しいもの 2 years ago
screenshots README: Don't special case running nested on x11 4 years ago
src 本プロジェクトの変更 2 years ago
tests prompts: Update PhoshShellState 2 years ago
tools Move helpers to tools/ 3 years ago
.dir-locals.el Add .dir-locals.el 5 years ago
.editorconfig editorconfig: strip whitespace 3 years ago
.gitignore gitignore: Add generate files in Debian 2 years ago
.gitlab-ci.yml Phoshからの新しいもの 2 years ago
.gitmodules Add gvc submodule 4 years ago
COPYING Add GPLv3 license file 5 years ago docs: Document C file layout 3 years ago README: update description 3 years ago config.h: Add phosh's version 5 years ago Document changes and release 0.8.1 2 years ago
meson_options.txt build: Allow to add tests that require phoc 3 years ago
phosh.doap doap: Add Zander Brown 3 years ago run: Simplify oneshot gdb 2 years ago


Code coverage

a pure wayland shell for mobile devices like Purism's Librem 5.


phosh is licensed under the GPLv3+.

Getting the source

    git clone
    cd phosh

The master branch has the current development version.


On a Debian based system run

    sudo apt-get -y install build-essential
    sudo apt-get -y build-dep .

For an explicit list of dependencies check the Build-Depends entry in the debian/control file.

If your distro doesn't ship libhandy you need to build that from source. More details are in the gitlab-ci.yml file.


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


To run the tests run

ninja -C _build test

For details see the .gitlab-ci.yml file.

There are some thorough tests not run during CI which can e.g. be run via

gtester -m thorough  _build/tests/test-idle-manager


Running from the source tree

When running from the source tree start the compositor phoc. Then start phosh using:

_build/run -U

or in one command:

../phoc/_build/run -E '_build/run -U' -C ./data/phoc.ini

When running nested it's recommended to skip the gnome-session setup:

SKIP_GNOME_SESSION=1 ../phoc/_build/run -E '_build/run -U' -C ./data/phoc.ini

This will make sure the needed gsettings schema is found. The '-U' option makes sure the shell is not locked on startup so you can test with arbitrary passwords. This works on hardware as well as nested on other desktop environments. The result should look something like this:


Running from the Debian packages

If you're running a display manager like GDM or LightDM you can select the Phosh session from the display managers menu. If you want run without a display manager but nevertheless start phosh at system boot there's a systemd unit file in /lib/systemd/system/phosh which is disabled by default:

systemctl enable phosh
systemctl start phosh

This runs phosh as the user with user id 1000 (which needs to exist). If you don't have that user and don't want to create one you can make systemd run phosh as any user by using an override file:

$ cat /etc/systemd/system/phosh.service.d/override.conf

All of the above use the /usr/bin/phosh script to start compositor and shell under the hood so if you just want to start phosh from the system console once invoke that script directly.


This is handled via GNOMEs infra, see and

Getting in Touch

For details see the developer documentation.