do not treat 0.UUID@ext as a filename with extension
fix save dialog/temp attachment filenames
allow updating attachment paths
vgtk-based SMS+MMS client

The existing messaging stacks for linux are lacking in support for MMS, from unimplemented features to antiquated frameworks.
vgmms exists to do only SMS+MMS and to have feature parity with messaging clients for Android and iOS.
$XDG_DATA_HOME/vgmms/vgmms.db)modemmanager-pp package.AutoProcessSMSWAP=true and configure your MMSC and APN in .mms/modemmanager/mms.pacman -S rust or curl https://sh.rustup.rs -sSf | shgit clone https://git.sr.ht/~anteater/vgmmscd vgmmscargo build --release
gtk and lalrpop crates take a lot of RAM to build. if you run out of RAM on a PinePhone or other RAM-limited system, try the following:
-j 1 to cargo buildmodemmanager or ofonod as root and mmsd-tng or mmsd (as your user). be able to watch their logs for error messages (e.g. run with -n -d).vgmmsvgmms exposes a GtkAction DBus interface, which can communicate with a running instance:
$ gdbus call -e -d org.vgmms -o /org/vgmms -m org.gtk.Actions.List
$ gdbus call -e -d org.vgmms -o /org/vgmms -m org.gtk.Actions.Activate \
send-message '[<(["12345"], "hi friend", @aay [])>]' []
$ gdbus call -e -d org.vgmms -o /org/vgmms -m org.gtk.Actions.Activate \
send-message '[<(["12345", "54321"], "hi everyone", @aay [b"/tmp/horse.png", b"/tmp/info.pdf"])>]' []
$ gdbus call -e -d org.vgmms -o /org/vgmms -m org.gtk.Actions.Activate new-tab [] []
$ gdbus call -e -d org.vgmms -o /org/vgmms -m org.gtk.Actions.Activate open-chat '[<(["12345", "54321"],)>]' []
$ gdbus call -e -d org.vgmms -o /org/vgmms -m org.gtk.Actions.Activate close-tab [] []
$ gdbus call -e -d org.vgmms -o /org/vgmms -m org.gtk.Actions.Activate exit [] []
$ gdbus call -e -d org.vgmms -o /org/vgmms -m org.gtk.Actions.Activate save-attachment-dialog '[<uint64 1>]' []