Testing
How to verify Muoto on a Sailfish OS device. Prefer real hardware; emulator coverage for Lipstick/APK is limited.
Build and deploy
Use the Sailfish SDK (sfdk):
~/SailfishOS/bin/sfdk config target=SailfishOS-<version>-aarch64 # or armv7hl
~/SailfishOS/bin/sfdk build
~/SailfishOS/bin/sfdk deploy --sdk
After installing an RPM over SSH (no active GUI session at install time), user units may be missing. As defaultuser:
ln -sf /usr/lib/systemd/user/harbour-muoto-launcher-icond.service \
~/.config/systemd/user/
ln -sf /usr/lib/systemd/user/harbour-muoto-install-listener.service \
~/.config/systemd/user/
systemctl --user daemon-reload
systemctl --user enable --now harbour-muoto-launcher-icond harbour-muoto-install-listener
Confirm session D-Bus name org.muoto.Launcher1 is owned before calling ApplyIcons.
Manual smoke
- Open Muoto → Icons tile → apply a pack (and optionally overlay). Use Fonts for font packs.
- Check homescreen: Jolla, harbour apps, and APK icons look themed.
- Switch to a second pack; icons should follow without a full reboot (APK may need pulley Restart homescreen if Lipstick caches absolute
Icon=). - Icons page or Dynamic icons tile: enable clock or calendar when the pack ships
dynclock//dyncal/. - On Icons (and Fonts if needed), select Default and Apply → stock;
activeIconPackisdefault. - Display density: change scale, apply, restore. The home tile subtitle should read the live values (
2.0 / 86, orDefaultper control). - Quick app switching tile: toggle and Apply, then check
dconf read /desktop/sailfish/experimental/quickAppToggleGestureflipped and the tile subtitle followed without restarting anything; the slow edge peek should reach the previous app.
Automated device scripts
Copy scripts from the repo onto the device (or run via SSH). Run as defaultuser unless noted. Sudo password override: MUOTO_SUDO_PASS.
| Script | Purpose |
|---|---|
scripts/device-test-3.2.sh | Smoke: units, cap_dac_override, manifest, update-icons; --destructive runs restore |
scripts/device-test-preupgrade-install.sh | T-20 pre-upgrade, T-21 install re-theme, T-22 folder ambient, T-23 dynamic icons |
scripts/pipeline-review-full.sh | Pipeline slices p1…p13 (includes T-20…T-23 as p10…p13) |
scripts/pipeline-review-p5-p9.sh | Subset of pipeline cases |
# On device
bash device-test-3.2.sh
bash device-test-3.2.sh --destructive
bash device-test-preupgrade-install.sh --pack haiku
bash device-test-preupgrade-install.sh --pack haiku --skip-install --skip-folder --skip-dyn # T-20
bash device-test-preupgrade-install.sh --pack haiku --skip-preupgrade --skip-folder --skip-dyn # T-21
# Or from host
ssh defaultuser@<device> 'bash -s' < scripts/device-test-3.2.sh
Probe package overrides for T-21: MUOTO_PROBE_PKG, MUOTO_PROBE_DESKTOP.
Auto-apply / upgrade / uninstall expectations are detailed under Automation.
What “good” looks like after ApplyIcons
dconf read /apps/harbour-muoto/activeIconPackis the full package name (harbour-themepack-<name>), not the short name./usr/share/harbour-muoto/launcher-manifest.jsonexists.- APK / redirect entries: PNGs under
launcher-icons/andIcon=/usr/share/harbour-muoto/launcher-icons/…. - Native inplace:
Icon=may still beharbour-…while the launcher-size hicolor PNG and manifestmode=inplacereflect the pack. - Live silica under
graphic-*is unchanged (no bulk ambient); foldericon-launcher-folder-*may change when folder theming applies.