syncing supernote with surface pro x: Nonlinear Function
Created: July 17, 2022
Modified: August 27, 2022

syncing supernote with surface pro x

This page is from my personal notes, and has not been specifically reviewed for public consumption. It might be incomplete, wrong, outdated, or stupid. Caveat lector.

My Supernote A5X syncs through Dropbox, but unfortunately Dropbox doesn't support Windows ARM64 machines like the Surface Pro X. Here's my solution to keep PDFs synced across both of them, using Syncthing and an external Ubuntu server (I keep a DigitalOcean droplet always running for this and other purposes).

The same approach should also work more broadly to sync any part of a Dropbox folder on the Surface Pro X or other Windows Arm machines.

On the Ubuntu server:

  1. Install Syncthing: sudo apt-get install syncthing.
  2. Allow the relevant ports through the firewall: sudo ufw allow syncthing; sudo ufw reload.
  3. Add Syncthing as a service: https://docs.syncthing.net/users/autostart.html#linux
  4. Download and set up Dropbox: https://www.dropbox.com/install-linux
  5. Add Dropbox as a service: https://hashbangwallop.com/dropbox-service.html (note: also add Restart=always and `RestartSec=5s` to ensure the service stays running by auto-restarting if it crashes)
  6. Ensure that both the Dropbox and Syncthing services are running.
  7. Log in to the Syncthing UI, using SSH to forward the relevant port.This is easier and more secure than trying to configure Syncthing to expose the UI directly to remote connections. For example, connect via ssh -L 8384:localhost:8384 username@server, and then go to localhost:8384 in your local browser to set up Syncthing.
  8. Add a shared folder pdfs or similar underneath ~/Dropbox/Supernote/Document, and give it a unique Syncthing name (e.g., supernote-pdfs). Make sure you enable sharing for this folder.
  9. Note the device ID of this Syncthing service (you can find this in the menu) to use when setting up the tablet.

On the Surface Pro X:

  1. Download Syncthing's ARM64 client from https://syncthing.net/downloads/, and extract the contents under C:\Program Files (Arm)\syncthing.
  2. Run the syncthing.exe executable to start up the local GUI.
  3. Add a new remote device using the server's device ID.
  4. Assuming the machines can now see each other, you should have the option to accept the shared folder supernote-pdfs and associate it with a local folder. Syncronization should now be working!
  5. Use nssm to add Syncthing as a service that runs automatically at login: https://docs.syncthing.net/users/autostart.html#autostart-windows-service. Be sure to a) run as an unprivileged user, and b) once the service is set up, use services.msc to set it to auto-restart on failure.
  6. With this setup I still find that syncthing sometimes stalls after the machine wakes from hibernation (this issue: https://forum.syncthing.net/t/syncthing-process-stalled-after-windows-hibernation/17950). A potential workaround I'm testing is to schedule a task to manually restart the service: follow the directions at https://sumtips.com/how-to/run-program-windows-wakes-up-sleep-hibernate/, with nssm restart syncthing as the command to run (for which this task must have appropriate privileges).

Any additions or changes to the PDFs on the Surface will now automatically propagate via Syncthing to the Dropbox folder on the server, and thus to Dropbox itself.