From 59ce5129b373853aaadc58dc611028ad9d6c2588 Mon Sep 17 00:00:00 2001 From: Techmore Date: Thu, 29 Oct 2026 09:38:21 -0400 Subject: [PATCH] Tailscale app: no stalls, route-all-traffic controls, VPN connections - Every command has a time limit and is stopped when it runs out; refreshes no longer stack behind a slow command; network changes trigger a refresh. - Status card shows "All internet traffic goes through ". - Exit node section is now "Route All Traffic Through", and explains how to add an exit node when the tailnet has none. - New VPN Connections section: NetworkManager VPNs with connect and macOS-style "Send all traffic over VPN connection" (never-default), Reconnect after a mode change, Add VPN... to Network settings. Co-Authored-By: Claude Opus 5.5 --- rust/mseries-tailscale/README.md | 17 +- rust/mseries-tailscale/docs/full-dark.png | Bin 0 -> 154664 bytes rust/mseries-tailscale/docs/full-light.png | Bin 0 -> 156371 bytes rust/mseries-tailscale/docs/main-dark.png | Bin 63524 -> 66278 bytes rust/mseries-tailscale/docs/main-light.png | Bin 64088 -> 66744 bytes rust/mseries-tailscale/fixtures/nmcli.txt | 2 + .../fixtures/split-tunnel.txt | 1 + rust/mseries-tailscale/snapshot.sh | 4 +- rust/mseries-tailscale/src/cli.rs | 64 +++-- rust/mseries-tailscale/src/main.rs | 7 + rust/mseries-tailscale/src/model.rs | 52 +++++ rust/mseries-tailscale/src/ui/window.rs | 221 +++++++++++++++++- 12 files changed, 345 insertions(+), 23 deletions(-) create mode 100644 rust/mseries-tailscale/docs/full-dark.png create mode 100644 rust/mseries-tailscale/docs/full-light.png create mode 100644 rust/mseries-tailscale/fixtures/nmcli.txt create mode 100644 rust/mseries-tailscale/fixtures/split-tunnel.txt diff --git a/rust/mseries-tailscale/README.md b/rust/mseries-tailscale/README.md index efd8018..453345c 100644 --- a/rust/mseries-tailscale/README.md +++ b/rust/mseries-tailscale/README.md @@ -8,6 +8,8 @@ A native Pantheon window for Tailscale. It replaces the old launcher that opened | ![Connected](docs/main-light.png) | ![Connected, dark](docs/main-dark.png) | | **Disconnected** | **A refused change shows the one-time setup** | | ![Disconnected](docs/stopped-light.png) | ![Setup banner](docs/setup-light.png) | +| **Whole window** | **Dark** | +| ![Whole window](docs/full-light.png) | ![Whole window, dark](docs/full-dark.png) | | **Logged out** | **Service not running** | | ![Log in](docs/login-light.png) | ![Not running](docs/notrunning-dark.png) | @@ -15,8 +17,14 @@ A native Pantheon window for Tailscale. It replaces the old launcher that opened - **Status card:** connected or disconnected, tailnet and account, and a switch that runs `tailscale up` / `down`. This device's name and IP, with a copy button. -- **Exit node:** pick any device that offers itself as an exit node (`tailscale set --exit-node=IP`), or None, and - allow local network access while using one. +- **Route All Traffic Through:** pick a tailnet exit node (`tailscale set --exit-node=IP`), or None, and allow + local network access while using one (`--exit-node-allow-lan-access`). The status card then says "All internet + traffic goes through …". With no exit node on the tailnet it explains how to add one + (`sudo tailscale set --advertise-exit-node` on an always-on device, then approve it in the Admin Console). +- **VPN Connections:** the computer's other VPNs from NetworkManager, each with a connect switch and macOS's + **Send all traffic over VPN connection** switch (`ipv4.never-default` / `ipv6.never-default` = no). The card says + which mode is active; a connected VPN shows **Reconnect** after the mode changes. **Add VPN…** opens Network + settings, where new VPNs are created. - **Devices:** every device on the tailnet, online first, with IP, OS and when it was last seen. Search with Ctrl+F. Click a row or the copy button to copy its IP; the terminal button copies `ssh ` (the MagicDNS name, e.g. `ssh sdolbec-ser8`). @@ -32,7 +40,10 @@ control springs back to the real state, and the window shows the one-time comman sudo tailscale set --operator=$USER ``` -The window refreshes every 3 s while it is open, after each change, and on Ctrl+R / F5. +The window refreshes every 3 s while it is open, after each change, when the network changes (Wi-Fi switches +make tailscaled reconnect), and on Ctrl+R / F5. Every command runs off the UI thread with a time limit (8 s for +reads, 15–25 s for Tailscale changes, 90 s for VPN changes, which may wait on a password prompt); a command that +runs out of time is stopped and the window says Tailscale isn't answering instead of freezing. ## Build, install, screenshots diff --git a/rust/mseries-tailscale/docs/full-dark.png b/rust/mseries-tailscale/docs/full-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..7bfb1609569e161093c56645ebc6c0228dc03fd3 GIT binary patch literal 154664 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

