Add Tailscale to GNOME quick settings. Fork of joaophi/tailscale-gnome-qs with continued maintenance and improvements. Features: • Quick Toggle — Enable/disable Tailscale directly from the Quick Settings panel • Copy Node IP - Long-click a node to copy that node's ip address to the clipboard • Exit Nodes — Select and disconnect exit nodes, including Mullvad support with country flag display • Multi-Account — Switch between multiple Tailscale accounts (profiles) •Status Indicator — Visual indication of your Tailscale connection status NOTE: This extension accesses the clipboard to copy the node ip address. NOTE: Make sure you set your user as tailscale operator: `sudo tailscale set --operator=$USER`
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
EGO015 warning
signals connected by extension should be disconnected in disable()
Signals assigned in `enable()` are missing matching disconnect calls in `disable()` or its helper methods.
extension.js:76
tailscale.connect('notify::exit-node', () => setVisible())
extension.js:77
tailscale.connect('notify::running', () => setVisible())
extension.js:116
action.connect('notify::pressed', () => {
if (action.pressed)
this.add_style_pseudo_class('active');
else
this.remove_style_pseudo_class('active');
})
extension.js:130
action.connect('notify::pressed', () => {
if (action.pressed)
this.add_style_pseudo_class('active');
else
this.remove_style_pseudo_class('active');
})
extension.js:122
action.connect('recognize', () => this.activate(Clutter.get_current_event()))
extension.js:136
action.connect('recognize', () => onLongClick())
extension.js:361
dns.connect('toggled', item => {
tailscale.accept_dns = item.state;
})
extension.js:368
lan.connect('toggled', item => {
tailscale.allow_lan_access = item.state;
})
extension.js:360
tailscale.connect('notify::accept-dns', obj => dns.setToggleState(obj.accept_dns))
extension.js:353
tailscale.connect('notify::accept-routes', obj => routes.setToggleState(obj.accept_routes))
extension.js:367
tailscale.connect('notify::allow-lan-access', obj => lan.setToggleState(obj.allow_lan_access))
extension.js:279
tailscale.connect('notify::exit-node-name', () => {
this.subtitle = tailscale.exit_node_name;
this.menu.setHeader(icon, this.title, this.subtitle);
disableExitNodeButton.reactive = tailscale.exit_node !== '';
})
extension.js:341
tailscale.connect('notify::nodes', obj => updateNodes(obj))
extension.js:403
tailscale.connect('notify::profiles', obj => updateProfiles(obj))
extension.js:374
tailscale.connect('notify::shields-up', obj => shields.setToggleState(obj.shields_up))
extension.js:381
tailscale.connect('notify::ssh', obj => ssh.setToggleState(obj.ssh))
extension.js:354
routes.connect('toggled', item => {
tailscale.accept_routes = item.state;
})
extension.js:375
shields.connect('toggled', item => {
tailscale.shields_up = item.state;
})
extension.js:382
ssh.connect('toggled', item => {
tailscale.ssh = item.state;
})
| Version | Status |
|---|---|
| v7 (10) | Rejected |
| v6 (9) | Active |
| v6 (8) | Rejected |
| v6 (7) | Rejected |
| v6 (6) | Rejected |
| 5 | Active |
| 4 | Inactive |
| 3 | Inactive |
| 2 | Rejected |
| 1 | Rejected |