phosh v0.12.0
New features
- Only enable proximity sensor on active calls, unblank screen on incoming calls. See below for required glib or GTK patches.
- Implement most parts of org.Gtk.MountOperationHandler to handle encrypted volume mounts in e.g. nautilus.
- Show adaptive apps in mobile mode and all apps in docked mode based on
X-{Purism,Kde}-FormFactor
. This can be toggled via the sm.puri.phosh.PhoshAppFilterModeFlags GSetting.
Maybe noteworthy
- Show camera HKS state with recent kernels
- Add
Phosh
toXDG_CURRENT_DESKTOP
and our overrides to not mess with other DEs GSettings - Allow tests to inject virtual keyboard events
Detailed changes
phosh (0.12.0) byzantium; urgency=medium
.
[ Guido Günther ]
* data: Add gsd-wwan to required components.
This makes sure it's also started in systemd mode so the PIN request
happens.
* tests: Remove smoke test.
It served us well initally but since we can now tests against
the headless compositor without extra setup.
* overview: Don't set CSS name twice
* protocol: Sort wayland protocols alphabetically
* phosh-wayland: Sort wayland protocol headers alphabetically
* shell: Sort manager objects.
Sort the ones that get created by the shell and those created on the fly
into separate sections and sort those alphabetically. Ideally we want
to distingiush the getters by name at some point.
(There's a third type (singletons) which we dont' bother about here and
which we're reducing bit by bit)
* phosh-wayland: Get virtual-keyboard-manager.
This is only used in the tests.
* tests: Allow to inject virtual keyboard events.
That's fairly minimal at the moment but sufficient to test
dialogs, etc.
* system-modal-dialog: Allow to get and remove buttons.
Add API to query the current buttons and remove them. This just
proxies to GtkContainer.
* Implement most parts of org.Gtk.MountOperationHandler.
This allows to mount e.g. LUKS encrypted volumes via nautilus.
(Closes: #158)
* data: Add Phosh to DestkopNames.
This adds 'Phosh' to XDG_CURRENT_DESKTOP
* data: Only apply gsetting overrides to Phosh session.
This makes sure we don't e.g. messup settings for GNOME like
enabling the OSK.
* screenshot-manager: Remove opaque handler in dispose
* screenshot-manager: Actually set fader_id.
It got cleared but never set.
* lockscreen-manager: Shorten property enum values.
This is what we recommend in Hacking.md.
* proximity: Fix function spacing
* lockscreen: Drop style class.
We set it in the ui file already.
* Drop HANDY_USE_UNSTABLE_API.
Libhany's API isn't unstable anymore
* Add calls manager.
This tracks ongoing calls via the sm.puri.Calls DBus interface.
This can be used to (e.g. activate the proximity sensor and to
unblank the screen on incoming calls).
* lockscreen-manager: Unblank on incoming calls.
Do it here instead of in lockscreen-manager since
is where we'd also switch to the calls page later on.
* proximity: Only use proximity sensor on active calls.
See https://source.puri.sm/Librem5/calls/-/issues/175
* debian: Add breaks relationship on older calls.
This makes sure calls we don't try to run against a calls without
the DBus interface.
* libhandy API isn't unstable anymore.
So drop HANDY_USE_UNSTABLE_API.
* overview: sort includes
* shell: Shorten property names.
This is what we recommend in HACKING.md
* overview: Add missing G_{BEGIN,END}_DECLS
* app-grid: Unref sorted model.
The following gtk_filter_list_model_new() takes a ref on its own.
* gitlab-ci: Build against PureOS byzantium.
Debian currently lacks recent enough kernel headers
* data: Always set `hidden_under_systemd`
This avoids a meson warning
* build: Set include dirs explicitly.
Otherwise we might end up with the toplevel include dir pretty late in
the search path and pick up GVCs config.h.
* build: Drop -I. from project_arguments
root_inc handles this for us.
* hks-manager: Fix typo
* hks-manager: Don't assert but rather use unknown opration type.
Getting odd info from /dev/rfkill is not worth crashing the shell.
* build: Write config.h later.
This allows us to use more results from feature detection.
* hks-manager: Use rfkill_event_ext when available.
This makes sure we parse two consecutive results correctly. If the
header is not available fall back to rfkill_event which works correctly
on kernels that don't expose this field.
* debian: Build-depend on recent kernel headers.
These provide rfkill_event_ext
* hks-manger: Don't leak list.
Allthough we had a `_and_free()` funciton we didnt' clean it up.
Instead of cleaning up within that rather use automatic cleanup.
* home: Reveal whole home-bar instead of only arrow.
This gives us 40px more vertical space when there's no open applications
and removes the somewhat odd looking black bar.
* home: Add getter for overview
* overview: Add getter for the app-grid
* app-grid: Allow to filter for adaptive apps only
* app-grid: Allow for a configured list of adaptive apps.
This will help to avoid frustration until apps are tagged as such.
* app-grid: Move signal enum above class.
This makes it match the proposed layout in HACKING.md
* app-grid: Allow to toggle adaptive app filtering via setter and property.
This allows other parts of the shell to turn adaptive app filtering on
or off.
* app-grid: Move object cleanup to dispose()
Otherwise we get a reference cycle between self->actions and
and self disposal which keeps the app-grid around a bit longer
and just long enough to make app-list-model emit another items-changed.
Since `priv->search` is then gone we fail the 'priv->search != NULL'
check in search_apps.
* app-grid: Add menu button to toggle adaptive app filtering.
Add a menu next to the search bar that allows to filter adaptive apps
* shell: Sync adaptive app filtering with docked mode
* Allow to toggle app filtering globally.
This allows to turn of adaptive app filtering completely.
* data: Update adaptive app defaults.
Add those from phosh's default set that aren't marked yet
but are adaptive and drop those that are and had a release.
* Add NEWS file
.
[ ZenWalker ]
* brightness: 'g_warning' instead 'g_error'
.
[ Yuri Chornoivan ]
* po: Update Ukrainian translation
Required patches on other projects
Patches that are merged upstream but not yet in a released version:
- glib: gdbusobjectmanagerclient: Call GetManagedObjects async. Otherwise gnome-calls and phosh will block on each other on startup blocking the whole UI. Alternatively use gtkapplication-dbus: Fetch inital screen saver state async for gnome-calls. One of these patches is enough but you need at least one.
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.
Recommended patches on other projects
Patches that aren't merged upstream yet or not in a released version:
- phoc:
- Sceenshot key (merged): https://source.puri.sm/Librem5/phoc/-/merge_requests/249
- Crash fix (merged): https://source.puri.sm/Librem5/phoc/-/merge_requests/248
- upower: Torch support (open): https://source.puri.sm/Librem5/upower/-/blob/pureos/amber-phone/debian/patches/Add-torch-support.patch
- linux: HKS support (not yet submitted): https://source.puri.sm/Librem5/linux-next/-/merge_requests/77
- geoclue: Add phosh (merged): https://gitlab.freedesktop.org/geoclue/geoclue/-/commit/a9aea6a4948e2ff9ec5ff066cf20dac069c0d3a0