O(k<+<$@pMlQ+ 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
+N+lLovSe`H1*{;02oN>2V zq%h6irK>^I0I~x(=`f9*we1&7Za;N#P{69OR_7kogwDzT(}v=3-t4hcV3&BTn3&CP zHD!S(#2*F|1>p1w*pWYm4!yUePvpfh3uZpVzlNya$Z+ghX85RiOWwY9aMa}%F+Vyf z+9==e`kW(`C%yOqe9~hVepXS5Kex(UFX{G?@wZ8XVs)u+xPxC+(+w~N%R0Zg+H`9f z+u~zB5H-my^t#dM`-4X6!Qx@pt66`NlR4vEJ*SH?ImcD2j`F;OQ4g-#Q-Kd;!HQm8XD3A-morPvw?D0eC`v7Fe+?HIh`!C)B#2KEvoB8Z~s zPhMZ4i#w71K<|%XUmss&HOIhUD}o6j7cnxFX;F}j?fu$P3RyypOEpiuZ#VEtDFf=} z%T)RIV76a?(jw zl@(dH}v+Fm$6ifgFD>QHM2;y z|J;0YV>{ZV3-2x~Zy@w_sCj>*r(9C*hze#T)eC0gT!0+?o#AJdhOH`i^7tzB3}MWk19^@WXf zYiS)ZsC-ICIcMPUgNgN}M}i?_VXUz86YbQnl@AZlV2cf|Rf}M^jRwZBouCOm$L>-d zJ61iNBKslq28|xw1sH*(d3;5rc>*O9>aD%FTrp5Tr_AgyH2}T`V&sp-1Qsq@ZWa}G zv5_a&habu+44d6u;PDXcUbJB#0z{(OIy%k3%k|#`K1^A!jRPdUC#U(i)VH=PD=Q)r zGa1B{Du);kIu!t-#)6i8v%=zRVk=(jn~fw2i#a1@J5LgHVg+Ks1-@B+RT=hb9xd-+dcgWl=BMC1fnTqq`L0)t$l5tI?QU+ zDd)x66$Sqg!+~yOAb!;0H*1$oU(oculLIYq3~(pMUxYlXA`~bCzyZgI#TOHZp+8s5^qm|mtcYn*j$LLJ{*R}h9U?zvXSh9~V{&OS4 zddO&2zu(b*Ze;EQ;NTZ8)}4=Q)Ij4s?Lay9;K2h7srMZ|{Fv8yPN#kQ_J}tyZ0Itj zO~Yf~X@;1Gx%<$lfZkDia00;Zhts9CTcJ}X&g|!Uk=&YjOx*4jb)fcSooDIIx(3Jg zb5?(>J8kcI^4roD)6tD-^qlRG$bWr(;)hh{e`6s!L$?BSZS(Z>yq3Vt0!OSEtB&r5 zZ7ol&m(9j((UZ~(QBC5jK-g869R11vvS0Kk{X_HN|2cPk`}8^Wxz^}ZTwKq=gWGtd zP2k2f^H5UY1x~`ZyHL+EBaZ&VM2A=rauK6~(+`^gs(r4jgNU0lXHHJG#*O;eAu4KG zhZJQ3J`kPg@vI8r=pJw>4qxX*6Iqo+iU?Rl$gd48i=)gXvD3k>dlnirm1q9=KNtpC zVRG2L+`1w*=HMzcUN$c6IpUB2SUs37mm>q@g<$JFp2y;DNak8se%R&Qx~k*X7LKJ} zABBfT){*f?pp^s;c66K=nOjZq8;4{-AzLmiy~b|Gz=d{B9R3kv6o1gvQb(PqB&rpn zW`{zU4i-cRRyd=l3+C4d$s{lsMP8#@Bs1LQ>4`xFXbw5a@Gb#8mVij=Lz#2@#EGj<0}o!xX9>{{ev8W!Uh|btto1##uD15c)2EYc zZ6m6iCJzTA60DV)^E*1+B?xFJH2u*7Vw<%0AFrw1H=fl|gyz^Zi0#Nvm($a?^T%lN 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