Replies: 3 comments 12 replies
-
To know which browsers the user wants to install the native messaging host to we can show a popup when the user runs the AppImage that lets them choose. They implemented it after this line. |
Beta Was this translation helpful? Give feedback.
-
I don't think we should automatically update the AppImage, we can let the user know if a new backend version is available from the extension popup. We can use Github releases HTTP API to check the latest version and show the download URL. |
Beta Was this translation helpful? Give feedback.
-
We may need to consider security as well on that. My idea is that each client requests a UUID/token on first run, which is persistent. If an app aims to manage other clients, it would request "admin" access (not sudo - access to administer other apps), and show a popup to the user for validation. This way apps will have limited scope and not conflict with others. |
Beta Was this translation helpful? Give feedback.
-
After some discussion on portability to other distros, ease of installation, and also switching to an event driven architecture, we concluded that the AppImage packaging format and DBus would be the best options.
DBus
The idea is to switch from
sendNativeMessage
toconnectNative
, to daemonize the native part, and to further extend this architecture with DBus for messaging across multiple clients.https://www.freedesktop.org/wiki/Software/DBusBindings/
The simpler way to implement a DBus service is using Python. However we need to track the names of the Python dependencies across multiple distros and ensure the correct versions are installed.
DBus API
Decisions to take:
Features (might change based on decisions):
AppImage
Since we are currently facing issues with unclear installation steps for other distros, besides Arch and NixOS, we need a unified packaging format to support as many distros as possible.
AppImage could solve both this issue and the Python dependencies one. They are easy to download and run, and contain all their dependencies in one file.
This example shows how to use
appimage-builder
to create an AppImage for Bash:https://appimage-builder.readthedocs.io/en/latest/examples/bash.html
We could either use apt and check whether we can include PPAs like the one for pipewire:
https://pipewire-debian.github.io/pipewire-debian/
Or just use pacman in the AppImage.
When the AppImage first runs, it could copy itself in ex.
~/.local/share/pipewire-screenaudio
and create the messaging host json in the browsers' home directories. (Issue: How could we detect, or make it easier to install for multiple browsers?)Furthermore, the AppImage should probably be able to self update, by downloading newer versions from Github releases.
CC: @alansartorio
Beta Was this translation helpful? Give feedback.
All reactions