aboutsummaryrefslogtreecommitdiffhomepage
path: root/content/posts/phosh-2023-in-retrospect/index.md
blob: 62b7447e8f4bf99ece3cd05a06f27387e36e6737 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
+++
authors = ["Guido Günther"]
title = "Phosh 2023 in Retrospect"
date = "2023-12-31"
tags = [ "phosh", "planetdebian" ]
images = ["posts/phosh-2023-in-retrospect/phosh-landscape.png"]
+++

As in [2022][] I took another look back at what changed in Phosh in
2023 and instead of just updating my notes why not share it here.  In
short: While collecting these bits I became really impressed about the
progress we made 🚀:

{{< image name="phosh-landscape.png" title="Phosh in landscape showing a video" >}}

# Some numbers

We were discussing at this years [Phosh Community Get Together][] at
Froscon if we should lengthen the Phosh release cycle a bit but we kept
the one release per month schedule to get improvements out to users
quickly. So in 2023 we did 11 major releases (we mist the January one)
and two bugfix releases (in March and December).

The number of code contributors to the phone shell itself remained
roughly constant compared to 2022 at 20 individual
contributors. Counting over closely related projects like phoc,
squeekboard and mobile-settings we hit the 30 different contributors
mark which is great. Translations also came from more then 30
different people again.

Non-merge commits in phosh itself went slightly up from last year to
about 750. Phoc had almost 600 commits (not counting merges and
indentation fixups) - a significant up of roughly 50% compared to
2022.

{{% comment %}}
  Numbers taken via `contributors` and `git log --no-merges --pretty=oneline v0.23.0..HEAD`
{{% /comment %}}

# Phosh

