Linux port of tailscale system tray menu.

Overview

tailscale-systray

Linux port of tailscale system tray menu.

tailscale-systray

Usage

$ tailscale-systray

Requirements

  • tailscale

Installation

Building app require gcc, libgtk-3-dev, libappindicator-3-dev

sudo apt-get install gcc libgtk-3-dev libappindicator3-dev

License

MIT

Icon file is copied from official repository.

Author

Yasuhiro Matsumoto

Comments
  • ignore client version warning

    ignore client version warning

    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 https://github.com/mattn/tailscale-systray/blob/097938eaa163c002de1066649ac989e975b22be4/main.go#L82-L95

    opened by davidosomething 6
  • small tweaks

    small tweaks

    • add missing sleep when disconnected
    • hide menus / update icon / update text when disconnected
    • hide services menu if no services exist
    • tweak copy notification text
    opened by SoMuchForSubtlety 2
  • Add License File ?

    Add License File ?

    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.

    opened by dit7ya 1
  • refactor: use JSON output, upgrade to go 1.17

    refactor: use JSON output, upgrade to go 1.17

    This avoids having to deal with raw text and makes it a little easier to add features later on (like seeing/managing exit nodes through the systray).

    There might be a case for using the tailscale lib directly to get the Status but there are then questions of client/server compatibility. We could also just vendor in SanitizeHostname to avoid a dependency.

    opened by michaelbeaumont 1
  • fix opening the admin console

    fix opening the admin console

    Add dedicated ways to open the admin console link for different operating systems (x-www-browser does not work on fedora). I reused the code from here https://github.com/SoMuchForSubtlety/f1viewer/blob/09b0db789bf62343a5628b2a4c1b8f1e54c97a50/internal/util/util.go#L14-L30

    Also fixes the executable function to actually check the passed command

    opened by SoMuchForSubtlety 1
  • Keep the systray after closing the terminal

    Keep the systray after closing the terminal

    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?

    opened by LeonardoMantovani 0
  • Panic when logged out

    Panic when logged out

    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:

    Text output
    Logged out
    
    JSON output
    {
    "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.

    Versions

    • Tailscale 1.20.4
    • tailscale-systray on git 64347899f5c60ccc3a7c5ebfa193364b918a38ef
    • KDE Plasma 5.24.1
    • Arch Linux (with kernel 5.16.10-zen)
    opened by nogweii 2
  • Add version information

    Add version information

    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.

    opened by dit7ya 1
  • Services

    Services

    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).

    opened by michaelbeaumont 0
Owner
mattn
Long-time Golang user&contributor, Google Dev Expert for Go, and author of many Go tools, Vim plugin author. Windows hacker C#/Java/C/C++
mattn
An example desktop system tray application that can launch HTML5 windows. Go source with a build process for Windows, Mac and Linux.

ExampleTrayGUI An example cross-platform (Mac, Windows, Linux) system tray application that can launch HTML5 windows, developed in Go including functi

Grant Moore 49 Aug 29, 2022
An example desktop system tray application that can launch HTML5 windows. Go source with a build process for Windows, Mac and Linux.

An example cross-platform (Mac, Windows, Linux) system tray application that can launch HTML5 windows, developed in Go including functional build process. This repository is intended as a quick reference to help others start similar projects using the referenced libraries and will not be actively maintained.

Grant Moore 49 Aug 29, 2022
An example desktop system tray application that can launch HTML5 windows. Go source with a build process for Windows, Mac and Linux.

ExampleTrayGUI An example cross-platform (Mac, Windows, Linux) system tray application that can launch HTML5 windows, developed in Go including functi

Owen Moore 49 Aug 29, 2022
a cross platfrom Go library to place an icon and menu in the notification area

systray is a cross-platform Go library to place an icon and menu in the notification area. Features Supported on Windows, macOS, and Linux Menu items

Lantern 2.5k Sep 29, 2022
NanoGUI.go NanoGUINanoGUI.go is a golang port of NanoGUI.

NanoGUI.go This is a golang port of NanoGUI. NanoGUI is a a minimalistic cross-platform widget library for OpenGL. Default Font Customize Guide TBD Co

