This adds a systray app for linux, similar to the apps for macOS and
windows. There are already a number of community-developed systray apps,
but most of them are either long abandoned, are built for a specific
desktop environment, or simply wrap the tailscale CLI.
This uses fyne.io/systray (a fork of github.com/getlantern/systray)
which uses newer D-Bus specifications to render the tray icon and menu.
This results in a pretty broad support for modern Desktop Environments.
---
This is a work in progress. Some things are still half-built, this is
just where I stopped to take a break.
- fast user switching works
- connect and disconnecting work, and show correct icon (including the
animated loading icon while connecting)
- devices menu works, but seems to have issues with really large menus,
either crashing or rending off-screen with no scroll option.
- clipboard and notification integration works to copy device IPs
- exit node menu is built, but currently non-functional (this is where I
stopped). Exit nodes are not re-rendered when switching profiles.
The code is currently "okay", but certainly needs cleanup, docs, etc.
Signed-off-by: Will Norris <will@tailscale.com>