GitHub #37 phosh (handheld): the floating dock grows one row per four favorites
Summarypatches/phosh/0001-luma-handheld-home-dock-search.patch binds the whole favorites model to the dock GtkFlowBox (max-children-per-line=4, no row limit). Luma projects the canonical org.gnome.shell favorite-apps order into sm.puri.phosh favorites (config/mobile/luma-shell-handheld.dconf, [sm/puri/phosh]), and that list has 23 entries in config/desktop/dconf/db/luma.d/00-luma-desktop. The dock therefore adds a row for every four installed favorites. The patch's own comment describes "four launchers inside the FP6 logical viewport with a floating dock".
Reproduce
luma-phosh built from main (spec 0.55.0-1.luma.46) with scripts/packages/build-luma-phosh.sh on Fedora 44 aarch64, Luma's dconf as installed by compose-fp6-rootfs.sh, 12 Prairie apps installed: the dock shows three rows of four and covers roughly a third of Home. With all 23 favorites installed it would be six rows.
Note: the FP6 ships 1.luma.51, which is not on a pushed ref (config/desktop/package-release-exceptions.txt), so this may already differ on the device. We could only test the published spec.
Suggested fix
GtkFlowBox ignores filter functions once it is bound to a model ("GtkFlowBox with a model will ignore sort and filter functions"), so bind the dock to a GtkFilterListModel over the favorites that keeps the first four (compare with g_app_info_equal; the favorites model returns new GAppInfo objects per get_item), and refilter in favorites_changed. Further favorites stay reachable through Home, folders and Luma Search.
We have this as an additional patch with a unit test (tests/test-app-grid-dock.c: six favorites → four dock launchers in order, three → three, reorder → the new first four). The test fails before the change (6 == 4) and passes after; phosh's unit suite is 36/36 with it (together with the font-weight fix in the separate issue). Happy to share the patch or open a PR.
Found while building Luma from source on a Fedora 44 aarch64 VM (Luma's FP6 twin setup).