Yoshiki Shibukawa 168 Sep 4, 2022
Qt binding for Go (Golang) with support for Windows / macOS / Linux / FreeBSD / Android / iOS / Sailfish OS / Raspberry Pi / AsteroidOS / Ubuntu Touch / JavaScript / WebAssembly

Introduction Qt is a free and open-source widget toolkit for creating graphical user interfaces as well as cross-platform applications that run on var

null 9.4k Oct 1, 2022
Flutter on Windows, MacOS and Linux - based on Flutter Embedding, Go and GLFW.

go-flutter - A package that brings Flutter to the desktop Purpose Flutter allows you to build beautiful native apps on iOS and Android from a single c

null 5.4k Sep 24, 2022
A full desktop environment for Linux/Unix using Fyne

About FyneDesk is an easy to use Linux/Unix desktop environment following material design. It is build using the Fyne toolkit and is designed to be ea

Fyne.io 521 Sep 23, 2022
Proof-of-concept Windows-like clipboard manager for Linux in Go

Goclip Simple Windows-like clipboard manager for linux. This application is just a proof-of-concept and might be highly unstable. Features Clipboard t

null 2 Jan 28, 2022
Pacz - Arch Linux package searcher with fzf-like UI

pacz pacz is an Arch Linux fuzzy searcher with fzf-like UI. This repository is s

sheepla 2 Apr 3, 2022
Native Go (golang) Graphical Interface system (2D and 3D), built on GoKi tree framework

GoGi is part of the GoKi Go language (golang) full strength tree structure system (ki = 木 = tree in Japanese) package gi is a scenegraph-based 2D and

GoKi 1.1k Sep 30, 2022
Cross-platform Go library to place an icon in the host operating system's taskbar.

trayhost Package trayhost is a cross-platform Go library to place an icon in the host operating system's taskbar. Platform Support macOS - Fully imple

null 233 Sep 26, 2022
Built Virtual Operating System and integrated application like calculator, gallery app , weather app, and text editor.

Virtual Operating System Built Virtual Operating System and integrated application like calculator, gallery app , weather app, and text editor. Langua

null 0 Nov 2, 2021
The Tailscale Resource Provider lets you manage Tailscale resources

Tailscale Resource Provider The Tailscale Resource Provider lets you manage Tailscale resources. Installing This package is available in many language

Pulumi 9 Aug 30, 2022
Tailscale-client-go - A client implementation for the Tailscale HTTP API

tailscale-client-go A client implementation for the Tailscale HTTP API Example p

David Bond 14 Sep 8, 2022
An example desktop system tray application that can launch HTML5 windows. Go source with a build process for Windows, Mac and Linux.

ExampleTrayGUI An example cross-platform (Mac, Windows, Linux) system tray application that can launch HTML5 windows, developed in Go including functi

Grant Moore 49 Aug 29, 2022
An example desktop system tray application that can launch HTML5 windows. Go source with a build process for Windows, Mac and Linux.

ExampleTrayGUI An example cross-platform (Mac, Windows, Linux) system tray application that can launch HTML5 windows, developed in Go including functi

Grant Moore 49 Aug 29, 2022
An example desktop system tray application that can launch HTML5 windows. Go source with a build process for Windows, Mac and Linux.

An example cross-platform (Mac, Windows, Linux) system tray application that can launch HTML5 windows, developed in Go including functional build process. This repository is intended as a quick reference to help others start similar projects using the referenced libraries and will not be actively maintained.

Grant Moore 49 Aug 29, 2022
An example desktop system tray application that can launch HTML5 windows. Go source with a build process for Windows, Mac and Linux.

ExampleTrayGUI An example cross-platform (Mac, Windows, Linux) system tray application that can launch HTML5 windows, developed in Go including functi

Owen Moore 49 Aug 29, 2022
Template/Starter code for Go application with Gin, System Tray, Gorm, Air, Swagger, JWT

gin-systray-starter Starter code for Go application with Gin, System Tray, Gorm, Air, Swagger, JWT systray, https://github.com/getlantern/systray gin,

jinyaoMa 1 Sep 16, 2022