Unofficial, minimal, pure Rust alternative to mullvad-gui which is a graphical interface for Mullvad VPN. Mulltray gives a tray icon to mullvad-daemon. Linux only. Use at your own risk.
- Git
- Rust toolchain
- Compatible version of
mullvad-daemonshould be running formulltrayto communicate with- You can install
mullvad-daemonfrom eg. mullvadvpn-app, your distro's package repositories, or nixpkgs#mullvad - Not all versions are compatible – see tags for versions that are known to work
- You can install
# Clone the repository
git clone https://github.com/Andriamanitra/mulltray
cd mulltray
# Switch to the tag corresponding to your mullvad-daemon version
git switch --detach $(mullvad-daemon --version | cut -d' ' -f2)
# Build & install the binary to $CARGO_HOME/bin
cargo install --path .
# Run (you may want to set this up to run automatically on startup)
mulltrayI like tray icons. The best way to get a tray icon for Mullvad VPN is to use mullvad-gui which looks nice and has all the features. It is written in Electron (which basically bundles an entire web browser just to show a GUI!) which means it uses a ton of resources. I don't enjoy having extra web browsers running on my computer, and I don't use most of the features of the app – I really just want a lightweight tray icon with buttons to Connect/Disconnect.
So I created Mulltray, which is just a minimal tray icon with a couple of context menu actions. It uses about 100x less RAM than the Electron-based GUI (6M vs 660M on my machine).
- Mulltray connects to mullvad-daemon's Unix socket and controls it through remote procedure calls
- The client that communicates with the daemon is generated using tonic_build based on the protobuf definition (proto/management_interface.proto) that can be found in mullvadvpn-app repository
- ksni is used for showing the tray icon