Summary of changes
- media-player: Add track position, length and progress bar
- Add (optional) Wi-Fi Hotspot Quick Setting
- Add Bluetooth Quick Setting status page allowing to
connect/disconnect known devices
- Allow to (optionally) put the phone in silent mode when pressing Vol-
on incoming calls
- Give Quick Setting status pages (and their individual rows) more
vertical space so selecting from a large list of Wi-Fi networks or
Bluetooth devices becomes less fiddly
- Fix keypad layouts in RTL languages
- Allow lock screen to have an extra page (mostly useful to libphosh
consumers)
- Switch all git submodules to meson subprojects (following what we
did in phoc a while back)
- Fix remaining introspection nits so we can ran gir-scanner and gi-docgen
with --fatal-warnings
- Lots of internal improvements e.g. allowing us to do new status pages
with less boilerplate
- Issues fixed:
- Contributors:
- Arun Mani J
- Cédric Bellegarde
- Evangelos Ribeiro Tzaras
- Guido Günther
- Sam Day
- Teemu Ikonen
- Xiao Pan
- Arun Mani J
i18n updates
- UI translations:
- Anders Jonsson (sv)
- Antonio Marin (ro)
- Artur S0 (ru)
- Balázs Úr (hu)
- Danial Behzadi (fa)
- Daniel Rusek (cs)
- Daniel Șerbănescu (ro)
- Ekaterine Papava (ka)
- Emin Tufan Çetin (tr)
- Jiri Grönroos (fi)
- Jordi Mas i Hernandez (ca)
- Jürgen Benvenuti (de)
- Martin (sl)
- Sabri Ünal (tr)
- Scrambled 777 (hi)
- Yaron Shahrabani (he)
- Yuri Chornoivan (uk)
- Anders Jonsson (sv)
Detailed changes
phosh (0.41.0) experimental; urgency=medium
.
[ Guido Günther ]
* media-player: Use G_GINT64_FORMAT to print gint64.
Otherwise we'll break i386
* lockscreen: Delay clock update past the animation.
The visible child changes at the start of the animation hence the clock
can still be outdated.
Closes: https://gitlab.gnome.org/World/Phosh/phosh/-/issues/922
* plugins: Avoid adw deprecation warning
.
[ Sam Day ]
* lockscreen: Rename PHOSH_LOCKSCREEN_PAGE_INFO.
This better describes the purpose of this page. Further, it lays
groundwork to introduce functionality that changes the default page
displayed on the lockscreen.
* lockscreen: Clean up some unused imports
* lockscreen: Always clear idle timer in carousel_position_notified_cb.
Even if the keypad is already visible, any swiping activity triggers
carousel_page_changed_cb again anyway.
This actually slightly improves UX in a somewhat edge case condition. If
you swipe to the keypad, and then swipe up/down in the keypad region
without any keypad input (or switching all the way back to the page
above), the idle timer will kick in and suddenly take control of the
carousel. With this change, *any* swiping behaviour properly resets the
idle timer.
This is fortunate, because the intent is to remove "PhoshLocksreenPos"
imminently, and this change removes two usages of that enum.
* lockscreen: Use phosh_lockscreen_set_page more.
The logic in phosh_lockscreen_set_page was duplicated in show_info_page
and show_unlock_page.
Since show_info_page wasn't doing anything else, just remove it entirely
and use phosh_lockscreen_set_page.
In the case of show_unlock_page, it's also emitting a signal, and is
used as a callback from the UI XML, so it remains intact.
* lockscreen: Remove PhoshLocksreenPos enum.
Instead, phosh_lockscreen_get_page is used. The logic of this function
was also tweaked a bit to incorporate the rounding that was previously
only done in key_press_event_cb.
This means that phosh_lockscreen_get_page will report the current page
slightly differently if queried while the carousel is animating or being
dragged.
* lockscreen: Support setting the default page.
The default page will be presented when the lockscreen is shown, it is
also the page that is scrolled to when keypad expires or the escape key
is pressed.
* lockscreen: Allow custom unlock submit callback.
The callback that is fired when a passphrase is submitted from the
keypad entry is virtualized so that subclasses can override this
behaviour.
This change primarily benefits Phosh-based greeters like Phrog. In this
case, the login behaviour is entirely different from the default (the
PAM conversation is mediated through greetd IPC, and takes place before
there's actually any user logged in).
* lockscreen: Provide methods to get/clear/shake PIN entry.
This is useful for lockscreen subclasses that want to override or
influence the behaviour of the authentication flow.
The shake_label/finish_shake_label functions were renamed, since they
shake the entry, not the label.
* lockscreen: Allow an "extra" page to be inserted.
If phosh_lockscreen_add_extra_page is called, the carousel will have an
extra page inserted between the info page and the unlock page. This
extra page can then be navigated via swipes, and also set as the
current and/or default page.
This is useful for the Phosh-based greeter use case (for example Phrog),
which inserts a user/session selection page.
* lockscreen: Setter for unlock status label.
Allows subclasses to override the message displayed above the keypad
entry.
* lockscreen: Property for current carousel page.
This property can be used by subclasses / observers to be notified when
lockscreen page considered "visible" changes.
* lockscreen: Don't set label after shaking.
The existing usage is changed to set the label before shaking.
This way the shaking mechanism can be used in other scenarios,
particularly by lockscreen subclasses.
* lockscreen-manager: Add phosh_lockscreen_manager_get_lockscreen
* tests/lockscreen: Add test for extra page functionality
* background: Use G_GNUC_FALLTHROUGH for consistency
* bt-manager: Replace #include <bluetooth-device.h> with a typedef.
This header is vendored into phosh because upstream does not want to
make it public, so we can't leak it into libphosh headers.
Further usage of types from these vendored headers are not anticipated
for now, so we can get away with a typedef for the one BluetoothDevice
type we need.
* libphosh: Include status-page-placeholder.h.
PhoshStatusPagePlaceholder has bled into other publicly exported types
from libphosh, so we need to make sure this is included. Elsewise
libphosh-rs compile-time ABI tests fail, for example.
.
[ Arun Mani J ]
* subprojects: Sync libfeedback version with packaging.
Let's use the same version everywhere
.
[ Anders Jonsson ]
* Update Swedish translation
.
[ Daniel Rusek ]
* Update Czech translation
.
[ Ekaterine Papava ]
* Update Georgian translation
.
[ Sabri Ünal ]
* Update Turkish translation
.
[ Scrambled 777 ]
* Update Hindi translation
Required versions of related projects
- glib >= 2.72.0
- gtk3 >= 3.24.40
- gtk4 >= 4.14
- phoc >= 0.38.0
- squeekboard >= 1.38.0
- feedbackd >= 0.4.0
- gnome-calls >= 46.3 for location based emergency calls and feedbackd fix
- wl-clipboar >= 2.2.1
- pipewire: >= 0.3.73 for proper audio icons
- xdg-desktop-portal >= 1.17.1 to honor portal configuration
- phosh-mobile-settings >= 0.40.0
- phosh-tour >= 0.38.0
- gnome-settings-daemon >= 46 to not show the sleep notification on phones
Required patches that are merged upstream but not yet in a released version:
Required patches that aren't merged upstream yet:
- wlroots (>= 0.12.0): Layer shell restrictions. See https://source.puri.sm/Librem5/phosh/-/issues/422. Otherwise phosh will fail to start.
- gtk: xdg-activation-0-serial. Otherwise startup splash always times out
- gnome-keyring: Accessing login keyring after first login fails
Recommended patches on other projects
Patches that are merged upstream but not yet in a released version:
(none)
Patches that aren't merged upstream yet:
- linux: HKS support (not yet submitted): https://source.puri.sm/Librem5/linux-next/-/merge_requests/77
- gtk4 adaptiveness (not yet submitted): https://source.puri.sm/Librem5/debs/gtk4/-/tree/pureos/byzantium/debian/patches/pureos/adaptive
(Not needed for phosh itself but to make GTK4 applications adapt better)
- gtk3 adaptiveness (not yet submitted): https://source.puri.sm/Librem5/debs/gtk/-/tree/pureos/byzantium/debian/patches/pureos/adaptive
(Not needed for phosh itself but to make GTK3 applications adapt better)
- gnome-screenshot adaptiveness: https://gitlab.gnome.org/GNOME/gnome-screenshot/-/merge_requests/69
(Not needed for phosh itself but to make screenshots easier)
- vte: Ignore menu key: https://gitlab.gnome.org/guidog/vte/-/commit/11b29ca2aa2f1715579519699ec17245a411ee0e . See https://gitlab.gnome.org/GNOME/vte/-/issues/2644 (as project doesn't allow merge requests) (Not needed for phosh itself but to get copy/paste menu in e.g. gnome-console)
- gnome-clocks: Feedbackd support https://gitlab.gnome.org/guidog/gnome-clocks/-/tree/lfb
See meson.build and debian/control for build-time and run-time dependencies.
For older releases
These are only some of the required/recommended patches. If in doubt please use the released versions above:
- gtk3: Better touch accuracy (affects phosh, phosh-osk-stub, etc): https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/6668 (contained in 3.24.40)
- gnome-text-editor: Hint word completion (so e.g. OSKs know its sensible to use it): https://gitlab.gnome.org/GNOME/gnome-text-editor/-/merge_requests/132 (contained in 46)
- gtk4: Touch DND fixes: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/6608 (contained in 4.14)
- gnome-clocks: Allow for lockscreen actions: https://gitlab.gnome.org/GNOME/gnome-clocks/-/merge_requests/277 . Needed to turn off alarms on the lock screen.
- glib (contained in 2.72.0): Notification categories
- gnome-settings-daemon: Claim light sensor async as otherwise screen unblank can take a noticable amount of time
- gsettings-desktop-data (contained in 42): Dark theme toggle
- gnome-control-center (contained in 42): display: Use ComboBox when folded. Otherwise fractional scaling doesn't show all values.
- gnome-control-center (contained in 42): connection-editor: Allow dialog to resize
- gtk4 (contained in 4.6.2): xdg-activation
- gtk4 (contained in 4.6.2): osk unfold
- gtk4 (contained in 4.6.2): osk unfold
- gtk3 (contained in 3.24.30):gtkapplication-dbus: Fetch inital screen saver state async. Otherwise gnome-calls and phosh will block on each other on startup blocking the whole UI.
- geoclue (contained in 2.6.0): Add phosh
- wlroots (contained in 0.16.0): xdg-activation: Allow to submit tokens. Needed for launch splash.
- wlroots (contained in 0.16.0): cancel touches
- xdg-desktop-portal-wlr (contained in 0.6.0): For screen sharing: https://github.com/emersion/xdg-desktop-portal-wlr/pull/192
- pipewire: Add icon_name properties to ucm: https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1646
- wl-clipboard: Don't require gtk_shell >= 4
- gnome-settings-daemon: Drop sleep notification, otherwise suspend might fail. See https://gitlab.gnome.org/GNOME/gnome-settings-daemon/-/issues/656