The [Phone Shell](https://gitlab.gnome.org/World/Phosh/phosh) itself
saw some notable additions like the initial emergency call support by
Thomas which gets triggered by a new menu that is shown on power
button long press:

{{< image name="pb-long-press.png" title="Power button long press menu" >}}
{{< image name="emergency-call.png" title="Emergency call menu" >}}

We got one new plugin to execute actions from the lock screen and
Chris added a simple way to enter information for emergency situations
like medical information, blood type, etc.:

{{< image name="launcher-box.png" title="Launcher Box lockscreen plugin" >}}
{{< image name="phosh-plugins-config.png" title="Phosh Plugin configuration" >}}

Audio devices can now be selected via quick settings and ongoing
calls have a notification on the lock screen (so one doesn't need
to remember the swipe gesture to access an ongoing call):

{{< image name="audio-selection.png" title="Audio device selection" >}}
{{< image name="ongoing-call.png" title="Ongoing call notification" >}}

Speaking of ongoing calls: The library containing the call widgets
([libcall-ui](https://gitlab.gnome.org/World/Phosh/libcall-ui)) used
by GNOME Calls and phosh was ported to GTK4 by Anton Lazarev.

Apart from that we added some additional animation, (e.g.  when showing
status icons or when removing the app launch splash) to improve the
overall appearance and fixed nightlight (again). Screen blank is no
longer tied to screen lock and there's a new setting to specify above
which notification urgency we wake up the screen.

Phosh can now also avoid a device's screen cutout or notch if it finds
the necessary information. See [here](../notch-support) for details.

# Phoc

On the [compositor](https://gitlab.gnome.org/World/Phosh/phoc) side we
went through two wlroots version upgrades (0.16.0 and 0.17.0) and as
the library usually breaks API in several places this prompted for a
*lot* of (overdue) internal cleanups which improved the code base
considerably (and explains the higher commit count over the
year). This allowed us to address lots of bugs that were around since
a long time. We fixed several issues around animations, added
compositor side alpha blending (to smoothen phosh side animations) and
added support for tablet-mode switch to improve support for
convertibles.

# On Screen Keyboards

[Squeekboard][] gained new layouts, saw a bunch of internal cleanups
and got some sizing fixes. The amount of people experimenting with
custom layouts to make good use of screen estate had a considerable up
take, see e.g. [here](https://codeberg.org/user0/Squeekboard-Layouts).

[phosh-osk-stub][] also gained some new layouts (including an emoji
one), improved the character popovers and saw the addition of three new
text completers (pipe, hunspell, varnam). The later one allowing us to
support Indic scripts like Malayalam via [govarnam][]. We also
improved support for apps that don't use a text-input protocol (like
Electron apps or Chromium) when using non-us layouts.

{{< image name="emoji.png" title="Phosh OSK Stub Emoji Layout" >}}
{{< video
  src="pos-varnam"
  width="360px"
  description="An alternative on screen keyboard in Phosh"
>}}

# Mobile Settings

The app for advanced settings got a new panel for on screen keyboard
settings, a sensor panel (by Evangelos) and a panel to configure event
feedback. This panel also allows to configure the sound when receiving
an SMS or phone call or when to wake up the screen (added by
Suraj). Gotam added detailed debug information to the about dialog and
a way to reorder lock screen plugins.

{{< image name="pms-sensor-panel.png" title="Sensor panel" >}}
{{< image name="pms-feedback-panel.png" title="Feedback panel" >}}

# Pending changes

One change that didn't make it into a release in 2023 but will be part
of 0.35.0 and is already visible in the screenshots above is the
smaller home bar (implemented by Matthew).  But there's more things
we've already worked on and hope to land in 2024 (all of the
screenshots in this paragraph are from existing merge requests so
they're actually backed by some code already). This includes out of
the box support for wallpapers on the lock screen and the overview:

{{< image name="lockscreen-wallpaper.png" title="Lockscreen wallpaper" >}}
{{< image name="overview-wallpaper.png" title="Overview wallpaper" >}}

We also have changes pending for cell broadcast support (read more
about it [here](../cellbroadcast)), [improvements for emergency
calls]() and WiFi network selection (worked on by Arun) in the quick
settings:

{{< image name="wifi-quicksettings.png" title="Wifi networks in quick settings" >}}
{{< image name="cbm-lockscreen.jpg" title="Cell broadcast message on lockscreen" >}}

Once the WiFi part landed adding support for more details in quick
settings (like VPN selection) will be relatively easy.

I also expect us to switch to a 6 week or 2 month schedule in the not
too distant future when more things settled in but we'll see.

## Thank you

A big thank you to all Phosh contributors in 2023, be it translations,
documentation, testing feedback, detailed bug reports or code.

The above list of new features mentions mostly the user facing changes
so we didn't get to talk about the related bits and fixes needed in
other components like pipewire, GTK, ModemManger, wys, glib, calls, wlroots
and others. We're standing on the shoulders of giants here. Many
thanks (🙏) to the maintainers of these projects for reviewing our changes
and often providing even better fixes than what was initially suggested 😀️.

## What else

Since people asked where to get the Phosh T-Shirts or hoodies we
put them into a [spreadshirt shop][]. Prices and discounts offers are
all handled by spreadshirt. For details check [here](../phosh-fashion). Hope you like them.

That's it for 2023. If you want to get involved into phosh testing,
development or documentation then just drop by in the [matrix
room](https://im.puri.sm/#/room/#phosh:talk.puri.sm).

Looking forward to the improvements happening in 2024.

[spreadshirt shop]: https://phosh.myspreadshop.net/
[Phosh Community Get Together]: https://programm.froscon.org/2023/events/2990.html
[2022]: https://honk.sigxcpu.org/con/Phosh_2022_in_retrospect.html
[squeekboard]: https://gitlab.gnome.org/World/Phosh/squeekboard
[phosh-osk-stub]: https://gitlab.gnome.org/guidog/phosh-osk-stub
[govarnam]: https://github.com/varnamproject/govarnam
[improvments for emergency calls]: https://gitlab.gnome.org/GNOME/calls/-/merge_requests/705