About Phosh (original) (raw)
The Phosh project aims to provide a daily-usable, robust and easy to use graphical user environment for mobile devices running mainline Linux. The name is a portmanteau of phone and shell as phosh was one of the first components developed by the project. It hence coined the whole project’s name and is still one of its core components. All of Phosh is entirely Free Software.
Phosh was originally initiated by developers from Purism for the Librem 5 phone but is nowadays used on many different devices covering smartphones, tablets and convertibles. It has even been seen on laptops. The main development focus is still smartphones, though. Phosh is available in all major Linux distributions and developed by a diverse group of contributors. The Phosh.mobi e.V. is a registered non-profit organization that represents the Phosh project in legal and financial matters. Its aim is to represent the Phosh community and to promote and support the development of a Linux mobile-first user environment for everyone.
Components Link to heading
These are the components that make up the phone shell itself
- phosh: The Mobile Shell
- phoc: The Wayland Compositor based on the wlroots compositor library
- stevia: The On Screen Keyboard
Phosh Session Link to heading
The Phosh session (which adds the necessary components to make smartphones actually usable) uses:
- calls: The calling application for phone and SIP calls
- chatty: The SMS and MMS application
- phosh-mobile-settings: Advanced mobile settings
- GNOME: Multiple components like gnome-settings-daemon, gcr, eds and gnome-session.
- phosh-tour: A short introduction
- mmsd-tng: MMS handling
- feedbackd: Audio, haptic an LED feedback
- cellbroadcastd: Keeps a history of cell broadcast messages
- xdg‑desktop‑portal‑phosh: Provide default portal implementations for sandboxed apps
- xdg‑desktop‑portal‑wlr: Provide portal access to screen sharing, and screen casts
- xdg‑desktop‑portal‑gtk: Provide fallback portal services (e.g. email)
Display Manager Link to heading
The display manager responsible for user and session selection after boot is composed of:
- phrog: A graphical greeter usingPhosh’s Rust bindings.
- greetd: A minimal and flexible login manager daemon
Supporting Libraries Link to heading
Supporting libraries and language bindings we maintain to support the above components:
- gmobile: Functions useful in mobile-related, GLib-based projects. Ships device specific information like display cutout information and wakeup keys.
- libfeedback-rs: Rust bindings for libfeedback
- libpms-rs: Rust bindings for libpms
- pfs: A file chooser widget in Rust using gtk-rs and libadwaita
For a list of what makes up the Phosh graphical environment seemeta-phosh which expresses the needed components programmatically as a Debian meta package.
For more details about the software stack see here, the feature matrix for device support and the FAQ for frequently asked questions.