Inter-device notifications for Linux over a network?

For example if a Website posts a standard DBUS notification or I use…

notify-send "hey there!"

is there something already made for Linux that can make that show up on both my laptop and pinephone simultaneously?

I can also use dunst to run custom commands for notification messages if there’s a solution which isn’t specifically designed for Linux or isn’t for DBUS notifications.

edit:
This also needs to work over the Internet with changing public IPs as the devices are seperated and move around.

This is a rush answer as I’m about to rush out the door for a trip…

Is the pinephone on the LAN? or cell data network? does it use X11? You could send the message twice: once to the local machine and then to the remote device.

You’ll need ssh privileges to the remote device.

ssh -X user@remote_device_ip DISPLAY=:0 notify-send “Yo!”

I don’t have time to test it – but this might get you started on a working solution.

1 Like

Yeah that’s a damn good answer depending on the circumstance. Doesn’t get more elegant than that.

I’ll add this to my post but I need it to work while the two devices are separated by the Internet and the public IPs won’t always be the same as both devices move around.

Riffing off your solution I supposed I could have them talk SSH through a server. Maybe by depositing a file for reading or tunneling over a port forward. I’ll have to think about it…

Also enjoy your trip!

I’m thinking of maybe doing this over a remote server REST API served by BASH.

Sender:

  1. Encrypt notification text in some way.
  2. Send encrypted notification to the server in a wget POST.

Server:

  1. Accept messages and save them in a file using a timestamp as the file name.
  2. Accept message requests returning the contents of every timestamped file older than the timestamp provided in the request.
  3. Periodically check the message folder and delete files with a timestamp older than 10 minutes. This gives all devices an ample chance to catch new messages.

Receiver:

  1. Poll server every 30 seconds requesting every message after the timestamp of the last request.
  2. If new messages are available, decrypt them and pipe to notify-send