Media Transfer Protocol Tools
I really, really don’t like how I get ebooks onto, and notes off my Supernote e-ink tablet.
I’ve had it for a year now. Great device. But the stuff I create just … is there.
I don’t want to connect to the web UI to push an Upload button to select a file to upload (drag and drop doesn’t work!) just because I’d like to read a new book; and I don’t want to sift through filenames, hastily cobbled together to create a notebook, to get to my sketches and meeting notes. That chore doesn’t sit well with me.
Meanwhile, my Boox devices sync in a weird way, but they sync via WebDAV to my Nextcloud which does the job of giving me access to notes from my Mac. And Calibre Sync works well to download books; I can’t get that app to work on the Supernote though (yet).
Like any sensible person, a year later, I reach for Emacs.
Emacs can SSH into servers and display directory listings in a way that hides from you, the user, the fact that these listings are not from your computer, so you can transparently move files, edit stuff, whatever. It’s a great experience. And I know that there’s ways to make this facility, called TRAMP, speak other protocols than ssh:.
So I ended up with mtp.el to expose mtp: and let me browse files and copy them over, including live previews of images or reading ebooks from inside Emacs via USB on the Supernote. (Not useful, but cool.)
It wasn’t too bad to interface with libmtp or the mtp CLI, so I figured I might want to have a Swift library wrapper instead to help me write more comfortable sync and transfer tools. (And maybe a Mac app while I’m at it that helps with file sync. Not there yet.)
Since that topic is likely to stay with me to transfer files to/from Android, here’s the overview page: