mattn / tailscale-systray Goto Github PK
View Code? Open in Web Editor NEWLinux port of tailscale system tray menu.
License: MIT License
Linux port of tailscale system tray menu.
License: MIT License
When running tailscale-systray
when the daemon is not running it appears as normal. Clicking "Connect" in the menu prompts me to start the daemon, so I ran systemctl start tailscaled
. Once the daemon starts the systray program crashes.
Running it in the terminal:
$ tailscale-systray
panic: runtime error: index out of range [0] with length 0
goroutine 23 [running]:
main.onReady.func4()
github.com/mattn/tailscale-systray/main.go:155 +0x885
created by main.onReady
github.com/mattn/tailscale-systray/main.go:121 +0x43d
Running tailscale status
in the terminal:
Logged out
{
"Version": "1.20.4",
"BackendState": "NeedsLogin",
"AuthURL": "",
"TailscaleIPs": null,
"Self": {
"ID": "",
"PublicKey": "nodekey:0000000000000000000000000000000000000000000000000000000000000000",
"HostName": "local-machine",
"DNSName": "",
"OS": "linux",
"UserID": 0,
"TailscaleIPs": null,
"Addrs": [],
"CurAddr": "",
"Relay": "",
"RxBytes": 0,
"TxBytes": 0,
"Created": "0001-01-01T00:00:00Z",
"LastWrite": "0001-01-01T00:00:00Z",
"LastSeen": "0001-01-01T00:00:00Z",
"LastHandshake": "0001-01-01T00:00:00Z",
"Online": false,
"KeepAlive": false,
"ExitNode": false,
"ExitNodeOption": false,
"Active": false,
"PeerAPIURL": null,
"InNetworkMap": false,
"InMagicSock": false,
"InEngine": false
},
"Health": [
"state=NeedsLogin, wantRunning=false"
],
"MagicDNSSuffix": "",
"CertDomains": null,
"Peer": null,
"User": null
}
Seems like it doesn't handle when .TailscaleIPs
is null.
Please add an option to run tailscale up
with --accept-routes
.
I never see any "services" in the systray, though some are available from my machine. How do we know a peer being displayed in status
with surrounding ()
means it's a service? It seems to be enough not to have a proper DNS name for a peer (though I'm not sure what would cause that either).
Thanks again for this project.
I would like to package this for NixOS. Could you please add version information and/or tagged releases?
Relevant: #10.
Trying to build the code with go build
I get:
# runtime/internal/sys
/usr/lib/go/src/runtime/internal/sys/consts.go:13:7: StackGuardMultiplier redeclared in this block
/usr/lib/go/src/runtime/internal/sys/arch.go:27:7: other declaration of StackGuardMultiplier
/usr/lib/go/src/runtime/internal/sys/consts.go:16:7: DefaultPhysPageSize redeclared in this block
/usr/lib/go/src/runtime/internal/sys/arch.go:36:7: other declaration of DefaultPhysPageSize
/usr/lib/go/src/runtime/internal/sys/consts.go:20:7: PCQuantum redeclared in this block
/usr/lib/go/src/runtime/internal/sys/arch.go:40:7: other declaration of PCQuantum
/usr/lib/go/src/runtime/internal/sys/consts.go:23:7: Int64Align redeclared in this block
/usr/lib/go/src/runtime/internal/sys/arch.go:43:7: other declaration of Int64Align
/usr/lib/go/src/runtime/internal/sys/consts.go:30:7: MinFrameSize redeclared in this block
/usr/lib/go/src/runtime/internal/sys/arch.go:50:7: other declaration of MinFrameSize
/usr/lib/go/src/runtime/internal/sys/consts.go:34:7: StackAlign redeclared in this block
/usr/lib/go/src/runtime/internal/sys/arch.go:54:7: other declaration of StackAlign
Using Go 1.19.2 in Linux
Maybe it's a noob question, but how can I keep the tray running after closing the terminal where I run ./tailscale-systray
?
I tried with ./tailscale-systray -d
as I would have done with a docker container but it didn't work, is there a specific command for go programs to "demonize" them?
I have more than 30 tailscale machines, the first time I open the "My Devices" menu, the systray suddenly closed (entirely, but program not exited)
the weird thing is, the systray are still shown if I show the taskbar panel anywhere but bottom
I come with conclusion that this may dash-to-panel error, or it is systray error
How i debug:
may the solution are(?):
Edit:
normally one would have to start tailscale like so, in order to choose a specific exit node:
sudo tailscale up --exit-node=<exit-node-ip>
Thanks for the project. Can you please add a license to the repo?
Edit: I just noticed MIT is mentioned in the Readme. I am going to close this for now.
It'd be nice to support fast user switching like the official clients.
Hi there,
Thank you for writing this app, it's very useful. I only have one question: anyway to change the icon?
Cheers!
First off, thank you for writing this!
I'd love to see either releases or maybe even distro packages. Seems like the former is a lighter lift since it can all be done with GitHub actions.
Instructions because I have never compiled go before.
The newly added Mullvad exit nodes allow a regular VPN with Tailscale.
Since there are a LOT of exit nodes to choose from, it currently fills the whole screen with exit nodes and doesn't display all of them due to this behavior.
It would be nice to have those nodes sorted per country so that it would look like
Network devices -> my devices -> own nodes -> device xy
Network devices -> my devices -> Mullvad nodes -> DE -> device de-xy*
This would allow operating the Mullvad nodes via tailscale-systray.
if using tailscale client built from source (or tailscale-git from archlinux repo), you may get a message:
% tailscale ip -4
Warning: client version "1.17.12-tb382161fe" != tailscaled server version "1.17.8-t5d6198ade"
100.xxx.xxx.xxx
The server warning message should be ignored so the IP can be properly output in
Lines 82 to 95 in 097938e
Hey!! Thanks for this app. I've followed the instructions, but I cannot run the app. Can you help? Am on Ubuntu 22.04 LTS 64-bit. Thanks!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.