Skip to content

samcday/phrog

Repository files navigation

🐸 (phrog)




A greeter that works on mobile devices and also other kinds of computers.

🤓 phrog uses Phosh to conduct a greetd conversation.

It is the spiritual successor of phog.


Installation

Fedora

sudo dnf copr enable samcday/phrog
# If you want to test the latest and/or greatest
# sudo dnf copr enable samcday/phrog-nightly
sudo dnf install phrog

Alpine/postmarketOS

The package has been requested in Alpine, but has not yet landed in the Alpine package repositories.

If you're using postmarketOS, you can install the latest build from the in-flight merge request to aports:

sudo apk add mrtest
mrtest add --alpine 71596

Otherwise, you must build the package yourself:

sudo apk add alpine-sdk
abuild deps
abuild -K
sudo apk add ~/packages/dist/$(uname -m)/greetd-phrog-*.apk

Other

You must build from source, see the Development section below.

Running

phrog is primarily intended to run via greetd - your /etc/greetd/config.toml should look like this:

[default_session]
command = "systemd-cat --identifier=phrog phrog"

You can also run/test it directly with a faked session, run this from a terminal in your favourite (Wayland) desktop environment:

phrog --fake

Development

If your system has libphosh packaged and available:

# Install libphosh:
# Fedora: sudo dnf install -y libphosh-devel
# Alpine (edge): sudo apk add libphosh

# Run 🐸 from source
cargo run -- --fake

# Run 🐸 tests
cargo test

You can also run with a statically linked libphosh from the vendored ./phosh/ subtree. This is useful if you want to work on a feature that also requires changes to upstream libphosh.

# Install the (many) Phosh build dependencies:
# Fedora: sudo dnf4 build-dep --define 'with_static 1' ./phrog.spec
# Debian (trixie): sudo apt-get build-dep -y ./phosh/
# Alpine: abuild deps

# Then it's mostly the same as before.
# More features may be visible and more tests may run, since the local tree pulls ahead of upstream.
cargo run --features=static -- --fake
cargo test --features=static