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 to XDG_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:

Patches that aren't merged upstream yet:

Recommended patches on other projects

Patches that aren't merged upstream yet or not in a released version: