# Phosh

Phosh (portmanteau of phone and shell) is a graphical user interface designed for mobile and touch-based devices initially developed by Purism. The project is maintained and developed by a diverse community, and is the default shell used on several mobile Linux operating systems including PureOS, Mobian and Fedora Phosh. It is also an option on postmarketOS, Manjaro, and openSUSE. Its components follow a six-week release cycle.

## Development

In August 2017, Purism, personal computing hardware vendors and developers of PureOS announced their intention to release a privacy-centric smartphone that ran a mobile-optimized version of their Linux-based operating system. With this announcement, Purism released mockups of Phosh that resembled a modified GNOME Shell. This eventually became known as the Librem 5.
In April 2018, Purism started to publicly release documentation that referenced Phosh with updated mockups, and hired GNOME UI/UX developer Tobias Bernard to directly contribute to the shell.
Despite the Librem 5 phone being delayed, Phosh received its first official release in October 2018, which was primarily focused on developer usage. The first official hardware for direct use with Phosh was shipped several months later in December when Purism shipped hardware devkits. In July 2020, the PinePhone was released with a version of postmarketOS that featured the Phosh interface.
Since August 2021, Phosh's source code repository (including issue tracking and merge request handling) has been hosted by the GNOME Foundation. To ease testing on their devices Purism maintains a separate repository that integrates some of the open upstream merge requests and provides packaging for PureOS.

## Features
### Overview

The Phosh Overview screen is the primary method to interact with the shell. It contains the App Grid, which displays user applications that can be launched from icons. The App Grid is split into two sections. The top section is reserved for frequently-used applications, and is known as "Favorites". The bottom section is reserved for all other installed applications.
In addition, a functionality is included that allows users to type search terms to find specific applications. The Overview screen also contains the Activities view, which visualizes the currently-opened applications, and gives a method to dismiss them as well.

### Lock Screen

When the device's display is toggled from off to on, Phosh displays a Lock Screen with the time and date along with several indicator icons that illustrate the device's status of cellular network service, Wi-Fi, Bluetooth, and battery percentage. The Lock screen can display the status of ongoing phone calls (including emergency calls) and is extendable via plugins. Upon sliding up from the bottom of the screen, the Lock Screen requests a predefined passcode to unlock and continue to the Overview screen.

## Related technologies

Phosh is based-on the GTK widget toolkit, and uses a custom compositor based on wlroots. Like GNOME Shell, Phosh relies upon certain GNOME components to provide a fully-featured mobile interface. Primary examples of this are its use of the GNOME Session Manager for session management and the GNOME Settings Daemon for storing application and shell settings. Phosh also makes use of some freedesktop.org system components such as Polkit, UPower, iio-sensor-proxy, NetworkManager and ModemManager.
It is both open source and libre software. Closely related technologies used in conjunction with Phosh, and also significantly developed by Purism, are Phoc (a Wayland compositor), Squeekboard (an on-screen virtual keyboard), feedbackd (a haptic feedback daemon) and portions of libadwaita in regards to adaptive windowing to allow for otherwise desktop-centric apps to act and feel as true mobile apps.

## Version history

The table illustrates major releases, and is not an exhaustive list of releases.
| Version | Date | Inclusion with initial OS release |
| 0.0.1 | September 20, 2018 | |
| 0.1.0 | September 30, 2019 | |
| 0.2.0 | February 26, 2020 | |
| 0.3.0 | May 19, 2020 | |
| 0.4.0 | July 1, 2020 | Fedora Linux 33 |
| 0.5.0 | October 28, 2020 | postmarketOS 20.05 |
| 0.6.0 | November 15, 2020 | postmarketOS 21.03 |
| 0.7.0 | December 10, 2020 | |
| 0.8.0 | January 19, 2021 | Fedora Linux 34 Mobian Bullseye |
| 0.9.0 | March 3, 2021 | |
| 0.10.0 | March 31, 2021 | PureOS Amber postmarketOS 21.06 |
| 0.11.0 | May 31, 2021 | |
| 0.12.0 | June 30, 2021 | |
| 0.13.0 | August 10, 2021 | Fedora Linux 35 |
| 0.14.0 | October 28, 2021 | PureOS Byzantium postmarketOS 21.12 |
| 0.15.0 | January 25, 2022 | |
| 0.16.0 | February 25, 2022 | |
| 0.17.0 | March 25, 2022 | postmarketOS 22.06 |
| 0.20.0 | August 8, 2022 | |
| 0.21.0 | September 1, 2022 | postmarketOS 22.06 SP2 |
| 0.22.0 | November 7, 2022 | |
| 0.23.0 | December 28, 2022 | |
| 0.24.0 | February 2, 2023 | Debian Bookworm |
| 0.25.0 | March 2, 2023 | |
| 0.26.0 | April 3, 2023 | |
| 0.27.0 | May 2, 2023 | postmarketOS 23.06 |
| 0.28.0 | June 1, 2023 | |
| 0.29.0 | July 6, 2023 | |
| 0.30.0 | August 3, 2023 | |
| 0.31.0 | September 4, 2023 | |
| 0.32.0 | October 6, 2023 | |
| 0.33.0 | November 3, 2023 | postmarketOS 23.12 |
| 0.34.0 | December 6, 2023 | |
| 0.34.1 | December 20, 2023 | |
| 0.35.0 | January 7, 2024 | |
| 0.36.0 | February 3, 2024 | |
| 0.37.0 | March 8, 2024 | |
| 0.38.0 | April 1, 2024 | Ubuntu 24.04 LTS |
| 0.39.0 | May 15, 2024 | postmarketOS 24.06 |
| 0.40.0 | June 30, 2024 | |
| 0.41.0 | August 15, 2024 | |
| 0.42.0 | September 30, 2024 | |
| 0.43.0 | November 15, 2024 | |
| 0.44.0 | December 31, 2024 | |
| 0.45.0 | February 15, 2025 | |

## GNOME Mobile

GNOME Mobile is an initiative within the GNOME project to adapt the GNOME desktop environment, shell, app ecosystem and other related components for use on mobile and touch-based devices such as smartphones and tablets. A key part of this initiative is libadwaita, a GTK-based library that provides consistent, adaptive UI components and widgets for GNOME applications, which ensures a cohesive design language across platforms.
GNOME Mobile is available as a desktop environment in PostmarketOS.